From 5f2ee03958a1a16dc27195c76ea7cffb422c95d1 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期五, 19 十二月 2025 22:40:34 +0800
Subject: [PATCH] feat: 任务修改接口,删除一些不要的字段同步

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskVehicleServiceImpl.java |  285 +++++++++++++++++++++++++++++---------------------------
 1 files changed, 146 insertions(+), 139 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskVehicleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskVehicleServiceImpl.java
index 9cbaeb1..6f3a6d7 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskVehicleServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskVehicleServiceImpl.java
@@ -1,48 +1,31 @@
 package com.ruoyi.system.service.impl;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.system.domain.SysTaskVehicle;
+import com.ruoyi.system.domain.VehicleInfo;
+import com.ruoyi.system.mapper.SysTaskVehicleMapper;
+import com.ruoyi.system.mapper.VehicleInfoMapper;
+import com.ruoyi.system.service.ISysTaskVehicleService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.system.mapper.SysTaskVehicleMapper;
-import com.ruoyi.system.mapper.VehicleInfoMapper;
-import com.ruoyi.system.domain.SysTaskVehicle;
-import com.ruoyi.system.domain.VehicleInfo;
-import com.ruoyi.system.service.ISysTaskVehicleService;
+
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
- * 浠诲姟杞﹁締鍏宠仈Service涓氬姟灞傚鐞�
+ * 浠诲姟杞﹁締鏈嶅姟瀹炵幇绫�
  * 
  * @author ruoyi
