From 8324f872ef3a4d0c978a9b1d062800c6a1701c12 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期五, 01 十二月 2023 09:58:17 +0800 Subject: [PATCH] fix --- model/work_order.go | 80 +++++++++++++++++++++++++++++---------- 1 files changed, 59 insertions(+), 21 deletions(-) diff --git a/model/work_order.go b/model/work_order.go index ed4ca40..6d32261 100644 --- a/model/work_order.go +++ b/model/work_order.go @@ -3,25 +3,25 @@ import ( "apsClient/pkg/sqlitex" "fmt" + "github.com/jinzhu/gorm" "github.com/shopspring/decimal" - "gorm.io/gorm" ) type ( Order struct { - gorm.Model `json:"-"` - WorkOrderID string `gorm:"index;type:varchar(191);not null;comment:宸ュ崟ID" json:"workOrderId"` - OrderID string `gorm:"index;type:varchar(191);not null;comment:璁㈠崟ID" json:"orderId"` - ProductID string `gorm:"type:varchar(191);comment:浜у搧ID" json:"productId"` - ProductName string `gorm:"type:varchar(191);comment:浜у搧鍚嶇О" json:"productName"` - Parameter string `gorm:"type:varchar(1024);comment:鍙傛暟闇�姹�" json:"parameter"` - Customer string `gorm:"type:varchar(191);comment:瀹㈡埛缂栫爜" json:"customer"` - DeliverDate string `gorm:"type:varchar(100);comment:浜よ揣鏃ユ湡" json:"deliverDate"` + gorm.Model + WorkOrderID string `gorm:"index;type:varchar(191);not null" json:"workOrderId"` + OrderID string `gorm:"index;type:varchar(191);not null" json:"orderId"` + ProductID string `gorm:"type:varchar(191)" json:"productId"` + ProductName string `gorm:"type:varchar(191)" json:"productName"` + Parameter string `gorm:"type:varchar(1024)" json:"parameter"` + Customer string `gorm:"type:varchar(191)" json:"customer"` + DeliverDate string `gorm:"type:varchar(100)" json:"deliverDate"` OrderAttr string `json:"orderAttr"` // 璁㈠崟灞炴�ф嫾鎺ョ殑瀛楃涓诧紝鍗宠揣鐗╂弿杩� - Amount decimal.Decimal `gorm:"type:decimal(35,18);comment:鏁伴噺" json:"amount"` - Unit string `gorm:"type:varchar(100);comment:鍗曚綅" json:"unit"` - StartTime int64 `gorm:"comment:璁″垝寮�濮嬫椂闂�" json:"startTime"` - EndTime int64 `gorm:"comment:璁″垝缁撴潫鏃堕棿" json:"endTime"` + Amount decimal.Decimal `gorm:"type:decimal(35,18)" json:"amount"` + Unit string `gorm:"type:varchar(100)" json:"unit"` + StartTime int64 `json:"startTime"` + EndTime int64 `json:"endTime"` Status OrderStatus } @@ -33,18 +33,22 @@ Orm *gorm.DB Preload bool StartTimeMax int64 + StartTimeMin int64 + StatusList []OrderStatus + WorkOrderIDs []string } ) type OrderStatus int const ( - OrderStatusUnFinished OrderStatus = 1 - OrderStatusFinished OrderStatus = 2 + OrderStatusWaitProcess OrderStatus = 1 + OrderStatusProcessing OrderStatus = 2 + OrderStatusFinished OrderStatus = 3 ) func (slf *Order) TableName() string { - return "Order" + return "work_order" } func NewOrderSearch(db *gorm.DB) *OrderSearch { @@ -73,9 +77,18 @@ slf.StartTimeMax = ts return slf } +func (slf *OrderSearch) SetStartTimeMin(ts int64) *OrderSearch { + slf.StartTimeMin = ts + return slf +} func (slf *OrderSearch) SetStatus(status OrderStatus) *OrderSearch { slf.Status = status + return slf +} + +func (slf *OrderSearch) SetStatusList(statusList []OrderStatus) *OrderSearch { + slf.StatusList = statusList return slf } @@ -89,6 +102,16 @@ return slf } +func (slf *OrderSearch) SetWorkOrderIds(workOrderIds []string) *OrderSearch { + slf.WorkOrderIDs = workOrderIds + return slf +} + +func (slf *OrderSearch) SetId(id uint) *OrderSearch { + slf.ID = id + return slf +} + func (slf *OrderSearch) build() *gorm.DB { var db = slf.Orm.Model(&Order{}) @@ -96,16 +119,32 @@ db = db.Order(slf.OrderBy) } + if slf.ID != 0 { + db = db.Where("id = ?", slf.ID) + } + if slf.WorkOrderID != "" { db = db.Where("work_order_id = ?", slf.WorkOrderID) + } + + if len(slf.WorkOrderIDs) != 0 { + db = db.Where("work_order_id in (?)", slf.WorkOrderIDs) } if slf.Status != 0 { db = db.Where("status = ?", slf.Status) } + if len(slf.StatusList) != 0 { + db = db.Where("status IN (?)", slf.StatusList) + } + if slf.StartTimeMax != 0 { db = db.Where("start_time <= ?", slf.StartTimeMax) + } + + if slf.StartTimeMin != 0 { + db = db.Where("start_time >= ?", slf.StartTimeMin) } if slf.Preload { @@ -126,18 +165,17 @@ return nil } -// CreateBatch 鎵归噺鎻掑叆 -func (slf *OrderSearch) CreateBatch(records []*Order) error { +func (slf *OrderSearch) Updates(record *Order) error { var db = slf.build() - if err := db.Create(&records).Error; err != nil { - return fmt.Errorf("create batch err: %v, records: %+v", err, records) + if err := db.Updates(record).Error; err != nil { + return fmt.Errorf("save err: %v, record: %+v", err, record) } return nil } -func (slf *OrderSearch) Save(record *Order) error { +func (slf *OrderSearch) Upsert(record *Order) error { var db = slf.build() if err := db.Save(record).Error; err != nil { -- Gitblit v1.8.0