From 1dd416deaf053a23a56b42a1ab18fe9f621fefb0 Mon Sep 17 00:00:00 2001 From: liujiandao <274878379@qq.com> Date: 星期一, 13 十一月 2023 20:01:30 +0800 Subject: [PATCH] 仓库与位置修改 --- controllers/warehouse.go | 45 ++++++++++++++++++++++++++++++++++++++------- 1 files changed, 38 insertions(+), 7 deletions(-) diff --git a/controllers/warehouse.go b/controllers/warehouse.go index 01c1ba3..bc2aa7f 100644 --- a/controllers/warehouse.go +++ b/controllers/warehouse.go @@ -7,6 +7,7 @@ "github.com/spf13/cast" "gorm.io/gorm" "strconv" + "strings" "wms/constvar" "wms/extend/code" "wms/extend/util" @@ -41,12 +42,24 @@ util.ResponseFormat(c, code.RequestParamError, err.Error()) return } + //鍒涘缓瑙嗗浘 + view := &models.Location{ + Name: params.Code, + JointName: params.Code, + Type: constvar.LocationTypeView, + } + id, err := models.NewLocationSearch().CreateReturnId(view) + if err != nil { + util.ResponseFormat(c, code.SaveFail, "瑙嗗浘鍒涘缓澶辫触") + return + } //鍒涘缓榛樿浣嶇疆 location := &models.Location{ Name: "榛樿浣嶇疆", - JointName: params.Code, + JointName: params.Code + "/榛樿浣嶇疆", Type: constvar.LocationTypeInternal, ReplenishLocation: true, + ParentId: id, } locationId, err := models.NewLocationSearch().CreateReturnId(location) if err != nil { @@ -129,9 +142,27 @@ } //鏇存柊浣嶇疆淇℃伅 if oldRecord != nil && params.Code != oldRecord.Code { - m := make(map[string]interface{}) - m["joint_name"] = params.Code - err := models.NewLocationSearch().SetID(oldRecord.LocationId).UpdateByMap(m) + locations, err := models.NewLocationSearch().SetJointName(oldRecord.Code).FindNotTotal() + if err != nil { + return errors.New("鏌ヨ浣嶇疆淇℃伅澶辫触") + } + + err = models.WithTransaction(func(db *gorm.DB) error { + for _, location := range locations { + m := make(map[string]interface{}) + index := strings.Index(location.JointName, "/") + if index > 0 { + m["joint_name"] = params.Code + location.JointName[index:] + } else { + m["joint_name"] = params.Code + } + err = models.NewLocationSearch().SetOrm(db).SetID(location.Id).UpdateByMap(m) + if err != nil { + return err + } + } + return nil + }) if err != nil { return errors.New("鏇存柊浣嶇疆淇℃伅澶辫触") } @@ -168,11 +199,11 @@ return } //鑾峰彇浣嶇疆淇℃伅 - codes := make([]string, 0) + ids := make([]int, 0) for _, warehouse := range list { - codes = append(codes, warehouse.Code) + ids = append(ids, warehouse.LocationId) } - locations, err := models.NewLocationSearch().SetJointNames(codes).FindNotTotal() + locations, err := models.NewLocationSearch().SetIds(ids).FindNotTotal() if err != nil { util.ResponseFormat(c, code.RequestParamError, "浣嶇疆淇℃伅鏌ユ壘澶辫触") return -- Gitblit v1.8.0