From 04475829f3de5ae3e35fb72d3e96391bab3a084e Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期五, 09 十二月 2022 14:48:34 +0800
Subject: [PATCH] #

---
 src/main/resources/mapper/OrderDetlMapper.xml                    |    8 ++
 src/main/java/com/zy/asrs/service/OrderDetlService.java          |    3 +
 src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java            |    2 
 src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java |   24 ++++++-
 src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java     |   12 ++++
 src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java       |   79 +++++++++++++++-----------
 6 files changed, 90 insertions(+), 38 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
index 901910d..ea2f5e5 100644
--- a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
@@ -33,4 +33,6 @@
 
     List<OrderDetl> selectRemainder(@Param("orderId") Long orderId);
 
+    List<OrderDetl> selectByMatnr(@Param("matnr") String matnr);
+
 }
diff --git a/src/main/java/com/zy/asrs/service/OrderDetlService.java b/src/main/java/com/zy/asrs/service/OrderDetlService.java
index 73740a9..12e102e 100644
--- a/src/main/java/com/zy/asrs/service/OrderDetlService.java
+++ b/src/main/java/com/zy/asrs/service/OrderDetlService.java
@@ -27,4 +27,7 @@
     boolean modifyStatus(Long orderId, Integer status);
 
     List<OrderDetl> selectRemainder(Long orderId);
+
+    OrderDetl selectByMatnr(String matnr);
+
 }
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 806dba6..aa0f93e 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
@@ -2,15 +2,17 @@
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
-import com.core.common.Cools;
-import com.zy.asrs.mapper.OrderDetlMapper;
-import com.zy.asrs.entity.OrderDetl;
-import com.zy.asrs.service.OrderDetlService;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.core.common.Cools;
+import com.zy.asrs.entity.OrderDetl;
+import com.zy.asrs.mapper.OrderDetlMapper;
+import com.zy.asrs.service.OrderDetlService;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
 
+@Slf4j
 @Service("orderDetlService")
 public class OrderDetlServiceImpl extends ServiceImpl<OrderDetlMapper, OrderDetl> implements OrderDetlService {
 
@@ -78,4 +80,18 @@
         return this.baseMapper.selectRemainder(orderId);
     }
 
+    @Override
+    public OrderDetl selectByMatnr(String matnr) {
+        List<OrderDetl> orderDetls = this.baseMapper.selectByMatnr(matnr);
+        if (!Cools.isEmpty(orderDetls)) {
+            if (orderDetls.size() > 1) {
+                log.error("{}鏉$爜鍚屾椂瀛樺湪澶氱瑪璁㈠崟锛岃娉ㄦ剰鏌ョ湅锛�", matnr);
+            } else {
+                return orderDetls.get(0);
+            }
+        }
+        return null;
+    }
+
+
 }
