From 1573adab705da74a98ad5a174f031e9171437c0c Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期四, 15 一月 2026 10:55:00 +0800
Subject: [PATCH] 出入库功能优化

---
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java |  883 ++++++++++++++++++++++++++++++----------------------------
 1 files changed, 451 insertions(+), 432 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 4389d7f..f722e01 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -6,8 +6,7 @@
 import com.zy.asrs.entity.*;
 import com.zy.asrs.enums.LocStsType;
 import com.zy.asrs.service.*;
-import com.zy.asrs.service.impl.LocCacheServiceImpl;
-import com.zy.asrs.service.impl.OrderPakinServiceImpl;
+import com.zy.asrs.service.impl.*;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
 import lombok.extern.slf4j.Slf4j;
@@ -48,6 +47,16 @@
     private LocCacheService locCacheService;
     @Autowired
     private OrderPakinService orderPakinService;
+    @Autowired
+    private TaskService taskService;
+    @Autowired
+    private TaskDetlService taskDetlService;
+    @Autowired
+    private BasStationServiceImpl basStationService;
+    @Autowired
+    private WorkService workService;
+    @Autowired
+    private LocAroundBindService locAroundBindService;
 
     public ReturnT<String> start(WrkMast wrkMast) {
         // 4.鍏ュ簱瀹屾垚
@@ -60,133 +69,81 @@
         return SUCCESS;
     }
 
