From 44a78f184ca10fba46df2567496895e179d4ac6c Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期日, 08 十月 2023 11:47:47 +0800 Subject: [PATCH] 增加更新工艺参数接口 --- router/index.go | 11 ++- docs/swagger.yaml | 25 ++++++-- docs/docs.go | 39 ++++++++++--- api/v1/task.go | 58 +++++++++++++++++- docs/swagger.json | 39 ++++++++++--- 5 files changed, 138 insertions(+), 34 deletions(-) diff --git a/api/v1/task.go b/api/v1/task.go index 0da5a0c..44aa2fb 100644 --- a/api/v1/task.go +++ b/api/v1/task.go @@ -279,7 +279,7 @@ } processModel, err := taskService.GetProcessParams(procedure, order) if err != nil || processModel == nil || processModel.ParamsMap == nil { - ctx.Fail(ecode.UnknownErr) + ctx.FailWithMsg(ecode.ParamsErr, "鏈幏鍙栧埌宸ヨ壓鍙傛暟锛岃鍦ㄥ伐鑹烘ā鍨嬪簱涓笂浼狅紒") return } @@ -324,10 +324,6 @@ ctx.FailWithMsg(ecode.NeedConfirmedErr, "PLC璇锋眰澶辫触锛岃妫�鏌LC閰嶇疆锛�") return } - if code != ecode.OK { - logx.Errorf("get plcConfig err: %v", err.Error()) - return - } plcConfig.CurrentTryTimes = 0 err = service.PlcWrite(plcConfig, constvar.PlcStartAddressTypeTotalNumber, params.Channel, order.Amount.IntPart()) if err != nil { @@ -352,6 +348,58 @@ ctx.Ok() } +// UpdateProcessParams +// @Tags Task +// @Summary 鏇存柊宸ヨ壓鍙傛暟锛堣繘琛屼腑鐨勪换鍔★級 +// @Produce application/json +// @Param object body request.SendProcessParams true "鏌ヨ鍙傛暟" +// @Success 200 {object} contextx.Response{} "鎴愬姛" +// @Router /v1/task/updateProcessParams [post] +func (slf *TaskApi) UpdateProcessParams(c *gin.Context) { + mutex.Lock() + defer mutex.Unlock() + var params request.SendProcessParams + ctx, ok := contextx.NewContext(c, ¶ms) + if !ok { + return + } + taskService := service.NewTaskService() + procedure, code := taskService.GetProcedureById(params.ProcedureId) + if code != ecode.OK { + ctx.Fail(code) + return + } + order, err := taskService.GetOrderByWorkOrderId(procedure.WorkOrderID) + if err != nil { + ctx.Fail(ecode.UnknownErr) + return + } + + if procedure.Status != model.ProcedureStatusProcessing { //鍙兘杩涜涓殑鍙互鏇存柊 + ctx.FailWithMsg(ecode.ParamsErr, "鍙兘杩涜涓殑宸ュ簭鍙互鏇存柊宸ヨ壓鍙傛暟") + return + } + processModel, err := taskService.GetProcessParams(procedure, order) + if err != nil || processModel == nil || processModel.ParamsMap == nil { + ctx.FailWithMsg(ecode.ParamsErr, "鏈幏鍙栧埌宸ヨ壓鍙傛暟锛岃鍦ㄥ伐鑹烘ā鍨嬪簱涓笂浼狅紒") + return + } + + plcConfig, code := service.NewDevicePlcService().GetDevicePlc() + if code != ecode.OK || plcConfig.Id == 0 { + ctx.FailWithMsg(ecode.NeedConfirmedErr, "璇峰厛閰嶇疆PLC") + return + } + plcConfig.MaxTryTimes = 2 + err = SendParams(processModel.ParamsMap, plcConfig) + if err != nil { + logx.Errorf("update process params err: %v", err.Error()) + ctx.FailWithMsg(ecode.NeedConfirmedErr, "PLC璇锋眰澶辫触锛岃妫�鏌LC閰嶇疆锛�") + return + } + ctx.Ok() +} + func SendParams(paramsMap map[string]interface{}, plcConfig *model.DevicePlc) error { if len(paramsMap) == 0 { return errors.New("empty params") diff --git a/docs/docs.go b/docs/docs.go index 1ad485b..aea2cf6 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -618,6 +618,36 @@ } } } + }, + "/v1/task/updateProcessParams": { + "post": { + "produces": [ + "application/json" + ], + "tags": [ + "Task" + ], + "summary": "鏇存柊宸ヨ壓鍙傛暟锛堣繘琛屼腑鐨勪换鍔★級", + "parameters": [ + { + "description": "鏌ヨ鍙傛暟", + "name": "object", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request.SendProcessParams" + } + } + ], + "responses": { + "200": { + "description": "鎴愬姛", + "schema": { + "$ref": "#/definitions/contextx.Response" + } + } + } + } } }, "definitions": { @@ -1132,15 +1162,6 @@ }, "data": {}, "msg": { - "type": "string" - } - } - }, - "response.Message": { - "type": "object", - "properties": { - "data": {}, - "event": { "type": "string" } } diff --git a/docs/swagger.json b/docs/swagger.json index 03ce549..ba7deaf 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -606,6 +606,36 @@ } } } + }, + "/v1/task/updateProcessParams": { + "post": { + "produces": [ + "application/json" + ], + "tags": [ + "Task" + ], + "summary": "鏇存柊宸ヨ壓鍙傛暟锛堣繘琛屼腑鐨勪换鍔★級", + "parameters": [ + { + "description": "鏌ヨ鍙傛暟", + "name": "object", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/request.SendProcessParams" + } + } + ], + "responses": { + "200": { + "description": "鎴愬姛", + "schema": { + "$ref": "#/definitions/contextx.Response" + } + } + } + } } }, "definitions": { @@ -1120,15 +1150,6 @@ }, "data": {}, "msg": { - "type": "string" - } - } - }, - "response.Message": { - "type": "object", - "properties": { - "data": {}, - "event": { "type": "string" } } diff --git a/docs/swagger.yaml b/docs/swagger.yaml index b73d1c3..80c87ea 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -354,12 +354,6 @@ msg: type: string type: object - response.Message: - properties: - data: {} - event: - type: string - type: object response.ProcessParams: properties: key: @@ -802,4 +796,23 @@ summary: 浠诲姟寮�濮嬶紙鑾峰彇宸ヨ壓鍙傛暟锛� tags: - Task + /v1/task/updateProcessParams: + post: + parameters: + - description: 鏌ヨ鍙傛暟 + in: body + name: object + required: true + schema: + $ref: '#/definitions/request.SendProcessParams' + produces: + - application/json + responses: + "200": + description: 鎴愬姛 + schema: + $ref: '#/definitions/contextx.Response' + summary: 鏇存柊宸ヨ壓鍙傛暟锛堣繘琛屼腑鐨勪换鍔★級 + tags: + - Task swagger: "2.0" diff --git a/router/index.go b/router/index.go index ce53646..92ffba9 100644 --- a/router/index.go +++ b/router/index.go @@ -35,11 +35,12 @@ taskApi := new(v1.TaskApi) taskGroup := v1Group.Group("task") { - taskGroup.GET("countdown", taskApi.TaskCountdown) // 鏂颁换鍔″�掕鏃� - taskGroup.GET("get", taskApi.TaskGet) // 鑾峰彇宸ュ簭 - taskGroup.GET("start/:id", taskApi.GetProcessParams) // 鑾峰彇宸ヨ壓鍙傛暟 - taskGroup.POST("sendProcessParams", taskApi.TaskStart) // 涓嬪彂宸ヨ壓鍙傛暟骞跺紑濮嬪伐搴� - taskGroup.PUT("finish/:id", taskApi.TaskFinish) // 瀹屾垚宸ュ簭 + taskGroup.GET("countdown", taskApi.TaskCountdown) // 鏂颁换鍔″�掕鏃� + taskGroup.GET("get", taskApi.TaskGet) // 鑾峰彇宸ュ簭 + taskGroup.GET("start/:id", taskApi.GetProcessParams) // 鑾峰彇宸ヨ壓鍙傛暟 + taskGroup.POST("sendProcessParams", taskApi.TaskStart) // 涓嬪彂宸ヨ壓鍙傛暟骞跺紑濮嬪伐搴� + taskGroup.POST("updateProcessParams", taskApi.UpdateProcessParams) // 鏇存柊宸ヨ壓鍙傛暟 + taskGroup.PUT("finish/:id", taskApi.TaskFinish) // 瀹屾垚宸ュ簭 } configApi := new(v1.ConfigApi) -- Gitblit v1.8.0