| | |
| | | ) |
| | | |
| | | // GetTask 获取任务,未完成的开始时间小于等于当前时间,结束时间大于当前时间的任务 |
| | | func (slf TaskService) GetTask(page, pageSize int, mode TaskMode) (taskResp *response.TaskResponse, code int) { |
| | | func (slf TaskService) GetTask(page, pageSize int, mode TaskMode, channels []int32) (taskResp *response.TaskResponse, code int) { |
| | | var taskList []*response.TaskData |
| | | var count int64 |
| | | var workers []*common.ProcedureWorker |
| | | |
| | | taskResp = &response.TaskResponse{ |
| | | Tasks: taskList, |
| | | TaskCount: count, |
| | | Workers: slf.WorkerDistinct(workers), |
| | | } |
| | | |
| | | nowTs := time.Now().Unix() |
| | | var ( |
| | | err error |
| | |
| | | search.SetStatusNot(model.ProcedureStatusFinished). |
| | | SetStartTimeMax(nowTs). |
| | | SetEndTimeMin(nowTs). |
| | | SetOrder("start_time asc, status desc") |
| | | SetOrder("status desc, start_time asc") |
| | | } else if mode == TaskModeLastFinished { |
| | | search.SetStatus(model.ProcedureStatusFinished).SetOrder("updated_at desc") |
| | | if len(channels) > 0 { |
| | | search.SetChannels(channels) |
| | | } |
| | | } |
| | | |
| | | procedures, err = search.FindNotTotal() |
| | | if err != nil { |
| | | return nil, ecode.DBErr |
| | | return taskResp, ecode.DBErr |
| | | } |
| | | count, err = search.Count() |
| | | if err != nil { |
| | | return nil, ecode.DBErr |
| | | return taskResp, ecode.DBErr |
| | | } |
| | | if len(procedures) == 0 { |
| | | return nil, ecode.OK |
| | | return taskResp, ecode.OK |
| | | } |
| | | |
| | | for _, procedure := range procedures { |
| | |
| | | } |
| | | orders, err = model.NewOrderSearch(nil).SetWorkOrderIds(workOrderIds).FindNotTotal() //由工序反推工单 |
| | | if err != nil { |
| | | return nil, ecode.DBErr |
| | | return taskResp, ecode.DBErr |
| | | } |
| | | |
| | | orderMap := make(map[string]*model.Order, len(workOrderIds)) |