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