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, ¶ms) - 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