From 77b8624957ea9afafc81af72e52212c15b5f091e Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期四, 25 十二月 2025 01:34:32 +0800
Subject: [PATCH] feat: 优化新建 保存同步

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacyTransferSyncServiceImpl.java |   72 ++++++++++++++++++++++--------------
 1 files changed, 44 insertions(+), 28 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacyTransferSyncServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacyTransferSyncServiceImpl.java
index 7bdf8a6..8aaafd8 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacyTransferSyncServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacyTransferSyncServiceImpl.java
@@ -2,9 +2,7 @@
 
 import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.core.domain.entity.SysUser;
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.MapValueUtils;
-import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.*;
 import com.ruoyi.system.domain.SysTaskEmergency;
 import com.ruoyi.system.domain.VehicleInfo;
 import com.ruoyi.system.domain.enums.TaskStatus;
@@ -257,8 +255,14 @@
             }
             SysDept dept=sysDeptService.selectDeptByServiceClass(serviceOrdClass);
             Long deptId=dept==null?null:dept.getDeptId();
+            if(deptId==null){
+                log.error("鍒涘缓浠诲姟鏃讹紝鑾峰彇閮ㄩ棬淇℃伅澶辫触锛宻erviceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
+                return false;
+            }
+            createTaskVo.setDeptId(deptId);
             TaskUpdateVO updateTaskVo = new TaskUpdateVO();
             BeanUtils.copyProperties(createTaskVo, updateTaskVo);
+
 //            log.info("寮�濮嬩繚瀛樿浆杩愪换鍔�,serviceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
 
             int result = sysTaskService.updateTask(updateTaskVo,serviceOrdID,dispatchOrdID, serviceOrdNo, taskCreatorId,createUserName, deptId, ServiceOrd_CC_Time, ServiceOrd_CC_Time);
@@ -334,6 +338,11 @@
             String createUserName= sysUser.getUserName();
             SysDept dept=sysDeptService.selectDeptByServiceClass(serviceOrdClass);
             Long deptId=dept==null?null:dept.getDeptId();
+            if(deptId==null){
+                log.error("鍒涘缓浠诲姟鏃讹紝鑾峰彇閮ㄩ棬淇℃伅澶辫触锛宻erviceOrdID={}, DispatchOrdID={} ServiceOrdClass:{}", serviceOrdID, dispatchOrdID, serviceOrdClass);
+                return false;
+            }
+            createTaskVo.setDeptId(deptId);
 
 
             int result = sysTaskService.insertTask(createTaskVo,serviceOrdID,dispatchOrdID, serviceOrdNo, taskCreatorId,createUserName, deptId, ServiceOrd_CC_Time, ServiceOrd_CC_Time);
@@ -370,7 +379,7 @@
     public boolean isTransferOrderSynced(Long serviceOrdID, Long dispatchOrdID) {
         try {
             // 妫�鏌ュ弬鏁版湁鏁堟��
-            if (serviceOrdID == null || serviceOrdID<=0) {
+            if (LongUtil.isEmpty(serviceOrdID)) {
                 log.warn("鏈嶅姟鍗旾D涓嶈兘涓虹┖");
                 return false;
             }
@@ -387,7 +396,7 @@
                 log.warn("鏈嶅姟鍗旾D涓嶆槸鏈夋晥鏁板瓧: {}", serviceOrdID);
             }
             
-            if (dispatchOrdID>0) {
+            if (LongUtil.isNotEmpty(dispatchOrdID)) {
                 try {
                     SysTaskEmergency emergency = sysTaskEmergencyMapper.selectByLegacyDispatchOrdId(dispatchOrdID);
                     if (emergency != null) {
@@ -435,7 +444,7 @@
                 return null;
             }
             
-            if (serviceOrdID==null || serviceOrdID<=0) {
+            if (LongUtil.isEmpty(serviceOrdID)) {
                 log.error("鏈嶅姟鍗旾D涓嶈兘涓虹┖");
                 return null;
             }
@@ -449,9 +458,9 @@
             createTaskVo.setTaskType("EMERGENCY_TRANSFER"); // 鎬ユ晳杞繍浠诲姟
             
             // 璁剧疆鍗曟嵁绫诲瀷鍜屼换鍔$被鍨婭D锛堜粠鏃х郴缁熷瓧娈垫槧灏勶級
-
-            if (StringUtils.isNotEmpty(serviceOrdClass)) {
-                createTaskVo.setDocumentTypeId(serviceOrdClass);
+            String ServiceOrdAreaType = MapValueUtils.getStringValue(order, "ServiceOrdAreaType");
+            if (StringUtils.isNotEmpty(ServiceOrdAreaType)) {
+                createTaskVo.setDocumentTypeId(ServiceOrdAreaType);
             }
             
             String serviceOrdType = MapValueUtils.getStringValue(order, "ServiceOrdType");
@@ -459,8 +468,21 @@
                 createTaskVo.setTaskTypeId(serviceOrdType);
             }
             
-            // 璁剧疆鍖哄煙绫诲瀷
-            String serviceOrdAreaType = MapValueUtils.getStringValue(order, "ServiceOrdAreaType");
+
+
+           String serviceOrdVIP = MapValueUtils.getStringValue(order, "ServiceOrdVIP");
+           if(serviceOrdVIP!=null){
+               createTaskVo.setServiceOrdVIP(serviceOrdVIP);
+           }else{
+               createTaskVo.setServiceOrdVIP("0");
+           }
+
+           Integer FromHQ_is = MapValueUtils.getIntegerValue(order, "FromHQ_is");
+           if(IntegerUtil.isNotEmpty(FromHQ_is)){
+               createTaskVo.setFromHQ2_is("1");
+           }else{
+               createTaskVo.setFromHQ2_is("0");
+           }
 
             // 璁剧疆鐢ㄦ埛ID
             Long serviceOrdUserID = MapValueUtils.getLongValue(order, "ServiceOrdUserID");
@@ -486,7 +508,7 @@
             String ServiceOrdTraDistance=MapValueUtils.getStringValue(order, "ServiceOrdTraDistance");
             if(ServiceOrdTraDistance!=null){
                 ServiceOrdTraDistance=ServiceOrdTraDistance.replaceAll("[^0-9]", "");
-                createTaskVo.setDistance(new BigDecimal(ServiceOrdTraDistance));
+                createTaskVo.setTransferDistance(new BigDecimal(ServiceOrdTraDistance));
             }
 
             
@@ -561,7 +583,7 @@
             createTaskVo.setPrice(MapValueUtils.getBigDecimalValue(order, "ServiceOrdTraTxnPrice"));
             // 璺濈淇℃伅闇�瑕佷粠鍏朵粬瀛楁璁$畻鎴栬幏鍙�
 
-            if(dispatchOrdID!=null) {
+            if(LongUtil.isNotEmpty(dispatchOrdID)) {
                 // 璁剧疆鎵ц浜轰俊鎭�
                 List<TaskCreateVO.AssigneeInfo> assignees = queryAssignees(dispatchOrdID);
                 createTaskVo.setAssignees(assignees);
@@ -576,7 +598,7 @@
                 String carLicense = legacyTransferSyncMapper.selectCarLicenseByCarID(carID);
                 if (StringUtils.isNotEmpty(carLicense)) {
                     // 鏍规嵁杞︾墝鍙锋煡璇㈡柊绯荤粺涓殑杞﹁締ID
-                    log.info("杞繍浠诲姟,ServiceOrdID:{},杞﹁締杞︾墝:{}",serviceOrdID,carLicense);
+//                    log.info("杞繍浠诲姟,ServiceOrdID:{},杞﹁締杞︾墝:{}",serviceOrdID,carLicense);
 //                    log.debug("杞﹁締杞︾墝鍙�: {}", carLicense);
                     
                     // 棣栧厛灏濊瘯閫氳繃VehicleInfoMapper鏌ヨ杞﹁締淇℃伅
@@ -597,7 +619,7 @@
                                 List<Long> vehicleIds = new ArrayList<>();
                                 vehicleIds.add(vehicleInfo.getVehicleId());
                                 createTaskVo.setVehicleIds(vehicleIds);
-                                log.debug("杞繍浠诲姟,ServiceOrdID:{} 閫氳繃杞︾墝鍙锋壘鍒拌溅杈嗕俊鎭�: vehicle_id={}, vehicle_no={}",serviceOrdID, vehicleInfo.getVehicleId(), vehicleInfo.getVehicleNo());
+//                                log.debug("杞繍浠诲姟,ServiceOrdID:{} 閫氳繃杞︾墝鍙锋壘鍒拌溅杈嗕俊鎭�: vehicle_id={}, vehicle_no={}",serviceOrdID, vehicleInfo.getVehicleId(), vehicleInfo.getVehicleNo());
                             } else {
                                 log.warn("杞繍浠诲姟,ServiceOrdID:{} 鏈壘鍒板搴旂殑杞﹁締淇℃伅: car_id={}, vehicle_no={}",serviceOrdID, carID, carLicense);
                             }
@@ -610,7 +632,7 @@
                             List<Long> vehicleIds = new ArrayList<>();
                             vehicleIds.add(vehicleInfo.getVehicleId());
                             createTaskVo.setVehicleIds(vehicleIds);
-                            log.debug("閫氳繃杞︾墝鍙锋壘鍒拌溅杈嗕俊鎭�: vehicle_id={}, vehicle_no={}", vehicleInfo.getVehicleId(), vehicleInfo.getVehicleNo());
+//                            log.debug("閫氳繃杞︾墝鍙锋壘鍒拌溅杈嗕俊鎭�: vehicle_id={}, vehicle_no={}", vehicleInfo.getVehicleId(), vehicleInfo.getVehicleNo());
                         } else {
                             log.warn("鏈壘鍒板搴旂殑杞﹁締淇℃伅: vehicle_no={}", carLicense);
                         }
@@ -718,22 +740,16 @@
         long startTime = System.currentTimeMillis();
         try {
             // 妫�鏌ュ弬鏁版湁鏁堟��
-            if (dispatchOrdID==null || dispatchOrdID <= 0) {
+            if (LongUtil.isEmpty(dispatchOrdID)) {
                 log.warn("璋冨害鍗旾D涓嶈兘涓虹┖");
                 return new ArrayList<>();
             }
             
             // 灏哠tring杞崲涓篖ong锛岄伩鍏嶆暟鎹簱绫诲瀷涓嶅尮閰嶅鑷寸殑鎬ц兘闂
-            Long dispatchOrdIdLong;
-            try {
-                dispatchOrdIdLong = Long.valueOf(dispatchOrdID);
-            } catch (NumberFormatException e) {
-                log.error("璋冨害鍗旾D鏍煎紡涓嶆纭�: {}", dispatchOrdID, e);
-                return new ArrayList<>();
-            }
+
             
             // 浠嶴QL Server鏌ヨ鎵ц浜轰俊鎭紙浣跨敤Long绫诲瀷锛屽尮閰岯IGINT瀛楁锛�
-            List<Map<String, Object>> assigneeList = legacyTransferSyncMapper.selectAssigneesByDispatchOrdID(dispatchOrdIdLong);
+            List<Map<String, Object>> assigneeList = legacyTransferSyncMapper.selectAssigneesByDispatchOrdID(dispatchOrdID);
             long queryTime = System.currentTimeMillis() - startTime;
             
             // 璁板綍鎱㈡煡璇紙瓒呰繃500ms锛�
@@ -782,7 +798,7 @@
                 }
             }
             
-            log.debug("鏌ヨ鍒皗}涓墽琛屼汉锛岃皟搴﹀崟ID: {}, 鑰楁椂: {}ms", assignees.size(), dispatchOrdID, System.currentTimeMillis() - startTime);
+//            log.debug("鏌ヨ鍒皗}涓墽琛屼汉锛岃皟搴﹀崟ID: {}, 鑰楁椂: {}ms", assignees.size(), dispatchOrdID, System.currentTimeMillis() - startTime);
             return assignees;
         } catch (Exception e) {
             long totalTime = System.currentTimeMillis() - startTime;
@@ -800,7 +816,7 @@
     private String queryDiseaseIds(Long serviceOrdID) {
         try {
             // 妫�鏌ュ弬鏁版湁鏁堟��
-            if (serviceOrdID==null || serviceOrdID <= 0) {
+            if (LongUtil.isEmpty(serviceOrdID) ) {
                 log.warn("鏈嶅姟鍗旾D涓嶈兘涓虹┖");
                 return null;
             }
@@ -813,7 +829,7 @@
                 return String.join(",", diseaseIds);
             }
             
-            log.info("鏌ヨ鍒扮梾鎯呬俊鎭紝鏈嶅姟鍗旾D: {}, 鐥呮儏鏁伴噺: {}", serviceOrdID, diseaseIds != null ? diseaseIds.size() : 0);
+//            log.info("鏌ヨ鍒扮梾鎯呬俊鎭紝鏈嶅姟鍗旾D: {}, 鐥呮儏鏁伴噺: {}", serviceOrdID, diseaseIds != null ? diseaseIds.size() : 0);
             return null;
         } catch (Exception e) {
             log.error("鏌ヨ鐥呮儏淇℃伅寮傚父锛屾湇鍔″崟ID: {}", serviceOrdID, e);

--
Gitblit v1.9.1