From faff7314b240922d20fdd2fbc455c61dbc297cd5 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期一, 29 十二月 2025 23:38:00 +0800
Subject: [PATCH] feat: 优化变更状态

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TaskStatusPushServiceImpl.java |   21 +++++++++++++++------
 1 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TaskStatusPushServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TaskStatusPushServiceImpl.java
index a9b79e8..74bb2c6 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TaskStatusPushServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TaskStatusPushServiceImpl.java
@@ -129,6 +129,10 @@
                     log.info("鍙栨秷杞繍浠诲姟: {}", emergency.getLegacyServiceOrdId());
                     cancelTask(emergency.getLegacyServiceOrdId(), emergency.getCancelReason(), emergency.getCancelBy());
                 }
+                if(LongUtil.isNotEmpty(emergency.getLegacyDispatchOrdId())){
+                    log.info("鍙栨秷璋冨害鍗�: {}", emergency.getLegacyDispatchOrdId());
+                    cancelDispatch(emergency.getLegacyDispatchOrdId(), emergency.getCancelReason(), emergency.getCancelBy());
+                }
             }
             // 鎺ㄩ�佺姸鎬佸埌鏃х郴缁�
             boolean result = updateLegacyTaskStatus(emergency.getLegacyDispatchOrdId(), targetStatusCode);
@@ -150,7 +154,11 @@
             return false;
         }
     }
-    
+
+    private void cancelDispatch(Long legacyDispatchOrdId, String cancelReason, String cancelReasonText) {
+        dispatchOrdService.cancelDispatchOrd(legacyDispatchOrdId, Integer.parseInt(cancelReason), cancelReasonText);
+    }
+
     /**
      * 鎵归噺鎺ㄩ�佷换鍔$姸鎬佸埌鏃х郴缁�
      * 浣跨敤鍒嗛〉鏌ヨ锛岀‘淇濇墍鏈夌鍚堟潯浠剁殑浠诲姟閮借兘琚帹閫�
@@ -223,7 +231,7 @@
     private void cancelTask(Long serviceOrderId, String cancelReason, String cancelBy){
         // 鍙栨秷浠诲姟锛屾洿鏂癝QL Server涓殑ServiceOrder琛�
         try {
-            if (serviceOrderId == null || serviceOrderId <= 0) {
+            if (LongUtil.isEmpty(serviceOrderId)) {
                 log.warn("ServiceOrderID涓虹┖锛屾棤娉曞彇娑堜换鍔�");
                 return;
             }
@@ -234,6 +242,7 @@
             
             if (cancelReason != null && !cancelReason.isEmpty()) {
                 try {
+                    log.info("鍙栨秷鍘熷洜 cancelReason:{},鍙栨秷浜�:{}", cancelReason, cancelBy);
                     cancelReasonId = Integer.parseInt(cancelReason);
                     // 浠庢暟鎹瓧鍏告煡璇㈠彇娑堝師鍥犳枃鏈�
                     String dictLabel = sysDictDataService.selectDictLabel("task_cancel_reason", cancelReason);
@@ -243,7 +252,7 @@
                         cancelReasonText = "[鍙栨秷鎿嶄綔:" + (cancelBy != null ? cancelBy : "绯荤粺") + "]";
                     }
                 } catch (NumberFormatException e) {
-                    log.warn("鍙栨秷鍘熷洜ID鏍煎紡閿欒: {}", cancelReason);
+                    log.error("鍙栨秷鍘熷洜ID鏍煎紡閿欒: {}", cancelReason,e);
                     cancelReasonText = "[鍙栨秷鎿嶄綔:" + (cancelBy != null ? cancelBy : "绯荤粺") + "] " + cancelReason;
                 }
             } else {
@@ -275,10 +284,10 @@
         try {
             // 鐩存帴閫氳繃Service璋冪敤Mapper鏇存柊SQL Server鏁版嵁搴�
             int rows = dispatchOrdService.updateDispatchOrdState(dispatchOrdId, statusCode);
-//            log.debug("鏇存柊鏃х郴缁熺姸鎬侊紝DispatchOrdID: {}, StateInt: {}", dispatchOrdId, statusCode);
+            log.debug("鏇存柊鏃х郴缁熺姸鎬侊紝DispatchOrdID: {}, statusCode: {}", dispatchOrdId, statusCode);
             if (rows > 0) {
-//                log.debug("鏇存柊鏃х郴缁熺姸鎬佹垚鍔燂紝DispatchOrdID: {}, StateInt: {}",
-//                    dispatchOrdId, statusCode);
+                log.debug("鏇存柊鏃х郴缁熺姸鎬佹垚鍔燂紝DispatchOrdID: {}, statusCode: {}",
+                    dispatchOrdId, statusCode);
                 return true;
             } else {
 //                log.warn("鏇存柊鏃х郴缁熺姸鎬佸け璐ワ紝鏈壘鍒板搴旇皟搴﹀崟锛孌ispatchOrdID: {}", dispatchOrdId);

--
Gitblit v1.9.1