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