lishihai
2024-07-03 36a93a12407c11f5340399014547569df3bd2a50
导入物料/产品->新模版增加采购类型
1个文件已修改
78 ■■■■■ 已修改文件
service/material.go 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/material.go
@@ -64,7 +64,7 @@
    for index, insert := range inserts {
        errMsg := ""
        if len(insert) < 5 || insert[0] == "" || insert[1] == "" || insert[2] == "" || insert[3] == "" || insert[4] == "" {
        if len(insert) < 6 || insert[0] == "" || insert[1] == "" || insert[2] == "" || insert[3] == "" || insert[4] == "" || insert[5] == "" {
            errMsg = "第" + strconv.Itoa(index+2) + "行,没有填写必填项项"
            return 0, errors.New(errMsg)
        }
@@ -98,44 +98,40 @@
            return 0, errors.New(errMsg)
        }
        material.CategoryId = mapProductCategory[strings.Trim(insert[3], " ")]
        purchaseTypeList := make([]int, 0)
        purchaseTypes := strings.Split(strings.Trim(insert[4], " "), "/")
        for _, v := range purchaseTypes {
            switch strings.Trim(v, " ") {
            case "采购":
                purchaseTypeList = append(purchaseTypeList, int(constvar.PurchaseTypeOutSource))
            case "自制":
                purchaseTypeList = append(purchaseTypeList, int(constvar.PurchaseTypeSelf))
            case "委外":
                purchaseTypeList = append(purchaseTypeList, int(constvar.PurchaseTypeEntrust))
            default:
                errMsg = "第" + strconv.Itoa(index+2) + "行,产品编码:" + insert[0] + ",无法识别采购类型"
                return 0, errors.New(errMsg)
            }
        material.Unit = insert[4]
        }
        material.PurchaseTypeList = purchaseTypeList
        material.Unit = insert[5]
        var moreUnit = true
        if len(insert) > 6 && insert[5] != "" {
            material.MoreUnit = &moreUnit
            var ut models.UnitItems
            ut.Unit = insert[5]
            if len(insert) < 13 || insert[12] == "" {
                errMsg = "第" + strconv.Itoa(index+2) + "行,产品编码:" + insert[0] + ",请填写与辅计量单位1相关的单位换算比例1"
                return 0, errors.New(errMsg)
            }
            ut.Amount = decimal.RequireFromString(insert[12])
            if len(insert) < 14 || insert[13] == "" {
                errMsg = "第" + strconv.Itoa(index+2) + "行,产品编码:" + insert[0] + ",请填写与辅计量单位1相关的是否浮动换算1"
                return 0, errors.New(errMsg)
            }
            if strings.Trim(insert[13], " ") == "是" {
                ut.Floating = true
            } else {
                ut.Floating = false
            }
            material.MoreUnitList = append(material.MoreUnitList, ut)
        }
        if len(insert) > 7 && insert[6] != "" {
            material.MoreUnit = &moreUnit
            var ut models.UnitItems
            ut.Unit = insert[6]
            if len(insert) < 14 || insert[13] == "" {
                errMsg = "第" + strconv.Itoa(index+2) + "行,产品编码:" + insert[0] + ",请填写与辅计量单位1相关的单位换算比例1"
                return 0, errors.New(errMsg)
            }
            ut.Amount = decimal.RequireFromString(insert[13])
            if len(insert) < 15 || insert[14] == "" {
                errMsg = "第" + strconv.Itoa(index+2) + "行,产品编码:" + insert[0] + ",请填写与辅计量单位2相关的单位换算比例2"
                errMsg = "第" + strconv.Itoa(index+2) + "行,产品编码:" + insert[0] + ",请填写与辅计量单位1相关的是否浮动换算1"
                return 0, errors.New(errMsg)
            }
            ut.Amount = decimal.RequireFromString(insert[14])
            if len(insert) < 16 || insert[15] == "" {
                errMsg = "第" + strconv.Itoa(index+2) + "行,产品编码:" + insert[0] + ",请填写与辅计量单位2相关的是否浮动换算2"
                return 0, errors.New(errMsg)
            }
            if strings.Trim(insert[15], " ") == "是" {
            if strings.Trim(insert[14], " ") == "是" {
                ut.Floating = true
            } else {
                ut.Floating = false
@@ -143,10 +139,30 @@
            material.MoreUnitList = append(material.MoreUnitList, ut)
        }
        if len(insert) > 8 && insert[7] != "" {
            material.Specs = insert[7] //规格
            material.MoreUnit = &moreUnit
            var ut models.UnitItems
            ut.Unit = insert[7]
            if len(insert) < 16 || insert[15] == "" {
                errMsg = "第" + strconv.Itoa(index+2) + "行,产品编码:" + insert[0] + ",请填写与辅计量单位2相关的单位换算比例2"
                return 0, errors.New(errMsg)
            }
            ut.Amount = decimal.RequireFromString(insert[15])
            if len(insert) < 17 || insert[16] == "" {
                errMsg = "第" + strconv.Itoa(index+2) + "行,产品编码:" + insert[0] + ",请填写与辅计量单位2相关的是否浮动换算2"
                return 0, errors.New(errMsg)
            }
            if strings.Trim(insert[16], " ") == "是" {
                ut.Floating = true
            } else {
                ut.Floating = false
            }
            material.MoreUnitList = append(material.MoreUnitList, ut)
        }
        if len(insert) > 9 && insert[8] != "" {
            material.Type = insert[8] //型号
            material.Specs = insert[8] //规格
        }
        if len(insert) > 10 && insert[9] != "" {
            material.Type = insert[9] //型号
        }
        materialList = append(materialList, material)