From f5c900c58513bad824381e69750ac7667ef35de0 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期四, 26 二月 2026 22:29:46 +0800
Subject: [PATCH] feat: 修改增另任务单查询,使用单号查询

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/SysTaskController.java |  175 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 159 insertions(+), 16 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/SysTaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/SysTaskController.java
index 09db629..43d7369 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/SysTaskController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/SysTaskController.java
@@ -11,6 +11,8 @@
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.system.domain.SysTaskEmergency;
 import com.ruoyi.system.service.*;
+import com.ruoyi.system.service.ILegacySystemSyncService;
+import com.ruoyi.system.service.ITaskDispatchSyncService;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -71,6 +73,15 @@
     @Qualifier("tiandituMapService")
     private IMapService mapService;
 
+    @Autowired
+    private ILegacySystemSyncService legacySystemSyncService;
+    
+    @Autowired
+    private ITaskDispatchSyncService taskDispatchSyncService;
+    
+    @Autowired
+    private ITaskStatusPushService taskStatusPushService;
+
     /**
      * 鏌ヨ浠诲姟绠$悊鍒楄〃锛堝悗鍙扮鐞嗙锛�
      * 绠$悊鍛樻潈闄愶紝鍙互鏌ョ湅鎵�鏈変换鍔�
@@ -84,7 +95,7 @@
         List<SysTask> list;
         if(searchTaskCode != null && !searchTaskCode.trim().isEmpty()){
             // Search across task_code, emergency_info.dispatch_code, and emergency_info.service_code
-            list = sysTaskService.selectSysTaskListByMultiCode(queryVO, searchTaskCode);
+            list = sysTaskService.selectSysTaskListByMultiCode(queryVO, searchTaskCode.trim());
         } else {
             queryVO.setTaskCode(null);
             list = sysTaskService.selectSysTaskList(queryVO);
@@ -184,10 +195,9 @@
     @Log(title = "浠诲姟绠$悊", businessType = BusinessType.INSERT)
     @PostMapping("/admin")
     public AjaxResult adminAdd(@RequestBody TaskCreateVO createVO) {
-        return toAjax(sysTaskService.insertSysTask(createVO));
+        Long taskId = sysTaskService.insertSysTask(createVO);
+        return taskId > 0 ? AjaxResult.success("鏂板鎴愬姛").put("taskId", taskId) : AjaxResult.error("鏂板澶辫触");
     }
-
-
 
     /**
      * 鏂板浠诲姟锛圓PP绔級
@@ -195,7 +205,8 @@
     @Log(title = "浠诲姟鍒涘缓", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult appAdd(@RequestBody TaskCreateVO createVO) {
-        return toAjax(sysTaskService.insertSysTask(createVO));
+        Long taskId = sysTaskService.insertSysTask(createVO);
+        return taskId > 0 ? AjaxResult.success("鏂板鎴愬姛").put("taskId", taskId) : AjaxResult.error("鏂板澶辫触");
     }
     
     /**
@@ -331,22 +342,27 @@
         if (request.getLatitude() != null && request.getLongitude() != null) {
            String address= mapService.reverseGeocoding(request.getLongitude(), request.getLatitude());
            request.setLocationAddress(address);
-            SysTaskLog locationLog = new SysTaskLog();
-            locationLog.setLatitude(request.getLatitude());
-            locationLog.setLongitude(request.getLongitude());
-            locationLog.setLocationAddress(request.getLocationAddress());
-            locationLog.setLocationProvince(request.getLocationProvince());
-            locationLog.setLocationCity(request.getLocationCity());
-            locationLog.setLocationDistrict(request.getLocationDistrict());
-            locationLog.setGpsAccuracy(request.getGpsAccuracy());
-            locationLog.setAltitude(request.getAltitude());
-            locationLog.setSpeed(request.getSpeed());
-            locationLog.setHeading(request.getHeading());
+            SysTaskLog locationLog = getLocationLog(request);
 
             return toAjax(sysTaskService.changeTaskStatusWithLocation(taskId, newStatus, request.getRemark(), locationLog));
         }
 
         return toAjax(sysTaskService.changeTaskStatus(taskId, newStatus, request.getRemark()));
+    }
+
+    private static SysTaskLog getLocationLog(ChangeStatusRequest request) {
+        SysTaskLog locationLog = new SysTaskLog();
+        locationLog.setLatitude(request.getLatitude());
+        locationLog.setLongitude(request.getLongitude());
+        locationLog.setLocationAddress(request.getLocationAddress());
+        locationLog.setLocationProvince(request.getLocationProvince());
+        locationLog.setLocationCity(request.getLocationCity());
+        locationLog.setLocationDistrict(request.getLocationDistrict());
+        locationLog.setGpsAccuracy(request.getGpsAccuracy());
+        locationLog.setAltitude(request.getAltitude());
+        locationLog.setSpeed(request.getSpeed());
+        locationLog.setHeading(request.getHeading());
+        return locationLog;
     }
 
     /**
@@ -610,4 +626,131 @@
             this.actualEndTime = actualEndTime;
         }
     }
+    
+    /**
+     * 鎵嬪姩鍚屾鏈嶅姟鍗曞埌鏃х郴缁�
+     * 褰撴湇鍔″崟鍚屾澶辫触鎴栨湭鍚屾鏃讹紝鍙互閫氳繃姝ゆ帴鍙f墜鍔ㄨЕ鍙戝悓姝�
+     */
+    @PreAuthorize("@ss.hasPermi('task:general:edit')")
+    @Log(title = "鎵嬪姩鍚屾鏈嶅姟鍗�", businessType = BusinessType.UPDATE)
+    @PostMapping("/syncServiceOrder/{taskId}")
+    public AjaxResult syncServiceOrder(@PathVariable Long taskId) {
+        try {
+            // 鏌ヨ浠诲姟淇℃伅
+            SysTask task = sysTaskService.selectSysTaskByTaskId(taskId);
+            if (task == null) {
+                return error("浠诲姟涓嶅瓨鍦�");
+            }
+            
+            // 鍙敮鎸佹�ユ晳杞繍浠诲姟
+            if (!"EMERGENCY_TRANSFER".equals(task.getTaskType())) {
+                return error("鍙湁鎬ユ晳杞繍浠诲姟鎵嶈兘鍚屾鍒版棫绯荤粺");
+            }
+            
+            // 璋冪敤鍚屾鏈嶅姟
+            Long serviceOrdId = legacySystemSyncService.syncEmergencyTaskToLegacy(taskId);
+            
+            if (serviceOrdId != null && serviceOrdId > 0) {
+                return success("鏈嶅姟鍗曞悓姝ユ垚鍔燂紝ServiceOrdID: " + serviceOrdId);
+            } else {
+                return error("鏈嶅姟鍗曞悓姝ュけ璐ワ紝璇锋煡鐪嬪悓姝ラ敊璇俊鎭�");
+            }
+            
+        } catch (Exception e) {
+            logger.error("鎵嬪姩鍚屾鏈嶅姟鍗曞紓甯革紝taskId: {}", taskId, e);
+            return error("鍚屾寮傚父: " + e.getMessage());
+        }
+    }
+    
+    /**
+     * 鎵嬪姩鍚屾璋冨害鍗曞埌鏃х郴缁�
+     * 褰撹皟搴﹀崟鍚屾澶辫触鎴栨湭鍚屾鏃讹紝鍙互閫氳繃姝ゆ帴鍙f墜鍔ㄨЕ鍙戝悓姝�
+     */
+    @PreAuthorize("@ss.hasPermi('task:general:edit')")
+    @Log(title = "鎵嬪姩鍚屾璋冨害鍗�", businessType = BusinessType.UPDATE)
+    @PostMapping("/syncDispatchOrder/{taskId}")
+    public AjaxResult syncDispatchOrder(@PathVariable Long taskId) {
+        try {
+            // 鏌ヨ浠诲姟淇℃伅
+            SysTask task = sysTaskService.selectSysTaskByTaskId(taskId);
+            if (task == null) {
+                return error("浠诲姟涓嶅瓨鍦�");
+            }
+            
+            // 鍙敮鎸佹�ユ晳杞繍浠诲姟
+            if (!"EMERGENCY_TRANSFER".equals(task.getTaskType())) {
+                return error("鍙湁鎬ユ晳杞繍浠诲姟鎵嶈兘鍚屾鍒版棫绯荤粺");
+            }
+            
+            // 鏌ヨ鎬ユ晳杞繍鎵╁睍淇℃伅
+            SysTaskEmergency emergency = sysTaskEmergencyService.selectSysTaskEmergencyByTaskId(taskId);
+            if (emergency == null) {
+                return error("鎬ユ晳杞繍鎵╁睍淇℃伅涓嶅瓨鍦�");
+            }
+            
+            // 蹇呴』鍏堟湁鏈嶅姟鍗�
+            if (emergency.getLegacyServiceOrdId() == null || emergency.getLegacyServiceOrdId() <= 0) {
+                return error("璇峰厛鍚屾鏈嶅姟鍗�");
+            }
+            
+            // 璋冪敤鍚屾鏈嶅姟
+            Long dispatchOrdId = taskDispatchSyncService.syncDispatch(taskId);
+            
+            if (dispatchOrdId != null && dispatchOrdId > 0) {
+                return success("璋冨害鍗曞悓姝ユ垚鍔燂紝DispatchOrdID: " + dispatchOrdId);
+            } else {
+                return error("璋冨害鍗曞悓姝ュけ璐ワ紝璇锋煡鐪嬪悓姝ラ敊璇俊鎭�");
+            }
+            
+        } catch (Exception e) {
+            logger.error("鎵嬪姩鍚屾璋冨害鍗曞紓甯革紝taskId: {}", taskId, e);
+            return error("鍚屾寮傚父: " + e.getMessage());
+        }
+    }
+    
+    /**
+     * 鎵嬪姩鍚屾浠诲姟鐘舵�佸埌鏃х郴缁�
+     * 褰撲换鍔$姸鎬佸彉鏇村悗鐢变簬缃戠粶绛夊師鍥犳湭鍚屾鍒版棫绯荤粺鏃讹紝鍙互閫氳繃姝ゆ帴鍙f墜鍔ㄨЕ鍙戝悓姝�
+     */
+//    @PreAuthorize("@ss.hasPermi('task:general:edit')")
+    @Log(title = "鎵嬪姩鍚屾浠诲姟鐘舵��", businessType = BusinessType.UPDATE)
+    @PostMapping("/syncTaskStatus/{taskId}")
+    public AjaxResult syncTaskStatus(@PathVariable Long taskId) {
+        try {
+            // 鏌ヨ浠诲姟淇℃伅
+            SysTask task = sysTaskService.selectSysTaskByTaskId(taskId);
+            if (task == null) {
+                return error("浠诲姟涓嶅瓨鍦�");
+            }
+            
+            // 鍙敮鎸佹�ユ晳杞繍浠诲姟
+            if (!"EMERGENCY_TRANSFER".equals(task.getTaskType())) {
+                return error("鍙湁鎬ユ晳杞繍浠诲姟鎵嶈兘鍚屾鍒版棫绯荤粺");
+            }
+            
+            // 鏌ヨ鎬ユ晳杞繍鎵╁睍淇℃伅
+            SysTaskEmergency emergency = sysTaskEmergencyService.selectSysTaskEmergencyByTaskId(taskId);
+            if (emergency == null) {
+                return error("鎬ユ晳杞繍鎵╁睍淇℃伅涓嶅瓨鍦�");
+            }
+            
+            // 蹇呴』鍏堟湁璋冨害鍗�
+            if (emergency.getLegacyDispatchOrdId() == null || emergency.getLegacyDispatchOrdId() <= 0) {
+                return error("璇峰厛鍚屾璋冨害鍗曪紝浠诲姟鐘舵�佷俊鎭悓姝ュ埌鏃х郴缁熺殑璋冨害鍗曚腑");
+            }
+            
+            // 璋冪敤鐘舵�佸悓姝ユ湇鍔�
+            boolean success = taskStatusPushService.pushTaskStatusToLegacy(taskId);
+            
+            if (success) {
+                return success("浠诲姟鐘舵�佸悓姝ユ垚鍔�");
+            } else {
+                return error("浠诲姟鐘舵�佸悓姝ュけ璐ワ紝璇锋煡鐪嬫棩蹇楄幏鍙栬缁嗕俊鎭�");
+            }
+            
+        } catch (Exception e) {
+            logger.error("鎵嬪姩鍚屾浠诲姟鐘舵�佸紓甯革紝taskId: {}", taskId, e);
+            return error("鍚屾寮傚父: " + e.getMessage());
+        }
+    }
 }

--
Gitblit v1.9.1