From f6e687c194354f1c0b883b5ac56da3a8e70db471 Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期三, 14 一月 2026 18:43:37 +0800
Subject: [PATCH] 出库工作档功能优化

---
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java |  400 ++++++++++++++++++++++-----------------------------------
 1 files changed, 155 insertions(+), 245 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 2d3edb0..93576dc 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -56,6 +56,8 @@
     private TaskDetlService taskDetlService;
     @Autowired
     private BasStationServiceImpl basStationService;
+    @Autowired
+    private WorkService workService;
 
     public ReturnT<String> start(WrkMast wrkMast) {
         // 4.鍏ュ簱瀹屾垚
@@ -138,30 +140,35 @@
                             }
                         }
 
-                        // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
-                        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(),
+                        //鍒ゆ柇鍖归厤缂栫爜涓嶄负绌猴紝涓斾换鍔$紪鐮佸寘鍚�-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(),
                                             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())) {
+                            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("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎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() + "]");
+                                    }
                                 }
+                            } catch (Exception ignore) {
                             }
-                        } catch (Exception ignore) {
                         }
-
                     }
                     // 淇敼搴撲綅鐘舵�� S ====>> F
                     if (locMast.getLocSts().equals("S")) {
@@ -382,41 +389,42 @@
                     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() + "]");
-                    }
+//                    // 榛樿鐩爣搴撲綅鏄┖鏉�
+//                    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;
@@ -439,6 +447,48 @@
         return SUCCESS;
     }
 
+
+    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() + "]");
+        }
+    }
+
+
     private ReturnT<String> doOut(WrkMast wrkMast) {
         Date now = new Date();
         LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
@@ -452,52 +502,60 @@
             switch (wrkMast.getIoType()) {
                 // 鍏ㄦ澘鍑哄簱
                 case 101:
+                    //濡傛灉wrkCode涓嶄负绌猴紝琛ㄧず鏄伐浣滃彴鍙揣,濡傛灉涓嶄负绌鸿蛋绉诲簱閫昏緫
+                    //todo 鍒ゆ柇濡傛灉搴撲綅鎵�灞炰笉鏄悓涓�涓爢鍨涙満鍙凤紝闇�鍐嶇敓鎴愪竴涓柊鐨勫叆搴撲换鍔�
+                    if (!Objects.isNull(wrkMast.getWrkCode())) {
+                        //TODO 绉诲簱
+//                        workService.locMove(wrkMast.getSourceLocNo(), wrkMast.getLocNo(), wrkMast.getAppeUser());
+                        movLoc(wrkMast);
+                    } 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())) {
-                                    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() + "]");
+                            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;
@@ -555,6 +613,10 @@
             }
             // 淇敼宸ヤ綔涓绘。鐘舵��
             wrkMast.setWrkSts(15L);
+//            if (!Objects.isNull(wrkMast.getWrkCode())) {
+//                //棰嗘枡鍑哄簱浠诲姟锛屼笉淇敼
+//            } else {
+//            }
             wrkMast.setModiTime(now);
             if (!wrkMastService.updateById(wrkMast)) {
 //                exceptionHandle("鏇存柊鍑哄簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
@@ -567,158 +629,6 @@
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             return FAIL.setMsg(e.getMessage());
         }
