| | |
| | | return &TaskService{} |
| | | } |
| | | |
| | | type TaskMode int |
| | | |
| | | const ( |
| | | TaskModeUnStarted TaskMode = 1 //未开始的 |
| | | TaskModeCurrent TaskMode = 2 |
| | | TaskModeLastFinished TaskMode = 3 //上一个结束的 |
| | | ) |
| | | |
| | | // GetTask 获取任务,未完成的开始时间小于等于当前时间,结束时间大于当前时间的任务 |
| | | func (slf TaskService) GetTask(page, pageSize int) (taskResp *response.TaskResponse, code int) { |
| | | func (slf TaskService) GetTask(page, pageSize int, mode TaskMode) (taskResp *response.TaskResponse, code int) { |
| | | var taskList []*response.TaskData |
| | | var count int64 |
| | | var workers []*common.ProcedureWorker |
| | |
| | | procedures []*model.Procedures |
| | | workOrderIds []string |
| | | ) |
| | | procedures, err = model.NewProceduresSearch(nil).SetOrder("start_time asc"). |
| | | SetStartTimeMax(nowTs). |
| | | SetEndTimeMin(nowTs). |
| | | search := model.NewProceduresSearch(nil). |
| | | SetDeviceId(conf.Conf.System.DeviceId). |
| | | SetStatusNot(model.ProcedureStatusFinished). |
| | | SetPage(page, pageSize). |
| | | SetOrder("status desc"). |
| | | FindNotTotal() |
| | | SetPage(page, pageSize) |
| | | |
| | | if mode == TaskModeUnStarted { |
| | | search.SetStatus(model.ProcedureStatusWaitProcess). |
| | | SetStartTimeMax(nowTs). |
| | | SetEndTimeMin(nowTs). |
| | | SetOrder("start_time asc") |
| | | } else if mode == TaskModeCurrent { |
| | | search.SetStatusNot(model.ProcedureStatusFinished). |
| | | SetStartTimeMax(nowTs). |
| | | SetEndTimeMin(nowTs). |
| | | SetOrder("start_time asc, status desc") |
| | | } else if mode == TaskModeLastFinished { |
| | | search.SetStatus(model.ProcedureStatusFinished).SetOrder("updated_at desc") |
| | | } |
| | | |
| | | procedures, err = search.FindNotTotal() |
| | | if err != nil { |
| | | return nil, ecode.DBErr |
| | | } |
| | | count, err = model.NewProceduresSearch(nil). |
| | | SetDeviceId(conf.Conf.System.DeviceId). |
| | | SetStatusNot(model.ProcedureStatusFinished). |
| | | Count() |
| | | count, err = search.Count() |
| | | if err != nil { |
| | | return nil, ecode.DBErr |
| | | } |