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