From 90e8096a24e55fa40fbd5dbf7b9d94a6d88940d7 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期日, 20 七月 2025 16:20:59 +0800
Subject: [PATCH] 成品库出入库分配堆垛机顺序321

---
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |  113 +++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 67 insertions(+), 46 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 9fd8dff..f5712ae 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -94,7 +94,8 @@
                 now,    // 娣诲姞鏃堕棿
                 9527L,    // 淇敼浜哄憳
                 now,    // 淇敼鏃堕棿
-                null    // 澶囨敞
+                null,   // 澶囨敞
+                1
         );
         if (!orderService.insert(order)) {
             throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�");
@@ -103,9 +104,9 @@
         List<DetlDto> list = new ArrayList<>();
         List<DetlDto> orderDetails = param.getOrderDetails();
         for (DetlDto detail : orderDetails) {
-            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(),detail.getBrand(),detail.getStandby1(),detail.getStandby2(),detail.getStandby3(),detail.getLineNumber(), detail.getAnfme());
-            if (DetlDto.has(list, dto)) {
-                DetlDto detlDto = DetlDto.findLineNumber(list, dto.getMatnr(), dto.getBatch(),dto.getBrand(),dto.getStandby1(),dto.getStandby2(),dto.getStandby3(),dto.getLineNumber());
+            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(),detail.getBrand(),detail.getStandby1(),detail.getStandby2(),detail.getStandby3(),detail.getLineNumber(),detail.getBoxType1(),detail.getBoxType2(),detail.getBoxType3(), detail.getAnfme());
+            if (DetlDto.hasLineNumber(list, dto)) {
+                DetlDto detlDto = DetlDto.findLineNumber(list, dto.getMatnr(), dto.getBatch(),dto.getBrand(),dto.getStandby1(),dto.getStandby2(),dto.getStandby3(),dto.getLineNumber(),dto.getBoxType1(),dto.getBoxType2(),dto.getBoxType3());
                 assert detlDto != null;
                 detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
             } else {
@@ -134,6 +135,7 @@
             orderDetl.setUpdateTime(now);
             orderDetl.setStatus(1);
             orderDetl.setQty(0.0D);
+            orderDetl.setPakinPakoutStatus(1);
             if (!orderDetlService.insert(orderDetl)) {
                 throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
             }
@@ -146,9 +148,9 @@
         List<OpenOrderCompeteResult> results = new ArrayList<>();
         if (!Cools.isEmpty(param) && !Cools.isEmpty(param.getOrderNo())) {
             // 鎸囧畾璁㈠崟
-//            Order order = orderService.selectByNo(param.getOrderNo());
+            Order order = orderService.selectByNo(param.getOrderNo());
 
-            Order order = OrderInAndOutUtil.selectByNo(Boolean.TRUE,param.getOrderNo());
+//            Order order = OrderInAndOutUtil.selectByNo(Boolean.TRUE,param.getOrderNo());
 
             if (null != order) {
                 OpenOrderCompeteResult result = new OpenOrderCompeteResult();
@@ -156,10 +158,12 @@
                 result.setOrderNo(order.getOrderNo());
                 result.setOrderTime(order.getOrderTime());
                 result.setOrderType(order.getDocType$());
-//                List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
-                List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(order.getPakinPakoutStatus$(), order.getId());
+                List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
+//                List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(order.getPakinPakoutStatus$(), order.getId());
                 for (OrderDetl orderDetl : orderDetls) {
-                    result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
+                    result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getBrand(),
+                            orderDetl.getStandby1(),orderDetl.getStandby2(),orderDetl.getStandby3(),orderDetl.getLineNumber(),
+                            orderDetl.getBoxType1(),orderDetl.getBoxType2(),orderDetl.getBoxType3(), orderDetl.getQty()));
                 }
                 if (order.getSettle() == 4L) {
                     // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
@@ -182,11 +186,14 @@
                 result.setOrderNo(order.getOrderNo());
                 result.setOrderTime(order.getOrderTime());
                 result.setOrderType(order.getDocType$());
-//                List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
-                List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(order.getPakinPakoutStatus$(), order.getId());
+                List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
+//                List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(order.getPakinPakoutStatus$(), order.getId());
 
                 for (OrderDetl orderDetl : orderDetls) {
-                    result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
+                    result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getBrand(),
+                            orderDetl.getStandby1(),orderDetl.getStandby2(),orderDetl.getStandby3(),orderDetl.getLineNumber(),
+                            orderDetl.getBoxType1(),orderDetl.getBoxType2(),orderDetl.getBoxType3(),
+                            orderDetl.getQty()));
                 }
 //                // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
 //                if (!orderService.updateSettle(order.getId(), 6L, null)) {
@@ -247,38 +254,47 @@
                 now,    // 娣诲姞鏃堕棿
                 9527L,    // 淇敼浜哄憳
                 now,    // 淇敼鏃堕棿
-                null    // 澶囨敞
+                param.getMemo(),    // 澶囨敞
+                2
         );
         if (!orderService.insert(order)) {
             throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�");
         }
         // 鍗曟嵁鏄庣粏妗�
