From f6e687c194354f1c0b883b5ac56da3a8e70db471 Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期三, 14 一月 2026 18:43:37 +0800
Subject: [PATCH] 出库工作档功能优化
---
src/main/java/com/zy/asrs/utils/OrderExcelListener.java | 60 +++++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 43 insertions(+), 17 deletions(-)
diff --git a/src/main/java/com/zy/asrs/utils/OrderExcelListener.java b/src/main/java/com/zy/asrs/utils/OrderExcelListener.java
index 59e6c5e..0efd602 100644
--- a/src/main/java/com/zy/asrs/utils/OrderExcelListener.java
+++ b/src/main/java/com/zy/asrs/utils/OrderExcelListener.java
@@ -22,7 +22,7 @@
import org.springframework.transaction.annotation.Transactional;
@Slf4j
-public class OrderExcelListener extends AnalysisEventListener<OrderExcel> {
+public class OrderExcelListener extends AnalysisEventListener<OrderExcel> {
private int total = 0;
private Long userId;
@@ -48,16 +48,17 @@
/**
* 鍗曟嵁瀵煎叆瀹炵幇
+ *
+ * @param data
+ * @param context
* @author Ryan
* @date 2026/1/8 17:25
- * @param data
- * @param context
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void invoke(OrderExcel data, AnalysisContext context) {
- OrderService orderService = (OrderService) SpringUtils.getBean(OrderService.class);
- OrderDetlService detlService = (OrderDetlService) SpringUtils.getBean(OrderDetlService.class);
+ OrderService orderService = SpringUtils.getBean(OrderService.class);
+ OrderDetlService detlService = SpringUtils.getBean(OrderDetlService.class);
MatService matService = SpringUtils.getBean(MatService.class);
DocTypeService docTypeService = SpringUtils.getBean(DocTypeService.class);
Date now = new Date();
@@ -77,16 +78,27 @@
Order order = new Order();
order.setOrderNo(data.getOrderNo());
- order.setDocType(docType.getDocId());
- order.setCreateTime(now);
- order.setUpdateTime(now);
- order.setSettle(1L);
- order.setStatus(1);
- order.setCreateBy(userId);
- order.setUpdateBy(userId);
- order.setPakinPakoutStatus(docType.getPakin() == 1 ? 1 : 2);
- if (!orderService.insert(order)) {
- throw new CoolException("璁㈠崟鍒涘缓澶辫触锛侊紒");
+ if (Objects.isNull(data.getOrderNo())) {
+ throw new CoolException("鍗曟嵁缂栫爜涓嶈兘涓虹┖锛侊紒");
+ }
+ order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", data.getOrderNo()));
+ if (!Objects.isNull(order)) {
+ //璁㈠崟宸插瓨鍦紝鍙坊鍔犳槑缁�
+ } else {
+ order = new Order();
+ order.setOrderNo(data.getOrderNo());
+ order.setDocType(docType.getDocId());
+ order.setUuid(UUID.randomUUID().toString());
+ order.setCreateTime(now);
+ order.setUpdateTime(now);
+ order.setSettle(1L);
+ order.setStatus(1);
+ order.setCreateBy(userId);
+ order.setUpdateBy(userId);
+ order.setPakinPakoutStatus(docType.getPakin() == 1 ? 1 : 2);
+ if (!orderService.insert(order)) {
+ throw new CoolException("璁㈠崟鍒涘缓澶辫触锛侊紒");
+ }
}
if (Objects.isNull(data.getMatnr())) {
throw new CoolException("鐗╂枡缂栫爜涓嶈兘涓虹┖锛�");
@@ -95,14 +107,27 @@
if (Objects.isNull(mat)) {
throw new CoolException("鐗╂枡[" + data.getMatnr() + "]涓嶅瓨鍦紒锛�");
}
+
+ OrderDetl orderDetl = detlService.selectOne(new EntityWrapper<OrderDetl>()
+ .eq("matnr", data.getMatnr())
+ .eq("batch", data.getBatch())
+ .eq("barcode", data.getBarcode())
+ .eq("order_no", order.getOrderNo()));
+ if (!Objects.isNull(orderDetl)) {
+ return;
+ }
OrderDetl detl = new OrderDetl();
detl.setOrderNo(data.getOrderNo());
detl.setOrderId(order.getId());
detl.setMatnr(data.getMatnr());
detl.setMaktx(mat.getMaktx());
detl.setQty(data.getQty());
- detl.setBatch(data.getBatch());
- detl.setVolume(data.getVolume());
+ detl.setUnit(data.getUnit());
+ detl.setModel(data.getModel());
+ detl.setBrand(data.getBrand());
+ detl.setSpecs(data.getSpecs());
+ detl.setBatch(Objects.isNull(data.getBatch()) ? "1" : data.getBatch());
+ detl.setVolume(mat.getVolume());
detl.setSafeQty(mat.getSafeQty());
detl.setAnfme(data.getAnfme());
detl.setBarcode(data.getBarcode());
@@ -113,6 +138,7 @@
if (!detlService.insert(detl)) {
throw new CoolException("璁㈠崟璇︽儏鍒涘缓澶辫触锛侊紒");
}
+ total++;
}
@Override
--
Gitblit v1.9.1