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