diff --git a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
index 4b26efd..6571c51 100644
--- a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -48,7 +48,19 @@
         List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
         // 鍏ュ簱瀹屾垚涓婃姤
         if (docType.getPakin() == 1) {
+            try {
+                // erp 鍚屾
+                int state = 2;
+                if (!erpService.updateStateForVoucher(order.getOrderNo(), state)) {
+                    throw new CoolException(order.getOrderNo() + "璁㈠崟淇敼State涓�"+state+"澶辫触");
+                } else {
+                    erpService.updateTimeForVoucherDetail(order.getOrderNo());
+                }
 
+            } catch (Exception e) {
+                log.error("fail", e);
+                return FAIL.setMsg(e.getMessage());
+            }
         }
         // 鍑哄簱瀹屾垚涓婃姤
         if (docType.getPakout() == 1) {
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 70e6a25..49e3237 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -3,8 +3,8 @@
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
-import com.zy.asrs.entity.WrkDetl;
-import com.zy.asrs.entity.WrkMast;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.*;
 import com.zy.asrs.service.*;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
@@ -38,13 +38,13 @@
     @Autowired
     private WrkDetlLogService wrkDetlLogService;
     @Autowired
-    private WaitPakinService waitPakinService;
-    @Autowired
-    private WaitPakinLogService waitPakinLogService;
-    @Autowired
     private OrderService orderService;
     @Autowired
+    private OrderDetlService orderDetlService;
+    @Autowired
     private ErpService erpService;
+    @Autowired
+    private DocTypeService docTypeService;
 
     // update asr_wrk_mast set inv_wh = 'Y', ove_mk = 'Y' where wrk_no =
     @Transactional
@@ -67,37 +67,48 @@
             // 鍏ュ簱 --------------------------------------------------------------------------------
             if (wrkMast.getWrkSts() == 10) {
 
-                // 鎼滅储瀵瑰簲鍏ュ簱鏉$爜鍦╡rp鏁版嵁搴撲腑鐨勭姸鎬�
-                List<WrkDetl> wrkDetls0 = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
-                for (WrkDetl wrkDetl : wrkDetls0) {
-                    Goods goods = erpService.selectGoodsOne(wrkDetl.getMatnr());
-                    if (!Cools.isEmpty(goods)) {
-                        if (!erpService.updateStateAndLocForGoods(goods.getBarCode(), 3, wrkMast.getLocNo())) {
-                            log.error("{}鏉$爜鍦╡rp鏁版嵁搴撲腑鏇存柊澶辫触锛�", goods.getBarCode());
-                        }
-                    } else {
-                        log.error("{}鏉$爜涓嶅湪erp鏁版嵁搴撲腑锛�", wrkDetl.getMatnr());
-                    }
-                }
-
-
                 // 鍏ㄦ澘鍏ュ簱
                 if (wrkMast.getIoType() == 1) {
-                    // 鍏ュ簱閫氱煡鍗�
-                    if (!Cools.isEmpty(wrkMast.getBarcode())) {
-                        // 淇濆瓨鍏ュ簱閫氱煡妗e巻鍙叉。
-                        if (!waitPakinLogService.save(wrkMast.getBarcode())) {
-                            exceptionHandle("淇濆瓨鍏ュ簱閫氱煡妗e巻鍙叉。[workNo={0}]澶辫触", wrkMast.getWrkNo());
-                        }
-                        // 鍒犻櫎鍏ュ簱閫氱煡妗�
-//                        if (!waitPakinService.delete(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()))) {
-//                            exceptionHandle("鍒犻櫎鍏ュ簱閫氱煡妗workNo={0}]澶辫触", wrkMast.getWrkNo());
-//                        }
-                    }
-                    // 鎵嬪姩鍏ュ簱鐢熸垚鍗曟嵁 銆� 涓婃姤涓夋柟骞冲彴 銆�
+
+                    // 銆� 涓婃姤涓夋柟骞冲彴 銆�
                     if (!Cools.isEmpty(wrkDetls)) {
-                        if (!orderService.saveHandlerOrder(Boolean.TRUE, wrkMast, wrkDetls)) {
-                            exceptionHandle("鐢熸垚鎵嬪姩鍏ュ簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
+                        for (WrkDetl wrkDetl : wrkDetls) {
+                            // Goods 琛�
+                            Goods goods = erpService.selectGoodsOne(wrkDetl.getMatnr());
+                            if (!Cools.isEmpty(goods)) {
+                                if (!erpService.updateStateAndLocForGoods(goods.getBarCode(), 3, wrkMast.getLocNo())) {
+                                    log.error("{}鏉$爜鍦╡rp鏁版嵁搴撲腑鏇存柊澶辫触锛�", goods.getBarCode());
+                                }
+                            } else {
+                                log.error("{}鏉$爜涓嶅湪erp鏁版嵁搴撲腑锛�", wrkDetl.getMatnr());
+                            }
+                            // OrderDetl 琛�
+                            OrderDetl orderDetl = orderDetlService.selectByMatnr(wrkDetl.getMatnr());
+                            if (!Cools.isEmpty(orderDetl)) {
+                                Order order = orderService.selectById(orderDetl.getOrderId());
+                                DocType docType = docTypeService.selectById(order.getDocType());
+                                if (docType.getPakin() == 1) {
+                                    if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), wrkDetl.getAnfme())) {
+                                        log.error("{}缂栧彿璁㈠崟锛屾洿鏂皗}鏉$爜鏁伴噺澶辫触", orderDetl.getOrderNo(), orderDetl.getMatnr());
+                                    }
+                                }
+                                // Order 琛�
+                                if (order.getSettle() < 3L) {
+                                    List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
+                                    boolean complete = true;
+                                    for (OrderDetl detl : orderDetls) {
+                                        if (detl.getAnfme() > detl.getQty()) {
+                                            complete = false;
+                                            break;
+                                        }
+                                    }
+                                    if (complete) {
+                                        if (!orderService.updateSettle(order.getId(), 4L, null)) {
+                                            throw new CoolException("淇敼璁㈠崟銆恛rderNo = " + order.getOrderNo() + "銆戠姸鎬佷负宸插畬鎴愬け璐�");
+                                        }
+                                    }
+                                }
+                            }
                         }
                     }
                     // 鎷f枡鍐嶅叆搴�
diff --git a/src/main/resources/mapper/OrderDetlMapper.xml b/src/main/resources/mapper/OrderDetlMapper.xml
index 6cab66f..ee1bf31 100644
--- a/src/main/resources/mapper/OrderDetlMapper.xml
+++ b/src/main/resources/mapper/OrderDetlMapper.xml
@@ -190,4 +190,12 @@
         and order_id = #{orderId}
     </select>
 
+    <select id="selectByMatnr" resultMap="BaseResultMap">
+        select
+        *
+        from man_order_detl
+        where 1=1
+        and matnr = #{matnr}
+    </select>
+
 </mapper>

--
Gitblit v1.9.1