From 40a8157440e3b906da8f52e07d939d78c3f4c313 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期日, 12 四月 2026 16:14:06 +0800
Subject: [PATCH] feat: 任务增加统计、同步增加通知
---
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTaskService.java | 136 +++++++++++++++++++++++++++++++++++++++++---
1 files changed, 125 insertions(+), 11 deletions(-)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTaskService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTaskService.java
index a4c900b..21f81b5 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTaskService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTaskService.java
@@ -2,15 +2,13 @@
import java.util.Date;
import java.util.List;
+
+import com.ruoyi.system.domain.vo.*;
import org.springframework.web.multipart.MultipartFile;
import com.ruoyi.system.domain.SysTask;
import com.ruoyi.system.domain.SysTaskLog;
import com.ruoyi.system.domain.SysTaskVehicle;
import com.ruoyi.system.domain.SysTaskAttachment;
-import com.ruoyi.system.domain.vo.TaskQueryVO;
-import com.ruoyi.system.domain.vo.TaskCreateVO;
-import com.ruoyi.system.domain.vo.TaskUpdateVO;
-import com.ruoyi.system.domain.vo.TaskStatisticsVO;
import com.ruoyi.system.domain.enums.TaskStatus;
/**
@@ -20,7 +18,16 @@
* @date 2024-01-15
*/
public interface ISysTaskService {
-
+
+ public Boolean dispatchSyncEvent(Long taskId);
+
+ /**
+ * 鍒ゆ柇浠诲姟鏄惁鎬婚儴鎺ㄩ��
+ * @param taskCreatorId
+ * @param taskDeptId
+ * @return
+ */
+ public Boolean isTaskHeaderPush(Long taskCreatorId,Long taskDeptId);
/**
* 鏌ヨ浠诲姟绠$悊
*
@@ -38,24 +45,43 @@
public List<SysTask> selectSysTaskList(TaskQueryVO queryVO);
/**
+ * 鏍规嵁浠诲姟缂栧彿銆佽皟搴﹀崟缂栧彿鎴栨湇鍔″崟缂栧彿鏌ヨ浠诲姟鍒楄〃
+ *
+ * @param queryVO 浠诲姟鏌ヨ瀵硅薄
+ * @param taskCode 浠诲姟缂栧彿
+ * @return 浠诲姟绠$悊闆嗗悎
+ */
+ public List<SysTask> selectSysTaskListByMultiCode(TaskQueryVO queryVO, String taskCode);
+
+ /**
* 鏂板浠诲姟绠$悊
*
* @param createVO 浠诲姟鍒涘缓瀵硅薄
* @return 缁撴灉
*/
- public int insertSysTask(TaskCreateVO createVO);
+ /**
+ * 鏂板浠诲姟
+ *
+ * @param createVO 浠诲姟鍒涘缓淇℃伅
+ * @return 浠诲姟ID
+ */
+ public Long insertSysTask(TaskCreateVO createVO);
/**
* 鏂板浠诲姟绠$悊锛堝厑璁镐粠澶栭儴浼犲叆鐢ㄦ埛淇℃伅銆侀儴闂ㄤ俊鎭拰鏃堕棿淇℃伅锛�
*
* @param createVO 浠诲姟鍒涘缓瀵硅薄
+ * @param serviceOrderId 鏈嶅姟鍗旾D
+ * @param dispatchOrderId 璋冨害鍗旾D
+ * @param serviceOrdNo 鏈嶅姟鍗曠紪鍙�
* @param userId 鐢ㄦ埛ID
+ * @param userName 鐢ㄦ埛鍚嶇О
* @param deptId 閮ㄩ棬ID
* @param createTime 鍒涘缓鏃堕棿
* @param updateTime 鏇存柊鏃堕棿
- * @return 缁撴灉
+ * @return 浠诲姟ID
*/
- public int insertTask(TaskCreateVO createVO,String serviceOrderId,String dispatchOrderId, String serviceOrdNo, Long userId,String userName, Long deptId, Date createTime, Date updateTime);
+ public Long insertTask(TaskCreateVO createVO,Long serviceOrderId,Long dispatchOrderId, String serviceOrdNo, Long userId,String userName, Long deptId, Date createTime, Date updateTime);
/**
* 淇敼浠诲姟绠$悊
@@ -63,7 +89,22 @@
* @param updateVO 浠诲姟鏇存柊瀵硅薄
* @return 缁撴灉
*/
- public int updateSysTask(TaskUpdateVO updateVO);
+ public int updateSysTask(TaskUpdateVO updateVO,Boolean updateFromLegacy);
+
+ /**
+ * 淇敼浠诲姟绠$悊锛堝厑璁镐粠澶栭儴浼犲叆鐢ㄦ埛淇℃伅銆侀儴闂ㄤ俊鎭拰鏃堕棿淇℃伅锛� 鐢ㄤ簬浠庢棫绯荤粺涓悓姝ヨ繃鏉�
+ * @param updateVO
+ * @param serviceOrderId
+ * @param dispatchOrderId
+ * @param serviceOrdNo
+ * @param userId
+ * @param userName
+ * @param deptId
+ * @param createTime
+ * @param updateTime
+ * @return
+ */
+ public int updateTask(TaskUpdateVO updateVO, Long serviceOrderId, Long dispatchOrderId, String serviceOrdNo, Long userId, String userName, Long deptId, Date createTime, Date updateTime);
/**
* 鎵归噺鍒犻櫎浠诲姟绠$悊
@@ -94,6 +135,14 @@
public int changeTaskStatus(Long taskId, TaskStatus newStatus, String remark);
/**
+ * 寮哄埗瀹屾垚浠诲姟锛堟寚瀹氬疄闄呭紑濮嬫椂闂村拰缁撴潫鏃堕棿锛�
+ *
+ * @param task 浠诲姟淇℃伅锛堝寘鍚玹askId銆乼askStatus銆乤ctualStartTime銆乤ctualEndTime銆乺emark锛�
+ * @return 缁撴灉
+ */
+ public int forceCompleteTask(SysTask task);
+
+ /**
* 鍙樻洿浠诲姟鐘舵�侊紙鍚獹PS浣嶇疆淇℃伅锛�
*
* @param taskId 浠诲姟ID
@@ -104,6 +153,23 @@
*/
public int changeTaskStatusWithLocation(Long taskId, TaskStatus newStatus, String remark, SysTaskLog locationLog);
+ /**
+ * 淇濆瓨浠诲姟鍙栨秷淇℃伅锛堜粎闄愯浆杩愪换鍔★級
+ *
+ * @param taskId 浠诲姟ID
+ * @param cancelReason 鍙栨秷鍘熷洜锛堟暟鎹瓧鍏竧ask_cancel_reason鐨剉alue锛�
+ * @return 缁撴灉
+ */
+ public int saveCancelInfo(Long taskId, String cancelReason);
+
+ /**
+ * 淇濆瓨浠诲姟鍙栨秷淇℃伅锛堝惈鍙栨秷浜猴級
+ * @param taskId
+ * @param cancelReason
+ * @param cancelBy
+ * @return
+ */
+ public int saveCancel(Long taskId, String cancelReason,String cancelBy,Date cancelTime);
/**
* 涓婁紶浠诲姟闄勪欢
*
@@ -151,7 +217,7 @@
* @param remark 澶囨敞
* @return 缁撴灉
*/
- public int assignVehicleToTask(Long taskId, Long vehicleId, String remark);
+ public int assignVehicleToTask(Long taskId, Long vehicleId, String remark,Long userId,String userName);
/**
* 鍙栨秷浠诲姟杞﹁締鍒嗛厤
@@ -170,7 +236,7 @@
* @param remark 澶囨敞
* @return 缁撴灉
*/
- public int assignMultipleVehiclesToTask(Long taskId, List<Long> vehicleIds, String remark);
+ public int assignMultipleVehiclesToTask(Long taskId, List<Long> vehicleIds, String remark,Long userId,String userName);
/**
* 鏌ヨ浠诲姟鍏宠仈鐨勮溅杈�
@@ -260,4 +326,52 @@
*/
public boolean existsByLegacyDispatchOrdId(Long legacyDispatchOrdId);
+ /**
+ * 妫�鏌ヤ换鍔℃槸鍚﹀彲浠ュ嚭鍙�
+ * 妫�鏌ワ細
+ * 1. 杞﹁締鏄惁鏈夋湭瀹屾垚鐨勪换鍔�
+ * 2. 鎵ц浜哄憳鏄惁鏈夋湭瀹屾垚鐨勪换鍔�
+ *
+ * @param taskId 浠诲姟ID
+ * @return AjaxResult 鏍¢獙缁撴灉锛屽寘鍚� valid 鍜� conflicts 淇℃伅
+ */
+ public com.ruoyi.common.core.domain.AjaxResult checkTaskCanDepart(Long taskId);
+
+ /**
+ * 鎵ц浜虹偣鍑诲氨缁�
+ *
+ * @param taskId 浠诲姟ID
+ * @param userId 鐢ㄦ埛ID
+ * @return 缁撴灉
+ */
+ public com.ruoyi.common.core.domain.AjaxResult setAssigneeReady(Long taskId, Long userId);
+
+ /**
+ * 鍙栨秷鎵ц浜哄氨缁�
+ *
+ * @param taskId 浠诲姟ID
+ * @param userId 鐢ㄦ埛ID
+ * @return 缁撴灉
+ */
+ public com.ruoyi.common.core.domain.AjaxResult cancelAssigneeReady(Long taskId, Long userId);
+
+ /**
+ * 妫�鏌ヤ换鍔℃槸鍚﹂噸澶嶏紙鏍规嵁鑱旂郴浜虹數璇濆拰鍒涘缓鏃ユ湡锛�
+ *
+ * @param phone 鑱旂郴浜虹數璇�
+ * @param createDate 浠诲姟鍒涘缓鏃ユ湡锛堟牸寮忥細YYYY-MM-DD锛�
+ * @return true-瀛樺湪閲嶅锛宖alse-涓嶉噸澶�
+ */
+ public boolean checkTaskDuplicate(String phone, String createDate);
+
+ /**
+ * 鎸夊垎鍏徃鎸夊ぉ缁熻褰曞崟鏁伴噺
+ *
+ * @param deptIds 鍒嗗叕鍙窱D鍒楄〃锛堜负null鎴栫┖鏃舵煡鍏ㄩ儴锛�
+ * @param startDate 寮�濮嬫棩鏈燂紝yyyy-MM-dd
+ * @param endDate 缁撴潫鏃ユ湡锛寉yyy-MM-dd
+ * @return 缁熻缁撴灉鍒楄〃
+ */
+ List<DeptOrderStatVO> selectDeptOrderStat(List<Long> deptIds, String startDate, String endDate);
+
}
--
Gitblit v1.9.1