From 4db8b372c61025a80af529a47872a6fec6daf854 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期三, 27 九月 2023 10:21:30 +0800
Subject: [PATCH] 删除获取未开始任务接口,统一用获取任务接口

---
 constvar/const.go      |    8 +
 service/task.go        |   16 --
 service/cache_store.go |   21 +-
 router/index.go        |   11 -
 docs/swagger.yaml      |   55 ++++----
 docs/docs.go           |   83 ++++++-------
 model/request/task.go  |    3 
 api/v1/task.go         |   50 ++------
 docs/swagger.json      |   83 ++++++-------
 9 files changed, 149 insertions(+), 181 deletions(-)

diff --git a/api/v1/task.go b/api/v1/task.go
index 5765d4d..558b127 100644
--- a/api/v1/task.go
+++ b/api/v1/task.go
@@ -74,13 +74,18 @@
 		params.PageSize = channelAmount
 	}
 
-	taskResponse, code := service.NewTaskService().GetTask(params.Page, params.PageSize, service.TaskModeCurrent, nil) //鍙栬繘琛屼腑鐨勬垨鏈紑濮嬬殑
+	taskMode := constvar.TaskModeCurrent
+	if params.TaskMode == constvar.TaskModeUnStarted {
+		taskMode = params.TaskMode
+	}
+
+	taskResponse, code := service.NewTaskService().GetTask(params.Page, params.PageSize, taskMode, nil) //鍙栬繘琛屼腑鐨勬垨鏈紑濮嬬殑
 	if code != ecode.OK {
 		ctx.Fail(code)
 		return
 	}
 
-	if len(taskResponse.Tasks) < channelAmount {
+	if len(taskResponse.Tasks) < channelAmount && taskMode == constvar.TaskModeCurrent {
 		var existsChannel = make(map[int32]bool, channelAmount)
 		for _, task := range taskResponse.Tasks {
 			existsChannel[task.Channel] = true
@@ -89,7 +94,7 @@
 			if existsChannel[int32(i)] {
 				continue
 			}
-			taskResponseTemp, code := service.NewTaskService().GetTask(params.Page, 1, service.TaskModeLastFinished, []int32{int32(i)}) //鍙栦笂涓�涓畬鎴愮殑
+			taskResponseTemp, code := service.NewTaskService().GetTask(params.Page, 1, constvar.TaskModeLastFinished, []int32{int32(i)}) //鍙栦笂涓�涓畬鎴愮殑
 			if code != ecode.OK {
 				ctx.Fail(code)
 				return
@@ -103,7 +108,7 @@
 	})
 
 	for _, task := range taskResponse.Tasks {
-		if task.Procedure.Status == model.ProcedureStatusWaitProcess {
+		if !service.TaskFlagGet(task.Channel) {
 			task.CanStarted = true
 		}
 	}
@@ -111,34 +116,6 @@
 	taskResponse.Prompt = conf.Conf.Prompt
 	taskResponse.ChannelAmount = channelAmount
 
-	ctx.OkWithDetailed(taskResponse)
-}
-
-// TaskGetUnStarted
-// @Tags      Task
-// @Summary   鑾峰彇鏈紑濮嬬殑浠诲姟
-// @Produce   application/json
-// @Param     object  query    request.TaskList true  "鏌ヨ鍙傛暟"
-// @Success   200   {object}  contextx.Response{data=response.TaskData}  "鎴愬姛"
-// @Router    /v1/task/get/unStarted [get]
-func (slf *TaskApi) TaskGetUnStarted(c *gin.Context) {
-	var params request.TaskList
-	ctx, ok := contextx.NewContext(c, &params)
-	if !ok {
-		return
-	}
-	if params.Page <= 0 {
-		params.Page = 1
-	}
-	if params.PageSize <= 0 {
-		params.PageSize = 100
-	}
-
-	taskResponse, code := service.NewTaskService().GetTask(params.Page, params.PageSize, service.TaskModeUnStarted, nil) //鏃堕棿鍒颁簡鏈紑濮嬬殑
-	if code != ecode.OK {
-		ctx.Fail(code)
-		return
-	}
 	ctx.OkWithDetailed(taskResponse)
 }
 
@@ -246,6 +223,8 @@
 		logx.Errorf("send task status update msg error:%v", err.Error())
 	}
 
+	service.TaskFlagUnset(procedure.Channel)
+
 	ctx.Ok()
 }
 