+
     public ReturnT<String> doIn(WrkMast wrkMast) {
-        if (wrkMast.getTaskType().equals("agv")) {
-            Date now = new Date();
-            LocCache locCache = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", wrkMast.getLocNo()));
-            if (Objects.isNull(locCache)) {
-                throw new CoolException("鏁版嵁閿欒锛屽簱浣嶄笉瀛樺湪锛侊紒");
-            }
-            List<WaitPakin> apallet = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()));
-            if (Objects.isNull(apallet)) {
-                throw new CoolException("鏁版嵁閿欒锛氱粍鎵樻暟鎹笉瀛樺湪锛侊紒");
-            }
-
-            apallet.forEach(pakin -> {
-                LocDetl detl = new LocDetl();
-                BeanUtils.copyProperties(pakin, detl);
-                detl.setBarcode(pakin.getBarcode())
-                        .setAnfme(pakin.getAnfme())
-                        .setBrand(pakin.getBrand())
-                        .setAppeTime(new Date())
-                        .setSpecs(pakin.getSpecs())
-                        .setColor(pakin.getColor())
-                        .setLocId(locCache.getId())
-                        .setLocNo(locCache.getLocNo())
-                        .setAreaId(locCache.getAreaId())
-                        .setAreaName(locCache.getAreaName())
-                        .setUnit(pakin.getUnit())
-                        .setBatch(pakin.getBatch());
-
-                if (!locDetlService.insert(detl)) {
-                    throw new CoolException("搴撲綅鏄庣粏淇濆瓨澶辫触锛侊紒");
-                }
-            });
-
-            locCache.setLocSts(LocStsType.LOC_STS_TYPE_F.type);
-            locCache.setModiTime(new Date());
-            locCache.setBarcode("");
-            locCache.setModiTime(new Date());
-            locCache.setIoTime(new Date());
-            if (!locCacheService.updateById(locCache)) {
-                throw new CoolException("搴撲綅鐘舵�佷慨鏀瑰け璐ワ紒");
-            }
-            wrkMast.setWrkSts(5L);
-            wrkMast.setModiTime(new Date());
-            if (!wrkMastService.updateById(wrkMast)) {
-                throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
-            }
-
-            Set<Long> list = apallet.stream().map(WaitPakin::getOrderId).collect(Collectors.toSet());
-            List<OrderPakin> pakins = orderPakinService.selectList(new EntityWrapper<OrderPakin>().in("order_id", list));
-            if (Objects.isNull(pakins) || pakins.isEmpty()) {
-                throw new CoolException("鍗曟嵁涓嶅瓨鍦紒锛�");
-            }
-            pakins.forEach(orderPakin -> {
-                orderPakin.setSettle(4L);
-                if (!orderPakinService.updateById(orderPakin)) {
-                    throw new CoolException("鍗曟嵁淇敼澶辫触锛侊紒");
-                }
-            });
-        } else {
-            Date now = new Date();
-            LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
-            try {
-                if (null == locMast) {
+        Date now = new Date();
+        LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+        try {
+            if (null == locMast) {
 //                exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
-                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    return FAIL.setMsg("宸ヤ綔妗workNo=" + wrkMast.getWrkNo() + "]搴撲綅鍙烽敊璇痆locNo=" + wrkMast.getLocNo() + "]");
-                }
-                assert locMast != null;
-                switch (wrkMast.getIoType()) {
-                    // 绌烘澘鍏ュ簱
-                    case 10:
-                        // 淇敼搴撲綅鐘舵��=D
-                        if (locMast.getLocSts().equals("S") || locMast.getLocSts().equals("Q")) {
-                            if (!Cools.isEmpty(wrkMast.getBarcode())) {
-                                locMast.setBarcode(wrkMast.getBarcode());
-                            }
-                            locMast.setLocSts("D");
-                            locMast.setIoTime(now);
-                            locMast.setModiTime(now);
-                            if (!locMastService.updateById(locMast)) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return FAIL.setMsg("宸ヤ綔妗workNo=" + wrkMast.getWrkNo() + "]搴撲綅鍙烽敊璇痆locNo=" + wrkMast.getLocNo() + "]");
+            }
+            assert locMast != null;
+            switch (wrkMast.getIoType()) {
+                // 绌烘澘鍏ュ簱
+                case 10:
+                    // 淇敼搴撲綅鐘舵��=D
+                    if (locMast.getLocSts().equals("S") || locMast.getLocSts().equals("Q")) {
+                        if (!Cools.isEmpty(wrkMast.getBarcode())) {
+                            locMast.setBarcode(wrkMast.getBarcode());
+                        }
+                        locMast.setLocSts("D");
+                        locMast.setIoTime(now);
+                        locMast.setModiTime(now);
+                        if (!locMastService.updateById(locMast)) {
 //                            exceptionHandle("绌烘澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
-                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                return FAIL.setMsg("绌烘澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
-                            }
-                        }
-                        break;
-                    // 鍏ㄦ澘鍏ュ簱
-                    case 1:
-                        // 娓呴櫎鎵�灞炲簱浣嶄箣鍓嶇殑搴撳瓨鏄庣粏
-                        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()));
-                        if (!locDetls.isEmpty()) {
-                            locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()));
-                        }
-                        // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
-                        List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
-                        if (wrkDetls.isEmpty()) {
-//                        exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d笉瀛樺湪锛沎workNo={0}]", wrkMast.getWrkNo());
                             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                            return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d笉瀛樺湪; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                            return FAIL.setMsg("绌烘澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                         }
-                        // 閬嶅巻宸ヤ綔鏄庣粏锛屾洿鏂板簱瀛樻槑缁嗗拰鍏ュ簱閫氱煡妗�
-                        for (WrkDetl wrkDetl : wrkDetls) {
+                    }
+                    break;
+                // 鍏ㄦ澘鍏ュ簱
+                case 1:
+                    // 娓呴櫎鎵�灞炲簱浣嶄箣鍓嶇殑搴撳瓨鏄庣粏
+                    List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()));
+                    if (!locDetls.isEmpty()) {
+                        locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()));
+                    }
+                    // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+                    List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+                    if (wrkDetls.isEmpty()) {
+//                        exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d笉瀛樺湪锛沎workNo={0}]", wrkMast.getWrkNo());
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d笉瀛樺湪; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                    }
+                    // 閬嶅巻宸ヤ綔鏄庣粏锛屾洿鏂板簱瀛樻槑缁嗗拰鍏ュ簱閫氱煡妗�
+                    for (WrkDetl wrkDetl : wrkDetls) {
 
-                            LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand()
-                                    , wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
-                            if (null != locDetl) {
-                                if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3()
-                                        , wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3())) {
+                        LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand()
+                                , wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+                        if (null != locDetl) {
+                            if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3()
+                                    , wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3())) {
 //                                exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
-                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                    return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
-                                }
-                            } else {
-                                locDetl = new LocDetl();
-                                locDetl.sync(wrkDetl);
-                                locDetl.setLocNo(wrkMast.getLocNo()); // 搴撲綅鍙�
-                                locDetl.setAnfme(wrkDetl.getAnfme()); // 鏁伴噺
-                                locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
-                                locDetl.setModiTime(now);
-                                locDetl.setAppeTime(now);
-                                if (!locDetlService.insert(locDetl)) {
-//                                exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
-                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                    return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
-                                }
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                             }
+                        } else {
+                            locDetl = new LocDetl();
+                            locDetl.sync(wrkDetl);
+                            locDetl.setLocNo(wrkMast.getLocNo()); // 搴撲綅鍙�
+                            locDetl.setAnfme(wrkDetl.getAnfme()); // 鏁伴噺
+                            locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
+                            locDetl.setModiTime(now);
+                            locDetl.setAppeTime(now);
+                            if (!locDetlService.insert(locDetl)) {
+//                                exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                            }
+                        }
 
+                        //鍒ゆ柇鍖归厤缂栫爜涓嶄负绌猴紝涓斾换鍔$紪鐮佸寘鍚�-2锛岀‘璁や负鏈変笂缁勪换鍔�
+                        if (!Objects.isNull(wrkMast.getWrkCode()) && wrkMast.getWrkCode().contains("-2")) {
+                            //涓嶉渶瑕佹洿鏂板崟鎹俊鎭紙瀛愪换鍔℃棤鍗曟嵁
+                        } else {
+                            //姝e父鍗曟嵁鎵嶅瓨瀛樺叆搴撳崟锛屼綔鍏ュ簱鍗曟嵁淇℃伅鏇存柊
                             // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
                             OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectItem
                                     (wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
@@ -210,286 +167,329 @@
                                 }
                             } catch (Exception ignore) {
                             }
-
                         }
