From 6f01b51fc0770fda7787076caf0314be7a7f6656 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 27 六月 2025 10:58:21 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java |  260 +++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 208 insertions(+), 52 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index 01536e4..aaa1f36 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -2,10 +2,14 @@
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.common.SnowflakeIdWorker;
+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;
+import com.zy.asrs.utils.MathUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -41,6 +45,13 @@
     private OrderDetlPakoutService orderDetlPakoutService;
     @Autowired
     private OrderService orderService;
+    @Autowired
+    private StoreTypeService storeTypeService;
+    @Autowired
+    private SnowflakeIdWorker snowflakeIdWorker;
+    @Autowired
+    private DocTypeService docTypeService;
+
 
     public ReturnT<String> start(WrkMast wrkMast) {
         // 4.鍏ュ簱瀹屾垚
@@ -203,6 +214,66 @@
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                         return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                     }
+
+
+
+                    // 鍒ゆ柇鏄惁涓鸿浆搴撳嚭搴�
+                    StoreType storeType = null;
+                    Order order = null;
+                    if (!Cools.isEmpty(wrkMast.getPacked())) {
+                        storeType = storeTypeService.selectById(wrkMast.getPacked());
+                        if (null != storeType) {
+                            DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", "杞簱-鍑哄簱"));
+                            String convert = DateUtils.convert(now, DateUtils.yyyyMMdd);
+                            order = new Order(
+                                    String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
+                                    convert + "_" + wrkMast.getPacked() + "_" + wrkMast.getWrkNo(),    // 璁㈠崟缂栧彿
+                                    DateUtils.convert(now),    // 鍗曟嵁鏃ユ湡
+                                    docType.getDocId(),    // 鍗曟嵁绫诲瀷
+                                    storeType.getStoreId(),    // 椤圭洰缂栧彿
+                                    storeType.getStoreName(),    //
+                                    null,    // 璋冩嫧椤圭洰缂栧彿
+                                    null,    // 鍒濆绁ㄦ嵁鍙�
+                                    null,    // 绁ㄦ嵁鍙�
+                                    null,    // 瀹㈡埛缂栧彿
+                                    null,    // 瀹㈡埛
+                                    null,    // 鑱旂郴鏂瑰紡
+                                    wrkMast.getAppeUser$(),    // 鎿嶄綔浜哄憳
+                                    null,    // 鍚堣閲戦
+                                    null,    // 浼樻儬鐜�
+                                    null,    // 浼樻儬閲戦
+                                    null,    // 閿�鍞垨閲囪喘璐圭敤鍚堣
+                                    null,    // 瀹炰粯閲戦
+                                    null,    // 浠樻绫诲瀷
+                                    null,    // 涓氬姟鍛�
+                                    null,    // 缁撶畻澶╂暟
+                                    null,    // 閭垂鏀粯绫诲瀷
+                                    null,    // 閭垂
+                                    null,    // 浠樻鏃堕棿
+                                    null,    // 鍙戣揣鏃堕棿
+                                    null,    // 鐗╂祦鍚嶇О
+                                    null,    // 鐗╂祦鍗曞彿
+                                    1L,    // 璁㈠崟鐘舵��
+                                    4,    // 鐘舵��
+                                    wrkMast.getAppeUser(),    // 娣诲姞浜哄憳
+                                    now,    // 娣诲姞鏃堕棿
+                                    wrkMast.getAppeUser(),    // 淇敼浜哄憳
+                                    now,    // 淇敼鏃堕棿
+                                    null,    // 澶囨敞
+                                    docType.getPakin() == 1 ? 1 : 2
+                            );
+                            if (!orderService.insert(order)) {
+                                throw new CoolException("淇濆瓨璁㈠崟涓绘。澶辫触");
+                            }
+                        }
+
+                    }
+
+
+
+
+
+
                     for (WrkDetl wrkDetl : wrkDetls53) {
 
                         LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
@@ -215,26 +286,32 @@
                         }
 
                         // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
