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