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 | 38 ++++++++++++++++++++++++++++++++++---- 1 files changed, 34 insertions(+), 4 deletions(-) diff --git a/service/task.go b/service/task.go index adb83c1..8c810fd 100644 --- a/service/task.go +++ b/service/task.go @@ -1,6 +1,7 @@ package service import ( + "apsClient/conf" "apsClient/constvar" "apsClient/model" "apsClient/model/common" @@ -8,6 +9,7 @@ "apsClient/model/response" "apsClient/pkg/ecode" "apsClient/pkg/logx" + "apsClient/pkg/timex" "fmt" "github.com/jinzhu/gorm" "time" @@ -130,9 +132,21 @@ 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(channel) + ProgressCacheUnset(conf.Conf.CurrentDeviceID, channel) } upMap := map[string]interface{}{"status": status} @@ -172,6 +186,9 @@ logx.Errorf("TaskStart GetProcessModel err:%v", err) return nil, err } + if err == gorm.ErrRecordNotFound { + return nil, err + } if err == nil { return data, nil } @@ -189,17 +206,30 @@ // 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 desc").SetPage(1, limit).FindNotTotal() + return model.NewTaskStatusSyncSearch(nil).SetOrder("id asc").SetSyncWait().SetPage(1, limit).FindNotTotal() } // RemoveTaskStatusSync 鍒犻櫎鍚屾瀹岀殑璁板綍 func (slf TaskService) RemoveTaskStatusSync(ids []uint) (err error) { 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 @@ -222,12 +252,12 @@ search := model.NewProceduresSearch(nil). SetDeviceId(deviceID). SetOffset(offset, limit).SetChannels(channels) - nowTs := time.Now().Unix() + todayStartTs := timex.TodayStartTs() switch queryType { case request.QueryTypeUnFinish: search.SetStatusNot(model.ProcedureStatusFinished).SetOrder("status desc, start_time asc") case request.QueryTypeToday: - search.SetStatusNot(model.ProcedureStatusFinished).SetStartTimeMin(nowTs).SetEndTimeMax(nowTs + 86400).SetOrder("status desc, start_time asc") + search.SetStatusNot(model.ProcedureStatusFinished).SetStartTimeMin(todayStartTs).SetEndTimeMax(todayStartTs + 86400).SetOrder("status desc, start_time asc") case request.QueryTypeFinished: search.SetStatus(model.ProcedureStatusFinished).SetOrder("start_time desc") } -- Gitblit v1.8.0