From ad9e95343ccec55d45d73d9e814b7c68ac38e9ca Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期二, 05 八月 2025 10:55:11 +0800 Subject: [PATCH] 1 --- src/main/java/com/zy/asrs/importexcle/ImportOrderListener.java | 48 ++++++++++++++++++++++++++++++++---------------- 1 files changed, 32 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/zy/asrs/importexcle/ImportOrderListener.java b/src/main/java/com/zy/asrs/importexcle/ImportOrderListener.java index e862d93..d6e1505 100644 --- a/src/main/java/com/zy/asrs/importexcle/ImportOrderListener.java +++ b/src/main/java/com/zy/asrs/importexcle/ImportOrderListener.java @@ -16,9 +16,7 @@ import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; /** * @author pang.jiabao @@ -61,37 +59,54 @@ this.userId = userId; } - /** - * 杩欎釜姣忎竴鏉℃暟鎹В鏋愰兘浼氭潵璋冪敤 - */ + private Set<String> uniquePackNos = new HashSet<>(); // 鐢ㄤ簬鍘婚噸鍖呰缁勫彿 + @SneakyThrows @Override public void invoke(ImportOrderDto data, AnalysisContext context) { log.info("瑙f瀽鍒扮 {} 鏉℃暟鎹�:{}", ++count, JSON.toJSONString(data)); + + // 鑾峰彇鍖呰缁勫彿锛坈olumn1锛� + String packNo = data.getColumn1(); + if (Cools.isEmpty(packNo)) { + log.warn("鍖呰缁勫彿涓虹┖锛岃烦杩囪琛岋紒"); + return; + } + + // 濡傛灉宸茬粡澶勭悊杩囪鍖呰缁勫彿锛屽垯璺宠繃 + if (uniquePackNos.contains(packNo)) { + log.info("閲嶅鐨勫寘瑁呯粍鍙凤細{}锛岃烦杩�", packNo); + return; + } + + // 棣栨鍑虹幇锛岃褰曞苟澶勭悊 + uniquePackNos.add(packNo); list.add(data); - if (context.getCurrentRowNum() == 5) { - String time = DateUtils.convert(new Date(),DateUtils.yyyyMMddHHmmss_F); - Order order2 = orderService.selectByNo(list.get(0).getColumn2()); // 璁㈠崟鍙� - if(order2 != null) { + + if (context.getCurrentRowNum() == 3) { + String time = DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F); + Order order2 = orderService.selectByNo(list.get(0).getColumn2()); + if (order2 != null) { throw new ExcelAnalysisException("鍗曟嵁宸插瓨鍦紒"); } - DocType docType = docTypeService.selectOrAdd(list.get(1).getColumn2(), Boolean.FALSE); // 璁㈠崟绫诲瀷 + DocType docType = docTypeService.selectOrAdd(list.get(1).getColumn2(), Boolean.FALSE); if (docType == null) { throw new ExcelAnalysisException("鍗曟嵁绫诲瀷閿欒锛�" + list.get(1).getColumn2()); } + orderNo = list.get(0).getColumn2(); docTypeId = docType.getDocId(); + Order order = new Order(); order.setUuid(String.valueOf(snowflakeIdWorker.nextId())); order.setOrderNo(orderNo); order.setOrderTime(time); order.setDocType(docType.getDocId()); - order.setCstmrName(Cools.isEmpty(list.get(2).getColumn2()) ? "" : list.get(2).getColumn2()); // 瀹㈡埛鍚嶇О - order.setMemo(Cools.isEmpty(list.get(3).getColumn2()) ? "" : list.get(3).getColumn2()); // 澶囨敞 order.setSettle(1L); order.setStatus(1); order.setCreateBy(userId); order.setCreateTime(new Date()); + orderService.insert(order); Order order1 = orderService.selectByNo(orderNo); orderId = order1.getId(); @@ -99,13 +114,12 @@ return; } - // 杈惧埌BATCH_COUNT浜嗭紝闇�瑕佸幓瀛樺偍涓�娆℃暟鎹簱锛岄槻姝㈡暟鎹嚑涓囨潯鏁版嵁鍦ㄥ唴瀛橈紝瀹规槗OOM if (list.size() >= BATCH_COUNT) { saveData(); - // 瀛樺偍瀹屾垚娓呯悊 list list.clear(); } } + /** * 鎵�鏈夋暟鎹В鏋愬畬鎴愪簡 閮戒細鏉ヨ皟鐢� @@ -155,7 +169,7 @@ // // log.info("瀛樺偍鏁版嵁搴撴垚鍔燂紒"); // } -private static final int MAX_BATCH_SIZE = 150; // 寤鸿 100~200锛屾牴鎹瓧娈垫暟鎺у埗 +private static final int MAX_BATCH_SIZE = 50; // 寤鸿 100~200锛屾牴鎹瓧娈垫暟鎺у埗 /** * 鍒嗘壒瀛樺偍鏁版嵁搴擄紝閬垮厤SQL Server鍙傛暟涓婇檺锛�2100锛夐敊璇� @@ -178,6 +192,8 @@ } } else { orderDetl.setBrand(importOrderDto.getColumn1()); + orderDetl.setSupp(importOrderDto.getColumn3()); + orderDetl.setMemo(importOrderDto.getColumn4()); } orderDetl.setBatch(""); -- Gitblit v1.9.1