From 7788cb0ea88354718b2ad04ac29aea24e0b64911 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期五, 22 九月 2023 20:19:29 +0800
Subject: [PATCH] 增加当前时间可以开始但是未开始的任务接口,增加是否可以开始字段

---
 service/task.go |   40 ++++++++++++++++++++++++++++------------
 1 files changed, 28 insertions(+), 12 deletions(-)

diff --git a/service/task.go b/service/task.go
index 944d0e0..df0002e 100644
--- a/service/task.go
+++ b/service/task.go
@@ -23,8 +23,16 @@
 	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
@@ -35,21 +43,29 @@
 		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
 	}

--
Gitblit v1.8.0