From 9b6a50bf1288d2f7f06a67bec0c902d1256e44fe Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期六, 05 七月 2025 11:15:54 +0800
Subject: [PATCH] 1.订单出库改物料多的先出 2.新增订单明细打印功能

---
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java |   27 ++++++++++++++++-----------
 1 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java
index 9dd70e8..3b466f1 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java
@@ -72,7 +72,7 @@
         Date now = new Date();
 
         // 鏃犲崟缁勬墭
-        if (Cools.isEmpty(param.getOrderNo())) {
+        if (Cools.isEmpty(param.getCombMats().get(0).getOrderNo())) {
 
             // 鐢熸垚鍏ュ簱閫氱煡妗�
             List<DetlDto> detlDtos = new ArrayList<>();
@@ -112,14 +112,13 @@
             }
             // 鍏宠仈缁勬墭
         }  else {
-            Order order = orderService.selectByNo(param.getOrderNo(), hostId);
-            if (order.getSettle() > 2) {
-                throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�");
-            }
             // 鐢熸垚鍏ュ簱閫氱煡妗�
             List<DetlDto> detlDtos = new ArrayList<>();
             param.getCombMats().forEach(elem -> {
-
+                Order order = orderService.selectByNo(elem.getOrderNo(), hostId);
+                if (order.getSettle() > 2) {
+                    throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�");
+                }
                 // 璁㈠崟鏄庣粏鏁伴噺鏍¢獙
                 OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch(),hostId);
                 if (elem.getAnfme() > orderDetl.getEnableQty()) {
@@ -139,6 +138,7 @@
                     assert one != null;
                     one.setAnfme(one.getAnfme() + detlDto.getAnfme());
                 } else {
+                    detlDto.setOrderNo(order.getOrderNo());
                     detlDtos.add(detlDto);
                 }
             });
@@ -147,6 +147,9 @@
                 if (Cools.isEmpty(mat)) {
                     throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
                 }
+
+                Order order = orderService.selectByNo(detlDto.getOrderNo(), hostId);
+
                 WaitPakin waitPakin = new WaitPakin();
                 waitPakin.sync(mat);
                 waitPakin.setOrderNo(order.getOrderNo());   // 鍗曟嵁缂栧彿
@@ -166,8 +169,9 @@
                 if (!waitPakinService.save(waitPakin)) {
                     throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
                 }
+                orderService.updateSettle(order.getId(), 2L, userId, hostId);
             }
-            orderService.updateSettle(order.getId(), 2L, userId, hostId);
+
         }
 
     }
@@ -325,11 +329,11 @@
             if (!Cools.isEmpty(waitPakin.getOrderNo())){
                 Order order = orderService.selectByNo(waitPakin.getOrderNo(), hostId);
                 if (Cools.isEmpty(order)){
-                    continue;
+                    throw new CoolException("骞冲簱涓婃灦鏌ヨ璁㈠崟澶辫触");
                 }
                 OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), waitPakin.getMatnr(), waitPakin.getBatch(),hostId);
                 if (Cools.isEmpty(orderDetl)){
-                    continue;
+                    throw new CoolException("骞冲簱涓婃灦鏌ヨ璁㈠崟鏄庣粏澶辫触");
                 }
                 // 淇敼璁㈠崟鏄庣粏瀹屾垚鏁伴噺
                 if (!orderDetlService.increase(order.getId(), hostId, waitPakin.getMatnr(), waitPakin.getBatch(), waitPakin.getAnfme())) {
@@ -376,7 +380,7 @@
                     .eq(LocDetl::getHostId, hostId)
                     .eq(LocDetl::getZpallet, combMat.getZpallet())
                     .eq(LocDetl::getMatnr, combMat.getMatnr())
-                    .eq(LocDetl::getBatch, combMat.getBatch())
+//                    .eq(LocDetl::getBatch, combMat.getBatch())
             );
             if (Cools.isEmpty(locDetl)){
                 return R.error("鏈煡璇㈠埌搴撳瓨鏁版嵁");
@@ -397,7 +401,7 @@
                     continue;
                 }
                 if (orderDetl.getAnfme() < orderDetl.getWorkQty()+combMat.getAnfme()){
-                    throw new CoolException("涓嬫灦鏁伴噺鍑洪敊");
+                    combMat.setAnfme(orderDetl.getAnfme()-orderDetl.getWorkQty());
                 }
                 // 淇敼璁㈠崟鏄庣粏浣滀笟鏁伴噺
                 if (!orderDetlService.increaseWorkQtyByOrderNo(combParam.getOrderNo(), combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme(), hostId)) {
@@ -851,4 +855,5 @@
 
         return R.ok();
     }
+
 }

--
Gitblit v1.9.1