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(¶ms) 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(¶ms) 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