From ea56cea3ce65e8dddef094a648b5dd97521e1b97 Mon Sep 17 00:00:00 2001
From: liujiandao <274878379@qq.com>
Date: 星期四, 16 十一月 2023 15:03:55 +0800
Subject: [PATCH] 位置报表产品类型查询修改
---
models/location.go | 163 ++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 139 insertions(+), 24 deletions(-)
diff --git a/models/location.go b/models/location.go
index 0146ca0..be55274 100644
--- a/models/location.go
+++ b/models/location.go
@@ -11,31 +11,39 @@
// Location 浣嶇疆
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:tinyint;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:鏄惁琛ュ厖浣嶇疆"` //鏄惁琛ュ厖浣嶇疆
+ 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;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:浣嶇疆绫诲瀷"` //浣嶇疆绫诲瀷
+ 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:鏄惁琛ュ厖浣嶇疆"` //鏄惁琛ュ厖浣嶇疆
+ ForceRemovalStrategy constvar.ForceRemovalStrategy `json:"forceRemovalStrategy" gorm:"type:tinyint;comment:涓嬫灦绛栫暐"` //涓嬫灦绛栫暐
+ 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:"type:varchar(255);comment:鎷兼帴鍚嶇О"` //鎷兼帴鍚嶇О
+ Children []*Location `json:"children" gorm:"-"`
}
LocationSearch struct {
Location
- Order string
- PageNum int
- PageSize int
- Keyword string
- Orm *gorm.DB
- Preload bool
+ Order string
+ PageNum int
+ PageSize int
+ Keyword string
+ Orm *gorm.DB
+ Preload bool
+ JointNames []string
+ Ids []int
}
)
func (slf *Location) TableName() string {
- return "location"
+ return "wms_location"
}
func NewLocationSearch() *LocationSearch {
@@ -57,8 +65,23 @@
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) SetIds(ids []int) *LocationSearch {
+ slf.Ids = ids
+ return slf
+}
+
+func (slf *LocationSearch) SetJointName(code string) *LocationSearch {
+ slf.JointName = code
+ return slf
+}
+
+func (slf *LocationSearch) SetJointNames(codes []string) *LocationSearch {
+ slf.JointNames = codes
return slf
}
@@ -77,11 +100,35 @@
return slf
}
-func (slf *LocationSearch) build() *gorm.DB {
- var db = slf.Orm.Model(&Location{})
+func (slf *LocationSearch) SetType(_type int) *LocationSearch {
+ slf.Type = constvar.LocationType(_type)
+ return slf
+}
- if slf.ID != 0 {
- db = db.Where("id = ?", slf.ID)
+func (slf *LocationSearch) SetParentId(parentId int) *LocationSearch {
+ slf.ParentId = parentId
+ return slf
+}
+
+func (slf *LocationSearch) SetCompanyId(companyId int) *LocationSearch {
+ slf.CompanyId = companyId
+ return slf
+}
+
+func (slf *LocationSearch) SetIsScrapLocation(isScrapLocation bool) *LocationSearch {
+ slf.IsScrapLocation = isScrapLocation
+ return slf
+}
+
+func (slf *LocationSearch) build() *gorm.DB {
+ var db = slf.Orm.Table(slf.TableName())
+
+ if slf.Id != 0 {
+ db = db.Where("id = ?", slf.Id)
+ }
+
+ if len(slf.Ids) > 0 {
+ db = db.Where("id in (?)", slf.Ids)
}
if slf.Order != "" {
@@ -96,6 +143,27 @@
db = db.Where("name = ?", slf.Name)
}
+ if slf.Type != 0 {
+ db = db.Where("type=?", slf.Type)
+ }
+
+ if slf.ParentId > 0 {
+ db = db.Where("parent_id=?", slf.ParentId)
+ }
+ if slf.CompanyId != 0 {
+ db = db.Where("company_id=?", slf.CompanyId)
+ }
+ if slf.JointName != "" {
+ db = db.Where("joint_name like ?", slf.JointName+"%")
+ }
+ if len(slf.JointNames) != 0 {
+ db = db.Where("joint_name in (?)", slf.JointNames)
+ }
+
+ if slf.IsScrapLocation {
+ db = db.Where("is_scrap_location = ?", slf.IsScrapLocation)
+ }
+
return db
}
@@ -108,6 +176,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 鎵归噺鎻掑叆
@@ -157,7 +235,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) {
@@ -246,3 +324,40 @@
return records, nil
}
+
+func (slf *LocationSearch) FindAll() ([]*Location, error) {
+ var (
+ records = make([]*Location, 0)
+ db = slf.build()
+ )
+ err := db.Find(&records).Error
+ if err != nil {
+ fmt.Println(err)
+ return records, fmt.Errorf("func FindAll err: %v", err)
+ }
+ return records, nil
+}
+
+// InitDefaultData 鍒濆鍖栨暟鎹�
+func (slf *LocationSearch) InitDefaultData() error {
+ var (
+ db = slf.Orm.Table(slf.TableName())
+ total int64 = 0
+ )
+ if err := db.Count(&total).Error; err != nil {
+ return err
+ }
+ if total != 0 {
+ return nil
+ }
+ locations := make([]*Location, 0)
+ locations = append(locations, &Location{Name: "渚涘簲鍟嗕綅缃�", Type: 1, JointName: "渚涘簲鍟嗕綅缃�"})
+ locations = append(locations, &Location{Name: "瑙嗗浘", Type: 2, JointName: "瑙嗗浘"})
+ locations = append(locations, &Location{Name: "瀹㈡埛浣嶇疆", Type: 4, JointName: "瀹㈡埛浣嶇疆"})
+ locations = append(locations, &Location{Name: "搴撳瓨鎹熷け", Type: 5, JointName: "搴撳瓨鎹熷け"})
+ locations = append(locations, &Location{Name: "鐢熶骇", Type: 6, JointName: "鐢熶骇"})
+ locations = append(locations, &Location{Name: "涓浆浣嶇疆", Type: 7, JointName: "涓浆浣嶇疆"})
+ locations = append(locations, &Location{Name: "鎶ュ簾浣嶇疆", Type: 8, JointName: "鎶ュ簾浣嶇疆", IsScrapLocation: true})
+ locations = append(locations, &Location{Name: "搴撳瓨鐩樼偣", Type: 9, JointName: "搴撳瓨鐩樼偣"})
+ return slf.CreateBatch(locations)
+}
--
Gitblit v1.8.0