From c459808efab29dc1b8439fbb90556bdb16f4c88b Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期三, 01 四月 2026 22:40:59 +0800
Subject: [PATCH] feat: 优化支付时显示任务ID
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/LegacyTransferSyncServiceImpl.java | 122 +++++++++++++++++++++++-----------------
1 files changed, 69 insertions(+), 53 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 247bbc3..78d9033 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
@@ -90,63 +90,79 @@
String startDateStr = DateUtils.parseDateToStr("yyyy-MM-dd", startDate);
String endDateStr = DateUtils.parseDateToStr("yyyy-MM-dd", new Date());
- // 浠嶴QL Server鏌ヨ杞繍鍗曟暟鎹�
- List<Map<String, Object>> transferOrders = legacyTransferSyncMapper.selectTransferOrders(startDateStr, endDateStr);
-
- if (transferOrders == null || transferOrders.isEmpty()) {
- log.info("鏈煡璇㈠埌{}澶╁墠鐨勮浆杩愬崟鏁版嵁", daysAgo);
- return 0;
- }
-
-// log.info("鏌ヨ鍒皗}鏉¤浆杩愬崟鏁版嵁锛屽紑濮嬪悓姝�...", transferOrders.size());
-
+ // Keyset娓告爣鍒嗛〉浠� SQL Server 鎷夊彇杞繍鍗曟暟鎹紝姣忛〉 10 鏉★紝璧颁富閿储寮曞交搴曡閬胯秴鏃�
+ final int PAGE_SIZE = 10;
+ long lastId = 0L; // 娓告爣锛氳褰曚笂涓�椤垫渶鍚庝竴鏉$殑 ServiceOrdID锛岄娆′紶 0
int successCount = 0;
- int totalCount = transferOrders.size();
- int processedCount = 0;
-
- for (Map<String, Object> order : transferOrders) {
- processedCount++;
- try {
- Long serviceOrdID = MapValueUtils.getLongValue(order, "ServiceOrdID");
- Long dispatchOrdID = MapValueUtils.getLongValue(order, "DispatchOrdID");
-
- // 妫�鏌ュ弬鏁版湁鏁堟��
- if (serviceOrdID==null || serviceOrdID<=0) {
- log.warn("绗瑊}鏉℃暟鎹湇鍔″崟ID涓虹┖锛岃烦杩囧鐞�", processedCount);
- continue;
- }
-
-// log.debug("姝e湪澶勭悊绗瑊}/{}鏉¤浆杩愬崟: ServiceOrdID={}, DispatchOrdID={}",
-// processedCount, totalCount, serviceOrdID, dispatchOrdID);
-
- // 妫�鏌ユ槸鍚﹀凡鍚屾
- if (isTransferOrderSynced(serviceOrdID, dispatchOrdID)) {
-// log.debug("杞繍鍗曞凡鍚屾锛岃烦杩�: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
- //杩涜鏇存柊鎿嶄綔
- updateTransferOrder(serviceOrdID, dispatchOrdID, order);
- continue;
- }
-
- // 鍚屾鍗曚釜杞繍鍗�
- boolean success = syncSingleTransferOrder(serviceOrdID, dispatchOrdID, order);
- if (success) {
- successCount++;
- }
-
- // 鎺у埗鍚屾棰戠巼锛岄伩鍏嶈姹傝繃蹇�
- Thread.sleep(100);
- } catch (InterruptedException ie) {
- log.warn("鍚屾浠诲姟琚腑鏂�");
- Thread.currentThread().interrupt();
+
+ while (true) {
+ List<Map<String, Object>> transferOrders = legacyTransferSyncMapper.selectTransferOrders(startDateStr, endDateStr, lastId, PAGE_SIZE);
+
+ if (transferOrders == null || transferOrders.isEmpty()) {
break;
- } catch (Exception e) {
- log.error("鍚屾鍗曚釜杞繍鍗曞け璐�: ServiceOrdID={}, DispatchOrdID={}",
- MapValueUtils.getStringValue(order, "ServiceOrdID"),
- MapValueUtils.getStringValue(order, "DispatchOrdID"), e);
+ }
+
+ int totalCount = transferOrders.size();
+ int processedCount = 0;
+
+ for (Map<String, Object> order : transferOrders) {
+ processedCount++;
+ try {
+ Long serviceOrdID = MapValueUtils.getLongValue(order, "ServiceOrdID");
+ Long dispatchOrdID = MapValueUtils.getLongValue(order, "DispatchOrdID");
+
+ // 妫�鏌ュ弬鏁版湁鏁堟��
+ if (serviceOrdID == null || serviceOrdID <= 0) {
+ log.warn("绗瑊}鏉℃暟鎹湇鍔″崟ID涓虹┖锛岃烦杩囧鐞�", processedCount);
+ continue;
+ }
+
+// log.debug("姝e湪澶勭悊绗瑊}/{}鏉¤浆杩愬崟: ServiceOrdID={}, DispatchOrdID={}",
+// processedCount, totalCount, serviceOrdID, dispatchOrdID);
+
+ // 妫�鏌ユ槸鍚﹀凡鍚屾
+ if (isTransferOrderSynced(serviceOrdID, dispatchOrdID)) {
+// log.debug("杞繍鍗曞凡鍚屾锛岃烦杩�: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID);
+ //杩涜鏇存柊鎿嶄綔
+ updateTransferOrder(serviceOrdID, dispatchOrdID, order);
+ continue;
+ }
+
+ // 鍚屾鍗曚釜杞繍鍗�
+ boolean success = syncSingleTransferOrder(serviceOrdID, dispatchOrdID, order);
+ if (success) {
+ successCount++;
+ }
+
+ // 鎺у埗鍚屾棰戠巼锛岄伩鍏嶈姹傝繃蹇�
+ Thread.sleep(100);
+ } catch (InterruptedException ie) {
+ log.warn("鍚屾浠诲姟琚腑鏂�");
+ Thread.currentThread().interrupt();
+ break;
+ } catch (Exception e) {
+ log.error("鍚屾鍗曚釜杞繍鍗曞け璐�: ServiceOrdID={}, DispatchOrdID={}",
+ MapValueUtils.getStringValue(order, "ServiceOrdID"),
+ MapValueUtils.getStringValue(order, "DispatchOrdID"), e);
+ }
+ }
+
+ // 鏇存柊娓告爣涓烘湰椤垫渶鍚庝竴鏉$殑 ServiceOrdID
+ Map<String, Object> lastOrder = transferOrders.get(transferOrders.size() - 1);
+ Long lastServiceOrdID = MapValueUtils.getLongValue(lastOrder, "ServiceOrdID");
+ if (lastServiceOrdID != null && lastServiceOrdID > 0) {
+ lastId = lastServiceOrdID;
+ } else {
+ break;
+ }
+
+ // 鏈〉鏈弧涓�椤碉紝璇存槑宸叉棤鏇村鏁版嵁
+ if (totalCount < PAGE_SIZE) {
+ break;
}
}
-
-// log.info("鍚屾瀹屾垚锛屽叡澶勭悊{}鏉¤浆杩愬崟锛屾垚鍔熷悓姝}鏉¤浆杩愬崟鏁版嵁", totalCount, successCount);
+
+// log.info("鍚屾瀹屾垚锛屾垚鍔熷悓姝}鏉¤浆杩愬崟鏁版嵁", successCount);
return successCount;
} catch (Exception e) {
--
Gitblit v1.9.1