From bd2eb4480540d2bf6ee1c12fd72d7f778b036a4a Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期三, 18 六月 2025 12:54:43 +0800
Subject: [PATCH] #导入订单时分批导入
---
src/main/java/com/zy/asrs/importexcle/ImportOrderListener.java | 66 +++++++++++++++++++++++++++++----
1 files changed, 58 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/zy/asrs/importexcle/ImportOrderListener.java b/src/main/java/com/zy/asrs/importexcle/ImportOrderListener.java
index 3ae6405..e862d93 100644
--- a/src/main/java/com/zy/asrs/importexcle/ImportOrderListener.java
+++ b/src/main/java/com/zy/asrs/importexcle/ImportOrderListener.java
@@ -119,26 +119,67 @@
log.info("鎵�鏈夋暟鎹В鏋愬畬鎴愶紒");
}
+// /**
+// * 鍔犱笂瀛樺偍鏁版嵁搴�
+// */
+// private void saveData() {
+// log.info("{}鏉℃暟鎹紝寮�濮嬪瓨鍌ㄦ暟鎹簱锛�", list.size());
+// log.info("鍗曟嵁鍙凤細{}锛屾暟鎹細{},",orderNo, JSON.toJSONString(list));
+// List<OrderDetl> orderDetlList = new ArrayList<>();
+// list.forEach(importOrderDto -> {
+// OrderDetl orderDetl = new OrderDetl();
+// if (docTypeId == 24) {
+// orderDetl.setSpecs(String.format("%07d",Integer.parseInt(importOrderDto.getColumn1()))); // 婧愬簱浣�
+// if (importOrderDto.getColumn2() != null) {
+// orderDetl.setModel(String.format("%07d",Integer.parseInt(importOrderDto.getColumn2()))); // 鐩爣搴撲綅
+// }
+// if (importOrderDto.getColumn3() != null) {
+// orderDetl.setBeBatch(Integer.parseInt(importOrderDto.getColumn3())); //宸烽亾
+// }
+// } else {
+// orderDetl.setBrand(importOrderDto.getColumn1());
+// }
+// orderDetl.setBatch("");
+// orderDetl.setOrderId(orderId);
+// orderDetl.setOrderNo(orderNo);
+// orderDetl.setCreateBy(9527L);
+// orderDetl.setCreateTime(new Date());
+// orderDetl.setUpdateBy(9527L);
+// orderDetl.setUpdateTime(new Date());
+// orderDetl.setStatus(1);
+// orderDetl.setQty(0.0D);
+// orderDetl.setAnfme(1.0);
+// orderDetlList.add(orderDetl);
+// });
+// orderDetlMapper.batchDetls(orderDetlList);
+//
+// log.info("瀛樺偍鏁版嵁搴撴垚鍔燂紒");
+// }
+private static final int MAX_BATCH_SIZE = 150; // 寤鸿 100~200锛屾牴鎹瓧娈垫暟鎺у埗
+
/**
- * 鍔犱笂瀛樺偍鏁版嵁搴�
+ * 鍒嗘壒瀛樺偍鏁版嵁搴擄紝閬垮厤SQL Server鍙傛暟涓婇檺锛�2100锛夐敊璇�
*/
private void saveData() {
log.info("{}鏉℃暟鎹紝寮�濮嬪瓨鍌ㄦ暟鎹簱锛�", list.size());
- log.info("鍗曟嵁鍙凤細{}锛屾暟鎹細{},",orderNo, JSON.toJSONString(list));
+ log.info("鍗曟嵁鍙凤細{}锛屾暟鎹細{},", orderNo, JSON.toJSONString(list));
+
List<OrderDetl> orderDetlList = new ArrayList<>();
- list.forEach(importOrderDto -> {
+ for (ImportOrderDto importOrderDto : list) {
OrderDetl orderDetl = new OrderDetl();
+
if (docTypeId == 24) {
- orderDetl.setSpecs(String.format("%07d",Integer.parseInt(importOrderDto.getColumn1()))); // 婧愬簱浣�
+ orderDetl.setSpecs(String.format("%07d", Integer.parseInt(importOrderDto.getColumn1()))); // 婧愬簱浣�
if (importOrderDto.getColumn2() != null) {
- orderDetl.setModel(String.format("%07d",Integer.parseInt(importOrderDto.getColumn2()))); // 鐩爣搴撲綅
+ orderDetl.setModel(String.format("%07d", Integer.parseInt(importOrderDto.getColumn2()))); // 鐩爣搴撲綅
}
if (importOrderDto.getColumn3() != null) {
- orderDetl.setBeBatch(Integer.parseInt(importOrderDto.getColumn3())); //宸烽亾
+ orderDetl.setBeBatch(Integer.parseInt(importOrderDto.getColumn3())); // 宸烽亾
}
} else {
orderDetl.setBrand(importOrderDto.getColumn1());
}
+
orderDetl.setBatch("");
orderDetl.setOrderId(orderId);
orderDetl.setOrderNo(orderNo);
@@ -149,12 +190,21 @@
orderDetl.setStatus(1);
orderDetl.setQty(0.0D);
orderDetl.setAnfme(1.0);
+
orderDetlList.add(orderDetl);
- });
- orderDetlMapper.batchDetls(orderDetlList);
+ }
+
+ // 鉁� 鍏抽敭鐐癸細鍒嗘壒鎻愪氦
+ for (int i = 0; i < orderDetlList.size(); i += MAX_BATCH_SIZE) {
+ int end = Math.min(i + MAX_BATCH_SIZE, orderDetlList.size());
+ List<OrderDetl> batch = orderDetlList.subList(i, end);
+ orderDetlMapper.batchDetls(batch);
+ }
log.info("瀛樺偍鏁版嵁搴撴垚鍔燂紒");
}
+
+
/**
*瑙f瀽鍑虹幇閿欒浼氳繘鍏ヨ鏂规硶 鍏蜂綋鐪嬫簮浠g爜鎴栨枃妗�
*/
--
Gitblit v1.9.1