From 9f7368ceb60b8f5c635cf455914f435d8d782a90 Mon Sep 17 00:00:00 2001
From: 啊鑫 <t2856754968@163.com>
Date: 星期六, 21 六月 2025 23:58:03 +0800
Subject: [PATCH] 添加钉钉推送消息功能
---
src/main/java/com/gs/xky/service/PurchaseService.java | 35 +++++++++++++++++++++++++++++++++--
1 files changed, 33 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/gs/xky/service/PurchaseService.java b/src/main/java/com/gs/xky/service/PurchaseService.java
index 5598796..32ed2f1 100644
--- a/src/main/java/com/gs/xky/service/PurchaseService.java
+++ b/src/main/java/com/gs/xky/service/PurchaseService.java
@@ -79,8 +79,35 @@
log.info("銆恠yncPurchaseOrderDetails銆戣幏鍙栧埌{}鏉¢噰璐鍗曟暟鎹�", orderDetails.size());
- // 澶勭悊閲囪喘璁㈠崟鏄庣粏鏁版嵁
- orderDetails.forEach(detail -> {
+ // 鍒嗘壒澶勭悊鏁版嵁锛屽噺灏戝唴瀛樺崰鐢�
+ int batchSize = 100; // 姣忔壒澶勭悊100鏉℃暟鎹�
+ int totalSize = orderDetails.size();
+ int batchCount = (totalSize + batchSize - 1) / batchSize; // 鍚戜笂鍙栨暣璁$畻鎵规鏁�
+
+ for (int i = 0; i < batchCount; i++) {
+ int fromIndex = i * batchSize;
+ int toIndex = Math.min((i + 1) * batchSize, totalSize);
+
+ log.info("銆恠yncPurchaseOrderDetails銆戝鐞嗙{}鎵规暟鎹紝鑼冨洿锛歿}-{}", i + 1, fromIndex, toIndex);
+
+ // 鑾峰彇褰撳墠鎵规鐨勬暟鎹�
+ List<PurchaseOrderDetail> batchDetails = orderDetails.subList(fromIndex, toIndex);
+
+ // 澶勭悊褰撳墠鎵规鐨勬暟鎹�
+ processBatch(batchDetails);
+
+ // 鎵嬪姩瑙﹀彂GC锛岄噴鏀惧唴瀛橈紙璋ㄦ厧浣跨敤锛屼粎鍦ㄥ唴瀛樼揣寮犳椂鑰冭檻锛�
+ // System.gc();
+ }
+ }
+
+ /**
+ * 鎵归噺澶勭悊閲囪喘璁㈠崟鏄庣粏鏁版嵁
+ *
+ * @param batchDetails 褰撳墠鎵规鐨勯噰璐鍗曟槑缁嗘暟鎹�
+ */
+ private void processBatch(List<PurchaseOrderDetail> batchDetails) {
+ batchDetails.forEach(detail -> {
try {
// 鏍规嵁鏈夋晥鏍囧織鍜岃鍗曠姸鎬佸鐞嗕笉鍚岀殑涓氬姟閫昏緫
if (detail.getValidFlag() != null && detail.getValidFlag() == 0) {
@@ -113,6 +140,10 @@
// 淇濆瓨SRM閲囪喘璁㈠崟鏄庣粏
savePurchaseOrderDetail(detail);
+
+ // 甯姪GC鍥炴敹涓嶅啀浣跨敤鐨勫璞�
+ wrapper = null;
+ erpData = null;
} catch (Exception e) {
log.error("銆恠yncPurchaseOrderDetails 澶勭悊寮傚父銆戣鍗曞彿: {}, 椤规: {}, 寮傚父: {}",
detail.getPoErpNo(), detail.getLineNo(), e.getMessage(), e);
--
Gitblit v1.9.3