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