zhangqian
2024-07-30 4af540bc284454a6889ded0e8c99c40ae9516e0a
修正保存物料总库存的多单位
3个文件已修改
22 ■■■■■ 已修改文件
controllers/product_controller.go 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/material.go 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/operation.go 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/product_controller.go
@@ -803,6 +803,7 @@
                return errors.New(fmt.Sprintf("产品:%v,库存:%v,报废:%v,数量不够,无法完成报废操作", v.Product.Name, v.Product.Amount.String(), v.Amount.String()))
            }
            listDetails[k].Product.Amount = listDetails[k].Product.Amount.Sub(v.Amount)
            listDetails[k].Product.StockMoreUnitList = service.SubMoreUnit(listDetails[k].Product.StockMoreUnitList, v.MoreUnitList)
            if err := tx.Save(&listDetails[k].Product).Error; err != nil {
                return err
            }
models/material.go
@@ -80,7 +80,9 @@
        ReorderRuleNum          int64           `json:"reorderRuleNum"`
        MoreUnit                *bool           `json:"moreUnit" gorm:"type:tinyint(1);default:false;comment:启动多单位"`
        MoreUnitList            []UnitItems     `json:"moreUnitList" gorm:"-"`
        MoreUnitValue           string          `json:"-" gorm:"type:varchar(255);comment:多单位值"`
        MoreUnitValue           string          `json:"-" gorm:"type:varchar(255);comment:多单位值"` //多单位换算比例
        StockMoreUnitList       []UnitItems     `json:"-" gorm:"-"`                              //多单位存储的值
        StockMoreUnitValue      string          `json:"-" gorm:"type:varchar(512);comment:多单位值"` //多单位存储的值
        GrossWeight             decimal.Decimal `json:"grossWeight" gorm:"type:decimal(20,3);comment:毛重"`
        NetWeight               decimal.Decimal `json:"netWeight" gorm:"type:decimal(20,3);comment:净重"`
        GrossUnit               string          `json:"grossUnit" gorm:"type:varchar(255);comment:毛重单位"`
@@ -177,6 +179,20 @@
        }
        slf.MoreUnitValue = string(str)
    }
    if len(slf.StockMoreUnitList) != 0 {
        items := make([]UnitItems, 0)
        for k, item := range slf.StockMoreUnitList {
            if item.Unit != "" && !item.Amount.IsZero() {
                items = append(items, slf.StockMoreUnitList[k])
            }
        }
        str, err := json.Marshal(items)
        if err != nil {
            return err
        }
        slf.StockMoreUnitValue = string(str)
    }
    return
}
service/operation.go
@@ -125,7 +125,7 @@
    var details []*models.OperationDetails
    for k, v := range listDetails {
        listDetails[k].Product.Amount = listDetails[k].Product.Amount.Add(v.Amount)
        listDetails[k].Product.MoreUnitList = AddMoreUnit(listDetails[k].Product.MoreUnitList, v.MoreUnitList)
        listDetails[k].Product.StockMoreUnitList = AddMoreUnit(listDetails[k].Product.StockMoreUnitList, v.MoreUnitList)
        if err := tx.Save(&listDetails[k].Product).Error; err != nil {
            return err
        }
@@ -249,6 +249,7 @@
            return errors.New(fmt.Sprintf("产品:%v, 多单位数量不够,无法完成出库操作", v.Product.Name))
        }
        listDetails[k].Product.Amount = listDetails[k].Product.Amount.Sub(v.Amount)
        listDetails[k].Product.StockMoreUnitList = SubMoreUnit(listDetails[k].Product.StockMoreUnitList, v.MoreUnitList)
        if err := models.NewMaterialSearch().SetOrm(tx).Save(&listDetails[k].Product); err != nil {
            return err
        }