From f0650a3cfc0da9941fdfddfcf89110d5985ae87b Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期四, 07 十二月 2023 15:12:37 +0800
Subject: [PATCH] 同步完工序状态后不再删除,增加同步状态

---
 constvar/const.go         |    7 +++++++
 service/task.go           |    7 ++++++-
 crontask/cron_task.go     |    2 +-
 model/task_status_sync.go |   30 +++++++++++++++++++++---------
 4 files changed, 35 insertions(+), 11 deletions(-)

diff --git a/constvar/const.go b/constvar/const.go
index 7e0671c..65d9828 100644
--- a/constvar/const.go
+++ b/constvar/const.go
@@ -136,3 +136,10 @@
 	ReportTypeSystemDeviceID ReportType = 1
 	ReportTypeReportWork     ReportType = 2
 )
+
+type SyncStatus int //鍚屾鐘舵��
+
+const (
+	SyncStatusWait SyncStatus = 1 //寰呭悓姝�
+	SyncStatusOk   SyncStatus = 2 //宸插畬鎴�
+)
diff --git a/crontask/cron_task.go b/crontask/cron_task.go
index dcc64c0..0199a20 100644
--- a/crontask/cron_task.go
+++ b/crontask/cron_task.go
@@ -135,7 +135,7 @@
 		syncOkIds = append(syncOkIds, record.ID)
 	}
 	if len(syncOkIds) > 0 {
-		err = service.NewTaskService().RemoveTaskStatusSync(syncOkIds)
+		err = service.NewTaskService().FinishTaskStatusSync(syncOkIds)
 		if err != nil {
 			logx.Errorf("sync task status delete sync ok records error:%v", err)
 		}
diff --git a/model/task_status_sync.go b/model/task_status_sync.go
index 0000777..093cb8f 100644
--- a/model/task_status_sync.go
+++ b/model/task_status_sync.go
@@ -1,6 +1,7 @@
 package model
 
 import (
+	"apsClient/constvar"
 	"apsClient/pkg/sqlitex"
 	"fmt"
 	"github.com/jinzhu/gorm"
@@ -10,15 +11,16 @@
 	// TaskStatusSync 浠诲姟鐘舵�佸悓姝�
 	TaskStatusSync struct {
 		gorm.Model
-		WorkOrderId        string `json:"workOrderId"`                                  //宸ュ崟缂栧彿
-		ProductProcedureID string `gorm:"type:varchar(191);" json:"productProcedureID"` //浜у搧宸ュ簭id
-		ProcedureID        string `json:"procedureId"`                                  // 宸ュ簭缂栧彿
-		DeviceId           string `json:"deviceId"`                                     //璁惧缂栧彿
-		IsProcessing       bool   //鏄惁澶勭悊涓�
-		IsFinish           bool   //鏄惁瀹屾垚
-		StartTs            int64  `json:"start_ts"`  //寮�濮嬫椂闂�
-		FinishTs           int64  `json:"finish_ts"` //缁撴潫鏃堕棿
-		FinishedQuantity   int    `json:"finishedQuantity"`
+		WorkOrderId        string              `json:"workOrderId"`                                  //宸ュ崟缂栧彿
+		ProductProcedureID string              `gorm:"type:varchar(191);" json:"productProcedureID"` //浜у搧宸ュ簭id
+		ProcedureID        string              `json:"procedureId"`                                  // 宸ュ簭缂栧彿
+		DeviceId           string              `json:"deviceId"`                                     //璁惧缂栧彿
+		IsProcessing       bool                //鏄惁澶勭悊涓�
+		IsFinish           bool                //鏄惁瀹屾垚
+		StartTs            int64               `json:"start_ts"`  //寮�濮嬫椂闂�
+		FinishTs           int64               `json:"finish_ts"` //缁撴潫鏃堕棿
+		FinishedQuantity   int                 `json:"finishedQuantity"`
+		SyncStatus         constvar.SyncStatus `json:"-"`
 	}
 
 	TaskStatusSyncSearch struct {
@@ -28,6 +30,7 @@
 		PageSize int
 		Orm      *gorm.DB
 		IDs      []uint
+		SyncWait bool
 	}
 )
 
@@ -77,6 +80,11 @@
 	return slf
 }
 
+func (slf *TaskStatusSyncSearch) SetSyncWait() *TaskStatusSyncSearch {
+	slf.SyncWait = true
+	return slf
+}
+
 func (slf *TaskStatusSyncSearch) build() *gorm.DB {
 	var db = slf.Orm.Table(slf.TableName())
 
@@ -100,6 +108,10 @@
 		db = db.Where("work_order_id = ?", slf.WorkOrderId)
 	}
 
+	if slf.SyncWait {
+		db = db.Where("sync_status != ?", constvar.SyncStatusOk)
+	}
+
 	return db
 }
 
diff --git a/service/task.go b/service/task.go
index 66bf691..8c810fd 100644
--- a/service/task.go
+++ b/service/task.go
@@ -219,7 +219,7 @@
 
 // GetTaskStatusSync 鑾峰彇寰呭悓姝ヤ换鍔′俊鎭�
 func (slf TaskService) GetTaskStatusSync(limit int) ([]*model.TaskStatusSync, error) {
-	return model.NewTaskStatusSyncSearch(nil).SetOrder("id asc").SetPage(1, limit).FindNotTotal()
+	return model.NewTaskStatusSyncSearch(nil).SetOrder("id asc").SetSyncWait().SetPage(1, limit).FindNotTotal()
 }
 
 // RemoveTaskStatusSync 鍒犻櫎鍚屾瀹岀殑璁板綍
@@ -227,6 +227,11 @@
 	return model.NewTaskStatusSyncSearch(nil).SetIDs(ids).Delete()
 }
 
+// FinishTaskStatusSync 璁剧疆宸插悓姝ュ畬鎴�
+func (slf TaskService) FinishTaskStatusSync(ids []uint) (err error) {
+	return model.NewTaskStatusSyncSearch(nil).SetIDs(ids).UpdateByMap(map[string]interface{}{"sync_status": constvar.SyncStatusOk})
+}
+
 // GetTask2 鑾峰彇浠诲姟鍒楄〃2
 func (slf TaskService) GetTask2(deviceID string, offset, limit int, channels []int32, queryType request.QueryType) (taskResp *response.TaskResponse, err error) {
 	var taskList []*response.TaskData

--
Gitblit v1.8.0