From 7d4f02f6a8066018911d09bad42c5c540abaa66b Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期一, 11 三月 2024 15:18:29 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/aps/WMS
---
controllers/warehouse.go | 74 +++++++++++++++++++++++++++++++++----
1 files changed, 66 insertions(+), 8 deletions(-)
diff --git a/controllers/warehouse.go b/controllers/warehouse.go
index 01c1ba3..f9b54c9 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 {
@@ -109,7 +122,34 @@
util.ResponseFormat(c, code.RequestParamError, err.Error())
return
}
- err := models.NewWarehouseSearch().SetID(params.Id).Update(¶ms)
+ warehouse, err := models.NewWarehouseSearch().SetID(params.Id).First()
+ if err != nil {
+ util.ResponseFormat(c, code.RequestParamError, "浠撳簱涓嶅瓨鍦�")
+ return
+ }
+ err = models.WithTransaction(func(db *gorm.DB) error {
+ //鏇存柊浣滀笟绫诲瀷鍚嶇О
+ if params.Name != warehouse.Name {
+ m := make(map[string]interface{})
+ m["name"] = params.Name + "-鍏ュ簱"
+ err := models.NewOperationTypeSearch().SetOrm(db).SetBaseOperationType(constvar.BaseOperationTypeIncoming).SetWarehouseId(params.Id).UpdateByMap(m)
+ if err != nil {
+ return err
+ }
+ m["name"] = params.Name + "-鍑哄簱"
+ err = models.NewOperationTypeSearch().SetOrm(db).SetBaseOperationType(constvar.BaseOperationTypeOutgoing).SetWarehouseId(params.Id).UpdateByMap(m)
+ if err != nil {
+ return err
+ }
+ m["name"] = params.Name + "-鍐呴儴璋冩嫧"
+ err = models.NewOperationTypeSearch().SetOrm(db).SetBaseOperationType(constvar.BaseOperationTypeInternal).SetWarehouseId(params.Id).UpdateByMap(m)
+ if err != nil {
+ return err
+ }
+ }
+ err = models.NewWarehouseSearch().SetID(params.Id).Update(¶ms)
+ return err
+ })
if err != nil {
util.ResponseFormat(c, code.RequestParamError, "淇敼澶辫触")
@@ -129,9 +169,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 +226,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