From 4b6e6d95ae6fbbccc4351db366b99fa05288877f Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期三, 11 六月 2025 10:09:38 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java |  134 +++++++++++++++++++++++++++++++-------------
 1 files changed, 93 insertions(+), 41 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 a42383b..29cf116 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -188,12 +188,14 @@
                         manPakOutEntityWrapper.eq("doc_num",wrkDetl.getOrderNo());
                         manPakOutEntityWrapper.eq("matnr",wrkDetl.getMatnr());
                         ManPakOut manPakOut = manPakOutService.selectOne(manPakOutEntityWrapper);
-                        if (manPakOut.getCount() + wrkDetl.getAnfme() >= manPakOut.getAnfme()){
-                            manPakOut.setStatus(1);
-                        }
-                        manPakOut.setCount(manPakOut.getCount() + wrkDetl.getAnfme());
-                        if (!manPakOutService.update(manPakOut,manPakOutEntityWrapper)){
-                            return FAIL.setMsg("鏇存柊鎷h揣鍗曞畬鎴愭暟閲忓け璐�");
+                        if (!Cools.isEmpty(manPakOut)){
+                            if (manPakOut.getCount() + wrkDetl.getAnfme() >= manPakOut.getAnfme()){
+                                manPakOut.setStatus(1);
+                            }
+                            manPakOut.setCount(manPakOut.getCount() + wrkDetl.getAnfme());
+                            if (!manPakOutService.update(manPakOut,manPakOutEntityWrapper)){
+                                return FAIL.setMsg("鏇存柊鎷h揣鍗曞畬鎴愭暟閲忓け璐�");
+                            }
                         }
 
                     }
@@ -211,6 +213,45 @@
                     }
                     break;
                 // 骞舵澘鍏ュ簱
+                case 55:
+                    // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+                    List<WrkDetl> wrkDetls55 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+                    if (wrkDetls55.isEmpty()) {
+//                        exceptionHandle("骞舵澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                    }
+                    // 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏃犲簱瀛橈紝鏇炬柊澧�
+                    for (WrkDetl wrkDetl:wrkDetls55) {
+
+                        LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
+                        locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", locDetl.getLocNo()));
+                        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}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                        }
+                    }
+                    // 淇敼搴撲綅鐘舵�� 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 54:
                     // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
                     List<WrkDetl> wrkDetls54 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
@@ -257,6 +298,7 @@
                         }
                     }
                     break;
+
                 // 鐩樼偣鍏ュ簱
                 case 57:
                     // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
@@ -382,50 +424,60 @@
                             return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                         }
                     }
