From 40a8157440e3b906da8f52e07d939d78c3f4c313 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期日, 12 四月 2026 16:14:06 +0800
Subject: [PATCH] feat: 任务增加统计、同步增加通知
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TaskStatusPushServiceImpl.java | 44 +++++++++++++++++++++++++++++++++++++-------
1 files changed, 37 insertions(+), 7 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..af792e6 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,7 +129,32 @@
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());
+ }
}
+
+ // 鍒ゆ柇鏄惁闇�瑕佹洿鏂板疄闄呭紑濮嬫椂闂达細浠庡緟澶勭悊杞埌鍏朵粬鐘舵�侊紙闄ゅ彇娑堝锛�
+ if ( targetStatusCode != 10 && task.getActualStartTime() != null) {
+ try {
+ int rows = dispatchOrdService.updateDispatchOrdActualDate(
+ emergency.getLegacyDispatchOrdId(),
+ task.getActualStartTime());
+ if (rows > 0) {
+ log.info("銆愭柊鎺ㄦ棫銆戞洿鏂板疄闄呭紑濮嬫椂闂存垚鍔燂紝浠诲姟ID: {}, DispatchOrdID: {}, 瀹為檯寮�濮嬫椂闂�: {}",
+ taskId, emergency.getLegacyDispatchOrdId(), task.getActualStartTime());
+ } else {
+ log.warn("銆愭柊鎺ㄦ棫銆戞洿鏂板疄闄呭紑濮嬫椂闂村け璐ワ紝鏈壘鍒板搴旇皟搴﹀崟锛孌ispatchOrdID: {}",
+ emergency.getLegacyDispatchOrdId());
+ }
+ } catch (Exception e) {
+ log.error("銆愭柊鎺ㄦ棫銆戞洿鏂板疄闄呭紑濮嬫椂闂村紓甯革紝DispatchOrdID: {}",
+ emergency.getLegacyDispatchOrdId(), e);
+ // 涓嶆姏鍑哄紓甯革紝缁х画鎵ц鐘舵�佹帹閫�
+ }
+ }
+
// 鎺ㄩ�佺姸鎬佸埌鏃х郴缁�
boolean result = updateLegacyTaskStatus(emergency.getLegacyDispatchOrdId(), targetStatusCode);
@@ -150,7 +175,11 @@
return false;
}
}
-
+
+ private void cancelDispatch(Long legacyDispatchOrdId, String cancelReason, String cancelReasonText) {
+ dispatchOrdService.cancelDispatchOrd(legacyDispatchOrdId, Integer.parseInt(cancelReason), cancelReasonText);
+ }
+
/**
* 鎵归噺鎺ㄩ�佷换鍔$姸鎬佸埌鏃х郴缁�
* 浣跨敤鍒嗛〉鏌ヨ锛岀‘淇濇墍鏈夌鍚堟潯浠剁殑浠诲姟閮借兘琚帹閫�
@@ -166,7 +195,7 @@
try {
int totalSuccessCount = 0;
- int pageSize = 200; // 姣忛〉200鏉�
+ int pageSize = 5; // 姣忛〉10鏉�
int offset = 0;
while (true) {
@@ -223,7 +252,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 +263,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 +273,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 +305,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