From 0f769b47d8d71bd419ddf1733b0b2f21c82e86b1 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期一, 07 十月 2024 10:33:30 +0800
Subject: [PATCH] 跨巷道移库

---
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java |   89 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 89 insertions(+), 0 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 93032b4..a0fcb1b 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -17,6 +17,7 @@
 import javax.annotation.Resource;
 import java.util.Date;
 import java.util.List;
+import java.util.Optional;
 import java.util.stream.Collectors;
 
 /**
@@ -364,6 +365,94 @@
                         return FAIL.setMsg("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                     }
                     break;
+                // 璺ㄥ贩閬撳簱浣嶇Щ杞畬鎴�
+                case 12:
+                    // 榛樿鐩爣搴撲綅鏄┖鏉�
+                    String locSts2 = "D";
+                    // 搴撲綅绉昏浆鍒ゆ柇鏄惁涓虹┖鏉跨Щ杞�
+                    if (wrkMast.getEmptyMk().equals("N")) {
+                        locSts2 = "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() + "]");
+                        }
+                    }
+                    // 璺ㄥ贩閬撶Щ搴擄紝鏇存柊璁㈠崟鏄庣粏鍙婅鍗曠姸鎬�
+                    List<WrkDetl> wrkDetlList2 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+                    if (!wrkDetlList2.isEmpty()) {
+                        // 鍒ゆ柇鏈夋棤鍗曟嵁缂栧彿
+                        Optional<WrkDetl> any = wrkDetlList2.stream().filter(wrkDetl -> wrkDetl.getOrderNo() != null).findAny();
+                        if (any.isPresent()) {
+                            String orderNo = any.get().getOrderNo();
+                            // 鏍规嵁鍗曟嵁缂栧彿鍜屽簱浣嶅彿鏌ヨ鍗曟嵁鏄庣粏
+                            List<OrderDetl> orderDetlList = orderDetlMapper.selectList(new EntityWrapper<OrderDetl>().in("order_no",orderNo).eq("specs",wrkMast.getSourceLocNo()));
+                            // 鏇存柊鍗曟嵁鏄庣粏鐨勭Щ搴撶姸鎬�
+                            for(OrderDetl orderDetl: orderDetlList) {
+                                orderDetl.setDanger(2);
+                                orderDetl.setUpdateTime(now);
+                                orderDetlMapper.updateById(orderDetl);
+                            }
+                            // 鍒ゆ柇鍗曟嵁鏄庣粏鏄笉鏄叏閮ㄧЩ搴撳畬鎴�
+                            Integer count = orderDetlMapper.selectCount(new EntityWrapper<OrderDetl>().lt("danger", 2).eq("order_no", orderNo));
+                            if (count == 0) {
+                                // 鏇存柊鍗曟嵁涓哄凡瀹屾垚
+                                orderMapper.updateSettleByOrderNo(orderNo,4,null);
+                            }
+                        }
+                    } else { // 绌烘澘杞Щ娌℃湁宸ヤ綔鏄庣粏,浣嗘槸瑕佹洿鏂板崟鎹槑缁嗙姸鎬�
+
+                        // 鍙湁涓�鏉′綔涓氫腑鐨勭Щ搴撳崟鎹�
+                        List<Order> orderList = orderMapper.selectList(new EntityWrapper<Order>().eq("doc_type", 24).le("settle", 3));
+                        if(orderList.isEmpty()) {
+                            log.error("娌℃湁鑾峰彇鍒版鍦ㄦ墽琛屼腑鐨勭Щ搴撳崟鎹�");
+                        } else {
+                            Order order = orderList.get(0);
+                            // 鏍规嵁鍗曟嵁缂栧彿鍜屽簱浣嶅彿鏌ヨ鍗曟嵁鏄庣粏
+                            List<OrderDetl> orderDetlList = orderDetlMapper.selectList(new EntityWrapper<OrderDetl>().in("order_no",order.getOrderNo()).eq("specs",wrkMast.getSourceLocNo()));
+                            // 鏇存柊鍗曟嵁鏄庣粏鐨勭Щ搴撶姸鎬�
+                            for(OrderDetl orderDetl: orderDetlList) {
+                                orderDetl.setDanger(2);
+                                orderDetl.setUpdateTime(now);
+                                orderDetlMapper.updateById(orderDetl);
+                            }
+                            // 鍒ゆ柇鍗曟嵁鏄庣粏鏄笉鏄叏閮ㄧЩ搴撳畬鎴�
+                            Integer count = orderDetlMapper.selectCount(new EntityWrapper<OrderDetl>().lt("danger", 2).eq("order_no", order.getOrderNo()));
+                            if (count == 0) {
+                                // 鏇存柊鍗曟嵁涓哄凡瀹屾垚
+                                orderMapper.updateSettleByOrderNo(order.getOrderNo(),4,null);
+                            }
+                        }
+
+                    }
+
+                    // 淇敼婧愬簱浣嶇姸鎬� ==> O
+                    LocMast sourceLoc2 = locMastService.selectById(wrkMast.getSourceLocNo());
+                    if (null != sourceLoc2) {
+                        sourceLoc2.setBarcode("");
+                        sourceLoc2.setLocSts("O");
+                        sourceLoc2.setSheetNo("0");
+                        sourceLoc2.setModiTime(now);
+                        sourceLoc2.setIoTime(now);
+                        if (!locMastService.updateById(sourceLoc2)) {
+//                            exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLoc={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return FAIL.setMsg("搴撲綅绉昏浆 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                        }
+                    }
+                    // 淇敼鐩爣搴撲綅鐘舵�� ==> .locSts
+                    locMast.setLocSts(locSts2);
+                    locMast.setBarcode(wrkMast.getBarcode());
+                    locMast.setSheetNo("0");
+                    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;
                 default:
                     break;
             }

--
Gitblit v1.9.1