From c8303f55819e2d8b5a56e6316f79c2250d9b659c Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期日, 08 十月 2023 21:16:09 +0800
Subject: [PATCH] 工序更新时保存使用的工艺参数编号

---
 model/process_model.go |   77 +++++++++++++++++++++-----------------
 1 files changed, 43 insertions(+), 34 deletions(-)

diff --git a/model/process_model.go b/model/process_model.go
index 9a15886..b0d4afb 100644
--- a/model/process_model.go
+++ b/model/process_model.go
@@ -1,36 +1,50 @@
 package model
 
 import (
+	"apsClient/pkg/logx"
 	"apsClient/pkg/sqlitex"
+	"encoding/json"
 	"fmt"
 	"gorm.io/gorm"
 )
 
 type (
-	// ProcessModel 宸ヨ壓娴佺▼鍙傛暟
+	// ProcessModel 宸ヨ壓鍙傛暟
 	ProcessModel struct {
-		gorm.Model `json:"-"`
-		Number     string                 `gorm:"index;column:number;type:varchar(255);not null;default '';comment:宸ヨ壓妯″瀷缂栧彿" json:"number"` //宸ヨ壓妯″瀷缂栧彿
-		OrderId    string                 `gorm:"column:order_id;type:varchar(255);not null;default '';comment:璁㈠崟id" json:"orderId"`      //璁㈠崟id
-		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"`     //宸ュ簭
-		WorkOrder  string                 `gorm:"column:work_order;type:varchar(255);not null;default '';comment:宸ュ崟" json:"workOrder"`    //宸ュ崟
-		Device     string                 `gorm:"column:device;type:varchar(255);not null;default '';comment:璁惧" json:"device"`           //璁惧
-		Params     string                 `gorm:"type:text;comment:宸ヨ壓鍙傛暟閿�煎json涓�"`
-		ParamsMap  map[string]interface{} `json:"paramsMap" gorm:"-"`
+		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涓�"`
+		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:"-"`                    //鍓嶇鐢�
+		NewParamsMap map[string]interface{} `json:"newParamsMap" gorm:"-"`
+		NewNumber    string                 `json:"newNumber" gorm:"-"`
 	}
 
 	ProcessModelSearch struct {
 		ProcessModel
-		Order    string
-		PageNum  int
-		PageSize int
-		Orm      *gorm.DB
+		Order      string
+		PageNum    int
+		PageSize   int
+		Orm        *gorm.DB
+		Procedures []string
 	}
 )
 
 func (slf *ProcessModel) TableName() string {
 	return "process_model"
+}
+
+func (slf *ProcessModel) AfterFind(db *gorm.DB) error {
+	err := json.Unmarshal([]byte(slf.Params), &slf.ParamsMap)
+	if err != nil {
+		logx.Errorf("process model json.Unmarshal:%v", err)
+		return err
+	}
+	return nil
 }
 
 func NewProcessModelSearch() *ProcessModelSearch {
@@ -62,24 +76,23 @@
 	return slf
 }
 
-func (slf *ProcessModelSearch) SetWorkOrder(workOrder string) *ProcessModelSearch {
-	slf.WorkOrder = workOrder
-	return slf
-}
-func (slf *ProcessModelSearch) SetOrderId(orderId string) *ProcessModelSearch {
-	slf.OrderId = orderId
-	return slf
-}
 func (slf *ProcessModelSearch) SetProduct(product string) *ProcessModelSearch {
 	slf.Product = product
 	return slf
 }
+
 func (slf *ProcessModelSearch) SetProcedure(procedure string) *ProcessModelSearch {
 	slf.Procedure = procedure
 	return slf
 }
-func (slf *ProcessModelSearch) SetDevice(device string) *ProcessModelSearch {
-	slf.Device = device
+
+func (slf *ProcessModelSearch) SetProcedures(procedures []string) *ProcessModelSearch {
+	slf.Procedures = procedures
+	return slf
+}
+
+func (slf *ProcessModelSearch) SetIsNew(isNew bool) *ProcessModelSearch {
+	slf.IsNew = isNew
 	return slf
 }
 
@@ -90,14 +103,6 @@
 		db = db.Where("id = ?", slf.ID)
 	}
 
-	if len(slf.WorkOrder) != 0 {
-		db = db.Where("work_order = ?", slf.WorkOrder)
-	}
-
-	if len(slf.OrderId) != 0 {
-		db = db.Where("order_id = ?", slf.OrderId)
-	}
-
 	if len(slf.Product) != 0 {
 		db = db.Where("product = ?", slf.Product)
 	}
@@ -106,8 +111,8 @@
 		db = db.Where("`procedure` = ?", slf.Procedure)
 	}
 
-	if len(slf.Device) != 0 {
-		db = db.Where("device = ?", slf.Device)
+	if len(slf.Procedures) != 0 {
+		db = db.Where("`procedure` in ?", slf.Procedures)
 	}
 
 	if len(slf.Number) != 0 {
@@ -118,6 +123,10 @@
 		db = db.Order(slf.Order)
 	}
 
+	if slf.IsNew {
+		db = db.Where("is_new = ?", 1)
+	}
+
 	return db
 }
 

--
Gitblit v1.8.0