From 2d6875c93b25d0b7336c7fa11e066d213259fe2e Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期四, 25 四月 2024 10:02:01 +0800
Subject: [PATCH] 更改定时任务时区设置

---
 service/task.go |   27 ++++++++++++++++++++++++++-
 1 files changed, 26 insertions(+), 1 deletions(-)

diff --git a/service/task.go b/service/task.go
index 323add1..8c810fd 100644
--- a/service/task.go
+++ b/service/task.go
@@ -132,6 +132,18 @@
 	return procedure, ecode.OK
 }
 
+func (slf TaskService) GetProcedureAndWorkOrder(procedureId uint) (procedure *model.Procedures, workOrder *model.Order, err error) {
+	procedure, err = model.NewProceduresSearch(nil).SetId(procedureId).First()
+	if err != nil {
+		return nil, nil, err
+	}
+	workOrder, err = model.NewOrderSearch(nil).SetWorkOrderId(procedure.WorkOrderID).First()
+	if err != nil {
+		return nil, nil, err
+	}
+	return procedure, workOrder, nil
+}
+
 func (slf TaskService) UpdateProcedureStatusAndChannel(db *gorm.DB, id uint, status model.ProcedureStatus, channel int32, processModelNumber string) error {
 	if status == model.ProcedureStatusFinished || status == model.ProcedureStatusWaitProcess {
 		ProgressCacheUnset(conf.Conf.CurrentDeviceID, channel)
@@ -194,12 +206,20 @@
 
 // SaveTaskStatusSync 淇濆瓨浠诲姟鍚屾淇℃伅
 func (slf TaskService) SaveTaskStatusSync(db *gorm.DB, record *model.TaskStatusSync) (err error) {
+	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)
 }
 
 // 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 鍒犻櫎鍚屾瀹岀殑璁板綍
@@ -207,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