@@ -282,7 +261,6 @@
 		ctx.Ok()
 		return
 	}
-
 	processModel, err := taskService.GetProcessParams(procedure, order)
 	if err != nil || processModel == nil || processModel.ParamsMap == nil {
 		ctx.Fail(ecode.UnknownErr)
@@ -303,7 +281,7 @@
 	})
 	if err != nil {
 		logx.Errorf("SendProcessParams update order and procedure status error:%v", err.Error())
-		ctx.FailWithMsg(ecode.NeedConfirmedErr, "鏇存敼宸ュ崟鐘舵�佸け璐�")
+		ctx.FailWithMsg(ecode.DBErr, "鏇存敼宸ュ崟鐘舵�佸け璐�")
 		return
 	}
 	plcConfig, code := service.NewDevicePlcService().GetDevicePlc()
@@ -337,7 +315,7 @@
 	plcConfig.CurrentTryTimes = 0
 	err = service.PlcWrite(plcConfig, constvar.PlcStartAddressTypeTotalNumber, params.Channel, order.Amount.IntPart())
 	if err != nil {
-		ctx.FailWithMsg(ecode.NeedConfirmedErr, "绯熺硶锛屽伐鑹轰笅鍙戝け璐ャ��")
+		ctx.FailWithMsg(ecode.NeedConfirmedErr, "PLC璇锋眰澶辫触锛岃妫�鏌LC閰嶇疆")
 		return
 	}
 
@@ -354,7 +332,7 @@
 	if err != nil {
 		logx.Errorf("send task status update msg error:%v", err.Error())
 	}
-
+	service.TaskFlagSet(procedure.Channel)
 	ctx.Ok()
 }
 
diff --git a/constvar/const.go b/constvar/const.go
index 8b56942..db3a8a6 100644
--- a/constvar/const.go
+++ b/constvar/const.go
@@ -63,3 +63,11 @@
 	PlcPackageGoBurrow             = "goBurrow"
 	PlcPackageApacheLongConnection = "apacheLong"
 )
+
+type TaskMode int
+
+const (
+	TaskModeUnStarted    TaskMode = 1 //鏈紑濮嬬殑
+	TaskModeCurrent      TaskMode = 2 //鏈紑濮嬬殑鍜岃繘琛屼腑鐨�
+	TaskModeLastFinished TaskMode = 3 //涓婁竴涓粨鏉熺殑
+)
diff --git a/docs/docs.go b/docs/docs.go
index 3c69775..ce78968 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -446,6 +446,26 @@
                         "description": "姣忛〉澶у皬",
                         "name": "pageSize",
                         "in": "query"
