From 439b8cf9619e6deb6b42182d0f43cc1252fc9d2a Mon Sep 17 00:00:00 2001 From: liujiandao <274878379@qq.com> Date: 星期一, 15 四月 2024 11:09:41 +0800 Subject: [PATCH] 获取aps人员列表 --- models/location_product_amount.go | 64 +++++++++++++++++++++++++++---- 1 files changed, 55 insertions(+), 9 deletions(-) diff --git a/models/location_product_amount.go b/models/location_product_amount.go index 00c7b92..0d27a70 100644 --- a/models/location_product_amount.go +++ b/models/location_product_amount.go @@ -17,7 +17,7 @@ LocationId int `json:"locationId" gorm:"type:int;not null;comment:浣嶇疆id"` //浣嶇疆id Location Location `json:"location" gorm:"foreignKey:LocationId;references:id"` ProductCategoryID int `json:"productCategoryId" gorm:"type:int;not null;comment:浜у搧绉嶇被id"` //浜у搧绉嶇被id - ProductCategory ProductCategory `json:"productCategory"` + ProductCategory ProductCategory `json:"productCategory" gorm:"foreignKey:ProductCategoryID;references:Id"` ProductId string `json:"productId" gorm:"type:varchar(191);not null;comment:浜у搧id"` //浜у搧id Product Material `json:"product" gorm:"foreignKey:ProductId;references:ID"` Amount decimal.Decimal `json:"amount" gorm:"type:decimal(20,2);not null;comment:搴撳瓨鏁伴噺"` //搴撳瓨鏁伴噺 @@ -34,6 +34,9 @@ Preload bool //LocationProductIds []int LocationIds []int + ProductIds []string + Ids []int + Query string } LocationProductAmountWithOperation struct { @@ -82,6 +85,11 @@ return slf } +func (slf *LocationProductAmountSearch) SetIds(ids []int) *LocationProductAmountSearch { + slf.Ids = ids + return slf +} + func (slf *LocationProductAmountSearch) SetKeyword(keyword string) *LocationProductAmountSearch { slf.Keyword = keyword return slf @@ -102,13 +110,18 @@ return slf } -//func (slf *LocationProductAmountSearch) SetLocationProductIds(ids []int) *LocationProductAmountSearch { -// slf.LocationProductIds = ids -// return slf -//} +func (slf *LocationProductAmountSearch) SetProductIds(ids []string) *LocationProductAmountSearch { + slf.ProductIds = ids + return slf +} func (slf *LocationProductAmountSearch) SetLocationIds(ids []int) *LocationProductAmountSearch { slf.LocationIds = ids + return slf +} + +func (slf *LocationProductAmountSearch) SetQuery(query string) *LocationProductAmountSearch { + slf.Query = query return slf } @@ -123,7 +136,11 @@ } if slf.Keyword != "" { - db = db.Where("product_name like ?", fmt.Sprintf("%%%v%%", slf.Keyword)) + db = db.Joins("left join wms_location on wms_location_product_amount.location_id = wms_location.id"). + Joins("left join material on wms_location_product_amount.product_id = material.id"). + Joins("left join wms_product_category on wms_location_product_amount.product_category_id = wms_product_category.id"). + Where("wms_location.name like ?", "%"+slf.Keyword+"%").Or("material.name like ?", "%"+slf.Keyword+"%"). + Or("wms_product_category.name like ?", "%"+slf.Keyword+"%") } if slf.Preload { @@ -132,9 +149,9 @@ //if slf.LocationProductId != 0 { // db = db.Where("location_product_id=?", slf.LocationProductId) //} - //if len(slf.LocationProductIds) > 0 { - // db = db.Where("location_product_id in (?)", slf.LocationProductIds) - //} + if len(slf.ProductIds) > 0 { + db = db.Where("product_id in (?)", slf.ProductIds) + } if len(slf.LocationIds) > 0 { db = db.Where("location_id in (?)", slf.LocationIds) @@ -146,6 +163,14 @@ if slf.ProductId != "" { db = db.Where("product_id=?", slf.ProductId) + } + + if len(slf.Ids) > 0 { + db = db.Where("id in (?)", slf.Ids) + } + + if slf.Query != "" { + db = db.Where(slf.Query) } return db @@ -242,3 +267,24 @@ return record, db.First(&record) } + +func (slf *LocationProductAmountSearch) Count() (int64, error) { + var ( + total int64 + db = slf.build() + ) + err := db.Count(&total).Error + return total, err +} + +func (slf *LocationProductAmountSearch) UpdateByMap(upMap map[string]interface{}) error { + var ( + db = slf.build() + ) + + if err := db.Updates(upMap).Error; err != nil { + return fmt.Errorf("update by map err: %v, upMap: %+v", err, upMap) + } + + return nil +} -- Gitblit v1.8.0