-                        addOrderDetlQty(wrkMast, wrkDetl);
-//                        OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
-//                        if (orderDetlPakout == null) {
-//                            orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null, wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
-//                        }
-//                        try {
-//                            if (!Cools.isEmpty(orderDetlPakout)) {
-////                                if (!orderDetlPakinService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
-////                                        orderDetlPakin.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
-////                                        wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), wrkDetl.getAnfme())) {
-//
-//                                if (!orderDetlPakoutService.increaseQtyByOrderNo(orderDetlPakout.getOrderNo(), orderDetlPakout.getMatnr(), orderDetlPakout.getBatch(), orderDetlPakout.getBrand(), orderDetlPakout.getStandby1(), orderDetlPakout.getStandby2(), orderDetlPakout.getStandby3(), orderDetlPakout.getBoxType1(), orderDetlPakout.getBoxType2(), orderDetlPakout.getBoxType3(), wrkDetl.getAnfme())) {
-////                                    exceptionHandle("鎷f枡鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
-////                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
-//                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-//                                    return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
-//                                }
-//                            }
-//                        } catch (Exception ignore) {
-//                        }
+                        //addOrderDetlQty(wrkMast, wrkDetl);
+                        OrderDetlPakout orderDetlPakout;
+                        if (!Cools.isEmpty(wrkDetl.getThreeCode())) {
+                            orderDetlPakout = orderDetlPakoutService.selectById(Long.parseLong(wrkDetl.getThreeCode()));
+                        } else {
+                            orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+                            if (orderDetlPakout == null) {
+                                orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null, wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+                            }
+                        }
+                        try {
+                            if (!Cools.isEmpty(orderDetlPakout)) {
+//                                if (!orderDetlPakinService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+//                                        orderDetlPakin.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
+//                                        wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), wrkDetl.getAnfme())) {
+                                if (!orderDetlPakoutService.increaseQtyById(orderDetlPakout.getId(), wrkDetl.getAnfme())) {
+
+                                    //if (!orderDetlPakoutService.increaseQtyByOrderNo(orderDetlPakout.getOrderNo(), orderDetlPakout.getMatnr(), orderDetlPakout.getBatch(), orderDetlPakout.getBrand(), orderDetlPakout.getStandby1(), orderDetlPakout.getStandby2(), orderDetlPakout.getStandby3(), orderDetlPakout.getBoxType1(), orderDetlPakout.getBoxType2(), orderDetlPakout.getBoxType3(), wrkDetl.getAnfme())) {
+//                                    exceptionHandle("鎷f枡鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+//                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
+                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                    return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                                }
+                            }
+                        } catch (Exception ignore) {
+                        }
 
                     }
                     // 淇敼搴撲綅鐘舵�� Q ====>> F
@@ -242,6 +319,8 @@
                         locMast.setLocSts("F");
                         locMast.setBarcode(wrkMast.getBarcode());
                         locMast.setIoTime(now);