-        List<DetlDto> list = new ArrayList<>();
+//        List<DetlDto> list = new ArrayList<>();
         List<DetlDto> orderDetails = param.getOrderDetails();
         for (DetlDto detail : orderDetails) {
-            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(),detail.getBrand(),detail.getStandby1(),detail.getStandby2(),detail.getStandby3(),detail.getLineNumber(), detail.getAnfme());
-            if (DetlDto.has(list, dto)) {
-                DetlDto detlDto = DetlDto.findLineNumber(list, dto.getMatnr(), dto.getBatch(),dto.getBrand(),dto.getStandby1(),dto.getStandby2(),dto.getStandby3(),dto.getLineNumber());
-                assert detlDto != null;
-                detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
-            } else {
-                list.add(dto);
-            }
-        }
-        for (DetlDto detlDto : list) {
-            Mat mat = matService.selectByMatnr(detlDto.getMatnr());
-            if (Cools.isEmpty(mat)) {
-                throw new CoolException(detlDto.getMatnr() + "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧");
-            }
+//            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(),detail.getBrand(),detail.getStandby1(),detail.getStandby2(),detail.getStandby3(),detail.getLineNumber(),
+//                    detail.getBoxType1(),detail.getBoxType2(),detail.getBoxType3(), detail.getAnfme());
+//            if (DetlDto.hasLineNumber(list, dto)) {
+//                DetlDto detlDto = DetlDto.findLineNumber(list, dto.getMatnr(), dto.getBatch(),dto.getBrand(),dto.getStandby1(),dto.getStandby2(),dto.getStandby3(),dto.getLineNumber(),
+//                        dto.getBoxType1(),dto.getBoxType2(),dto.getBoxType3());
+//                assert detlDto != null;
+//                detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
+//            } else {
+//                list.add(dto);
+//            }
+//        }
+//        for (DetlDto detlDto : list) {
+//            Mat mat = matService.selectByMatnr(detail.getMatnr());
+//            if (Cools.isEmpty(mat)) {
+//                throw new CoolException(detail.getMatnr() + "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧");
+//            }
             OrderDetl orderDetl = new OrderDetl();
-            orderDetl.sync(mat);
-            orderDetl.setLineNumber(detlDto.getLineNumber());
-            orderDetl.setBatch(detlDto.getBatch());
-            orderDetl.setAnfme(detlDto.getAnfme());
-            orderDetl.setBrand(detlDto.getBrand());
-            orderDetl.setStandby1(detlDto.getStandby1());
-            orderDetl.setStandby2(detlDto.getStandby2());
-            orderDetl.setStandby3(detlDto.getStandby3());
+            orderDetl.setMatnr(detail.getMatnr());
+            orderDetl.setMaktx(detail.getMaktx());
+            orderDetl.setBatch(detail.getBatch());
+            orderDetl.setModel(detail.getModel());
+            orderDetl.setVolume(detail.getVolume());
+            orderDetl.setAnfme(detail.getAnfme());
+//            orderDetl.sync(mat);
+//            orderDetl.setLineNumber(detail.getLineNumber());
+//            orderDetl.setBatch(detail.getBatch());
+//            orderDetl.setAnfme(detail.getAnfme());
+//            orderDetl.setBrand(detlDto.getBrand());
+//            orderDetl.setStandby1(detlDto.getStandby1());
+//            orderDetl.setStandby2(detlDto.getStandby2());
+//            orderDetl.setStandby3(detlDto.getStandby3());
             orderDetl.setOrderId(order.getId());
             orderDetl.setOrderNo(order.getOrderNo());
             orderDetl.setCreateBy(9527L);
@@ -287,6 +303,7 @@
             orderDetl.setUpdateTime(now);
             orderDetl.setStatus(1);
             orderDetl.setQty(0.0D);
+            orderDetl.setPakinPakoutStatus(2);
             if (!orderDetlService.insert(orderDetl)) {
                 throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
             }
@@ -298,18 +315,20 @@
         List<OpenOrderCompeteResult> results = new ArrayList<>();
         if (!Cools.isEmpty(param) && !Cools.isEmpty(param.getOrderNo())) {
             // 鎸囧畾璁㈠崟
-//            Order order = orderService.selectByNo(param.getOrderNo());
-            Order order = OrderInAndOutUtil.selectByNo(Boolean.FALSE, param.getOrderNo());
+            Order order = orderService.selectByNo(param.getOrderNo());
+//            Order order = OrderInAndOutUtil.selectByNo(Boolean.FALSE, param.getOrderNo());
             if (null != order) {
                 OpenOrderCompeteResult result = new OpenOrderCompeteResult();
                 results.add(result);
                 result.setOrderNo(order.getOrderNo());
                 result.setOrderTime(order.getOrderTime());
                 result.setOrderType(order.getDocType$());
-//                List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
-                List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(order.getPakinPakoutStatus$(),order.getId());
+                List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
+//                List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(order.getPakinPakoutStatus$(),order.getId());
                 for (OrderDetl orderDetl : orderDetls) {
-                    result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
+                    result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getBrand(),
+                            orderDetl.getStandby1(),orderDetl.getStandby2(),orderDetl.getStandby3(),orderDetl.getLineNumber(),
+                            orderDetl.getBoxType1(),orderDetl.getBoxType2(),orderDetl.getBoxType3(), orderDetl.getQty()));
                 }
                 if (order.getSettle() == 4L) {
                     // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
@@ -329,10 +348,12 @@
                 result.setOrderNo(order.getOrderNo());
                 result.setOrderTime(order.getOrderTime());
                 result.setOrderType(order.getDocType$());
-//                List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
-                List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(order.getPakinPakoutStatus$(), order.getId());
+                List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
+//                List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(order.getPakinPakoutStatus$(), order.getId());
                 for (OrderDetl orderDetl : orderDetls) {
-                    result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
+                    result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getBrand(),
+                            orderDetl.getStandby1(),orderDetl.getStandby2(),orderDetl.getStandby3(),orderDetl.getLineNumber(),
+                            orderDetl.getBoxType1(),orderDetl.getBoxType2(),orderDetl.getBoxType3(), orderDetl.getQty()));
                 }
                 // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
 //                if (!orderService.updateSettle(order.getId(), 6L, null)) {
@@ -549,7 +570,7 @@
                 } else {
                     tagId = tagService.getTop().getId();
                 }
-                mat.sync(param);
+                mat.sync(matParam);
 //            mat.setMatnr(param.getMatnr());
 //            mat.setMaktx(param.getMaktx());
 //            mat.setSpecs(param.getSpecs());
@@ -565,7 +586,7 @@
                     log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}]", mat.getMatnr());
                 }
             } else {
-                mat.sync(param);
+                mat.sync(matParam);
                 if (!matService.update(mat, new EntityWrapper<Mat>().eq("matnr",matParam.getMatnr()))) {
                     throw new CoolException("鏇存柊宸插瓨鍦ㄥ晢鍝佷俊鎭け璐ワ紝璇疯仈绯荤鐞嗗憳");
                 }

--
Gitblit v1.9.1