From ffdeee34afd3c28f603584e80039fc1dc30f1ff9 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期三, 13 九月 2023 17:27:22 +0800
Subject: [PATCH] 下发工艺参数时记录该工序对应的设备位置

---
 service/task.go          |   17 +++++++++++++++--
 model/procedures.go      |    1 +
 model/response/common.go |    1 +
 docs/swagger.yaml        |    6 ++++++
 docs/docs.go             |    8 ++++++++
 api/v1/task.go           |    2 +-
 docs/swagger.json        |    8 ++++++++
 7 files changed, 40 insertions(+), 3 deletions(-)

diff --git a/api/v1/task.go b/api/v1/task.go
index 4f3b574..ca697e9 100644
--- a/api/v1/task.go
+++ b/api/v1/task.go
@@ -211,7 +211,7 @@
 	}
 
 	err = model.WithTransaction(func(db *gorm.DB) error {
-		err = taskService.UpdateProcedureStatus(db, params.ProcedureId, model.ProcedureStatusProcessing)
+		err = taskService.UpdateProcedureStatusAndPosition(db, params.ProcedureId, model.ProcedureStatusProcessing, params.Position)
 		if err != nil {
 			return err
 		}
diff --git a/docs/docs.go b/docs/docs.go
index 6c17dbd..307d0b1 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -865,6 +865,10 @@
                 "id": {
                     "type": "integer"
                 },
+                "position": {
+                    "description": "姣忎釜璁惧鍙兘鏈夊涓満浣嶅悓鏃剁敓浜э紝鐢╬osition琛ㄧず浣嶇疆",
+                    "type": "integer"
+                },
                 "procedure": {
                     "description": "common.ProductProcedure  瀵硅薄",
                     "allOf": [
@@ -1040,6 +1044,10 @@
                 "order": {
                     "$ref": "#/definitions/model.Order"
                 },
+                "position": {
+                    "description": "褰撳墠浠诲姟鍦ㄨ澶囩鍑犱釜浣嶇疆",
+                    "type": "integer"
+                },
                 "procedure": {
                     "$ref": "#/definitions/model.Procedures"
                 }
diff --git a/docs/swagger.json b/docs/swagger.json
index 381b6f7..cc4599b 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -853,6 +853,10 @@
                 "id": {
                     "type": "integer"
                 },
+                "position": {
+                    "description": "姣忎釜璁惧鍙兘鏈夊涓満浣嶅悓鏃剁敓浜э紝鐢╬osition琛ㄧず浣嶇疆",
+                    "type": "integer"
+                },
                 "procedure": {
                     "description": "common.ProductProcedure  瀵硅薄",
                     "allOf": [
@@ -1028,6 +1032,10 @@
                 "order": {
                     "$ref": "#/definitions/model.Order"
                 },
+                "position": {
+                    "description": "褰撳墠浠诲姟鍦ㄨ澶囩鍑犱釜浣嶇疆",
+                    "type": "integer"
+                },
                 "procedure": {
                     "$ref": "#/definitions/model.Procedures"
                 }
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index ea79766..ba90e7f 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -242,6 +242,9 @@
         type: integer
       id:
         type: integer
+      position:
+        description: 姣忎釜璁惧鍙兘鏈夊涓満浣嶅悓鏃剁敓浜э紝鐢╬osition琛ㄧず浣嶇疆
+        type: integer
       procedure:
         allOf:
         - $ref: '#/definitions/common.ProductProcedure'
@@ -359,6 +362,9 @@
         type: integer
       order:
         $ref: '#/definitions/model.Order'
+      position:
+        description: 褰撳墠浠诲姟鍦ㄨ澶囩鍑犱釜浣嶇疆
+        type: integer
       procedure:
         $ref: '#/definitions/model.Procedures'
     type: object
diff --git a/model/procedures.go b/model/procedures.go
index a2aade5..99e45f4 100644
--- a/model/procedures.go
+++ b/model/procedures.go
@@ -17,6 +17,7 @@
 		OrderID        string `gorm:"index;type:varchar(191);not null;comment:璁㈠崟ID" json:"-"`
 		DeviceID       string `gorm:"index;type:varchar(191);comment:璁惧ID" json:"deviceId"`
 		ProcedureID    string `gorm:"index;type:varchar(191);comment:宸ュ簭ID" json:"procedureId"`
+		Position       int    `gorm:"type:int;comment:宸ヤ綔浣嶇疆" json:"position"` //姣忎釜璁惧鍙兘鏈夊涓満浣嶅悓鏃剁敓浜э紝鐢╬osition琛ㄧず浣嶇疆
 		StartTime      int64  `gorm:"comment:璁″垝寮�濮嬫椂闂�" json:"startTime"`
 		EndTime        int64  `gorm:"comment:璁″垝缁撴潫鏃堕棿" json:"endTime"`
 		Status         ProcedureStatus
diff --git a/model/response/common.go b/model/response/common.go
index 99f8a6a..269909f 100644
--- a/model/response/common.go
+++ b/model/response/common.go
@@ -21,6 +21,7 @@
 type TaskData struct {
 	Order                 *model.Order
 	Procedure             *model.Procedures
+	Position              int //褰撳墠浠诲姟鍦ㄨ澶囩鍑犱釜浣嶇疆
 	AllProcedures         []string
 	CurrentProcedureIndex int
 }
diff --git a/service/task.go b/service/task.go
index 96f2b4f..16bfd92 100644
--- a/service/task.go
+++ b/service/task.go
@@ -66,8 +66,11 @@
 	}
 	for _, procedure := range procedures {
 		taskData := response.TaskData{
-			Order:     orderMap[procedure.WorkOrderID],
-			Procedure: procedure,
+			Order:                 orderMap[procedure.WorkOrderID],
+			Procedure:             procedure,
+			AllProcedures:         nil,
+			CurrentProcedureIndex: 0,
+			Position:              procedure.Position,
 		}
 		taskDataList = append(taskDataList, &taskData)
 	}
@@ -82,6 +85,16 @@
 	return procedure, ecode.OK
 }
 
+func (slf TaskService) UpdateProcedureStatusAndPosition(db *gorm.DB, id int, status model.ProcedureStatus, position int) error {
+	if status == model.ProcedureStatusFinished {
+		ProgressCacheUnset()
+	}
+	return model.NewProceduresSearch(db).SetId(id).UpdateByMap(map[string]interface{}{
+		"status":   status,
+		"position": position,
+	})
+}
+
 func (slf TaskService) UpdateProcedureStatus(db *gorm.DB, id int, status model.ProcedureStatus) error {
 	if status == model.ProcedureStatusFinished {
 		ProgressCacheUnset()

--
Gitblit v1.8.0