+                    },
+                    {
+                        "enum": [
+                            1,
+                            2,
+                            3
+                        ],
+                        "type": "integer",
+                        "x-enum-comments": {
+                            "TaskModeCurrent": "鏈紑濮嬬殑鍜岃繘琛屼腑鐨�",
+                            "TaskModeLastFinished": "涓婁竴涓粨鏉熺殑",
+                            "TaskModeUnStarted": "鏈紑濮嬬殑"
+                        },
+                        "x-enum-varnames": [
+                            "TaskModeUnStarted",
+                            "TaskModeCurrent",
+                            "TaskModeLastFinished"
+                        ],
+                        "name": "taskMode",
+                        "in": "query"
                     }
                 ],
                 "responses": {
@@ -461,51 +481,6 @@
                                     "properties": {
                                         "data": {
                                             "$ref": "#/definitions/response.TaskResponse"
-                                        }
-                                    }
-                                }
-                            ]
-                        }
-                    }
-                }
-            }
-        },
-        "/v1/task/get/unStarted": {
-            "get": {
-                "produces": [
-                    "application/json"
-                ],
-                "tags": [
-                    "Task"
-                ],
-                "summary": "鑾峰彇鏈紑濮嬬殑浠诲姟",
-                "parameters": [
-                    {
-                        "type": "integer",
-                        "description": "椤电爜",
-                        "name": "page",
-                        "in": "query"
-                    },
-                    {
-                        "type": "integer",
-                        "description": "姣忛〉澶у皬",
-                        "name": "pageSize",
-                        "in": "query"
-                    }
-                ],
-                "responses": {
-                    "200": {
-                        "description": "鎴愬姛",
-                        "schema": {
-                            "allOf": [
-                                {
-                                    "$ref": "#/definitions/contextx.Response"
-                                },
-                                {
-                                    "type": "object",
-                                    "properties": {
-                                        "data": {
-                                            "$ref": "#/definitions/response.TaskData"
                                         }
                                     }
                                 }
@@ -736,6 +711,24 @@
                 "PlcStartAddressValueTypeInt"
             ]
         },
+        "constvar.TaskMode": {
+            "type": "integer",
+            "enum": [
+                1,
+                2,
+                3
+            ],
+            "x-enum-comments": {
+                "TaskModeCurrent": "鏈紑濮嬬殑鍜岃繘琛屼腑鐨�",
+                "TaskModeLastFinished": "涓婁竴涓粨鏉熺殑",
+                "TaskModeUnStarted": "鏈紑濮嬬殑"
+            },
+            "x-enum-varnames": [
+                "TaskModeUnStarted",
+                "TaskModeCurrent",
+                "TaskModeLastFinished"
+            ]
+        },
         "contextx.Response": {
             "type": "object",
             "properties": {
diff --git a/docs/swagger.json b/docs/swagger.json
index 4ad70ed..216e3a6 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -434,6 +434,26 @@
                         "description": "姣忛〉澶у皬",
                         "name": "pageSize",
                         "in": "query"
+                    },
+                    {
+                        "enum": [
+                            1,
+                            2,
+                            3
+                        ],
+                        "type": "integer",
+                        "x-enum-comments": {
+                            "TaskModeCurrent": "鏈紑濮嬬殑鍜岃繘琛屼腑鐨�",
+                            "TaskModeLastFinished": "涓婁竴涓粨鏉熺殑",
+                            "TaskModeUnStarted": "鏈紑濮嬬殑"
+                        },
+                        "x-enum-varnames": [
+                            "TaskModeUnStarted",
+                            "TaskModeCurrent",
+                            "TaskModeLastFinished"
+                        ],
+                        "name": "taskMode",
+                        "in": "query"
                     }
                 ],
                 "responses": {
@@ -449,51 +469,6 @@
                                     "properties": {
                                         "data": {
                                             "$ref": "#/definitions/response.TaskResponse"
-                                        }
-                                    }
-                                }
-                            ]
-                        }
-                    }
-                }
-            }
-        },
-        "/v1/task/get/unStarted": {
-            "get": {
-                "produces": [
-                    "application/json"
-                ],
-                "tags": [
-                    "Task"
-                ],
-                "summary": "鑾峰彇鏈紑濮嬬殑浠诲姟",
-                "parameters": [
-                    {
-                        "type": "integer",
-                        "description": "椤电爜",
-                        "name": "page",
-                        "in": "query"
-                    },
-                    {
-                        "type": "integer",
-                        "description": "姣忛〉澶у皬",
-                        "name": "pageSize",
-                        "in": "query"
-                    }
-                ],
-                "responses": {
-                    "200": {
-                        "description": "鎴愬姛",
-                        "schema": {
-                            "allOf": [
-                                {
-                                    "$ref": "#/definitions/contextx.Response"
-                                },
-                                {
-                                    "type": "object",
-                                    "properties": {
-                                        "data": {
-                                            "$ref": "#/definitions/response.TaskData"
                                         }
                                     }
                                 }
@@ -724,6 +699,24 @@
                 "PlcStartAddressValueTypeInt"
             ]
         },
+        "constvar.TaskMode": {
+            "type": "integer",
+            "enum": [
+                1,
+                2,
+                3
+            ],
+            "x-enum-comments": {
+                "TaskModeCurrent": "鏈紑濮嬬殑鍜岃繘琛屼腑鐨�",
+                "TaskModeLastFinished": "涓婁竴涓粨鏉熺殑",
+                "TaskModeUnStarted": "鏈紑濮嬬殑"
+            },
+            "x-enum-varnames": [
+                "TaskModeUnStarted",
+                "TaskModeCurrent",
+                "TaskModeLastFinished"
+            ]
+        },
         "contextx.Response": {
             "type": "object",
             "properties": {
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index 99e319d..c03e6d1 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -102,6 +102,20 @@
     x-enum-varnames:
     - PlcStartAddressValueTypeString
     - PlcStartAddressValueTypeInt
+  constvar.TaskMode:
+    enum:
+    - 1
+    - 2
+    - 3
+    type: integer
+    x-enum-comments:
+      TaskModeCurrent: 鏈紑濮嬬殑鍜岃繘琛屼腑鐨�
+      TaskModeLastFinished: 涓婁竴涓粨鏉熺殑
+      TaskModeUnStarted: 鏈紑濮嬬殑
+    x-enum-varnames:
+    - TaskModeUnStarted
+    - TaskModeCurrent
+    - TaskModeLastFinished
   contextx.Response:
     properties:
       code:
@@ -674,6 +688,21 @@
         in: query
         name: pageSize
         type: integer
+      - enum:
+        - 1
+        - 2
+        - 3
+        in: query
+        name: taskMode
+        type: integer
+        x-enum-comments:
+          TaskModeCurrent: 鏈紑濮嬬殑鍜岃繘琛屼腑鐨�
+          TaskModeLastFinished: 涓婁竴涓粨鏉熺殑
+          TaskModeUnStarted: 鏈紑濮嬬殑
+        x-enum-varnames:
+        - TaskModeUnStarted
+        - TaskModeCurrent
+        - TaskModeLastFinished
       produces:
       - application/json
       responses:
@@ -687,32 +716,6 @@
                   $ref: '#/definitions/response.TaskResponse'
               type: object
       summary: 鑾峰彇浠诲姟
-      tags:
-      - Task
-  /v1/task/get/unStarted:
-    get:
-      parameters:
-      - description: 椤电爜
-        in: query
-        name: page
-        type: integer
-      - description: 姣忛〉澶у皬
-        in: query
-        name: pageSize
-        type: integer
-      produces:
-      - application/json
-      responses:
-        "200":
-          description: 鎴愬姛
-          schema:
-            allOf:
-            - $ref: '#/definitions/contextx.Response'
-            - properties:
-                data:
-                  $ref: '#/definitions/response.TaskData'
-              type: object
-      summary: 鑾峰彇鏈紑濮嬬殑浠诲姟
       tags:
       - Task
   /v1/task/sendProcessParams:
diff --git a/model/request/task.go b/model/request/task.go
index a3d78b6..212bb81 100644
--- a/model/request/task.go
+++ b/model/request/task.go
@@ -1,5 +1,7 @@
 package request
 
+import "apsClient/constvar"
+
 // TaskInfo 浠诲姟寮�鍚�氱煡璇锋眰鍙傛暟
 type TaskInfo struct {
 	OrderId   string `json:"orderId"`   // 璁㈠崟鍙�
@@ -12,6 +14,7 @@
 // TaskList 浠诲姟鍒楄〃璇锋眰鍙傛暟
 type TaskList struct {
 	PageInfo
+	TaskMode constvar.TaskMode `json:"taskMode" form:"taskMode"`
 }
 
 type SendProcessParams struct {
diff --git a/router/index.go b/router/index.go
index dcbb9f0..3c71534 100644
--- a/router/index.go
+++ b/router/index.go
@@ -35,12 +35,11 @@
 	taskApi := new(v1.TaskApi)
 	taskGroup := v1Group.Group("task")
 	{
-		taskGroup.GET("countdown", taskApi.TaskCountdown)        // 鏂颁换鍔″�掕鏃�
-		taskGroup.GET("get", taskApi.TaskGet)                    // 鑾峰彇宸ュ簭
-		taskGroup.GET("get/unStarted", taskApi.TaskGetUnStarted) // 鏃堕棿鍒颁簡鏈紑濮嬬殑浠诲姟
-		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.PUT("finish/:id", taskApi.TaskFinish)        // 瀹屾垚宸ュ簭
 	}
 
 	configApi := new(v1.ConfigApi)
diff --git a/service/cache_store.go b/service/cache_store.go
index 325db21..2f6c515 100644
--- a/service/cache_store.go
+++ b/service/cache_store.go
@@ -3,7 +3,6 @@
 import (
 	"apsClient/constvar"
 	"apsClient/model"
-	"apsClient/model/response"
 	"fmt"
 	"github.com/spf13/cast"
 	"sync"
@@ -47,8 +46,8 @@
 }
 
 const (
-	PlcCacheKey             = "plc:%v:%v" //plc:channel:key
-	CurrentTaskCacheKey     = "current_task"
+	PlcCacheKey             = "plc:%v:%v"                    //plc:channel:key
+	CurrentTaskCacheKey     = "current_task:%v"              //current_task:channel
 	CurrentProgressCacheKey = "current_progress:%v"          //current_progress:channel
 	PlcCacheKeyUpdateTime   = "finish_number_update_time:%v" //finish_number_update_time:channel
 )
@@ -79,19 +78,19 @@
 	defaultCacheStore.Add(fmt.Sprintf(PlcCacheKeyUpdateTime, channel), value)
 }
 
-func TaskCacheSet(value *response.TaskData) {
-	defaultCacheStore.Add(CurrentTaskCacheKey, value)
+func TaskFlagSet(channel int32) {
+	defaultCacheStore.Add(fmt.Sprintf(CurrentTaskCacheKey, channel), struct{}{})
 }
 
-func TaskCacheUnset() {
-	defaultCacheStore.Remove(CurrentTaskCacheKey)
+func TaskFlagUnset(channel int32) {
+	defaultCacheStore.Remove(fmt.Sprintf(CurrentTaskCacheKey, channel))
 }
 
-func TaskCacheGet() (*response.TaskData, bool) {
-	if v, ok := defaultCacheStore.Get(CurrentTaskCacheKey); ok {
-		return v.(*response.TaskData), ok
+func TaskFlagGet(channel int32) bool {
+	if _, ok := defaultCacheStore.Get(fmt.Sprintf(CurrentTaskCacheKey, channel)); ok {
+		return true
 	}
-	return nil, false
+	return false
 }
 
 func ProgressCacheGet(channel int32) (*model.ProductionProgress, bool) {
diff --git a/service/task.go b/service/task.go
index 40eb45f..d27ee1a 100644
--- a/service/task.go
+++ b/service/task.go
@@ -23,16 +23,8 @@
 	return &TaskService{}
 }
 
-type TaskMode int
-
-const (
-	TaskModeUnStarted    TaskMode = 1 //鏈紑濮嬬殑
-	TaskModeCurrent      TaskMode = 2
-	TaskModeLastFinished TaskMode = 3 //涓婁竴涓粨鏉熺殑
-)
-
 // GetTask 鑾峰彇浠诲姟锛屾湭瀹屾垚鐨勫紑濮嬫椂闂村皬浜庣瓑浜庡綋鍓嶆椂闂达紝缁撴潫鏃堕棿澶т簬褰撳墠鏃堕棿鐨勪换鍔�
-func (slf TaskService) GetTask(page, pageSize int, mode TaskMode, channels []int32) (taskResp *response.TaskResponse, code int) {
+func (slf TaskService) GetTask(page, pageSize int, mode constvar.TaskMode, channels []int32) (taskResp *response.TaskResponse, code int) {
 	var taskList []*response.TaskData
 	var count int64
 	var workers []*common.ProcedureWorker
@@ -54,17 +46,17 @@
 		SetDeviceId(conf.Conf.System.DeviceId).
 		SetPage(page, pageSize)
 
-	if mode == TaskModeUnStarted {
+	if mode == constvar.TaskModeUnStarted {
 		search.SetStatus(model.ProcedureStatusWaitProcess).
 			SetStartTimeMax(nowTs).
 			SetEndTimeMin(nowTs).
 			SetOrder("start_time asc")
-	} else if mode == TaskModeCurrent {
+	} else if mode == constvar.TaskModeCurrent {
 		search.SetStatusNot(model.ProcedureStatusFinished).
 			SetStartTimeMax(nowTs).
 			SetEndTimeMin(nowTs).
 			SetOrder("status desc, start_time asc")
-	} else if mode == TaskModeLastFinished {
+	} else if mode == constvar.TaskModeLastFinished {
 		search.SetStatus(model.ProcedureStatusFinished).SetOrder("updated_at desc")
 		if len(channels) > 0 {
 			search.SetChannels(channels)

--
Gitblit v1.8.0