From e5df488268e29b272932e6cc1d2b1e7034590ba0 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期三, 12 六月 2024 11:40:45 +0800 Subject: [PATCH] weedfs包放到项目里 --- models/operation_details.go | 104 ++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 84 insertions(+), 20 deletions(-) diff --git a/models/operation_details.go b/models/operation_details.go index 7901215..f793077 100644 --- a/models/operation_details.go +++ b/models/operation_details.go @@ -11,23 +11,34 @@ // OperationDetails 鎿嶄綔鏄庣粏琛� OperationDetails struct { WmsModel + Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` + OperationID int `json:"operationId" gorm:"index;type:int;not null;comment:鎿嶄綔璁板綍id"` //鎿嶄綔id + ProductId string `json:"productId" gorm:"type:varchar(191);not null;comment:浜у搧id"` //浜у搧id + //ProductName string `json:"productName" gorm:"type:varchar(255);not null;comment:浜у搧鍚嶇О"` //浜у搧鍚嶇О + Amount decimal.Decimal `json:"amount" gorm:"type:decimal(20,2);not null;comment:鏁伴噺"` //鏁伴噺 + //Unit string `json:"unit" gorm:"type:varchar(31);comment:鍗曚綅"` //鍗曚綅 + Product Material `json:"product" gorm:"foreignKey:ProductId;references:ID"` - Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` - OperationId int `json:"OperationId" gorm:"type:int;not null;comment:鎿嶄綔璁板綍id"` //鎿嶄綔id - ProductId string `json:"productId" gorm:"type:varchar(191);not null;comment:浜у搧id"` //浜у搧id - ProductName string `json:"productName" gorm:"type:varchar(255);not null;comment:浜у搧鍚嶇О"` //浜у搧鍚嶇О - Quantity decimal.Decimal `json:"quantity" gorm:"type:decimal(20,2);not null;comment:鏁伴噺"` //鏁伴噺 - Unit string `json:"unit" gorm:"type:varchar(31);comment:鍗曚綅"` + FromLocationID int `json:"fromLocationId" gorm:"type:int;not null;comment:婧愪綅缃甶d"` //婧愪綅缃甶d + FromLocation Location `json:"fromLocation" gorm:"foreignKey:FromLocationID;references:Id"` //婧愪綅缃� + ToLocationID int `json:"toLocationId" gorm:"type:int;not null;comment:鐩爣浣嶇疆id"` //鐩爣浣嶇疆id + ToLocation Location `json:"toLocation" gorm:"foreignKey:ToLocationID;references:Id"` //鐩爣浣嶇疆 + TotalGrossWeight decimal.Decimal `json:"totalGrossWeight" gorm:"type:decimal(20,3);comment:鎬绘瘺閲�"` + TotalNetWeight decimal.Decimal `json:"totalNetWeight" gorm:"type:decimal(20,3);comment:鎬诲噣閲�"` + AuxiliaryAmount decimal.Decimal `json:"auxiliaryAmount" gorm:"type:decimal(20,3);comment:杈呭姪鏁伴噺"` + AuxiliaryUnit string `json:"auxiliaryUnit" gorm:"type:varchar(191);comment:杈呭姪鍗曚綅"` } OperationDetailsSearch struct { OperationDetails - 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 + OperationIDs []int + Fields string } ) @@ -54,8 +65,8 @@ return slf } -func (slf *OperationDetailsSearch) SetID(id uint) *OperationDetailsSearch { - slf.ID = id +func (slf *OperationDetailsSearch) SetID(ID int) *OperationDetailsSearch { + slf.Id = ID return slf } @@ -70,15 +81,30 @@ } func (slf *OperationDetailsSearch) SetOperationId(operationId int) *OperationDetailsSearch { - slf.OperationId = operationId + slf.OperationID = operationId + return slf +} + +func (slf *OperationDetailsSearch) SetOperationIds(operationIds []int) *OperationDetailsSearch { + slf.OperationIDs = operationIds + return slf +} + +func (slf *OperationDetailsSearch) SetFields(fields string) *OperationDetailsSearch { + slf.Fields = fields + return slf +} + +func (slf *OperationDetailsSearch) SetProductId(productId string) *OperationDetailsSearch { + slf.ProductId = productId return slf } func (slf *OperationDetailsSearch) build() *gorm.DB { var db = slf.Orm.Model(&OperationDetails{}) - if slf.ID != 0 { - db = db.Where("id = ?", slf.ID) + if slf.Id != 0 { + db = db.Where("id = ?", slf.Id) } if slf.Order != "" { @@ -89,8 +115,22 @@ db = db.Where("product_name like ?", fmt.Sprintf("%%%v%%", slf.Keyword)) } - if slf.OperationId != 0 { - db = db.Where("operation_id = ?", slf.OperationId) + if slf.OperationID != 0 { + db = db.Where("operation_id = ?", slf.OperationID) + } + if slf.ProductId != "" { + db = db.Where("product_id = ?", slf.ProductId) + } + if slf.Preload { + db = db.Preload("Product") + } + + if len(slf.OperationIDs) > 0 { + db = db.Where("operation_id in ?", slf.OperationIDs) + } + + if slf.Fields != "" { + db = db.Select(slf.Fields) } return db @@ -154,7 +194,7 @@ func (slf *OperationDetailsSearch) Delete() error { var db = slf.build() - return db.Delete(&OperationDetails{}).Error + return db.Unscoped().Delete(&OperationDetails{}).Error } func (slf *OperationDetailsSearch) First() (*OperationDetails, error) { @@ -243,3 +283,27 @@ return records, nil } + +func (slf *OperationDetailsSearch) FindAll() ([]*OperationDetails, error) { + var ( + records = make([]*OperationDetails, 0) + db = slf.build() + ) + + if err := db.Find(&records).Error; err != nil { + return records, fmt.Errorf("find records err: %v", err) + } + + return records, nil +} + +func (slf *OperationDetailsSearch) GroupSum(groupField string, sumField string) ([]*GroupSum, error) { + var ( + db = slf.build() + result = make([]*GroupSum, 0) + ) + if err := db.Select("sum(" + sumField + ") as sum, " + groupField + " as class").Group(groupField).Scan(&result).Error; err != nil { + return nil, fmt.Errorf("select group err: %v", err) + } + return result, nil +} -- Gitblit v1.8.0