From 0457f96716de8125560f332fcf718100b9f754eb Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期三, 13 九月 2023 21:03:56 +0800 Subject: [PATCH] 适应性改动 --- api/v1/plc.go | 4 service/task.go | 45 ++++++++++++-- nsq/msg_handler.go | 2 model/common/common.go | 7 +- conf/apsClient.json | 2 model/response/common.go | 7 + router/index.go | 4 docs/swagger.yaml | 12 +++ docs/docs.go | 16 +++++ api/v1/task.go | 6 - docs/swagger.json | 16 +++++ 11 files changed, 93 insertions(+), 28 deletions(-) diff --git a/api/v1/plc.go b/api/v1/plc.go index 907e8d8..7fdf89d 100644 --- a/api/v1/plc.go +++ b/api/v1/plc.go @@ -19,9 +19,9 @@ // @Produce application/json // @Param object body request.SendProcessParams true "鏌ヨ鍙傛暟" // @Success 200 {object} contextx.Response{data=response.ProductProgress} "鎴愬姛" -// @Router /v1/plc/productProgress [get] +// @Router /v1/plc/productProgress [post] func (slf *PlcApi) GetProductProgress(c *gin.Context) { - var params request.SendProcessParams + var params request.GetProductProgress ctx, ok := contextx.NewContext(c, ¶ms) if !ok { return diff --git a/api/v1/task.go b/api/v1/task.go index ca697e9..7eb2142 100644 --- a/api/v1/task.go +++ b/api/v1/task.go @@ -65,14 +65,10 @@ params.PageSize = 1 } - taskDataList, count, code := service.NewTaskService().GetTask(params.Page, params.PageSize) + taskResponse, code := service.NewTaskService().GetTask(params.Page, params.PageSize) if code != ecode.OK { ctx.Fail(code) return - } - taskResponse := &response.TaskResponse{ - Tasks: taskDataList, - TaskCount: count, } ctx.OkWithDetailed(taskResponse) } diff --git a/conf/apsClient.json b/conf/apsClient.json index b22d9a1..b1188f5 100644 --- a/conf/apsClient.json +++ b/conf/apsClient.json @@ -2,7 +2,7 @@ "system": { "env": "develop", "port": 8003, - "deviceId": "111", + "deviceId": "qwwt", "netSetShellPath": "/data/network/", "netUpShellName": "up.sh", "netDownShellName": "down.sh" diff --git a/docs/docs.go b/docs/docs.go index 307d0b1..ab10e06 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -153,7 +153,7 @@ } }, "/v1/plc/productProgress": { - "get": { + "post": { "produces": [ "application/json" ], @@ -551,6 +551,13 @@ "common.ProductProcedure": { "type": "object", "properties": { + "allProcedureNames": { + "description": "鎵�灞炲伐鍗曞伐搴忓垪琛�", + "type": "array", + "items": { + "type": "string" + } + }, "deviceId": { "type": "string" }, @@ -1050,6 +1057,13 @@ }, "procedure": { "$ref": "#/definitions/model.Procedures" + }, + "workers": { + "description": "浜哄憳鍒楄〃", + "type": "array", + "items": { + "$ref": "#/definitions/common.ProcedureWorker" + } } } } diff --git a/docs/swagger.json b/docs/swagger.json index cc4599b..a946339 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -141,7 +141,7 @@ } }, "/v1/plc/productProgress": { - "get": { + "post": { "produces": [ "application/json" ], @@ -539,6 +539,13 @@ "common.ProductProcedure": { "type": "object", "properties": { + "allProcedureNames": { + "description": "鎵�灞炲伐鍗曞伐搴忓垪琛�", + "type": "array", + "items": { + "type": "string" + } + }, "deviceId": { "type": "string" }, @@ -1038,6 +1045,13 @@ }, "procedure": { "$ref": "#/definitions/model.Procedures" + }, + "workers": { + "description": "浜哄憳鍒楄〃", + "type": "array", + "items": { + "$ref": "#/definitions/common.ProcedureWorker" + } } } } diff --git a/docs/swagger.yaml b/docs/swagger.yaml index ba90e7f..a6908c8 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -25,6 +25,11 @@ type: object common.ProductProcedure: properties: + allProcedureNames: + description: 鎵�灞炲伐鍗曞伐搴忓垪琛� + items: + type: string + type: array deviceId: type: string deviceName: @@ -367,6 +372,11 @@ type: integer procedure: $ref: '#/definitions/model.Procedures' + workers: + description: 浜哄憳鍒楄〃 + items: + $ref: '#/definitions/common.ProcedureWorker' + type: array type: object info: contact: {} @@ -451,7 +461,7 @@ tags: - Config /v1/plc/productProgress: - get: + post: parameters: - description: 鏌ヨ鍙傛暟 in: body diff --git a/model/common/common.go b/model/common/common.go index 31ece9c..8a8783a 100644 --- a/model/common/common.go +++ b/model/common/common.go @@ -44,9 +44,10 @@ StartTime int64 `gorm:"comment:璁″垝寮�濮嬫椂闂�" json:"startTime"` EndTime int64 `gorm:"comment:璁″垝缁撴潫鏃堕棿" json:"endTime"` WorkHours decimal.Decimal `gorm:"type:decimal(35,18);comment:宸ユ椂" json:"workHours"` - InputMaterials []*ProcedureMaterial `json:"inputMaterials"` // 杈撳叆鐗╂枡鍒楄〃 - OutputMaterials []*ProcedureMaterial `json:"outputMaterials"` // 杈撳嚭鐗╂枡鍒楄〃 - Workers []*ProcedureWorker `json:"workers"` // 浜哄憳鍒楄〃 + InputMaterials []*ProcedureMaterial `json:"inputMaterials"` // 杈撳叆鐗╂枡鍒楄〃 + OutputMaterials []*ProcedureMaterial `json:"outputMaterials"` // 杈撳嚭鐗╂枡鍒楄〃 + Workers []*ProcedureWorker `json:"workers"` // 浜哄憳鍒楄〃 + AllProcedureNames []string `json:"allProcedureNames"` // 鎵�灞炲伐鍗曞伐搴忓垪琛� } DeliverScheduleTask struct { diff --git a/model/response/common.go b/model/response/common.go index 269909f..39b65be 100644 --- a/model/response/common.go +++ b/model/response/common.go @@ -2,6 +2,7 @@ import ( "apsClient/model" + "apsClient/model/common" ) type PageResult struct { @@ -19,8 +20,9 @@ } type TaskData struct { - Order *model.Order - Procedure *model.Procedures + Order *model.Order + Procedure *model.Procedures + Position int //褰撳墠浠诲姟鍦ㄨ澶囩鍑犱釜浣嶇疆 AllProcedures []string CurrentProcedureIndex int @@ -29,6 +31,7 @@ type TaskResponse struct { Tasks []*TaskData TaskCount int64 + Workers []*common.ProcedureWorker `json:"workers"` // 浜哄憳鍒楄〃 } type Config struct { diff --git a/nsq/msg_handler.go b/nsq/msg_handler.go index 180f1b5..36b5b9a 100644 --- a/nsq/msg_handler.go +++ b/nsq/msg_handler.go @@ -49,7 +49,6 @@ } procedureRecords := make([]*model.Procedures, 0, len(task.Procedures)) - procedureIds := make([]string, 0, len(task.Procedures)) for _, procedure := range task.Procedures { procedureRecord := model.Procedures{ WorkOrderID: task.WorkOrder.WorkOrderID, @@ -67,7 +66,6 @@ } procedureRecord.ProcedureData = string(procedureData) procedureRecords = append(procedureRecords, &procedureRecord) - procedureIds = append(procedureIds, procedure.ProcedureID) } var orderRecord model.Order diff --git a/router/index.go b/router/index.go index 2368213..7740bee 100644 --- a/router/index.go +++ b/router/index.go @@ -54,8 +54,8 @@ plcApi := new(v1.PlcApi) plcGroup := v1Group.Group("plc") { - plcGroup.GET("productProgress", plcApi.GetProductProgress) // 鑾峰彇缃戠粶閰嶇疆 - plcGroup.POST("setProductNumber", plcApi.SetProductNumber) // 涓嬪彂鐢熶骇鎬婚噺 + plcGroup.POST("productProgress", plcApi.GetProductProgress) // 鑾峰彇缃戠粶閰嶇疆 + plcGroup.POST("setProductNumber", plcApi.SetProductNumber) // 涓嬪彂鐢熶骇鎬婚噺 } InitPlcBrandRouter(v1Group) diff --git a/service/task.go b/service/task.go index 16bfd92..372c164 100644 --- a/service/task.go +++ b/service/task.go @@ -24,7 +24,10 @@ } // GetTask 鑾峰彇浠诲姟锛屾湭瀹屾垚鐨勫紑濮嬫椂闂存渶鏃╃殑浠诲姟 -func (slf TaskService) GetTask(page, pageSize int) (taskDataList []*response.TaskData, count int64, code int) { +func (slf TaskService) GetTask(page, pageSize int) (taskResp *response.TaskResponse, code int) { + var taskList []*response.TaskData + var count int64 + var workers []*common.ProcedureWorker nowTs := time.Now().Unix() var ( err error @@ -39,17 +42,17 @@ SetPage(page, pageSize). FindNotTotal() if err != nil { - return nil, 0, ecode.DBErr + return nil, ecode.DBErr } count, err = model.NewProceduresSearch(nil). SetDeviceId(conf.Conf.System.DeviceId). SetStatusNot(model.ProcedureStatusFinished). Count() if err != nil { - return nil, 0, ecode.DBErr + return nil, ecode.DBErr } if len(procedures) == 0 { - return nil, 0, ecode.OK + return nil, ecode.OK } for _, procedure := range procedures { @@ -57,7 +60,7 @@ } orders, err = model.NewOrderSearch(nil).SetWorkOrderIds(workOrderIds).FindNotTotal() //鐢卞伐搴忓弽鎺ㄥ伐鍗� if err != nil { - return nil, 0, ecode.DBErr + return nil, ecode.DBErr } orderMap := make(map[string]*model.Order, len(workOrderIds)) @@ -68,13 +71,39 @@ taskData := response.TaskData{ Order: orderMap[procedure.WorkOrderID], Procedure: procedure, - AllProcedures: nil, + AllProcedures: procedure.ProceduresInfo.AllProcedureNames, CurrentProcedureIndex: 0, Position: procedure.Position, } - taskDataList = append(taskDataList, &taskData) + index := 0 + for _, name := range procedure.ProceduresInfo.AllProcedureNames { + if name == procedure.ProceduresInfo.ProcedureName { + break + } + index++ + } + taskData.CurrentProcedureIndex = index + taskList = append(taskList, &taskData) + workers = append(workers, procedure.ProceduresInfo.Workers...) } - return taskDataList, count, ecode.OK + taskResp = &response.TaskResponse{ + Tasks: taskList, + TaskCount: count, + Workers: slf.WorkerDistinct(workers), + } + return taskResp, ecode.OK +} + +func (slf TaskService) WorkerDistinct(workers []*common.ProcedureWorker) (NoRepeatedWorkers []*common.ProcedureWorker) { + exists := make(map[string]bool, 0) + for _, worker := range workers { + key := fmt.Sprintf("%v%v", worker.WorkerID, worker.StartTime) + if !exists[key] { + NoRepeatedWorkers = append(NoRepeatedWorkers, worker) + exists[key] = true + } + } + return NoRepeatedWorkers } func (slf TaskService) GetProcedureById(id int) (*model.Procedures, int) { -- Gitblit v1.8.0