-                        // 淇敼搴撲綅鐘舵�� S ====>> F
-                        if (locMast.getLocSts().equals("S")) {
-                            locMast.setLocSts("F");
-                            locMast.setBarcode(wrkMast.getBarcode());
-                            locMast.setIoTime(now);
-                            locMast.setModiTime(now);
-                            if (!locMastService.updateById(locMast)) {
-//                            exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
-                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
-                            }
-                        }
-                        break;
-                    // 鎷f枡閫斾腑骞舵澘
-                    case 8:
-                        // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
-                        List<WrkDetl> wrkDetls8 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
-                        if (wrkDetls8.isEmpty()) {
-                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                            return FAIL.setMsg("鎷f枡閫斾腑骞舵澘 ===>> 宸ヤ綔鏄庣粏妗d笉瀛樺湪; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
-                        }
-                        // 閬嶅巻宸ヤ綔鏄庣粏锛屾洿鏂板簱瀛樻槑缁嗗拰鍏ュ簱閫氱煡妗�
-                        for (WrkDetl wrkDetl : wrkDetls8) {
-
-                            LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand()
-                                    , wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
-                            if (null != locDetl) {
-                                if (!locDetlService.updateAnfme(wrkDetl.getAnfme() + locDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3()
-                                        , wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3())) {
-                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                    return FAIL.setMsg("鎷f枡閫斾腑骞舵澘 ===>> 鏇存柊搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
-                                }
-                            } else {
-                                locDetl = new LocDetl();
-                                locDetl.sync(wrkDetl);
-                                locDetl.setLocNo(wrkMast.getLocNo()); // 搴撲綅鍙�
-                                locDetl.setAnfme(wrkDetl.getAnfme()); // 鏁伴噺
-                                locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
-                                locDetl.setModiTime(now);
-                                locDetl.setAppeTime(now);
-                                if (!locDetlService.insert(locDetl)) {
-                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                    return FAIL.setMsg("鎷f枡閫斾腑骞舵澘 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
-                                }
-                            }
-
-                            if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
-                                // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
-                                if (!orderDetlPakinService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
-                                        wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
-                                        wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), wrkDetl.getAnfme())) {
-                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                    return FAIL.setMsg("鎷f枡閫斾腑骞舵澘 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
-                                }
-                            }
-                        }
-                        break;
-                    // 鎷f枡鍏ュ簱
-                    case 53:
-                        // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
-                        List<WrkDetl> wrkDetls53 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
-                        if (wrkDetls53.isEmpty()) {
-//                        exceptionHandle("鎷f枡鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
-                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                            return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
-                        }
-                        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());
-                            if (null != locDetl) {
-                                if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3()
-                                        , wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3())) {
-//                                exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
-                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                    return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
-                                }
-                            }
-
-                            // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
-                            OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectItem
-                                    (wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(),
-                                            wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
-                                            wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
-                            if (orderDetlPakin == null) {
-                                orderDetlPakin = orderDetlPakinService.selectItem
-                                        (wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
-                                                wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
-                            }
-                            try {
-                                if (!Cools.isEmpty(orderDetlPakin)) {
-                                    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())) {
-//                                    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
-                        if (locMast.getLocSts().equals("Q")) {
-                            locMast.setLocSts("F");
-                            locMast.setBarcode(wrkMast.getBarcode());
-                            locMast.setIoTime(now);
-                            locMast.setModiTime(now);
-                            if (!locMastService.updateById(locMast)) {
-//                            exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
-                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
-                            }
-                        }
-                        break;
-                    // 骞舵澘鍏ュ簱
-                    case 54:
-                        // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
-                        List<WrkDetl> wrkDetls54 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
-                        if (wrkDetls54.isEmpty()) {
-//                        exceptionHandle("骞舵澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
-                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                            return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
-                        }
-                        // 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏃犲簱瀛橈紝鏇炬柊澧�
-                        for (WrkDetl wrkDetl : wrkDetls54) {
-
-                            LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand()
-                                    , wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
-                            if (null != locDetl) {
-                                if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3()
-                                        , wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3())) {
-//                                exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
-                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                    return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
-                                }
-                            } else {
-                                locDetl = new LocDetl();
-                                locDetl.sync(wrkDetl);
-                                locDetl.setLocNo(wrkMast.getLocNo()); // 搴撲綅鍙�
-                                locDetl.setAnfme(wrkDetl.getAnfme()); // 鏁伴噺
-                                locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
-                                locDetl.setModiTime(now);
-                                locDetl.setAppeTime(now);
-                                if (!locDetlService.insert(locDetl)) {
-                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                    return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
-                                }
-                            }
-
-                            // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
-                            OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
-                            try {
-                                if (!Cools.isEmpty(orderDetlPakin)) {
-                                    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())) {
-                                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                        return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
-                                    }
-                                }
-                            } catch (Exception ignore) {
-
-                            }
-
-                        }
-                        // 淇敼搴撲綅鐘舵�� Q ====>> F
-                        if (locMast.getLocSts().equals("Q")) {
-                            locMast.setLocSts("F");
-                            locMast.setBarcode(wrkMast.getBarcode());
-                            locMast.setIoTime(now);
-                            locMast.setModiTime(now);
-                            if (!locMastService.updateById(locMast)) {
-//                            exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
-                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
-                            }
-                        }
-                        break;
-                    // 鐩樼偣鍏ュ簱
-                    case 57:
-                        // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
-                        List<WrkDetl> wrkDetls57 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
-                        if (wrkDetls57.isEmpty()) {
-//                        exceptionHandle("鐩樼偣鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
-                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                            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())) {
-                                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                        return FAIL.setMsg("鐩樼偣鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
-                                    }
-                                }
-                            }
-                        }
-                        // 淇敼搴撲綅鐘舵�� Q ====>> F
-                        if (locMast.getLocSts().equals("Q")) {
-                            locMast.setLocSts(wrkMast.getFullPlt().equals("Y") ? "F" : "D");
-                            locMast.setBarcode(wrkMast.getBarcode());
-                            locMast.setIoTime(now);
-                            locMast.setModiTime(now);
-                            if (!locMastService.updateById(locMast)) {
-//                            exceptionHandle("鐩樼偣鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
-                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                return FAIL.setMsg("鐩樼偣鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
-                            }
-                        }
-                        break;
-                    // 搴撲綅绉昏浆
-                    case 11:
-                        // 榛樿鐩爣搴撲綅鏄┖鏉�
-                        String locSts = "D";
-                        // 搴撲綅绉昏浆鍒ゆ柇鏄惁涓虹┖鏉跨Щ杞�
-                        if (wrkMast.getEmptyMk().equals("N")) {
-                            locSts = "F";
-                            // 杞Щ搴撳瓨鏄庣粏鏁版嵁: 搴撳瓨鍙� 鐢卞伐浣滄。婧愬簱浣嶅彉涓虹洰鏍囧簱浣�
-                            if (!locDetlService.updateLocNo(wrkMast.getLocNo(), wrkMast.getSourceLocNo())) {
-//                            exceptionHandle("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触锛沎婧愬簱浣�={0}],[鐩爣搴撲綅={1}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo());
-                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                return FAIL.setMsg("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
-                            }
-                        }
-                        // 淇敼婧愬簱浣嶇姸鎬� ==> O
-                        LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo());
-                        if (null != sourceLoc) {
-                            sourceLoc.setBarcode("");
-                            sourceLoc.setLocSts("O");
-                            sourceLoc.setModiTime(now);
-                            sourceLoc.setIoTime(now);
-                            if (!locMastService.updateById(sourceLoc)) {
-//                            exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLoc={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
-                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                return FAIL.setMsg("搴撲綅绉昏浆 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
-                            }
-                        }
-                        // 淇敼鐩爣搴撲綅鐘舵�� ==> .locSts
-                        locMast.setLocSts(locSts);
+                    }
+                    // 淇敼搴撲綅鐘舵�� S ====>> F
+                    if (locMast.getLocSts().equals("S")) {
+                        locMast.setLocSts("F");
                         locMast.setBarcode(wrkMast.getBarcode());
                         locMast.setIoTime(now);
                         locMast.setModiTime(now);
                         if (!locMastService.updateById(locMast)) {
-//                        exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+//                            exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                            return FAIL.setMsg("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                            return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                         }
-                        break;
-                    default:
-                        break;
-                }
-                // 淇敼宸ヤ綔涓绘。鐘舵��
-                wrkMast.setWrkSts(5L);
-                wrkMast.setModiTime(now);
-                if (!wrkMastService.updateById(wrkMast)) {
-//                exceptionHandle("鏇存柊鍏ュ簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
-                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    return FAIL.setMsg("鏇存柊鍏ュ簱瀹屾垚鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
-                }
-            } catch (Exception e) {
-                log.error("fail", e);
-                e.printStackTrace();
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                return FAIL.setMsg(e.getMessage());
+                    }
+                    break;
+                // 鎷f枡閫斾腑骞舵澘
+                case 8:
+                    // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+                    List<WrkDetl> wrkDetls8 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+                    if (wrkDetls8.isEmpty()) {
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return FAIL.setMsg("鎷f枡閫斾腑骞舵澘 ===>> 宸ヤ綔鏄庣粏妗d笉瀛樺湪; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                    }
+                    // 閬嶅巻宸ヤ綔鏄庣粏锛屾洿鏂板簱瀛樻槑缁嗗拰鍏ュ簱閫氱煡妗�
+                    for (WrkDetl wrkDetl : wrkDetls8) {
+                        LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand()
+                                , wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+                        if (null != locDetl) {
+                            if (!locDetlService.updateAnfme(wrkDetl.getAnfme() + locDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3()
+                                    , wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3())) {
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                return FAIL.setMsg("鎷f枡閫斾腑骞舵澘 ===>> 鏇存柊搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                            }
+                        } else {
+                            locDetl = new LocDetl();
+                            locDetl.sync(wrkDetl);
+                            locDetl.setLocNo(wrkMast.getLocNo()); // 搴撲綅鍙�
+                            locDetl.setAnfme(wrkDetl.getAnfme()); // 鏁伴噺
+                            locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
+                            locDetl.setModiTime(now);
+                            locDetl.setAppeTime(now);
+                            if (!locDetlService.insert(locDetl)) {
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                return FAIL.setMsg("鎷f枡閫斾腑骞舵澘 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                            }
+                        }
+
+                        if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
+                            // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+                            if (!orderDetlPakinService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+                                    wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
+                                    wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), wrkDetl.getAnfme())) {
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                return FAIL.setMsg("鎷f枡閫斾腑骞舵澘 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                            }
+                        }
+                    }
+                    break;
+                // 鎷f枡鍏ュ簱
+                case 53:
+                    // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+                    List<WrkDetl> wrkDetls53 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+                    if (wrkDetls53.isEmpty()) {
+//                        exceptionHandle("鎷f枡鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                    }
+                    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());
+                        if (null != locDetl) {
+                            if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3()
+                                    , wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3())) {
+//                                exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                            }
+                        }
+
+                        // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+                        OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectItem
+                                (wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(),
+                                        wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
+                                        wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+                        if (orderDetlPakin == null) {
+                            orderDetlPakin = orderDetlPakinService.selectItem
+                                    (wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
+                                            wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+                        }
+                        try {
+                            if (!Cools.isEmpty(orderDetlPakin)) {
+                                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())) {
+//                                    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
+                    if (locMast.getLocSts().equals("Q")) {
+                        locMast.setLocSts("F");
+                        locMast.setBarcode(wrkMast.getBarcode());
+                        locMast.setIoTime(now);
+                        locMast.setModiTime(now);
+                        if (!locMastService.updateById(locMast)) {
+//                            exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                        }
+                    }
+                    break;
+                // 骞舵澘鍏ュ簱
+                case 54:
+                    // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+                    List<WrkDetl> wrkDetls54 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+                    if (wrkDetls54.isEmpty()) {
+//                        exceptionHandle("骞舵澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                    }
+                    // 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏃犲簱瀛橈紝鏇炬柊澧�
+                    for (WrkDetl wrkDetl : wrkDetls54) {
+
+                        LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand()
+                                , wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+                        if (null != locDetl) {
+                            if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3()
+                                    , wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3())) {
+//                                exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                            }
+                        } else {
+                            locDetl = new LocDetl();
+                            locDetl.sync(wrkDetl);
+                            locDetl.setLocNo(wrkMast.getLocNo()); // 搴撲綅鍙�
+                            locDetl.setAnfme(wrkDetl.getAnfme()); // 鏁伴噺
+                            locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
+                            locDetl.setModiTime(now);
+                            locDetl.setAppeTime(now);
+                            if (!locDetlService.insert(locDetl)) {
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                            }
+                        }
+
+                        // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+                        OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+                        try {
+                            if (!Cools.isEmpty(orderDetlPakin)) {
+                                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())) {
+                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                    return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                                }
+                            }
+                        } catch (Exception ignore) {
+
+                        }
+
+                    }
+                    // 淇敼搴撲綅鐘舵�� Q ====>> F
+                    if (locMast.getLocSts().equals("Q")) {
+                        locMast.setLocSts("F");
+                        locMast.setBarcode(wrkMast.getBarcode());
+                        locMast.setIoTime(now);
+                        locMast.setModiTime(now);
+                        if (!locMastService.updateById(locMast)) {
+//                            exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                        }
+                    }
+                    break;
+                // 鐩樼偣鍏ュ簱
+                case 57:
+                    // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+                    List<WrkDetl> wrkDetls57 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+                    if (wrkDetls57.isEmpty()) {
+//                        exceptionHandle("鐩樼偣鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        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())) {
+                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                    return FAIL.setMsg("鐩樼偣鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+                                }
+                            }
+                        }
+                    }
+                    // 淇敼搴撲綅鐘舵�� Q ====>> F
+                    if (locMast.getLocSts().equals("Q")) {
+                        locMast.setLocSts(wrkMast.getFullPlt().equals("Y") ? "F" : "D");
+                        locMast.setBarcode(wrkMast.getBarcode());
+                        locMast.setIoTime(now);
+                        locMast.setModiTime(now);
+                        if (!locMastService.updateById(locMast)) {
+//                            exceptionHandle("鐩樼偣鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return FAIL.setMsg("鐩樼偣鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                        }
+                    }
+                    break;
+                // 搴撲綅绉昏浆
+                case 11:
+//                    // 榛樿鐩爣搴撲綅鏄┖鏉�
+//                    String locSts = "D";
+//                    // 搴撲綅绉昏浆鍒ゆ柇鏄惁涓虹┖鏉跨Щ杞�
+//                    if (wrkMast.getEmptyMk().equals("N")) {
+//                        locSts = "F";
+//                        // 杞Щ搴撳瓨鏄庣粏鏁版嵁: 搴撳瓨鍙� 鐢卞伐浣滄。婧愬簱浣嶅彉涓虹洰鏍囧簱浣�
+//                        if (!locDetlService.updateLocNo(wrkMast.getLocNo(), wrkMast.getSourceLocNo())) {
+////                            exceptionHandle("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触锛沎婧愬簱浣�={0}],[鐩爣搴撲綅={1}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo());
+//                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//                            return FAIL.setMsg("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+//                        }
+//                    }
+//                    // 淇敼婧愬簱浣嶇姸鎬� ==> O
+//                    LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo());
+//                    if (null != sourceLoc) {
+//                        sourceLoc.setBarcode("");
+//                        sourceLoc.setLocSts("O");
+//                        sourceLoc.setModiTime(now);
+//                        sourceLoc.setIoTime(now);
+//                        if (!locMastService.updateById(sourceLoc)) {
+////                            exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLoc={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+//                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//                            return FAIL.setMsg("搴撲綅绉昏浆 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+//                        }
+//                    }
+//                    // 淇敼鐩爣搴撲綅鐘舵�� ==> .locSts
+//                    locMast.setLocSts(locSts);
+//                    locMast.setBarcode(wrkMast.getBarcode());
+//                    locMast.setIoTime(now);
+//                    locMast.setModiTime(now);
+//                    if (!locMastService.updateById(locMast)) {
+////                        exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+//                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//                        return FAIL.setMsg("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+//                    }
+                    movLoc(wrkMast);
+                    break;
+                default:
+                    break;
             }
+            // 淇敼宸ヤ綔涓绘。鐘舵��
+            wrkMast.setWrkSts(5L);
+            wrkMast.setModiTime(now);
+            if (!wrkMastService.updateById(wrkMast)) {
+//                exceptionHandle("鏇存柊鍏ュ簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return FAIL.setMsg("鏇存柊鍏ュ簱瀹屾垚鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+            }
+        } catch (Exception e) {
+            log.error("fail", e);
+            e.printStackTrace();
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return FAIL.setMsg(e.getMessage());
         }
+
         return SUCCESS;
     }
 
-    private ReturnT<String> doOut(WrkMast wrkMast) {
+
+    public void movLoc(WrkMast wrkMast) {
+        LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+        Date now = new Date();
+        // 榛樿鐩爣搴撲綅鏄┖鏉�
+        String locSts = "D";
+        // 搴撲綅绉昏浆鍒ゆ柇鏄惁涓虹┖鏉跨Щ杞�
+        if (wrkMast.getEmptyMk().equals("N")) {
+            locSts = "F";
+            // 杞Щ搴撳瓨鏄庣粏鏁版嵁: 搴撳瓨鍙� 鐢卞伐浣滄。婧愬簱浣嶅彉涓虹洰鏍囧簱浣�
+            if (!locDetlService.updateLocNo(wrkMast.getLocNo(), wrkMast.getSourceLocNo())) {
+//                            exceptionHandle("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触锛沎婧愬簱浣�={0}],[鐩爣搴撲綅={1}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo());
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                log.info("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+            }
+        }
+        // 淇敼婧愬簱浣嶇姸鎬� ==> O
+        LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo());
+        if (null != sourceLoc) {
+            sourceLoc.setBarcode("");
+            sourceLoc.setLocSts("O");
+            sourceLoc.setModiTime(now);
+            sourceLoc.setIoTime(now);
+            if (!locMastService.updateById(sourceLoc)) {
+//                            exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLoc={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                log.info("搴撲綅绉昏浆 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+            }
+        }
+        // 淇敼鐩爣搴撲綅鐘舵�� ==> .locSts
+        locMast.setLocSts(locSts);
+        locMast.setBarcode(wrkMast.getBarcode());
+        locMast.setIoTime(now);
+        locMast.setModiTime(now);
+        if (!locMastService.updateById(locMast)) {
+//                        exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+           log.info("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+        }
+    }
+
+
+    @Transactional(rollbackFor = Exception.class)
+    public ReturnT<String> doOut(WrkMast wrkMast) {
         Date now = new Date();
         LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
         try {
@@ -502,55 +502,71 @@
             switch (wrkMast.getIoType()) {
                 // 鍏ㄦ澘鍑哄簱
                 case 101:
+                    //濡傛灉wrkCode涓嶄负绌猴紝琛ㄧず鏄伐浣滃彴鍙揣,濡傛灉涓嶄负绌鸿蛋绉诲簱閫昏緫
+                    //todo 鍒ゆ柇濡傛灉搴撲綅鎵�灞炰笉鏄悓涓�涓爢鍨涙満鍙凤紝闇�鍐嶇敓鎴愪竴涓柊鐨勫叆搴撲换鍔�
+                    if (!Objects.isNull(wrkMast.getWrkCode())) {
+                        //TODO 绉诲簱
+//                        workService.locMove(wrkMast.getSourceLocNo(), wrkMast.getLocNo(), wrkMast.getAppeUser());
+
+                        movLoc(wrkMast);
+
+                        //淇敼宸ヤ綅搴撴��
+                        LocAroundBind bLocNo = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>().eq("b_loc_no", wrkMast.getLocNo()));
+                        if (Objects.isNull(bLocNo)) {
+                            throw new CoolException("鏁版嵁閿欒锛� 鐩爣宸ヤ綅涓嶅瓨鍦紒锛�");
+                        }
+                        bLocNo.setLocType(LocStsType.LOC_STS_TYPE_F.type);
+                        if (!locAroundBindService.updateById(bLocNo)) {
+                            throw new CoolException("宸ヤ綅鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+                        }
+                    } else {
 //                    // 鍑哄簱纭淇″彿浣�
 //                    if (Cools.isEmpty(wrkMast.getInvWh()) || wrkMast.getInvWh().equals("N")) {
 //                        return SUCCESS;
 //                    }
-                    // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
-                    List<WrkDetl> wrkDetls101 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
-                    if (wrkDetls101.isEmpty()) {
+                        // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+                        List<WrkDetl> wrkDetls101 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+                        if (wrkDetls101.isEmpty()) {
 //                        exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
-                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                        return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
-                    }
-                    for (WrkDetl wrkDetl : wrkDetls101) {
-                        // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
-                        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(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
-                                    wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
-                        }
-                        try {
-                            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())) {
-//                                    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()))) {
-//                        exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鍒犻櫎搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
-                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                        return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鍒犻櫎搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
-                    }
-                    // 淇敼婧愬簱浣嶇姸鎬� R ===>> O
-                    if (locMast.getLocSts().equals("R")) {
-                        locMast.setLocSts("O");
-                        locMast.setBarcode("");
-                        locMast.setModiTime(now);
-                        locMast.setIoTime(now);
-                        if (!locMastService.updateById(locMast)) {
-//                            exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
                             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                            return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+                            return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+                        }
+                        for (WrkDetl wrkDetl : wrkDetls101) {
+                            // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+                            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(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
+                                        wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+                            }
+                            try {
+                                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())) {
+                                        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()))) {
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鍒犻櫎搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+                        }
+                        // 淇敼婧愬簱浣嶇姸鎬� R ===>> O
+                        if (locMast.getLocSts().equals("R")) {
+                            locMast.setLocSts("O");
+                            locMast.setBarcode("");
+                            locMast.setModiTime(now);
+                            locMast.setIoTime(now);
+                            if (!locMastService.updateById(locMast)) {
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+                            }
                         }
                     }
                     break;
@@ -608,6 +624,10 @@
             }
             // 淇敼宸ヤ綔涓绘。鐘舵��
             wrkMast.setWrkSts(15L);
+//            if (!Objects.isNull(wrkMast.getWrkCode())) {
+//                //棰嗘枡鍑哄簱浠诲姟锛屼笉淇敼
+//            } else {
+//            }
             wrkMast.setModiTime(now);
             if (!wrkMastService.updateById(wrkMast)) {
 //                exceptionHandle("鏇存柊鍑哄簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
@@ -622,5 +642,4 @@
         }
         return SUCCESS;
     }
-
 }

--
Gitblit v1.9.1