From e5df488268e29b272932e6cc1d2b1e7034590ba0 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期三, 12 六月 2024 11:40:45 +0800
Subject: [PATCH] weedfs包放到项目里

---
 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(&params)
+	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(&params)
+		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