-        return SUCCESS;
-    }
-
-    /**
-     * @author Ryan
-     * @date 2025/9/23
-     * @description: AGV浠诲姟瀹屾垚鍔犲叆鍘嗗彶妗�
-     * @version 1.0
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public ReturnT<String> AgvStart(Task task) {
-        // 4.鍏ュ簱瀹屾垚
-        if (task.getWrkSts() == 4) {
-            return agvDoIn(task);
-            // 14.鍑哄簱瀹屾垚
-        } else if (task.getWrkSts() == 14) {
-            return agvDoOut(task);
-        }
-        return SUCCESS;
-    }
-
-
-    /**
-     * @author Ryan
-     * @date 2025/9/25
-     * @description: AGV鍑哄簱浠诲姟
-     * @version 1.0
-     */
-    public ReturnT<String> agvDoOut(Task task) {
-        if (task.getIoType().equals(101)) {
-            Date now = new Date();
-            LocCache locMast = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no" ,task.getSourceLocNo()));
-            if (Objects.isNull(locMast)) {
-                throw new RuntimeException("鏁版嵁閿欒锛氬簱浣嶄俊鎭笉鑳戒负绌猴紒锛�");
-            }
-            List<TaskDetl> wrkDetls101 = taskDetlService.selectList(new EntityWrapper<TaskDetl>().eq("wrk_no", task.getWrkNo()));
-            if (wrkDetls101.isEmpty()) {
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + task.getWrkNo() + "],[locNo=" + task.getSourceLocNo() + "]");
-            }
-            for (TaskDetl 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=" + task.getWrkNo() + "],[locNo=" + task.getSourceLocNo() + "]");
-                        }
-                    }
-                } catch (Exception ignore) {
-                }
-            }
-            // 鍒犻櫎宸ヤ綔妗f簮搴撲綅鐨勫簱瀛樻槑缁�
-            if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", task.getSourceLocNo()))) {
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鍒犻櫎搴撳瓨鏄庣粏澶辫触; [workNo=" + task.getWrkNo() + "],[locNo=" + task.getSourceLocNo() + "]");
-            }
-            // 淇敼婧愬簱浣嶇姸鎬� R ===>> O
-            if (locMast.getLocSts().equals(LocStsType.LOC_STS_TYPE_R.type)) {
-                locMast.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
-                locMast.setBarcode("");
-                locMast.setModiTime(now);
-                locMast.setIoTime(now);
-                if (!locCacheService.updateById(locMast)) {
-                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + task.getWrkNo() + "],[locNo=" + task.getSourceLocNo() + "]");
-                }
-            } else {
-                throw new CoolException("褰撳墠搴撲綅鐘舵��" + locMast.getLocSts() + ", 鏃犳硶鎵ц鍑哄簱鎿嶄綔锛侊紒");
-            }
-
-            BasStation devNo = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", task.getStaNo()));
-            if (Objects.isNull(devNo)) {
-                throw new CoolException("绔欑偣锛�" + task.getSourceStaNo() + ", 涓嶅瓨鍦紒锛�");
-            }
-            devNo.setLocSts(LocStsType.LOC_STS_TYPE_F.type);
-            devNo.setModiTime(new Date());
-            if (!basStationService.updateById(devNo)) {
-                throw new CoolException("绔欑偣淇℃伅淇敼澶辫触锛侊紒");
-            }
-            task.setWrkSts(15L);
-            if (!taskService.updateById(task)) {
-                throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
-            }
-        } else {
-
-        }
-        return SUCCESS;
-    }
-
-
-    @Transactional(rollbackFor = Exception.class)
-    public ReturnT<String> agvDoIn(Task wrkMast) {
-        LocCache locCache = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", wrkMast.getLocNo()));
-        if (Objects.isNull(locCache)) {
-            throw new CoolException("鏁版嵁閿欒锛屽簱浣嶄笉瀛樺湪锛侊紒");
-        }
-        if (!locCache.getLocSts().equals(LocStsType.LOC_STS_TYPE_S.type)) {
-            throw new CoolException("褰撳墠搴撲綅鐘舵�佷负锛�" + LocStsType.LOC_STS_TYPE_S.type + "." + LocStsType.LOC_STS_TYPE_S.desc + "锛屼笉鏄嚭搴撻绾︾姸鎬�");
-        }
-        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(wrkMast.getBarcode());
-        locCache.setModiTime(new Date());
-        locCache.setIoTime(new Date());
-        if (!locCacheService.updateById(locCache)) {
-            throw new CoolException("搴撲綅鐘舵�佷慨鏀瑰け璐ワ紒");
-        }
-        wrkMast.setWrkSts(5L);
-        wrkMast.setModiTime(new Date());
-        if (!taskService.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("id", list));
-        if (Objects.isNull(pakins) || pakins.isEmpty()) {
-            throw new CoolException("鍗曟嵁涓嶅瓨鍦紒锛�");
-        }
-
         return SUCCESS;
     }
 }

--
Gitblit v1.9.1