From cfb6fbce3687230ccb4704dbc0c87fd411b39af1 Mon Sep 17 00:00:00 2001
From: liujiandao <274878379@qq.com>
Date: 星期三, 20 九月 2023 17:37:22 +0800
Subject: [PATCH] 仓库字段添加与功能修改

---
 models/location.go |   56 ++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 38 insertions(+), 18 deletions(-)

diff --git a/models/location.go b/models/location.go
index 5bcffe7..a11b1a9 100644
--- a/models/location.go
+++ b/models/location.go
@@ -12,15 +12,15 @@
 	Location struct {
 		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          int                   `json:"parentId" gorm:"type:int;not null"`                             //涓婄骇id
-		CompanyId         int                   `json:"companyId" gorm:"type:int;not null"`                            //鍏徃id
-		Company           Company               `json:"company" gorm:"foreignKey:CompanyId"`                           //鍏徃
-		Type              constvar.LocationType `json:"type" gorm:"type:int(11);not null;comment:浣嶇疆绫诲瀷"`                //浣嶇疆绫诲瀷
-		CountFrequency    int                   `json:"countFrequency" gorm:"type:tinyint;not null;comment:鐩樼偣棰戠巼锛堝ぉ锛�"`   //鐩樼偣棰戠巼锛堝ぉ锛�
-		IsScrapLocation   bool                  `json:"isScrapLocation" gorm:"type:tinyint;not null;comment:鏄惁鎶ュ簾浣嶇疆"`   //鏄惁鎶ュ簾浣嶇疆
-		IsReturnLocation  bool                  `json:"isReturnLocation" gorm:"type:tinyint;not null;comment:鏄惁閫�璐т綅缃�"`  //鏄惁閫�璐т綅缃�
-		ReplenishLocation bool                  `json:"replenishLocation" gorm:"type:tinyint;not null;comment:鏄惁琛ュ厖浣嶇疆"` //鏄惁琛ュ厖浣嶇疆
+		Name              string                `json:"name" gorm:"index;type:varchar(255);not null;comment:浣嶇疆鍚嶇О"` //浣嶇疆鍚嶇О
+		ParentId          string                `json:"parentId" gorm:"type:varchar(255)"`                         //涓婄骇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:浣嶇疆绫诲瀷"`                     //浣嶇疆绫诲瀷
+		CountFrequency    int                   `json:"countFrequency" gorm:"type:tinyint;comment:鐩樼偣棰戠巼锛堝ぉ锛�"`        //鐩樼偣棰戠巼锛堝ぉ锛�
+		IsScrapLocation   bool                  `json:"isScrapLocation" gorm:"type:tinyint;comment:鏄惁鎶ュ簾浣嶇疆"`        //鏄惁鎶ュ簾浣嶇疆
+		IsReturnLocation  bool                  `json:"isReturnLocation" gorm:"type:tinyint;comment:鏄惁閫�璐т綅缃�"`       //鏄惁閫�璐т綅缃�
+		ReplenishLocation bool                  `json:"replenishLocation" gorm:"type:tinyint;comment:鏄惁琛ュ厖浣嶇疆"`      //鏄惁琛ュ厖浣嶇疆
 	}
 
 	LocationSearch struct {
@@ -31,6 +31,7 @@
 		Keyword  string
 		Orm      *gorm.DB
 		Preload  bool
+		Parents  []string
 	}
 )
 
@@ -57,8 +58,12 @@
 	return slf
 }
 
-func (slf *LocationSearch) SetID(id uint) *LocationSearch {
-	slf.ID = id
+func (slf *LocationSearch) SetID(id int) *LocationSearch {
+	slf.Id = id
+	return slf
+}
+func (slf *LocationSearch) SetParents(ids []string) *LocationSearch {
+	slf.Parents = ids
 	return slf
 }
 
@@ -82,7 +87,7 @@
 	return slf
 }
 
-func (slf *LocationSearch) SetParentId(parentId int) *LocationSearch {
+func (slf *LocationSearch) SetParentId(parentId string) *LocationSearch {
 	slf.ParentId = parentId
 	return slf
 }
@@ -93,10 +98,10 @@
 }
 
 func (slf *LocationSearch) build() *gorm.DB {
-	var db = slf.Orm.Model(&Location{})
+	var db = slf.Orm.Table(slf.TableName())
 
-	if slf.ID != 0 {
-		db = db.Where("id = ?", slf.ID)
+	if slf.Id != 0 {
+		db = db.Where("id = ?", slf.Id)
 	}
 
 	if slf.Order != "" {
@@ -115,11 +120,14 @@
 		db = db.Where("type=?", slf.Type)
 	}
 
-	if slf.ParentId != 0 {
+	if slf.ParentId != "" {
 		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)
 	}
 
 	return db
@@ -134,6 +142,16 @@
 	}
 
 	return nil
+}
+
+func (slf *LocationSearch) CreateReturnId(record *Location) (int, error) {
+	var db = slf.build()
+
+	if err := db.Create(record).Error; err != nil {
+		return 0, err
+	}
+
+	return record.Id, nil
 }
 
 // CreateBatch 鎵归噺鎻掑叆
@@ -183,7 +201,7 @@
 
 func (slf *LocationSearch) Delete() error {
 	var db = slf.build()
-	return db.Delete(&Location{}).Error
+	return db.Unscoped().Delete(&Location{}).Error
 }
 
 func (slf *LocationSearch) First() (*Location, error) {
@@ -278,7 +296,9 @@
 		records = make([]*Location, 0)
 		db      = slf.build()
 	)
-	if err := db.Find(&records); err != nil {
+	err := db.Find(&records)
+	if err != nil {
+		fmt.Println(err)
 		return records, fmt.Errorf("func FindAll err: %v", err)
 	}
 	return records, nil

--
Gitblit v1.8.0