From 482fe65f34d1acf2483814821570c80c92547c5e Mon Sep 17 00:00:00 2001
From: liujiandao <274878379@qq.com>
Date: 星期二, 26 九月 2023 13:55:34 +0800
Subject: [PATCH] 位置字段修改

---
 models/location.go       |   18 +++++++++---------
 controllers/warehouse.go |    6 +++---
 controllers/location.go  |   24 +++++++++++++++++++++---
 3 files changed, 33 insertions(+), 15 deletions(-)

diff --git a/controllers/location.go b/controllers/location.go
index 682c1f0..2d7946f 100644
--- a/controllers/location.go
+++ b/controllers/location.go
@@ -4,6 +4,7 @@
 	"errors"
 	"github.com/gin-gonic/gin"
 	"strconv"
+	"strings"
 	"wms/extend/code"
 	"wms/extend/util"
 	"wms/models"
@@ -30,6 +31,18 @@
 		util.ResponseFormat(c, code.RequestParamError, err)
 		return
 	}
+	if params.ParentId != 0 {
+		//鏌ヨ涓婄骇鍚嶇О
+		first, err := models.NewLocationSearch().SetParentId(params.ParentId).First()
+		if err != nil {
+			util.ResponseFormat(c, code.RequestParamError, "鏌ヨ涓婄骇鍚嶇О澶辫触")
+			return
+		}
+		params.JointName = first.JointName + "/" + params.Name
+	} else {
+		params.JointName = params.Name
+	}
+
 	err := models.NewLocationSearch().Create(&params)
 	if err != nil {
 		util.ResponseFormat(c, code.RequestParamError, "鍒涘缓澶辫触")
@@ -59,9 +72,6 @@
 	if err != nil {
 		util.ResponseFormat(c, code.RequestParamError, "鏌ユ壘澶辫触")
 		return
-	}
-	for _, location := range list {
-		location.JointName = location.ParentId + "/" + location.Name
 	}
 
 	util.ResponseFormatList(c, code.Success, list, int(total))
@@ -105,6 +115,14 @@
 		util.ResponseFormat(c, code.RequestParamError, err)
 		return
 	}
+	index := strings.LastIndex(params.JointName, "/")
+	if index > 0 {
+		jn := params.JointName[:index]
+		oldName := params.JointName[index+1:]
+		if oldName != params.Name {
+			params.JointName = jn + "/" + params.Name
+		}
+	}
 	err := models.NewLocationSearch().Update(&params)
 	if err != nil {
 		util.ResponseFormat(c, code.RequestParamError, "浣嶇疆淇℃伅鏇存柊澶辫触")
diff --git a/controllers/warehouse.go b/controllers/warehouse.go
index 5dc9857..94210d0 100644
--- a/controllers/warehouse.go
+++ b/controllers/warehouse.go
@@ -44,7 +44,7 @@
 	//鍒涘缓榛樿浣嶇疆
 	location := &models.Location{
 		Name:              "榛樿浣嶇疆",
-		ParentId:          params.Code,
+		JointName:         params.Code,
 		Type:              constvar.LocationTypeInternal,
 		ReplenishLocation: true,
 	}
@@ -101,7 +101,7 @@
 	//鏇存柊浣嶇疆淇℃伅
 	if oldRecord != nil && params.Code != oldRecord.Code {
 		m := make(map[string]interface{})
-		m["parent_id"] = params.Code
+		m["joint_name"] = params.Code
 		err := models.NewLocationSearch().SetID(oldRecord.LocationId).UpdateByMap(m)
 		if err != nil {
 			return errors.New("鏇存柊浣嶇疆淇℃伅澶辫触")
@@ -143,7 +143,7 @@
 	for _, warehouse := range list {
 		codes = append(codes, warehouse.Code)
 	}
-	locations, err := models.NewLocationSearch().SetParents(codes).FindNotTotal()
+	locations, err := models.NewLocationSearch().SetCodes(codes).FindNotTotal()
 	if err != nil {
 		util.ResponseFormat(c, code.RequestParamError, "浣嶇疆淇℃伅鏌ユ壘澶辫触")
 		return
diff --git a/models/location.go b/models/location.go
index 394e0bb..db96855 100644
--- a/models/location.go
+++ b/models/location.go
@@ -13,7 +13,7 @@
 		WmsModel
 		Id        int    `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
 		Name      string `json:"name" gorm:"index;type:varchar(255);not null;comment:浣嶇疆鍚嶇О"` //浣嶇疆鍚嶇О
-		ParentId  string `json:"parentId" gorm:"type:varchar(255)"`                         //涓婄骇id
+		ParentId  int    `json:"parentId" gorm:"type:int;comment:涓婄骇id"`                     //涓婄骇id
 		CompanyId int    `json:"companyId" gorm:"type:int"`                                 //鍏徃id
 		//Company              Company                       `json:"company" gorm:"foreignKey:CompanyId"`                       //鍏徃
 		Type                 constvar.LocationType         `json:"type" gorm:"type:int(11);comment:浣嶇疆绫诲瀷"`                 //浣嶇疆绫诲瀷
@@ -25,7 +25,7 @@
 		Notes                string                        `json:"notes" gorm:"type:varchar(255);comment:澶栭儴澶囨敞"`           //澶栭儴澶囨敞
 		RecentlyCount        string                        `json:"recentlyCount" gorm:"type:varchar(255);comment:鏈�杩戠洏鐐�"`   //鏈�杩戠洏鐐�
 		NextCount            string                        `json:"nextCount" gorm:"type:varchar(255);comment:涓嬫鐩樼偣"`       //涓嬫鐩樼偣
-		JointName            string                        `json:"jointName" gorm:"-"`                                    //鎷兼帴鍚嶇О
+		JointName            string                        `json:"jointName" gorm:"type:varchar(255);comment:鎷兼帴鍚嶇О"`       //鎷兼帴鍚嶇О
 	}
 
 	LocationSearch struct {
@@ -36,7 +36,7 @@
 		Keyword  string
 		Orm      *gorm.DB
 		Preload  bool
-		Parents  []string
+		Codes    []string
 	}
 )
 
@@ -67,8 +67,8 @@
 	slf.Id = ID
 	return slf
 }
-func (slf *LocationSearch) SetParents(ids []string) *LocationSearch {
-	slf.Parents = ids
+func (slf *LocationSearch) SetCodes(ids []string) *LocationSearch {
+	slf.Codes = ids
 	return slf
 }
 
@@ -92,7 +92,7 @@
 	return slf
 }
 
-func (slf *LocationSearch) SetParentId(parentId string) *LocationSearch {
+func (slf *LocationSearch) SetParentId(parentId int) *LocationSearch {
 	slf.ParentId = parentId
 	return slf
 }
@@ -125,14 +125,14 @@
 		db = db.Where("type=?", slf.Type)
 	}
 
-	if slf.ParentId != "" {
+	if slf.ParentId > 0 {
 		db = db.Where("parent_id=?", slf.ParentId)
 	}
 	if slf.CompanyId != 0 {
 		db = db.Where("company_id=?", slf.CompanyId)
 	}
-	if len(slf.Parents) != 0 {
-		db = db.Where("parent_id in (?)", slf.Parents)
+	if len(slf.Codes) != 0 {
+		db = db.Where("warehouse_code in (?)", slf.Codes)
 	}
 
 	return db

--
Gitblit v1.8.0