- * @date 2024-01-15
  */
 @Service
 public class SysTaskVehicleServiceImpl implements ISysTaskVehicleService {
-    
-    private static final Logger logger = LoggerFactory.getLogger(SysTaskVehicleServiceImpl.class);
-    
+
     @Autowired
     private SysTaskVehicleMapper sysTaskVehicleMapper;
-    
+
     @Autowired
     private VehicleInfoMapper vehicleInfoMapper;
-
-    /**
-     * 鏌ヨ浠诲姟杞﹁締鍏宠仈
-     * 
-     * @param id 浠诲姟杞﹁締鍏宠仈涓婚敭
-     * @return 浠诲姟杞﹁締鍏宠仈
-     */
-    @Override
-    public SysTaskVehicle selectSysTaskVehicleById(Long id) {
-        return sysTaskVehicleMapper.selectSysTaskVehicleById(id);
-    }
 
     /**
      * 鏌ヨ浠诲姟杞﹁締鍏宠仈鍒楄〃
@@ -53,6 +36,17 @@
     @Override
     public List<SysTaskVehicle> selectSysTaskVehicleList(SysTaskVehicle sysTaskVehicle) {
         return sysTaskVehicleMapper.selectSysTaskVehicleList(sysTaskVehicle);
+    }
+
+    /**
+     * 鏌ヨ浠诲姟杞﹁締鍏宠仈淇℃伅
+     * 
+     * @param id 浠诲姟杞﹁締鍏宠仈涓婚敭
+     * @return 浠诲姟杞﹁締鍏宠仈淇℃伅
+     */
+    @Override
+    public SysTaskVehicle selectSysTaskVehicleById(Long id) {
+        return sysTaskVehicleMapper.selectSysTaskVehicleById(id);
     }
 
     /**
@@ -73,20 +67,7 @@
      * @return 缁撴灉
      */
     @Override
-    @Transactional
     public int insertSysTaskVehicle(SysTaskVehicle sysTaskVehicle) {
-        // 璁剧疆鍒嗛厤鏃堕棿鍜屽垎閰嶄汉
-        if (sysTaskVehicle.getAssignTime() == null) {
-            sysTaskVehicle.setAssignTime(DateUtils.getNowDate());
-        }
-        if (sysTaskVehicle.getAssignBy() == null || sysTaskVehicle.getAssignBy().isEmpty()) {
-            sysTaskVehicle.setAssignBy(SecurityUtils.getUsername());
-        }
-        // 璁剧疆榛樿鐘舵��
-        if (sysTaskVehicle.getStatus() == null || sysTaskVehicle.getStatus().isEmpty()) {
-            sysTaskVehicle.setStatus("ASSIGNED");
-        }
-        sysTaskVehicle.setCreateTime(DateUtils.getNowDate());
         return sysTaskVehicleMapper.insertSysTaskVehicle(sysTaskVehicle);
     }
 
@@ -97,22 +78,8 @@
      * @return 缁撴灉
      */
     @Override
-    @Transactional
     public int updateSysTaskVehicle(SysTaskVehicle sysTaskVehicle) {
-        sysTaskVehicle.setUpdateTime(DateUtils.getNowDate());
         return sysTaskVehicleMapper.updateSysTaskVehicle(sysTaskVehicle);
-    }
-
-    /**
-     * 鎵归噺鍒犻櫎浠诲姟杞﹁締鍏宠仈
-     * 
-     * @param ids 闇�瑕佸垹闄ょ殑浠诲姟杞﹁締鍏宠仈涓婚敭
-     * @return 缁撴灉
-     */
-    @Override
-    @Transactional
-    public int deleteSysTaskVehicleByIds(Long[] ids) {
-        return sysTaskVehicleMapper.deleteSysTaskVehicleByIds(ids);
     }
 
     /**
@@ -122,71 +89,135 @@
      * @return 缁撴灉
      */
     @Override
-    @Transactional
     public int deleteSysTaskVehicleById(Long id) {
         return sysTaskVehicleMapper.deleteSysTaskVehicleById(id);
     }
 
     /**
-     * 鏍规嵁浠诲姟ID鍒犻櫎杞﹁締鍏宠仈
+     * 鎵归噺鍒犻櫎浠诲姟杞﹁締鍏宠仈淇℃伅
      * 
-     * @param taskId 浠诲姟ID
+     * @param ids 闇�瑕佸垹闄ょ殑涓婚敭闆嗗悎
      * @return 缁撴灉
      */
     @Override
-    @Transactional
-    public int deleteSysTaskVehicleByTaskId(Long taskId) {
-        return sysTaskVehicleMapper.deleteSysTaskVehicleByTaskId(taskId);
+    public int deleteSysTaskVehicleByIds(Long[] ids) {
+        return sysTaskVehicleMapper.deleteSysTaskVehicleByIds(ids);
     }
 
     /**
-     * 鏍规嵁浠诲姟ID鍜岃溅杈咺D鍒犻櫎鍏宠仈
+     * 鏇存柊浠诲姟杞﹁締鍏宠仈鐘舵��
      * 
-     * @param taskId 浠诲姟ID
-     * @param vehicleId 杞﹁締ID
+     * @param id 浠诲姟杞﹁締鍏宠仈涓婚敭
+     * @param status 鐘舵��
      * @return 缁撴灉
      */
     @Override
-    @Transactional
-    public int deleteSysTaskVehicleByTaskIdAndVehicleId(Long taskId, Long vehicleId) {
-        return sysTaskVehicleMapper.deleteSysTaskVehicleByTaskIdAndVehicleId(taskId, vehicleId);
+    public int updateSysTaskVehicleStatus(Long id, String status) {
+        SysTaskVehicle taskVehicle = new SysTaskVehicle();
+        taskVehicle.setId(id);
+        taskVehicle.setStatus(status);
+        taskVehicle.setUpdateTime(DateUtils.getNowDate());
+        return sysTaskVehicleMapper.updateSysTaskVehicle(taskVehicle);
     }
 
     /**
-     * 妫�鏌ヤ换鍔¤溅杈嗗叧鑱旀槸鍚﹀瓨鍦�
+     * 鎵归噺鑾峰彇杞﹁締褰撳墠浠诲姟鐘舵��
      * 
-     * @param taskId 浠诲姟ID
-     * @param vehicleId 杞﹁締ID
-     * @return 缁撴灉
+     * @param vehicleIds 杞﹁締ID鍒楄〃
+     * @return 杞﹁締浠诲姟鐘舵�佹槧灏�
      */
     @Override
-    public int checkTaskVehicleExists(Long taskId, Long vehicleId) {
-        return sysTaskVehicleMapper.checkTaskVehicleExists(taskId, vehicleId);
+    public Map<Long, Map<String, Object>> batchGetVehicleCurrentTaskStatus(List<Long> vehicleIds) {
+        Map<Long, Map<String, Object>> statusMap = new HashMap<>();
+        
+        if (vehicleIds != null && !vehicleIds.isEmpty()) {
+            // 杩欓噷鍙互鏍规嵁瀹為檯闇�姹傛煡璇㈣溅杈嗙殑褰撳墠浠诲姟鐘舵��
+            // 鐢变簬缂轰箯鍏蜂綋鐨勪笟鍔¢�昏緫锛岃繖閲岀畝鍗曡繑鍥炵┖鏄犲皠
+            for (Long vehicleId : vehicleIds) {
+                Map<String, Object> statusInfo = new HashMap<>();
+                statusInfo.put("vehicleId", vehicleId);
+                statusInfo.put("currentTaskId", null);
+                statusInfo.put("currentTaskStatus", "AVAILABLE");
+                statusInfo.put("lastUpdateTime", DateUtils.getNowDate());
+                statusMap.put(vehicleId, statusInfo);
+            }
+        }
+        
+        return statusMap;
     }
 
-    /**
-     * 鎵归噺鏂板浠诲姟杞﹁締鍏宠仈
-     * 
-     * @param sysTaskVehicleList 浠诲姟杞﹁締鍏宠仈鍒楄〃
-     * @return 缁撴灉
-     */
     @Override
     @Transactional
-    public int batchInsertSysTaskVehicle(List<SysTaskVehicle> sysTaskVehicleList) {
-        return sysTaskVehicleMapper.batchInsertSysTaskVehicle(sysTaskVehicleList);
+    public void saveTaskVehicles(Long taskId, List<Long> vehicleIds, String userName) {
+        saveTaskVehicles(taskId, vehicleIds, userName, 
+            DateUtils.getNowDate(), DateUtils.getNowDate(), DateUtils.getNowDate());
     }
 
-    /**
-     * 鍒嗛厤杞﹁締缁欎换鍔�
-     * 
-     * @param taskId 浠诲姟ID
-     * @param vehicleId 杞﹁締ID
-     * @param remark 澶囨敞
-     * @return 缁撴灉
-     */
     @Override
     @Transactional
-    public int assignVehicleToTask(Long taskId, Long vehicleId, String remark) {
+    public void saveTaskVehicles(Long taskId, List<Long> vehicleIds, String userName,
+                                  Date assignTime, Date createTime, Date updateTime) {
+        if (vehicleIds == null || vehicleIds.isEmpty()) {
+            return;
+        }
+        
+        for (Long vehicleId : vehicleIds) {
+            SysTaskVehicle taskVehicle = new SysTaskVehicle();
+            taskVehicle.setTaskId(taskId);
+            taskVehicle.setVehicleId(vehicleId);
+            taskVehicle.setAssignTime(assignTime);
+            taskVehicle.setAssignBy(userName);
+            taskVehicle.setStatus("ASSIGNED");
+            taskVehicle.setCreateBy(userName);
+            taskVehicle.setCreateTime(createTime);
+            taskVehicle.setUpdateBy(userName);
+            taskVehicle.setUpdateTime(updateTime);
+            
+            sysTaskVehicleMapper.insertSysTaskVehicle(taskVehicle);
+        }
+    }
+
+    @Override
+    @Transactional
+    public boolean updateTaskVehicles(Long taskId, List<Long> newVehicleIds, String userName) {
+        if (newVehicleIds == null || newVehicleIds.isEmpty()) {
+            return false;
+        }
+        
+        // 鏌ヨ鐜版湁鐨勮溅杈嗗叧鑱�
+        List<SysTaskVehicle> existingVehicles = sysTaskVehicleMapper.selectSysTaskVehicleByTaskId(taskId);
+        List<Long> existingVehicleIds = existingVehicles.stream()
+            .map(SysTaskVehicle::getVehicleId)
+            .collect(Collectors.toList());
+        
+        // 姣旇緝鏂版棫杞﹁締ID鍒楄〃锛屽垽鏂槸鍚︽湁鍙樺寲
+        boolean vehiclesChanged = !new HashSet<>(existingVehicleIds).equals(new HashSet<>(newVehicleIds));
+        
+        // 鍙湁杞﹁締鍙戠敓鍙樺寲鏃舵墠鏇存柊
+        if (vehiclesChanged) {
+            // 鍒犻櫎鏃х殑杞﹁締鍏宠仈
+            sysTaskVehicleMapper.deleteSysTaskVehicleByTaskId(taskId);
+            
+            // 娣诲姞鏂扮殑杞﹁締鍏宠仈
+            Date now = DateUtils.getNowDate();
+            for (Long vehicleId : newVehicleIds) {
+                SysTaskVehicle taskVehicle = new SysTaskVehicle();
+                taskVehicle.setTaskId(taskId);
+                taskVehicle.setVehicleId(vehicleId);
+                taskVehicle.setAssignTime(now);
+                taskVehicle.setAssignBy(userName);
+                taskVehicle.setCreateTime(now);
+                sysTaskVehicleMapper.insertSysTaskVehicle(taskVehicle);
+            }
+            return true;
+        }
+        
+        return false;
+    }
+
+    @Override
+    @Transactional
+    public int assignVehicleToTask(Long taskId, Long vehicleId, String remark, Long userId, String userName) {
         // 妫�鏌ユ槸鍚﹀凡缁忓垎閰�
         int exists = sysTaskVehicleMapper.checkTaskVehicleExists(taskId, vehicleId);
         if (exists > 0) {
@@ -197,40 +228,25 @@
         taskVehicle.setTaskId(taskId);
         taskVehicle.setVehicleId(vehicleId);
         taskVehicle.setAssignTime(DateUtils.getNowDate());
-        taskVehicle.setAssignBy(SecurityUtils.getUsername());
+        taskVehicle.setAssignBy(userName);
         taskVehicle.setStatus("ASSIGNED");
         taskVehicle.setRemark(remark);
         
         return sysTaskVehicleMapper.insertSysTaskVehicle(taskVehicle);
     }
 
-    /**
-     * 鍙栨秷浠诲姟杞﹁締鍒嗛厤
-     * 
-     * @param taskId 浠诲姟ID
-     * @param vehicleId 杞﹁締ID
-     * @return 缁撴灉
-     */
     @Override
     @Transactional
     public int unassignVehicleFromTask(Long taskId, Long vehicleId) {
         return sysTaskVehicleMapper.deleteSysTaskVehicleByTaskIdAndVehicleId(taskId, vehicleId);
     }
 
-    /**
-     * 鎵归噺鍒嗛厤杞﹁締缁欎换鍔�
-     * 
-     * @param taskId 浠诲姟ID
-     * @param vehicleIds 杞﹁締ID鍒楄〃
-     * @param remark 澶囨敞
-     * @return 缁撴灉
-     */
     @Override
     @Transactional
-    public int assignMultipleVehiclesToTask(Long taskId, List<Long> vehicleIds, String remark) {
+    public int assignMultipleVehiclesToTask(Long taskId, List<Long> vehicleIds, String remark, 
+                                            Long userId, String userName) {
         List<SysTaskVehicle> taskVehicles = new ArrayList<>();
         Date now = DateUtils.getNowDate();
-        String assignBy = SecurityUtils.getUsername();
         
         for (Long vehicleId : vehicleIds) {
             // 妫�鏌ユ槸鍚﹀凡缁忓垎閰�
@@ -240,41 +256,39 @@
                 taskVehicle.setTaskId(taskId);
                 taskVehicle.setVehicleId(vehicleId);
                 taskVehicle.setAssignTime(now);
-                taskVehicle.setAssignBy(assignBy);
+                taskVehicle.setAssignBy(userName);
                 taskVehicle.setStatus("ASSIGNED");
                 taskVehicle.setRemark(remark);
                 taskVehicles.add(taskVehicle);
             }
         }
         
+        int result = 0;
         if (!taskVehicles.isEmpty()) {
-            return sysTaskVehicleMapper.batchInsertSysTaskVehicle(taskVehicles);
+            result = sysTaskVehicleMapper.batchInsertSysTaskVehicle(taskVehicles);
         }
         
-        return 0;
+        return result;
     }
 
-    /**
-     * 鏌ヨ鍙敤杞﹁締
-     * 
-     * @param deptId 閮ㄩ棬ID
-     * @param taskType 浠诲姟绫诲瀷
-     * @return 鍙敤杞﹁締鍒楄〃
-     */
+    @Override
+    public List<SysTaskVehicle> getTaskVehicles(Long taskId) {
+        return sysTaskVehicleMapper.selectSysTaskVehicleByTaskId(taskId);
+    }
+
     @Override
     public List<SysTaskVehicle> getAvailableVehicles(Long deptId, String taskType) {
-        // 鏌ヨ鎸囧畾閮ㄩ棬涓嬬姸鎬佷负姝e父鐨勮溅杈�
         List<SysTaskVehicle> availableVehicles = new ArrayList<>();
         
         try {
-            // 鏌ヨ杞﹁締淇℃伅
+            // 鏌ヨ鎵�鏈夌姸鎬佷负姝e父鐨勮溅杈�
             VehicleInfo queryParam = new VehicleInfo();
-            queryParam.setDeptId(deptId);
             queryParam.setStatus("0"); // 0琛ㄧず姝e父鐘舵��
+            queryParam.setDeptId(deptId);
             
             List<VehicleInfo> vehicles = vehicleInfoMapper.selectVehicleInfoList(queryParam);
             
-            // 杞崲涓� SysTaskVehicle 瀵硅薄
+            // 杞崲涓篠ysTaskVehicle瀵硅薄
             for (VehicleInfo vehicle : vehicles) {
                 SysTaskVehicle taskVehicle = new SysTaskVehicle();
                 taskVehicle.setVehicleId(vehicle.getVehicleId());
@@ -282,30 +296,23 @@
                 taskVehicle.setVehicleType(vehicle.getVehicleType());
                 taskVehicle.setVehicleBrand(vehicle.getVehicleBrand());
                 taskVehicle.setVehicleModel(vehicle.getVehicleModel());
-                taskVehicle.setStatus(vehicle.getStatus());
+                taskVehicle.setDeptName(vehicle.getDeptName());
                 availableVehicles.add(taskVehicle);
             }
         } catch (Exception e) {
-            logger.error("鏌ヨ鍙敤杞﹁締澶辫触", e);
+            System.err.println("鏌ヨ鍙敤杞﹁締澶辫触: " + e.getMessage());
         }
         
         return availableVehicles;
     }
 
-    /**
-     * 鏇存柊浠诲姟杞﹁締鍏宠仈鐘舵��
-     * 
-     * @param id 鍏宠仈ID
-     * @param status 鏂扮姸鎬�
-     * @return 缁撴灉
-     */
     @Override
-    @Transactional
-    public int updateTaskVehicleStatus(Long id, String status) {
-        SysTaskVehicle taskVehicle = new SysTaskVehicle();
-        taskVehicle.setId(id);
-        taskVehicle.setStatus(status);
-        taskVehicle.setUpdateTime(DateUtils.getNowDate());
-        return sysTaskVehicleMapper.updateSysTaskVehicle(taskVehicle);
+    public int deleteTaskVehiclesByTaskId(Long taskId) {
+        return sysTaskVehicleMapper.deleteSysTaskVehicleByTaskId(taskId);
+    }
+
+    @Override
+    public boolean checkVehicleAssigned(Long taskId, Long vehicleId) {
+        return sysTaskVehicleMapper.checkTaskVehicleExists(taskId, vehicleId) > 0;
     }
 }

--
Gitblit v1.9.1