From 5d75fcaea0a3774052b7484a4ffe755258502363 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期六, 06 十二月 2025 20:49:11 +0800
Subject: [PATCH] fix:开始执行人员就绪按钮

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacySystemSyncServiceImpl.java |  121 +++++++++++++++++++++++++++++++++++++--
 1 files changed, 113 insertions(+), 8 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacySystemSyncServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacySystemSyncServiceImpl.java
index 10b6db7..4413acb 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacySystemSyncServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacySystemSyncServiceImpl.java
@@ -89,6 +89,8 @@
 
     @Autowired
     private ITaskAttachmentService taskAttachmentService;
+
+
     
     /**
      * 鍚屾鎬ユ晳杞繍浠诲姟鍒版棫绯荤粺
@@ -342,8 +344,70 @@
                 return null;
             }
 
-
-
+            // ====== 鍓嶇疆鏍¢獙锛氱‘淇濅换鍔℃暟鎹畬鏁� ======
+            
+            // 1. 妫�鏌ユ槸鍚﹀凡鍒嗛厤杞﹁締
+            List<SysTaskVehicle> taskVehicles = sysTaskVehicleMapper.selectSysTaskVehicleByTaskId(taskId);
+            if (taskVehicles == null || taskVehicles.isEmpty()) {
+                log.warn("浠诲姟鏈垎閰嶈溅杈嗭紝璺宠繃璋冨害鍗曞悓姝ワ紝浠诲姟ID: {}", taskId);
+                return null;
+            }
+            
+            // 2. 妫�鏌ユ槸鍚﹀凡鍒嗛厤鎵ц浜哄憳
+            List<SysTaskAssignee> taskAssignees = sysTaskAssigneeMapper.selectSysTaskAssigneeByTaskId(taskId);
+            if (taskAssignees == null || taskAssignees.isEmpty()) {
+                log.warn("浠诲姟鏈垎閰嶆墽琛屼汉鍛橈紝璺宠繃璋冨害鍗曞悓姝ワ紝浠诲姟ID: {}", taskId);
+                return null;
+            }
+            
+            // 3. 妫�鏌ラ绾︽椂闂存槸鍚︽湁鏁堬紙蹇呴』澶т簬1970骞达級
+            if (task.getPlannedStartTime() == null) {
+                log.warn("浠诲姟鏈缃绾︽椂闂达紝璺宠繃璋冨害鍗曞悓姝ワ紝浠诲姟ID: {}", taskId);
+                return null;
+            }
+            
+            // 妫�鏌ラ绾︽椂闂存槸鍚﹀ぇ浜�1970-01-01锛堟椂闂存埑0瀵瑰簲1970-01-01 00:00:00锛�
+            long timestamp1970 = 0L;
+            if (task.getPlannedStartTime().getTime() <= timestamp1970) {
+                log.warn("浠诲姟棰勭害鏃堕棿鏃犳晥锛堝皬浜庣瓑浜�1970骞达級锛岃烦杩囪皟搴﹀崟鍚屾锛屼换鍔D: {}, 棰勭害鏃堕棿: {}", 
+                    taskId, task.getPlannedStartTime());
+                return null;
+            }
+            
+            // 4. 妫�鏌ヨ浆鍑哄尰闄俊鎭�
+            if (StringUtils.isEmpty(emergency.getHospitalOutName())) {
+                log.warn("浠诲姟鏈缃浆鍑哄尰闄紝璺宠繃璋冨害鍗曞悓姝ワ紝浠诲姟ID: {}", taskId);
+                return null;
+            }
+            
+            if (StringUtils.isEmpty(emergency.getHospitalOutAddress())) {
+                log.warn("浠诲姟鏈缃浆鍑哄尰闄㈠湴鍧�锛岃烦杩囪皟搴﹀崟鍚屾锛屼换鍔D: {}", taskId);
+                return null;
+            }
+            
+            // 5. 妫�鏌ヨ浆鍏ュ尰闄俊鎭�
+            if (StringUtils.isEmpty(emergency.getHospitalInName())) {
+                log.warn("浠诲姟鏈缃浆鍏ュ尰闄紝璺宠繃璋冨害鍗曞悓姝ワ紝浠诲姟ID: {}", taskId);
+                return null;
+            }
+            
+            if (StringUtils.isEmpty(emergency.getHospitalInAddress())) {
+                log.warn("浠诲姟鏈缃浆鍏ュ尰闄㈠湴鍧�锛岃烦杩囪皟搴﹀崟鍚屾锛屼换鍔D: {}", taskId);
+                return null;
+            }
+            
+            // 6. 妫�鏌ユ偅鑰呭熀鏈俊鎭�
+            if (StringUtils.isEmpty(emergency.getPatientName())) {
+                log.warn("浠诲姟鏈缃偅鑰呭鍚嶏紝璺宠繃璋冨害鍗曞悓姝ワ紝浠诲姟ID: {}", taskId);
+                return null;
+            }
+            
+            if (StringUtils.isEmpty(emergency.getPatientPhone())) {
+                log.warn("浠诲姟鏈缃偅鑰呯數璇濓紝璺宠繃璋冨害鍗曞悓姝ワ紝浠诲姟ID: {}", taskId);
+                return null;
+            }
+            
+            log.info("浠诲姟鏁版嵁鏍¢獙閫氳繃锛屽紑濮嬪悓姝ヨ皟搴﹀崟锛屼换鍔D: {}", taskId);
 
             // 鏇存柊鍚屾鐘舵�佷负鍚屾涓�
             emergency.setDispatchSyncStatus(1);
@@ -525,7 +589,7 @@
         params.put("ServiceOrdCoName", StringUtils.nvl(emergency.getPatientContact(), ""));
         params.put("ServiceOrdCoPhone", StringUtils.nvl(emergency.getPatientPhone(), ""));
         params.put("ServiceOrdPtName", StringUtils.nvl(emergency.getPatientName(), ""));
-        
+        params.put("ServiceOrdTraStreet",StringUtils.nvl(task.getDepartureAddress(), StringUtils.nvl(emergency.getHospitalOutAddress(), "")));
         // 鍦板潃淇℃伅
         params.put("DispatchOrdTraStreet", StringUtils.nvl(task.getDepartureAddress(), StringUtils.nvl(emergency.getHospitalOutAddress(), "")));
         params.put("DispatchOrdTraEnd", StringUtils.nvl(task.getDestinationAddress(), StringUtils.nvl(emergency.getHospitalInAddress(), "")));
@@ -1181,27 +1245,68 @@
                 return false;
             }
             
-            log.info("寮�濮嬮噸鏂板悓姝ヨ皟搴﹀崟锛屼换鍔D: {}, DispatchOrdID: {}", taskId, emergency.getLegacyDispatchOrdId());
+            // ====== 鍓嶇疆鏍¢獙锛氱‘淇濅换鍔℃暟鎹畬鏁� ======
+            
+            // 1. 妫�鏌ユ槸鍚﹀凡鍒嗛厤杞﹁締
+            List<SysTaskVehicle> taskVehicles = sysTaskVehicleMapper.selectSysTaskVehicleByTaskId(taskId);
+            if (taskVehicles == null || taskVehicles.isEmpty()) {
+                log.warn("浠诲姟鏈垎閰嶈溅杈嗭紝璺宠繃璋冨害鍗曢噸鏂板悓姝ワ紝浠诲姟ID: {}", taskId);
+                return false;
+            }
+            
+            // 2. 妫�鏌ユ槸鍚﹀凡鍒嗛厤鎵ц浜哄憳
+            List<SysTaskAssignee> taskAssignees = sysTaskAssigneeMapper.selectSysTaskAssigneeByTaskId(taskId);
+            if (taskAssignees == null || taskAssignees.isEmpty()) {
+                log.warn("浠诲姟鏈垎閰嶆墽琛屼汉鍛橈紝璺宠繃璋冨害鍗曢噸鏂板悓姝ワ紝浠诲姟ID: {}", taskId);
+                return false;
+            }
+            
+            // 3. 妫�鏌ラ绾︽椂闂存槸鍚︽湁鏁�
+            if (task.getPlannedStartTime() == null || task.getPlannedStartTime().getTime() <= 0L) {
+                log.warn("浠诲姟棰勭害鏃堕棿鏃犳晥锛岃烦杩囪皟搴﹀崟閲嶆柊鍚屾锛屼换鍔D: {}", taskId);
+                return false;
+            }
+            
+            // 4. 妫�鏌ヨ浆鍑哄尰闄俊鎭�
+            if (StringUtils.isEmpty(emergency.getHospitalOutName()) || StringUtils.isEmpty(emergency.getHospitalOutAddress())) {
+                log.warn("浠诲姟杞嚭鍖婚櫌淇℃伅涓嶅畬鏁达紝璺宠繃璋冨害鍗曢噸鏂板悓姝ワ紝浠诲姟ID: {}", taskId);
+                return false;
+            }
+            
+            // 5. 妫�鏌ヨ浆鍏ュ尰闄俊鎭�
+            if (StringUtils.isEmpty(emergency.getHospitalInName()) || StringUtils.isEmpty(emergency.getHospitalInAddress())) {
+                log.warn("浠诲姟杞叆鍖婚櫌淇℃伅涓嶅畬鏁达紝璺宠繃璋冨害鍗曢噸鏂板悓姝ワ紝浠诲姟ID: {}", taskId);
+                return false;
+            }
+            
+            // 6. 妫�鏌ユ偅鑰呭熀鏈俊鎭�
+            if (StringUtils.isEmpty(emergency.getPatientName()) || StringUtils.isEmpty(emergency.getPatientPhone())) {
+                log.warn("浠诲姟鎮h�呬俊鎭笉瀹屾暣锛岃烦杩囪皟搴﹀崟閲嶆柊鍚屾锛屼换鍔D: {}", taskId);
+                return false;
+            }
+            
+            log.info("浠诲姟鏁版嵁鏍¢獙閫氳繃锛屽紑濮嬮噸鏂板悓姝ヨ皟搴﹀崟锛屼换鍔D: {}, DispatchOrdID: {}", taskId, emergency.getLegacyDispatchOrdId());
             
             // 鏋勫缓璇锋眰鍙傛暟锛堜娇鐢ㄧ浉鍚岀殑鍙傛暟鏋勫缓鏂规硶锛�
             Map<String, String> params = buildDispatchOrderParams(task, emergency);
             params.put("DispatchOrdID", emergency.getLegacyDispatchOrdId().toString());
             params.put("ServiceOrdID", emergency.getLegacyServiceOrdId().toString());
             params.put("DispatchOrdState", "3");
+            log.info("閲嶆柊鍚屾璋冨害鍗曞埌鏃х郴缁熻姹傚弬鏁�: {}", params);
             // 鍙戦�丠TTP璇锋眰鍒版棫绯荤粺锛堜娇鐢╝dmin_save_25.asp鎺ュ彛锛�
             String response = sendHttpPost(legacyConfig.getDispatchUpdateUrl(), params);
-            
+            log.info("閲嶆柊鍚屾璋冨害鍗曞埌鏃х郴缁熷搷搴�: ServiceOrdID:{},DispatchOrdId:{},Result: {}",emergency.getLegacyServiceOrdId(),emergency.getLegacyDispatchOrdId(), response);
             // 瑙f瀽鍝嶅簲
-            Long dispatchOrdId = parseResponse(response);
+//            Long dispatchOrdId = parseResponse(response);
             
-            if (dispatchOrdId != null && dispatchOrdId > 0) {
+            if (response != null && response.equals("OK")) {
                 // 閲嶆柊鍚屾鎴愬姛锛屾竻闄ら噸鏂板悓姝ユ爣璁�
                 emergency.setNeedResync(0);
                 emergency.setDispatchSyncTime(new Date());
                 emergency.setDispatchSyncErrorMsg(null);
                 sysTaskEmergencyService.updateSysTaskEmergency(emergency);
                 
-                log.info("璋冨害鍗曢噸鏂板悓姝ユ垚鍔燂紝浠诲姟ID: {}, DispatchOrdID: {}", taskId, dispatchOrdId);
+                log.info("璋冨害鍗曢噸鏂板悓姝ユ垚鍔燂紝浠诲姟ID: {}, DispatchOrdID: {}", taskId, emergency.getLegacyDispatchOrdId());
                 return true;
             } else {
                 // 閲嶆柊鍚屾澶辫触

--
Gitblit v1.9.1