-                    if (!wrkDetls101.get(0).getOrderNo().isEmpty()){
-                        //鏇存柊璁㈠崟瀹屾垚鏁伴噺
-                        EntityWrapper<OrderDetl> orderDetlEntityWrapper = new EntityWrapper<>();
-                        orderDetlEntityWrapper.eq("order_no",wrkDetls101.get(0).getOrderNo());
-                        orderDetlEntityWrapper.eq("matnr",wrkDetls101.get(0).getMatnr());
 
-                        OrderDetl orderDetl = orderDetlService.selectOne(orderDetlEntityWrapper);
-
-                        OrderDetl orderDetl1 = new OrderDetl();
-                        orderDetl1.setQty(orderDetl.getQty() + wrkDetls101.get(0).getAnfme());
-                        orderDetl1.setUpdateTime(now);
-                        if (!orderDetlService.update(orderDetl1,orderDetlEntityWrapper)){
-                            return FAIL.setMsg("鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触");
+                    for (WrkDetl wrkDetl: wrkDetls101) {
+                        if(Cools.isEmpty(wrkDetl)){
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 浠诲姟鏄庣粏涓虹┖; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                         }
-                        //鏇存柊鎷h揣鍗曞畬鎴愭暟閲�
-                        EntityWrapper<ManPakOut> manPakOutEntityWrapper = new EntityWrapper<>();
-                        manPakOutEntityWrapper.eq("doc_num",wrkDetls101.get(0).getOrderNo());
-                        manPakOutEntityWrapper.eq("matnr",wrkDetls101.get(0).getMatnr());
-                        ManPakOut manPakOut = manPakOutService.selectOne(manPakOutEntityWrapper);
-                        if (manPakOut.getCount() + wrkDetls101.get(0).getAnfme() == manPakOut.getAnfme()){
-                            manPakOut.setStatus(1);
-                        }
-                        manPakOut.setCount(manPakOut.getCount() + wrkDetls101.get(0).getAnfme());
+                        if (!wrkDetl.getOrderNo().isEmpty()){
+                            //鏇存柊璁㈠崟瀹屾垚鏁伴噺
+                            EntityWrapper<OrderDetl> orderDetlEntityWrapper = new EntityWrapper<>();
+                            orderDetlEntityWrapper.eq("order_no",wrkDetl.getOrderNo());
+                            orderDetlEntityWrapper.eq("matnr",wrkDetl.getMatnr());
 
-                        if (!manPakOutService.update(manPakOut,manPakOutEntityWrapper)){
-                            return FAIL.setMsg("鏇存柊鎷h揣鍗曞畬鎴愭暟閲忓け璐�");
-                        }
-                    }
+                            OrderDetl orderDetl = orderDetlService.selectOne(orderDetlEntityWrapper);
 
-
-
-                    Boolean finsihed = orderDetlService.checkAllDetlFinish(wrkDetls101.get(0).getOrderNo());
-                    if (finsihed) {
-                        Boolean mastFinished = wrkMastService.checkFinishByOrder(wrkDetls101.get(0).getOrderNo());
-                        if (mastFinished) {
-                            Order order = orderService.selectByNo(wrkDetls101.get(0).getOrderNo());
-                            if (!Cools.isEmpty(order)) {
-                                orderService.updateSettle(order.getId(),4L,1L);
-
+                            OrderDetl orderDetl1 = new OrderDetl();
+                            orderDetl1.setQty(orderDetl.getQty() + wrkDetl.getAnfme());
+                            orderDetl1.setUpdateTime(now);
+                            if (!orderDetlService.update(orderDetl1,orderDetlEntityWrapper)){
+                                return FAIL.setMsg("鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触");
+                            }
+                            //鏇存柊绔嬪簱鎷h揣鍗曞畬鎴愭暟閲�
+                            EntityWrapper<ManPakOut> manPakOutEntityWrapper = new EntityWrapper<>();
+                            manPakOutEntityWrapper.eq("doc_num",wrkDetl.getOrderNo());
+                            manPakOutEntityWrapper.eq("matnr",wrkDetl.getMatnr());
+                            manPakOutEntityWrapper.eq("loc_no","绔嬪簱");
+                            ManPakOut manPakOut = manPakOutService.selectOne(manPakOutEntityWrapper);
+                            if (manPakOut.getCount() + wrkDetl.getAnfme() >= manPakOut.getAnfme()){
+                                manPakOut.setStatus(1);
+                            }
+                            manPakOut.setCount(manPakOut.getCount() + wrkDetl.getAnfme());
+                            if (!manPakOutService.update(manPakOut,manPakOutEntityWrapper)){
+                                return FAIL.setMsg("鏇存柊鎷h揣鍗曞畬鎴愭暟閲忓け璐�");
                             }
                         }
                     }
 
 
+
+
+//                    Boolean finsihed = orderDetlService.checkAllDetlFinish(wrkDetls101.get(0).getOrderNo());
+//                    if (finsihed) {
+//                        Boolean mastFinished = wrkMastService.checkFinishByOrder(wrkDetls101.get(0).getOrderNo());
+//                        if (mastFinished) {
+//                            Order order = orderService.selectByNo(wrkDetls101.get(0).getOrderNo());
+//                            if (!Cools.isEmpty(order)) {
+//                                order.setMemo("0");//鐘舵�佽浆鎹㈡垚寮�濮嬩笅鎺�
+//                                orderService.updateById(order);
+//                                orderService.updateSettle(order.getId(),4L,1L);
+//
+//                            }
+//                        }
+//                    }
+
+
                     break;
                 // 绌烘澘鍑哄簱
                 case 110:

--
Gitblit v1.9.1