From 941666a9e9e48b0e86140d5e7d81983c7457f0d6 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期四, 30 十一月 2023 11:32:11 +0800
Subject: [PATCH] 保存完成消息时查一下开始时间并存储

---
 service/task.go           |    9 ++++++++-
 model/common/common.go    |    3 ++-
 crontask/cron_task.go     |    3 ++-
 model/task_status_sync.go |   12 +++++++++++-
 4 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/crontask/cron_task.go b/crontask/cron_task.go
index ae1ff95..24ffc22 100644
--- a/crontask/cron_task.go
+++ b/crontask/cron_task.go
@@ -130,7 +130,8 @@
 			IsFinish:           record.IsFinish,
 			FinishAmount:       finishAmount,
 			ProductProcedureID: record.ProductProcedureID,
-			Ts:                 record.Ts,
+			StartTs:            record.StartTs,
+			FinishTs:           record.FinishTs,
 		}
 		caller := nsq.NewCaller(fmt.Sprintf(constvar.NsqTopicTaskProcedureStatusUpdate, conf.Conf.NsqConf.NodeId), "")
 		err = caller.Send(msg)
diff --git a/model/common/common.go b/model/common/common.go
index 7d40584..b0a9b22 100644
--- a/model/common/common.go
+++ b/model/common/common.go
@@ -128,7 +128,8 @@
 	IsFinish           bool   //鏄惁瀹屾垚
 	FinishAmount       int    `json:"finishAmount"`       //isFinish = true鏃跺彇宸ュ簭鏈�缁堝姞宸ユ暟浼犱笂鍘�
 	ProductProcedureID string `json:"productProcedureID"` //浜у搧宸ュ簭id
-	Ts                 int64  `json:"ts"`                 //鍙戠敓鏃堕棿
+	StartTs            int64  `json:"start_ts"`           //寮�濮嬫椂闂�
+	FinishTs           int64  `json:"finish_ts"`          //缁撴潫鏃堕棿
 }
 
 // DeviceMsg 涓嬪彂鍒扮粓绔殑璁惧淇℃伅
diff --git a/model/task_status_sync.go b/model/task_status_sync.go
index e1eead2..d45ca91 100644
--- a/model/task_status_sync.go
+++ b/model/task_status_sync.go
@@ -16,7 +16,8 @@
 		DeviceId           string `json:"deviceId"`                                     //璁惧缂栧彿
 		IsProcessing       bool   //鏄惁澶勭悊涓�
 		IsFinish           bool   //鏄惁瀹屾垚
-		Ts                 int64  //鍙戠敓鏃堕棿
+		StartTs            int64  `json:"start_ts"`  //寮�濮嬫椂闂�
+		FinishTs           int64  `json:"finish_ts"` //缁撴潫鏃堕棿
 	}
 
 	TaskStatusSyncSearch struct {
@@ -65,6 +66,11 @@
 	return slf
 }
 
+func (slf *TaskStatusSyncSearch) SetWorkOrderId(workOrderId string) *TaskStatusSyncSearch {
+	slf.WorkOrderId = workOrderId
+	return slf
+}
+
 func (slf *TaskStatusSyncSearch) SetIDs(ids []uint) *TaskStatusSyncSearch {
 	slf.IDs = ids
 	return slf
@@ -89,6 +95,10 @@
 		db = db.Order(slf.Order)
 	}
 
+	if slf.WorkOrderId != "" {
+		db = db.Where("work_order_id = ?", slf.WorkOrderId)
+	}
+
 	return db
 }
 
diff --git a/service/task.go b/service/task.go
index ec9f3f3..66bf691 100644
--- a/service/task.go
+++ b/service/task.go
@@ -206,7 +206,14 @@
 
 // SaveTaskStatusSync 淇濆瓨浠诲姟鍚屾淇℃伅
 func (slf TaskService) SaveTaskStatusSync(db *gorm.DB, record *model.TaskStatusSync) (err error) {
-	record.Ts = time.Now().Unix()
+	if record.IsProcessing {
+		record.StartTs = time.Now().Unix()
+	}
+	if record.IsFinish {
+		record.FinishTs = time.Now().Unix()
+		startedRecord, _ := model.NewTaskStatusSyncSearch(db).SetProductProcedureId(record.ProductProcedureID).SetWorkOrderId(record.WorkOrderId).First()
+		record.StartTs = startedRecord.StartTs
+	}
 	return model.NewTaskStatusSyncSearch(db).Create(record)
 }
 

--
Gitblit v1.8.0