+                        //鏍囪璇ュ簱浣嶅凡缁忔嫞鏂欒繃
+                        locMast.setPdcType("pick");
                         locMast.setModiTime(now);
                         if (!locMastService.updateById(locMast)) {
 //                            exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
@@ -325,19 +404,19 @@
                         return FAIL.setMsg("鐩樼偣鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                     }
                     for (WrkDetl wrkDetl : wrkDetls57) {
-                        if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
-                            // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
-                            OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
-                            if (!Cools.isEmpty(orderDetlPakout)) {
-//                                if (!orderDetlPakoutService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
-//                                        orderDetlPakout.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
-//                                        wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), wrkDetl.getAnfme())) {
-                                if (!orderDetlPakoutService.increaseQtyByOrderNo(orderDetlPakout.getOrderNo(), orderDetlPakout.getMatnr(), orderDetlPakout.getBatch(), orderDetlPakout.getBrand(), orderDetlPakout.getStandby1(), orderDetlPakout.getStandby2(), orderDetlPakout.getStandby3(), orderDetlPakout.getBoxType1(), orderDetlPakout.getBoxType2(), orderDetlPakout.getBoxType3(), wrkDetl.getAnfme())) {
-                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                    return FAIL.setMsg("鐩樼偣鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
-                                }
-                            }
-                        }
+//                        if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
+//                            // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+//                            OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+//                            if (!Cools.isEmpty(orderDetlPakout)) {
+////                                if (!orderDetlPakoutService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+////                                        orderDetlPakout.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
+////                                        wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), wrkDetl.getAnfme())) {
+//                                if (!orderDetlPakoutService.increaseQtyByOrderNo(orderDetlPakout.getOrderNo(), orderDetlPakout.getMatnr(), orderDetlPakout.getBatch(), orderDetlPakout.getBrand(), orderDetlPakout.getStandby1(), orderDetlPakout.getStandby2(), orderDetlPakout.getStandby3(), orderDetlPakout.getBoxType1(), orderDetlPakout.getBoxType2(), orderDetlPakout.getBoxType3(), wrkDetl.getAnfme())) {
+//                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//                                    return FAIL.setMsg("鐩樼偣鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+//                                }
+//                            }
+//                        }
                     }
                     // 淇敼搴撲綅鐘舵�� Q ====>> F
                     if (locMast.getLocSts().equals("Q")) {
@@ -434,24 +513,98 @@
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                         return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                     }
+                    // 鍒ゆ柇鏄惁涓鸿浆搴撳嚭搴�
+                    StoreType storeType = null;
+                    Order order = null;
+                    if (!Cools.isEmpty(wrkMast.getPacked())) {
+                        storeType = storeTypeService.selectById(wrkMast.getPacked());
+                        if (null != storeType) {
+                            DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", "杞簱-鍑哄簱"));
+                            String convert = DateUtils.convert(now, DateUtils.yyyyMMdd);
+                            order = new Order(
+                                    String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
+                                    convert + "_" + wrkMast.getPacked() + "_" + wrkMast.getWrkNo(),    // 璁㈠崟缂栧彿
+                                    DateUtils.convert(now),    // 鍗曟嵁鏃ユ湡
+                                    docType.getDocId(),    // 鍗曟嵁绫诲瀷
+                                    storeType.getStoreId(),    // 椤圭洰缂栧彿
+                                    storeType.getStoreName(),    //
+                                    null,    // 璋冩嫧椤圭洰缂栧彿
+                                    null,    // 鍒濆绁ㄦ嵁鍙�
+                                    null,    // 绁ㄦ嵁鍙�
+                                    null,    // 瀹㈡埛缂栧彿
+                                    null,    // 瀹㈡埛
+                                    null,    // 鑱旂郴鏂瑰紡
+                                    wrkMast.getAppeUser$(),    // 鎿嶄綔浜哄憳
+                                    null,    // 鍚堣閲戦
+                                    null,    // 浼樻儬鐜�
+                                    null,    // 浼樻儬閲戦
+                                    null,    // 閿�鍞垨閲囪喘璐圭敤鍚堣
+                                    null,    // 瀹炰粯閲戦
+                                    null,    // 浠樻绫诲瀷
+                                    null,    // 涓氬姟鍛�
+                                    null,    // 缁撶畻澶╂暟
+                                    null,    // 閭垂鏀粯绫诲瀷
+                                    null,    // 閭垂
+                                    null,    // 浠樻鏃堕棿
+                                    null,    // 鍙戣揣鏃堕棿
+                                    null,    // 鐗╂祦鍚嶇О
+                                    null,    // 鐗╂祦鍗曞彿
+                                    1L,    // 璁㈠崟鐘舵��
+                                    4,    // 鐘舵��
+                                    wrkMast.getAppeUser(),    // 娣诲姞浜哄憳
+                                    now,    // 娣诲姞鏃堕棿
+                                    wrkMast.getAppeUser(),    // 淇敼浜哄憳
+                                    now,    // 淇敼鏃堕棿
+                                    null,    // 澶囨敞
+                                    docType.getPakin() == 1 ? 1 : 2
+                            );
+                            if (!orderService.insert(order)) {
+                                throw new CoolException("淇濆瓨璁㈠崟涓绘。澶辫触");
+                            }
+                        }
+
+                    }
                     for (WrkDetl wrkDetl : wrkDetls101) {
-                        // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
-                        addOrderDetlQty(wrkMast, wrkDetl);
-//                        OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
-//                        if (orderDetlPakout == null) {
-//                            orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null, wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
-//                        }
-//                        try {
-//                            if (!Cools.isEmpty(orderDetlPakout)) {
-//                                if (!orderDetlPakoutService.increaseQtyByOrderNo(orderDetlPakout.getOrderNo(), orderDetlPakout.getMatnr(), orderDetlPakout.getBatch(), orderDetlPakout.getBrand(), orderDetlPakout.getStandby1(), orderDetlPakout.getStandby2(), orderDetlPakout.getStandby3(), orderDetlPakout.getBoxType1(), orderDetlPakout.getBoxType2(), orderDetlPakout.getBoxType3(), wrkDetl.getAnfme())) {
-////                                    exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
-////                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
-//                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-//                                    return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
-//                                }
-//                            }
-//                        } catch (Exception ignore) {
-//                        }
+                        if (storeType != null) {
+                            OrderDetl orderDetl = new OrderDetl();
+                            orderDetl.sync(wrkDetl);
+                            orderDetl.setOrderId(order.getId());
+                            orderDetl.setOrderNo(order.getOrderNo());
+                            orderDetl.setCreateBy(order.getCreateBy());
+                            orderDetl.setCreateTime(now);
+                            orderDetl.setUpdateBy(order.getCreateBy());
+                            orderDetl.setUpdateTime(now);
+                            orderDetl.setStatus(1);
+                            orderDetl.setQty(wrkDetl.getAnfme());
+                            if (!orderDetlService.insert(orderDetl)) {
+                                throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�");
+                            }
+                        } else {
+                            // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+                            //addOrderDetlQty(wrkMast, wrkDetl);
+                            OrderDetlPakout orderDetlPakout;
+                            if (!Cools.isEmpty(wrkDetl.getThreeCode())) {
+                                orderDetlPakout = orderDetlPakoutService.selectById(Long.parseLong(wrkDetl.getThreeCode()));
+                            } else {
+                                orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+                                if (orderDetlPakout == null) {
+                                    orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null, wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+                                }
+                            }
+
+                            try {
+                                if (!Cools.isEmpty(orderDetlPakout)) {
+                                    if (!orderDetlPakoutService.increaseQtyById(orderDetlPakout.getId(), wrkDetl.getAnfme())) {
+//                                    exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+//                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
+                                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                        return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+                                    }
+                                }
+                            } catch (Exception ignore) {
+                            }
+                        }
+
                     }
                     // 鍒犻櫎宸ヤ綔妗f簮搴撲綅鐨勫簱瀛樻槑缁�
                     if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()))) {
@@ -543,7 +696,10 @@
             OrderDetlPakout orderDetlPakout;
             switch (order.getDocType$()) {
                 case "閿�鍞彂璐�":
-                    orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null, wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+                    orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+                    if (Cools.isEmpty(orderDetlPakout)) {
+                        orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null, wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+                    }
                     if (!Cools.isEmpty(orderDetlPakout)) {
                         OrderDetl orderDetl = orderDetlService.selectItem(orderDetlPakout.getOrderNo(), orderDetlPakout.getMatnr(), wrkDetl.getBatch(), orderDetlPakout.getBrand(), orderDetlPakout.getStandby1(), orderDetlPakout.getStandby2(), orderDetlPakout.getStandby3(), orderDetlPakout.getBoxType1(), orderDetlPakout.getBoxType2(), orderDetlPakout.getBoxType3());
                         if (orderDetl == null) {
@@ -553,7 +709,7 @@
                             if (orderDetl.getAnfme() <= wrkDetl.getAnfme()) {
                                 orderDetlService.deleteById(orderDetl.getId());
                             } else {
-                                orderDetl.setAnfme(orderDetl.getAnfme() - wrkDetl.getAnfme());
+                                orderDetl.setAnfme(MathUtils.subtract(orderDetl.getAnfme(), wrkDetl.getAnfme()));
                                 orderDetlService.updateById(orderDetl);
                             }
                             orderDetl2.setId(null);

--
Gitblit v1.9.1