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, &params)
+	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