From 419c6a9b87b37be567a581d6a80d7e3f505d84e9 Mon Sep 17 00:00:00 2001 From: lty <876263681@qq.com> Date: 星期一, 23 六月 2025 13:39:04 +0800 Subject: [PATCH] #新增空箱入库功能,界面等修改 --- src/main/java/com/zy/asrs/importexcle/ImportOrderListener.java | 75 ++++++++++++++++++++++++++++++++----- 1 files changed, 65 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/zy/asrs/importexcle/ImportOrderListener.java b/src/main/java/com/zy/asrs/importexcle/ImportOrderListener.java index 4fefeb9..6414451 100644 --- a/src/main/java/com/zy/asrs/importexcle/ImportOrderListener.java +++ b/src/main/java/com/zy/asrs/importexcle/ImportOrderListener.java @@ -4,6 +4,7 @@ import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.excel.exception.ExcelAnalysisException; import com.alibaba.fastjson.JSON; +import com.core.common.Cools; import com.core.common.DateUtils; import com.core.common.SnowflakeIdWorker; import com.zy.asrs.entity.DocType; @@ -70,11 +71,11 @@ list.add(data); if (context.getCurrentRowNum() == 3) { String time = DateUtils.convert(new Date(),DateUtils.yyyyMMddHHmmss_F); - Order order2 = orderService.selectByNo(list.get(0).getColumn2()); + 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()); } @@ -85,6 +86,8 @@ 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); @@ -116,26 +119,69 @@ 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.setSupp(importOrderDto.getColumn3()); + orderDetl.setMemo(importOrderDto.getColumn4()); } + orderDetl.setBatch(""); orderDetl.setOrderId(orderId); orderDetl.setOrderNo(orderNo); @@ -146,12 +192,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