From 2c86a8bd60deed0dd0e044bad6fb83f75d19a332 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期日, 26 十月 2025 15:05:50 +0800
Subject: [PATCH] Merge branch 'feature-task'

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTaskService.java |  186 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 186 insertions(+), 0 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
new file mode 100644
index 0000000..362d630
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTaskService.java
@@ -0,0 +1,186 @@
+package com.ruoyi.system.service;
+
+import java.util.List;
+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;
+
+/**
+ * 浠诲姟绠$悊Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2024-01-15
+ */
+public interface ISysTaskService {
+    
+    /**
+     * 鏌ヨ浠诲姟绠$悊
+     * 
+     * @param taskId 浠诲姟绠$悊涓婚敭
+     * @return 浠诲姟绠$悊
+     */
+    public SysTask selectSysTaskByTaskId(Long taskId);
+
+    /**
+     * 鏌ヨ浠诲姟绠$悊鍒楄〃
+     * 
+     * @param queryVO 浠诲姟鏌ヨ瀵硅薄
+     * @return 浠诲姟绠$悊闆嗗悎
+     */
+    public List<SysTask> selectSysTaskList(TaskQueryVO queryVO);
+
+    /**
+     * 鏂板浠诲姟绠$悊
+     * 
+     * @param createVO 浠诲姟鍒涘缓瀵硅薄
+     * @return 缁撴灉
+     */
+    public int insertSysTask(TaskCreateVO createVO);
+
+    /**
+     * 淇敼浠诲姟绠$悊
+     * 
+     * @param updateVO 浠诲姟鏇存柊瀵硅薄
+     * @return 缁撴灉
+     */
+    public int updateSysTask(TaskUpdateVO updateVO);
+
+    /**
+     * 鎵归噺鍒犻櫎浠诲姟绠$悊
+     * 
+     * @param taskIds 闇�瑕佸垹闄ょ殑浠诲姟绠$悊涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteSysTaskByTaskIds(Long[] taskIds);
+
+    /**
+     * 鍒嗛厤浠诲姟
+     * 
+     * @param taskId 浠诲姟ID
+     * @param assigneeId 鎵ц浜篒D
+     * @param remark 澶囨敞
+     * @return 缁撴灉
+     */
+    public int assignTask(Long taskId, Long assigneeId, String remark);
+
+    /**
+     * 鍙樻洿浠诲姟鐘舵��
+     * 
+     * @param taskId 浠诲姟ID
+     * @param newStatus 鏂扮姸鎬�
+     * @param remark 澶囨敞
+     * @return 缁撴灉
+     */
+    public int changeTaskStatus(Long taskId, TaskStatus newStatus, String remark);
+
+    /**
+     * 鍙樻洿浠诲姟鐘舵�侊紙鍚獹PS浣嶇疆淇℃伅锛�
+     * 
+     * @param taskId 浠诲姟ID
+     * @param newStatus 鏂扮姸鎬�
+     * @param remark 澶囨敞
+     * @param locationLog GPS浣嶇疆淇℃伅鏃ュ織瀵硅薄
+     * @return 缁撴灉
+     */
+    public int changeTaskStatusWithLocation(Long taskId, TaskStatus newStatus, String remark, SysTaskLog locationLog);
+
+    /**
+     * 涓婁紶浠诲姟闄勪欢
+     * 
+     * @param taskId 浠诲姟ID
+     * @param file 鏂囦欢
+     * @return 缁撴灉
+     */
+    public int uploadAttachment(Long taskId, MultipartFile file);
+
+    /**
+     * 鍒犻櫎浠诲姟闄勪欢
+     * 
+     * @param attachmentId 闄勪欢ID
+     * @return 缁撴灉
+     */
+    public int deleteAttachment(Long attachmentId);
+
+    /**
+     * 鍒嗛厤杞﹁締缁欎换鍔�
+     * 
+     * @param taskId 浠诲姟ID
+     * @param vehicleId 杞﹁締ID
+     * @param remark 澶囨敞
+     * @return 缁撴灉
+     */
+    public int assignVehicleToTask(Long taskId, Long vehicleId, String remark);
+
+    /**
+     * 鍙栨秷浠诲姟杞﹁締鍒嗛厤
+     * 
+     * @param taskId 浠诲姟ID
+     * @param vehicleId 杞﹁締ID
+     * @return 缁撴灉
+     */
+    public int unassignVehicleFromTask(Long taskId, Long vehicleId);
+
+    /**
+     * 鎵归噺鍒嗛厤杞﹁締缁欎换鍔�
+     * 
+     * @param taskId 浠诲姟ID
+     * @param vehicleIds 杞﹁締ID鍒楄〃
+     * @param remark 澶囨敞
+     * @return 缁撴灉
+     */
+    public int assignMultipleVehiclesToTask(Long taskId, List<Long> vehicleIds, String remark);
+
+    /**
+     * 鏌ヨ浠诲姟鍏宠仈鐨勮溅杈�
+     * 
+     * @param taskId 浠诲姟ID
+     * @return 浠诲姟杞﹁締鍏宠仈鍒楄〃
+     */
+    public List<SysTaskVehicle> getTaskVehicles(Long taskId);
+
+    /**
+     * 鏌ヨ鍙敤杞﹁締
+     * 
+     * @param deptId 閮ㄩ棬ID
+     * @param taskType 浠诲姟绫诲瀷
+     * @return 鍙敤杞﹁締鍒楄〃
+     */
+    public List<SysTaskVehicle> getAvailableVehicles(Long deptId, String taskType);
+
+    /**
+     * 鏌ヨ浠诲姟缁熻淇℃伅
+     * 
+     * @return 浠诲姟缁熻淇℃伅
+     */
+    public TaskStatisticsVO getTaskStatistics();
+
+    /**
+     * 鏌ヨ瓒呮椂浠诲姟鍒楄〃
+     * 
+     * @return 瓒呮椂浠诲姟鍒楄〃
+     */
+    public List<SysTask> selectOverdueTasks();
+
+    /**
+     * 鏌ヨ鎴戠殑浠诲姟鍒楄〃
+     * 
+     * @param userId 鐢ㄦ埛ID
+     * @return 鎴戠殑浠诲姟鍒楄〃
+     */
+    public List<SysTask> selectMyTasks(Long userId);
+
+    /**
+     * 鑾峰彇浠诲姟璇︽儏锛堝寘鍚叧鑱旀暟鎹級
+     * 
+     * @param taskId 浠诲姟ID
+     * @return 浠诲姟璇︽儏
+     */
+    public SysTask getTaskDetail(Long taskId);
+}

--
Gitblit v1.9.1