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/process_model.go |   65 +++++++++++++++++++++-----------
 1 files changed, 43 insertions(+), 22 deletions(-)

diff --git a/model/process_model.go b/model/process_model.go
index 56ab7be..2418f40 100644
--- a/model/process_model.go
+++ b/model/process_model.go
@@ -5,21 +5,21 @@
 	"apsClient/pkg/sqlitex"
 	"encoding/json"
 	"fmt"
-	"gorm.io/gorm"
+	"github.com/jinzhu/gorm"
 )
 
 type (
 	// ProcessModel 宸ヨ壓鍙傛暟
 	ProcessModel struct {
-		gorm.Model   `json:"-"`
-		Number       string                 `gorm:"index;column:number;type:varchar(255);not null;default '';comment:宸ヨ壓妯″瀷缂栧彿" json:"number"` //宸ヨ壓妯″瀷缂栧彿
-		Product      string                 `gorm:"column:product;type:varchar(255);not null;default '';comment:浜у搧鍚嶇О" json:"product"`       //浜у搧鍚嶇О
-		Procedure    string                 `gorm:"column:procedure;type:varchar(255);not null;default '';comment:宸ュ簭" json:"procedure"`     //宸ュ簭
-		Params       string                 `gorm:"type:text;comment:宸ヨ壓鍙傛暟閿�煎json涓�"`
+		gorm.Model
+		Number       string `gorm:"index;column:number;type:varchar(255);not null;default ''" json:"number"` //宸ヨ壓妯″瀷缂栧彿
+		Product      string `gorm:"column:product;type:varchar(255);not null;default ''" json:"product"`     //浜у搧鍚嶇О
+		Procedure    string `gorm:"column:procedure;type:varchar(255);not null;default ''" json:"procedure"` //宸ュ簭
+		Params       string
 		ParamsMap    map[string]interface{} `json:"paramsMap" gorm:"-"`
-		DeviceId     string                 `json:"deviceId" gorm:"-"`                    //鐢ㄤ簬杩囨护鑾峰彇nsq娑堟伅
-		IsNew        bool                   `json:"-" gorm:"column:is_new;comment:鏄惁鏈�鏂扮殑"` //鏄惁鏈�鏂扮殑
-		IsUpdate     bool                   `json:"isUpdate" gorm:"-"`                    //鍓嶇鐢�
+		DeviceId     string                 `json:"deviceId" gorm:"-"`      //鐢ㄤ簬杩囨护鑾峰彇nsq娑堟伅
+		IsNew        bool                   `json:"-" gorm:"column:is_new"` //鏄惁鏈�鏂扮殑
+		IsUpdate     bool                   `json:"isUpdate" gorm:"-"`      //鍓嶇鐢�
 		NewParamsMap map[string]interface{} `json:"newParamsMap" gorm:"-"`
 		NewNumber    string                 `json:"newNumber" gorm:"-"`
 	}
@@ -27,11 +27,14 @@
 	ProcessModelSearch struct {
 		ProcessModel
 		Order         string
-		PageNum       int
-		PageSize      int
+		Limit         int
+		Offset        int
 		Orm           *gorm.DB
 		Procedures    []string
 		CurrentNumber string
+		Numbers       []string
+		ProductNot    string
+		ProcedureNot  string
 	}
 )
 
@@ -57,8 +60,8 @@
 	return slf
 }
 
-func (slf *ProcessModelSearch) SetPage(page, size int) *ProcessModelSearch {
-	slf.PageNum, slf.PageSize = page, size
+func (slf *ProcessModelSearch) SetPage(offset, limit int) *ProcessModelSearch {
+	slf.Offset, slf.Limit = offset, limit
 	return slf
 }
 
@@ -77,6 +80,11 @@
 	return slf
 }
 
+func (slf *ProcessModelSearch) SetNumbers(numbers []string) *ProcessModelSearch {
+	slf.Numbers = numbers
+	return slf
+}
+
 func (slf *ProcessModelSearch) SetCurrentNumber(number string) *ProcessModelSearch {
 	slf.CurrentNumber = number
 	return slf
@@ -89,6 +97,11 @@
 
 func (slf *ProcessModelSearch) SetProcedure(procedure string) *ProcessModelSearch {
 	slf.Procedure = procedure
+	return slf
+}
+
+func (slf *ProcessModelSearch) SetProductAndProcedureNot(product string, procedure string) *ProcessModelSearch {
+	slf.ProductNot, slf.ProcedureNot = product, procedure
 	return slf
 }
 
@@ -117,8 +130,12 @@
 		db = db.Where("`procedure` = ?", slf.Procedure)
 	}
 
+	if len(slf.ProductNot) != 0 && len(slf.ProcedureNot) != 0 {
+		db = db.Not("product = ? and procedure = ? ", slf.ProductNot, slf.ProcedureNot)
+	}
+
 	if len(slf.Procedures) != 0 {
-		db = db.Where("`procedure` in ?", slf.Procedures)
+		db = db.Where("`procedure` IN (?)", slf.Procedures)
 	}
 
 	if len(slf.Number) != 0 {
@@ -135,6 +152,10 @@
 
 	if len(slf.CurrentNumber) != 0 {
 		db = db.Where("number != ?", slf.CurrentNumber)
+	}
+
+	if len(slf.Numbers) != 0 {
+		db = db.Where("number in (?)", slf.Numbers)
 	}
 
 	return db
@@ -218,8 +239,8 @@
 	if err := db.Count(&total).Error; err != nil {
 		return records, total, fmt.Errorf("find count err: %v", err)
 	}
-	if slf.PageNum*slf.PageSize > 0 {
-		db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize)
+	if slf.Offset > 0 || slf.Limit > 0 {
+		db = db.Offset(slf.Offset).Limit(slf.Limit)
 	}
 	if err := db.Find(&records).Error; err != nil {
 		return records, total, fmt.Errorf("find records err: %v", err)
@@ -234,8 +255,8 @@
 		db      = slf.build()
 	)
 
-	if slf.PageNum*slf.PageSize > 0 {
-		db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize)
+	if slf.Offset > 0 || slf.Limit > 0 {
+		db = db.Offset(slf.Offset).Limit(slf.Limit)
 	}
 	if err := db.Find(&records).Error; err != nil {
 		return records, fmt.Errorf("find records err: %v", err)
@@ -255,8 +276,8 @@
 	if err := db.Count(&total).Error; err != nil {
 		return records, total, fmt.Errorf("find by query count err: %v", err)
 	}
-	if slf.PageNum*slf.PageSize > 0 {
-		db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize)
+	if slf.Offset > 0 || slf.Limit > 0 {
+		db = db.Offset(slf.Offset).Limit(slf.Limit)
 	}
 	if err := db.Find(&records).Error; err != nil {
 		return records, total, fmt.Errorf("find by query records err: %v, query: %s, args: %+v", err, query, args)
@@ -272,8 +293,8 @@
 		db      = slf.Orm.Table(slf.TableName()).Where(query, args...)
 	)
 
-	if slf.PageNum*slf.PageSize > 0 {
-		db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize)
+	if slf.Offset > 0 || slf.Limit > 0 {
+		db = db.Offset(slf.Offset).Limit(slf.Limit)
 	}
 	if err := db.Find(&records).Error; err != nil {
 		return records, fmt.Errorf("find by query records err: %v, query: %s, args: %+v", err, query, args)

--
Gitblit v1.8.0