From c6e38b6c66de5f5a8df5b8b2ab03a82c3b605db8 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期三, 03 十二月 2025 00:48:44 +0800
Subject: [PATCH] feat:优化同步

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskVehicleServiceImpl.java |  118 ++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 97 insertions(+), 21 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 b8e1c76..feab794 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
@@ -2,14 +2,22 @@
 
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 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.SysTaskMapper;
+import com.ruoyi.system.mapper.VehicleInfoMapper;
+import com.ruoyi.system.domain.SysTask;
 import com.ruoyi.system.domain.SysTaskVehicle;
+import com.ruoyi.system.domain.VehicleInfo;
 import com.ruoyi.system.service.ISysTaskVehicleService;
 
 /**
@@ -21,8 +29,16 @@
 @Service
 public class SysTaskVehicleServiceImpl implements ISysTaskVehicleService {
     
+    private static final Logger logger = LoggerFactory.getLogger(SysTaskVehicleServiceImpl.class);
+    
     @Autowired
     private SysTaskVehicleMapper sysTaskVehicleMapper;
+    
+    @Autowired
+    private VehicleInfoMapper vehicleInfoMapper;
+    
+    @Autowired
+    private SysTaskMapper sysTaskMapper;
 
     /**
      * 鏌ヨ浠诲姟杞﹁締鍏宠仈
@@ -255,29 +271,30 @@
     @Override
     public List<SysTaskVehicle> getAvailableVehicles(Long deptId, String taskType) {
         // 鏌ヨ鎸囧畾閮ㄩ棬涓嬬姸鎬佷负姝e父鐨勮溅杈�
-        // 杩欓噷闇�瑕佹牴鎹疄闄呯殑杞﹁締淇℃伅琛ㄧ粨鏋勬潵瀹炵幇
-        // 鏆傛椂杩斿洖绌哄垪琛紝瀹為檯瀹炵幇闇�瑕侊細
-        // 1. 鏌ヨ tb_vehicle_info 琛ㄤ腑 dept_id = deptId 涓� vehicle_status = '0' 鐨勮溅杈�
-        // 2. 鎺掗櫎宸茬粡鍒嗛厤缁欏叾浠栨湭瀹屾垚浠诲姟涓旂姸鎬佷负 ACTIVE 鐨勮溅杈�
-        // 3. 鏍规嵁浠诲姟绫诲瀷绛涢�夊悎閫傜殑杞﹁締绫诲瀷
-        
         List<SysTaskVehicle> availableVehicles = new ArrayList<>();
         
-        // TODO: 瀹炵幇鍏蜂綋鐨勬煡璇㈤�昏緫
-        // 绀轰緥浠g爜锛�
-        // 1. 鏌ヨ杞﹁締淇℃伅
-        // List<TbVehicleInfo> vehicles = vehicleInfoMapper.selectAvailableVehiclesByDept(deptId, taskType);
-        // 
-        // 2. 杞崲涓� SysTaskVehicle 瀵硅薄
-        // for (TbVehicleInfo vehicle : vehicles) {
-        //     SysTaskVehicle taskVehicle = new SysTaskVehicle();
-        //     taskVehicle.setVehicleId(vehicle.getVehicleId());
-        //     taskVehicle.setVehicleNo(vehicle.getVehicleNo());
-        //     taskVehicle.setVehicleType(vehicle.getVehicleType());
-        //     taskVehicle.setVehicleBrand(vehicle.getVehicleBrand());
-        //     taskVehicle.setVehicleModel(vehicle.getVehicleModel());
-        //     availableVehicles.add(taskVehicle);
-        // }
+        try {
+            // 鏌ヨ杞﹁締淇℃伅
+            VehicleInfo queryParam = new VehicleInfo();
+            queryParam.setDeptId(deptId);
+            queryParam.setStatus("0"); // 0琛ㄧず姝e父鐘舵��
+            
+            List<VehicleInfo> vehicles = vehicleInfoMapper.selectVehicleInfoList(queryParam);
+            
+            // 杞崲涓� SysTaskVehicle 瀵硅薄
+            for (VehicleInfo vehicle : vehicles) {
+                SysTaskVehicle taskVehicle = new SysTaskVehicle();
+                taskVehicle.setVehicleId(vehicle.getVehicleId());
+                taskVehicle.setVehicleNo(vehicle.getVehicleNo());
+                taskVehicle.setVehicleType(vehicle.getVehicleType());
+                taskVehicle.setVehicleBrand(vehicle.getVehicleBrand());
+                taskVehicle.setVehicleModel(vehicle.getVehicleModel());
+                taskVehicle.setStatus(vehicle.getStatus());
+                availableVehicles.add(taskVehicle);
+            }
+        } catch (Exception e) {
+            logger.error("鏌ヨ鍙敤杞﹁締澶辫触", e);
+        }
         
         return availableVehicles;
     }
@@ -298,4 +315,63 @@
         taskVehicle.setUpdateTime(DateUtils.getNowDate());
         return sysTaskVehicleMapper.updateSysTaskVehicle(taskVehicle);
     }
+
+    /**
+     * 鎵归噺鑾峰彇杞﹁締褰撳墠浠诲姟鐘舵��
+     * 
+     * @param vehicleIds 杞﹁締ID鍒楄〃
+     * @return Map<杞﹁締ID, Map<"taskCode": 浠诲姟缂栧彿, "taskStatus": 浠诲姟鐘舵��>>
+     */
+    @Override
+    public Map<Long, Map<String, Object>> batchGetVehicleCurrentTaskStatus(List<Long> vehicleIds) {
+        Map<Long, Map<String, Object>> resultMap = new HashMap<>();
+        
+        if (vehicleIds == null || vehicleIds.isEmpty()) {
+            return resultMap;
+        }
+        
+        try {
+            // 瀵规瘡涓溅杈嗘煡璇㈠叾褰撳墠姝e湪杩涜鐨勪换鍔�
+            for (Long vehicleId : vehicleIds) {
+                if (vehicleId == null) {
+                    continue;
+                }
+                
+                // 鏌ヨ杞﹁締鐨勬椿璺冧换鍔★紙鏈畬鎴愩�佹湭鍙栨秷鐨勪换鍔★級
+                List<SysTask> activeTasks = sysTaskMapper.selectActiveTasksByVehicleId(vehicleId);
+                
+                if (activeTasks != null && !activeTasks.isEmpty()) {
+                    // 鍙栫涓�涓椿璺冧换鍔★紙鏈�鏂扮殑锛�
+                    SysTask currentTask = activeTasks.get(0);
+                    
+                    Map<String, Object> taskInfo = new HashMap<>();
+                    taskInfo.put("taskCode", currentTask.getTaskCode());
+                    taskInfo.put("taskStatus", currentTask.getTaskStatus());
+                    taskInfo.put("taskId", currentTask.getTaskId());
+                    
+                    resultMap.put(vehicleId, taskInfo);
+                } else {
+                    // 娌℃湁娲昏穬浠诲姟
+                    resultMap.put(vehicleId, null);
+                }
+            }
+        } catch (Exception e) {
+            logger.error("鎵归噺鏌ヨ杞﹁締浠诲姟鐘舵�佸け璐�", e);
+        }
+        
+        return resultMap;
+    }
+
+    /**
+     * 鏇存柊浠诲姟杞﹁締鍏宠仈鐘舵�侊紙鏂版柟娉曪級
+     * 
+     * @param id 鍏宠仈ID
+     * @param status 鏂扮姸鎬�
+     * @return 缁撴灉
+     */
+    @Override
+    @Transactional
+    public int updateSysTaskVehicleStatus(Long id, String status) {
+        return updateTaskVehicleStatus(id, status);
+    }
 }

--
Gitblit v1.9.1