From a8622c9cc1b20eac20e384e704aa98194372e72a Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期日, 08 十月 2023 20:45:15 +0800
Subject: [PATCH] 工序保存使用的工艺参数编号

---
 service/task.go     |   16 +++++--
 model/procedures.go |   25 ++++++------
 api/v1/task.go      |   26 +++++++-----
 3 files changed, 39 insertions(+), 28 deletions(-)

diff --git a/api/v1/task.go b/api/v1/task.go
index ac472cb..16b0969 100644
--- a/api/v1/task.go
+++ b/api/v1/task.go
@@ -156,11 +156,19 @@
 		ctx.Fail(ecode.DBErr)
 		return
 	}
-
-	processModel, err := service.NewTaskService().GetProcessParams(procedure, order)
-	if err != nil || processModel == nil || processModel.ParamsMap == nil {
-		ctx.FailWithMsg(ecode.ParamsErr, "鏈幏鍙栧埌宸ヨ壓鍙傛暟锛岃鍦ㄥ伐鑹烘ā鍨嬪簱涓笂浼狅紒")
-		return
+	var processModel *model.ProcessModel
+	if procedure.ProcessModelNumber != "" {
+		processModel, err = service.GetProcessModelByNumber(procedure.ProcessModelNumber)
+		if err != nil || processModel == nil || processModel.ParamsMap == nil {
+			ctx.FailWithMsg(ecode.ParamsErr, "鏈幏鍙栧埌宸ヨ壓鍙傛暟锛岃鍦ㄥ伐鑹烘ā鍨嬪簱涓笂浼狅紒")
+			return
+		}
+	} else {
+		processModel, err = service.NewTaskService().GetProcessParams(procedure, order)
+		if err != nil || processModel == nil || processModel.ParamsMap == nil {
+			ctx.FailWithMsg(ecode.ParamsErr, "鏈幏鍙栧埌宸ヨ壓鍙傛暟锛岃鍦ㄥ伐鑹烘ā鍨嬪簱涓笂浼狅紒")
+			return
+		}
 	}
 
 	processParamsArr := make([]response.ProcessParams, 0, len(processModel.ParamsMap))
@@ -284,7 +292,7 @@
 	}
 
 	err = model.WithTransaction(func(db *gorm.DB) error {
-		err = taskService.UpdateProcedureStatusAndChannel(db, params.ProcedureId, model.ProcedureStatusProcessing, procedure.Channel)
+		err = taskService.UpdateProcedureStatusAndChannel(db, params.ProcedureId, model.ProcedureStatusProcessing, procedure.Channel, processModel.Number)
 		if err != nil {
 			return err
 		}
@@ -309,11 +317,7 @@
 	if err != nil {
 		logx.Errorf("SendProcessParams: %v", err.Error())
 		err = model.WithTransaction(func(db *gorm.DB) error {
-			err = taskService.UpdateProcedureStatusAndChannel(db, params.ProcedureId, model.ProcedureStatusWaitProcess, procedure.Channel)
-			if err != nil {
-				return err
-			}
-			err = taskService.UpdateOrderStatus(db, order.ID, model.OrderStatusWaitProcess)
+			err = taskService.UpdateProcedureStatusAndChannel(db, params.ProcedureId, model.ProcedureStatusWaitProcess, procedure.Channel, "")
 			if err != nil {
 				return err
 			}
diff --git a/model/procedures.go b/model/procedures.go
index 425a192..8a7f145 100644
--- a/model/procedures.go
+++ b/model/procedures.go
@@ -12,18 +12,19 @@
 
 type (
 	Procedures struct {
-		gorm.Model     `json:"-"`
-		ID             int    `gorm:"primarykey"`
-		WorkOrderID    string `gorm:"index;type:varchar(191);not null;comment:宸ュ崟ID" json:"-"`
-		OrderID        string `gorm:"index;type:varchar(191);not null;comment:璁㈠崟ID" json:"-"`
-		DeviceID       string `gorm:"index;type:varchar(191);comment:璁惧ID" json:"deviceId"`
-		ProcedureID    string `gorm:"index;type:varchar(191);comment:宸ュ簭ID" json:"procedureId"`
-		Channel        int32  `gorm:"index;comment:閫氶亾" json:"channel"` //閫氶亾
-		StartTime      int64  `gorm:"comment:璁″垝寮�濮嬫椂闂�" json:"startTime"`
-		EndTime        int64  `gorm:"comment:璁″垝缁撴潫鏃堕棿" json:"endTime"`
-		Status         ProcedureStatus
-		ProcedureData  string                  `json:"-"`                  //common.ProductProcedure  json涓�
-		ProceduresInfo common.ProductProcedure `json:"procedure" gorm:"-"` //common.ProductProcedure  瀵硅薄
+		gorm.Model         `json:"-"`
+		ID                 int    `gorm:"primarykey"`
+		WorkOrderID        string `gorm:"index;type:varchar(191);not null;comment:宸ュ崟ID" json:"-"`
+		OrderID            string `gorm:"index;type:varchar(191);not null;comment:璁㈠崟ID" json:"-"`
+		DeviceID           string `gorm:"index;type:varchar(191);comment:璁惧ID" json:"deviceId"`
+		ProcedureID        string `gorm:"index;type:varchar(191);comment:宸ュ簭ID" json:"procedureId"`
+		Channel            int32  `gorm:"index;comment:閫氶亾" json:"channel"`                //閫氶亾
+		ProcessModelNumber string `gorm:"index;comment:宸ヨ壓妯″瀷缂栧彿" json:"processModelNumber"` //宸ヨ壓妯″瀷缂栧彿
+		StartTime          int64  `gorm:"comment:璁″垝寮�濮嬫椂闂�" json:"startTime"`
+		EndTime            int64  `gorm:"comment:璁″垝缁撴潫鏃堕棿" json:"endTime"`
+		Status             ProcedureStatus
+		ProcedureData      string                  `json:"-"`                  //common.ProductProcedure  json涓�
+		ProceduresInfo     common.ProductProcedure `json:"procedure" gorm:"-"` //common.ProductProcedure  瀵硅薄
 	}
 
 	ProceduresSearch struct {
diff --git a/service/task.go b/service/task.go
index 885a66d..a9b75ca 100644
--- a/service/task.go
+++ b/service/task.go
@@ -131,13 +131,19 @@
 	return procedure, ecode.OK
 }
 
-func (slf TaskService) UpdateProcedureStatusAndChannel(db *gorm.DB, id int, status model.ProcedureStatus, channel int32) error {
-	if status == model.ProcedureStatusFinished {
+func (slf TaskService) UpdateProcedureStatusAndChannel(db *gorm.DB, id int, status model.ProcedureStatus, channel int32, processModelNumber string) error {
+	if status == model.ProcedureStatusFinished || status == model.ProcedureStatusWaitProcess {
 		ProgressCacheUnset(channel)
 	}
-	return model.NewProceduresSearch(db).SetId(id).UpdateByMap(map[string]interface{}{
-		"status": status,
-	})
+
+	upMap := map[string]interface{}{"status": status}
+	if status == model.ProcedureStatusProcessing {
+		upMap["process_model_number"] = processModelNumber
+	} else if status == model.ProcedureStatusWaitProcess {
+		upMap["process_model_number"] = ""
+	}
+
+	return model.NewProceduresSearch(db).SetId(id).UpdateByMap(upMap)
 }
 
 func (slf TaskService) UpdateProcedureStatus(db *gorm.DB, id int, status model.ProcedureStatus, channel int32) error {

--
Gitblit v1.8.0