From 4af540bc284454a6889ded0e8c99c40ae9516e0a Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期二, 30 七月 2024 14:45:53 +0800 Subject: [PATCH] 修正保存物料总库存的多单位 --- controllers/product_controller.go | 1 + models/material.go | 18 +++++++++++++++++- service/operation.go | 3 ++- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/controllers/product_controller.go b/controllers/product_controller.go index eb8890c..fa48b5f 100644 --- a/controllers/product_controller.go +++ b/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 } diff --git a/models/material.go b/models/material.go index 75e15d3..f28215e 100644 --- a/models/material.go +++ b/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 } diff --git a/service/operation.go b/service/operation.go index 514bdc8..a86aabe 100644 --- a/service/operation.go +++ b/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 } -- Gitblit v1.8.0