From 4c8ece9325b6976e4d07e0985edc12522d8ec48a Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期四, 15 十二月 2022 08:42:22 +0800
Subject: [PATCH] #

---
 src/main/resources/mapper/OrderDetlMapper.xml                    |    9 ++++
 src/main/java/com/zy/common/service/erp/task/ErpScheduler.java   |   88 +++++++++++++++++++++-----------------------
 src/main/java/com/zy/asrs/service/OrderDetlService.java          |    2 +
 src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java            |    4 +
 src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java |    5 ++
 src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java       |    3 +
 6 files changed, 62 insertions(+), 49 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
index f2b42ce..3e7d1ba 100644
--- a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
@@ -17,7 +17,9 @@
 
     OrderDetl selectItemByOrderNo(@Param("orderNo") String orderNo, @Param("matnr") String matnr, @Param("batch") String batch);
 
-    OrderDetl selectItemNoneOfBatch(String orderNo, String matnr);
+    OrderDetl selectItemNoneOfBatch(@Param("orderNo")String orderNo, @Param("matnr")String matnr);
+
+    OrderDetl selectItemOfBatch(@Param("matnr")String matnr, @Param("batch")String batch);
 
     List<OrderDetl> selectWorkingDetls(Long orderId);
 
diff --git a/src/main/java/com/zy/asrs/service/OrderDetlService.java b/src/main/java/com/zy/asrs/service/OrderDetlService.java
index b7caad5..df117bb 100644
--- a/src/main/java/com/zy/asrs/service/OrderDetlService.java
+++ b/src/main/java/com/zy/asrs/service/OrderDetlService.java
@@ -18,6 +18,8 @@
 
     OrderDetl selectItemNoneOfBatch(String orderNo, String matnr);
 
+    OrderDetl selectItemOfBatch(String matnr, String batch);
+
     OrderDetl findByLook(List<OrderDetl> orderDetls, Long orderId, String matnr, String batch);
 
     boolean increaseAnfme(Long orderId, String matnr, String batch, Double qty);
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
index 0419b37..ae757e0 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
@@ -44,6 +44,11 @@
     }
 
     @Override
