liujiandao
2024-04-17 216c9e49dafdb7a5bd025f6d6fa899a33befc38c
产品添加字段
2个文件已修改
71 ■■■■■ 已修改文件
controllers/operation.go 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/operation_details.go 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/operation.go
@@ -15,6 +15,7 @@
    "strconv"
    "strings"
    "time"
    "wms/conf"
    "wms/constvar"
    "wms/extend/code"
    "wms/extend/util"
@@ -871,10 +872,18 @@
    var fileUrl string
    if operation.BaseOperationType == constvar.BaseOperationTypeIncoming {
        fileUrl, err = ExportInputSelfmade(constvar.FileTemplateCategory_Selfmade, operation)
        if err != nil {
            util.ResponseFormat(c, code.RequestParamError, err.Error())
            return
        if conf.WebConf.CompanyName == "jialian" {
            fileUrl, err = JialianInputOperation(operation)
            if err != nil {
                util.ResponseFormat(c, code.RequestParamError, err.Error())
                return
            }
        } else {
            fileUrl, err = ExportInputSelfmade(constvar.FileTemplateCategory_Selfmade, operation)
            if err != nil {
                util.ResponseFormat(c, code.RequestParamError, err.Error())
                return
            }
        }
    } else if operation.BaseOperationType == constvar.BaseOperationTypeOutgoing {
        fileUrl, err = ExportOutputOperation(constvar.FileTemplateCategory_Output, operation)
@@ -890,8 +899,58 @@
    util.ResponseFormat(c, code.Success, fileUrl)
}
func JialianInputOperation() {
func JialianInputOperation(operation *models.Operation) (string, error) {
    template, err := models.NewFileTemplateAttachmentSearch().SetCategory(14).First()
    if err != nil {
        return "", errors.New("获取模版记录失败:" + err.Error())
    }
    readerCloser, err := http.HttpGetWithReadCloser(template.FileUrl)
    if err != nil {
        return "", errors.New("获取模版失败:" + err.Error())
    }
    f, err := excelize.OpenReader(readerCloser)
    if err != nil {
        return "", errors.New("读取excel模版失败:" + err.Error())
    }
    readerCloser.Close()
    defer f.Close()
    f.SetCellValue("Sheet1", "C2", operation.CompanyName)
    f.SetCellValue("Sheet1", "H2", operation.OperationDate)
    f.SetCellValue("Sheet1", "O2", operation.Number)
    rowIndex := 5
    totalAmount := decimal.NewFromInt(0)
    for i, v := range operation.Details {
        //设置表单最多9条数据
        if i > 8 {
            break
        }
        f.SetCellValue("Sheet1", "A"+strconv.Itoa(rowIndex), v.Product.Name)
        f.SetCellValue("Sheet1", "B"+strconv.Itoa(rowIndex), v.Product.Type)
        f.SetCellValue("Sheet1", "C"+strconv.Itoa(rowIndex), v.Product.Unit)
        f.SetCellValue("Sheet1", "D"+strconv.Itoa(rowIndex), v.Amount.String())
        rowIndex++
        totalAmount = totalAmount.Add(v.Amount)
    }
    f.SetCellValue("Sheet1", "D14", totalAmount)
    f.SetCellValue("Sheet1", "B15", operation.Manager)
    f.SetCellValue("Sheet1", "D15", operation.Accountant)
    f.SetCellValue("Sheet1", "F15", operation.Custodian)
    buf, err := f.WriteToBuffer()
    if err != nil {
        return "", err
    }
    fileUrl, err := upload.UploadFileToSeaWeed(string(constvar.FileType_File), uuid.NewV4().String()+".xlsx", buf.Bytes())
    if err != nil {
        logx.Errorf("file upload err: %v", err)
        return "", err
    }
    return fileUrl, nil
}
func ExportInputSelfmade(category constvar.FileTemplateCategory, operation *models.Operation) (string, error) {
models/operation_details.go
@@ -25,6 +25,8 @@
        ToLocation       Location        `json:"toLocation"      gorm:"foreignKey:ToLocationID;references:Id"`    //目标位置
        TotalGrossWeight decimal.Decimal `json:"totalGrossWeight" gorm:"type:decimal(20,3);comment:总毛重"`
        TotalNetWeight   decimal.Decimal `json:"totalNetWeight" gorm:"type:decimal(20,3);comment:总净重"`
        AuxiliaryAmount  decimal.Decimal `json:"auxiliaryAmount" gorm:"type:decimal(20,3);comment:辅助数量"`
        AuxiliaryUnit    string          `json:"auxiliaryUnit" gorm:"type:varchar(191);comment:辅助单位"`
    }
    OperationDetailsSearch struct {