+    public OrderDetl selectItemOfBatch(String matnr, String batch) {
+        return this.baseMapper.selectItemOfBatch(matnr, batch);
+    }
+
+    @Override
     public OrderDetl findByLook(List<OrderDetl> orderDetls, Long orderId, String matnr, String batch) {
         for (OrderDetl orderDetl : orderDetls) {
             if (orderDetl.getOrderId().equals(orderId) && orderDetl.getMatnr().equals(matnr)) {
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
index 1b26996..d9e52fc 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -83,7 +83,8 @@
                                 log.error("{}鏉$爜涓嶅湪erp鏁版嵁搴撲腑锛�", wrkDetl.getBatch());
                             }
                             // OrderDetl 琛�
-                            OrderDetl orderDetl = orderDetlService.selectContainBatch(wrkDetl.getBatch());
+                            OrderDetl orderDetl = orderDetlService.selectItemOfBatch(wrkDetl.getMatnr(), wrkDetl.getBatch());
+//                            OrderDetl orderDetl = orderDetlService.selectContainBatch(wrkDetl.getBatch());
                             if (!Cools.isEmpty(orderDetl)) {
                                 Order order = orderService.selectById(orderDetl.getOrderId());
                                 DocType docType = docTypeService.selectById(order.getDocType());
diff --git a/src/main/java/com/zy/common/service/erp/task/ErpScheduler.java b/src/main/java/com/zy/common/service/erp/task/ErpScheduler.java
index 9d9c781..f76f630 100644
--- a/src/main/java/com/zy/common/service/erp/task/ErpScheduler.java
+++ b/src/main/java/com/zy/common/service/erp/task/ErpScheduler.java
@@ -144,59 +144,55 @@
                     throw new CoolException(order.getOrderNo() + "鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�");
                 }
 
-
                 Mat mat = matService.selectByMatnr(voucher.getMaterialNO());
                 if (mat == null) {
                     throw new CoolException(voucher.getMaterialNO() + "鐗╂枡鍙蜂笉瀛樺湪");
                 }
 
-                OrderDetl orderDetl = new OrderDetl();
-                orderDetl.sync(mat);
-                StringBuilder sb = new StringBuilder();
-                if (!Cools.isEmpty(dto.getDetails())) {
+                // 绻冲韩鍠�
+                if (docType.getPakin() == 1) {
                     for (VoucherDetail detail : dto.getDetails()) {
-                        sb.append(detail.getBarcode()).append(",");
-                    }
-                    orderDetl.setBatch(sb.toString());
-                }
-                orderDetl.setAnfme(voucher.getExpectedWeight());
-                orderDetl.setOrderId(order.getId());
-                orderDetl.setOrderNo(order.getOrderNo());
-                orderDetl.setCreateBy(9527L);
-                orderDetl.setCreateTime(now);
-                orderDetl.setUpdateBy(9527L);
-                orderDetl.setUpdateTime(now);
-                orderDetl.setStatus(1);
-                orderDetl.setQty(0.0D);
-                if (!orderDetlService.insert(orderDetl)) {
-                    throw new CoolException(order.getOrderNo() + "鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
-                }
+                        OrderDetl orderDetl = new OrderDetl();
+                        orderDetl.sync(mat);
 
-//                else {
-//                    for (VoucherDetail detail : dto.getDetails()) {
-//
-//                        Mat mat = matService.selectByMatnr(voucher.getMaterialNO());
-//                        if (mat == null) {
-//                            throw new CoolException(voucher.getMaterialNO() + "鐗╂枡鍙蜂笉瀛樺湪");
-//                        }
-//
-//                        OrderDetl orderDetl = new OrderDetl();
-//                        orderDetl.sync(mat);
-////                    orderDetl.setBatch(detlDto.getBatch());
-//                        orderDetl.setAnfme(1.0D);
-//                        orderDetl.setOrderId(order.getId());
-//                        orderDetl.setOrderNo(order.getOrderNo());
-//                        orderDetl.setCreateBy(9527L);
-//                        orderDetl.setCreateTime(now);
-//                        orderDetl.setUpdateBy(9527L);
-//                        orderDetl.setUpdateTime(now);
-//                        orderDetl.setStatus(1);
-//                        orderDetl.setQty(0.0D);
-//                        if (!orderDetlService.insert(orderDetl)) {
-//                            throw new CoolException(order.getOrderNo() + "鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
-//                        }
-//                    }
-//                }
+                        orderDetl.setBatch(detail.getBarcode());
+                        orderDetl.setAnfme(mat.getWeight());
+
+                        orderDetl.setOrderId(order.getId());
+                        orderDetl.setOrderNo(order.getOrderNo());
+                        orderDetl.setCreateBy(9527L);
+                        orderDetl.setCreateTime(now);
+                        orderDetl.setUpdateBy(9527L);
+                        orderDetl.setUpdateTime(now);
+                        orderDetl.setStatus(1);
+                        orderDetl.setQty(0.0D);
+                        if (!orderDetlService.insert(orderDetl)) {
+                            throw new CoolException(order.getOrderNo() + "鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
+                        }
+                    }
+                } else {
+                    OrderDetl orderDetl = new OrderDetl();
+                    orderDetl.sync(mat);
+                    StringBuilder sb = new StringBuilder();
+                    if (!Cools.isEmpty(dto.getDetails())) {
+                        for (VoucherDetail detail : dto.getDetails()) {
+                            sb.append(detail.getBarcode()).append(",");
+                        }
+                        orderDetl.setBatch(sb.toString());
+                    }
+                    orderDetl.setAnfme(voucher.getExpectedWeight());
+                    orderDetl.setOrderId(order.getId());
+                    orderDetl.setOrderNo(order.getOrderNo());
+                    orderDetl.setCreateBy(9527L);
+                    orderDetl.setCreateTime(now);
+                    orderDetl.setUpdateBy(9527L);
+                    orderDetl.setUpdateTime(now);
+                    orderDetl.setStatus(1);
+                    orderDetl.setQty(0.0D);
+                    if (!orderDetlService.insert(orderDetl)) {
+                        throw new CoolException(order.getOrderNo() + "鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
+                    }
+                }
 
                 // erp 鍚屾
                 int state = 1;
diff --git a/src/main/resources/mapper/OrderDetlMapper.xml b/src/main/resources/mapper/OrderDetlMapper.xml
index 4886921..4152d97 100644
--- a/src/main/resources/mapper/OrderDetlMapper.xml
+++ b/src/main/resources/mapper/OrderDetlMapper.xml
@@ -75,12 +75,19 @@
     </select>
 
     <select id="selectItemNoneOfBatch" resultMap="BaseResultMap">
-        select * from man_order_detl
+        select top 1 * from man_order_detl
         where 1=1
         and order_no = #{orderNo}
         and matnr = #{matnr}
     </select>
 
+    <select id="selectItemOfBatch" resultMap="BaseResultMap">
+        select top 1 * from man_order_detl
+        where 1=1
+        and matnr = #{matnr}
+        and batch = #{batch}
+    </select>
+
     <select id="selectWorkingDetls" resultMap="BaseResultMap">
         select * from man_order_detl
         where 1=1

--
Gitblit v1.9.1