From 00a6376e31fea643df9394a90aaf71b8369fd01f Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期日, 15 六月 2025 16:37:09 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   37 ++++++++++++++++++++++++-------------
 1 files changed, 24 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index 57158ed..53eed73 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -100,6 +100,9 @@
     @Autowired
     private InventoryCheckOrderDetlService checkOrderDetlService;
 
+    @Resource
+    private OrderDetlPakoutService orderDetlPakoutService;
+
     @Override
     @Transactional
     public String startupFullPutStore(FullStoreParam param, Long userId) {
@@ -186,6 +189,7 @@
     public void startupFullTakeStore(StockOutParam param, Long userId) {
         // 鐩爣绔欑偣鐘舵�佹娴�
         BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
+
         // 鑾峰彇搴撲綅鏄庣粏
         List<LocDetlDto> locDetlDtos = new ArrayList<>();
         for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
@@ -205,7 +209,7 @@
             LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
             if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D")) {
                 // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱
-                stockOut(staNo, locDetlDtos, null, userId, null);
+                stockOut(staNo, locDetlDtos, null, userId, null, param.getItemId());
             } else {
                 throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
             }
@@ -294,7 +298,7 @@
 
     @Override
     @Transactional
-    public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId, String checkOrderNo) {
+    public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId, String checkOrderNo, String itemId) {
         Date now = new Date();
         // 鍚堝苟鍚岀被椤�
         Set<String> locNos = new HashSet<>();
@@ -366,6 +370,7 @@
             wrkMast.setAppeTime(now);
             wrkMast.setModiUser(userId);
             wrkMast.setModiTime(now);
+            wrkMast.setPacked(itemId);
             if (!wrkMastService.insert(wrkMast)) {
                 throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + dto.getLocNo());
             }
@@ -389,6 +394,10 @@
                     throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
                 }
                 if (ioType == 107) {
+                    List<InventoryCheckOrderDetl> checkOrderDetls = checkOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("order_no", checkOrderNo).eq("loc_no", dto.getLocNo()));
+                    if (checkOrderDetls != null && !checkOrderDetls.isEmpty()) {
+                        throw new CoolException("璇ュ簱浣嶇殑鐩樼偣浠诲姟宸茬粡娣诲姞鍒颁簡璇ュ簱浣嶄腑");
+                    }
                     InventoryCheckOrderDetl checkOrderDetl = new InventoryCheckOrderDetl();
                     checkOrderDetl.setOrderNo(checkOrderNo);
                     checkOrderDetl.setMatnr(detlDto.getLocDetl().getMatnr());
@@ -396,6 +405,7 @@
                     checkOrderDetl.setBatch(detlDto.getLocDetl().getBatch());
                     checkOrderDetl.setLocNo(detlDto.getLocDetl().getLocNo());
                     checkOrderDetl.setAnfme(detlDto.getLocDetl().getAnfme());
+                    checkOrderDetl.setIoTime(new Date());
                     checkOrderDetl.setStatus("0");
                     checkOrderDetlService.insert(checkOrderDetl);
                 }
@@ -464,15 +474,15 @@
                 continue;
             }
 //            OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
-            OrderDetl orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getBrand()
+            OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getBrand()
                     , locDto.getStandby1(), locDto.getStandby2(), locDto.getStandby3(), locDto.getBoxType1(), locDto.getBoxType2(), locDto.getBoxType3());
-            if (orderDetl == null) {
-                orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), null, locDto.getBrand()
+            if (orderDetlPakout == null) {
+                orderDetlPakout = orderDetlPakoutService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null, locDto.getBrand()
                         , locDto.getStandby1(), locDto.getStandby2(), locDto.getStandby3(), locDto.getBoxType1(), locDto.getBoxType2(), locDto.getBoxType3());
 
             }
             WrkDetl wrkDetl = new WrkDetl();
-            wrkDetl.sync(orderDetl);
+            wrkDetl.sync(orderDetlPakout);
             wrkDetl.setZpallet(wrkMast.getBarcode());
             wrkDetl.setIoTime(now);
             wrkDetl.setWrkNo(workNo);
@@ -483,7 +493,7 @@
             wrkDetl.setAppeUser(userId);
             wrkDetl.setModiTime(now);
             wrkDetl.setModiUser(userId);
-            wrkDetl.setThreeCode(orderDetl.getId() + "");
+            wrkDetl.setThreeCode(orderDetlPakout.getId() + "");
             if (!wrkDetlService.insert(wrkDetl)) {
                 throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
             }
@@ -492,11 +502,12 @@
 //                throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
 //            }
 //            orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
-            OrderInAndOutUtil.increaseWorkQty(Boolean.FALSE, orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(),
-                    orderDetl.getBrand(), orderDetl.getStandby1(), orderDetl.getStandby2(), orderDetl.getStandby3(),
-                    orderDetl.getBoxType1(), orderDetl.getBoxType2(), orderDetl.getBoxType3()
-                    , locDto.getAnfme());
-            OrderInAndOutUtil.updateOrder(Boolean.FALSE, orderDetl.getOrderId(), 2L, userId);
+            orderDetlPakoutService.increaseWorkQtyById(orderDetlPakout.getId(), locDto.getAnfme());
+//            OrderInAndOutUtil.increaseWorkQty(Boolean.FALSE, orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(),
+//                    orderDetl.getBrand(), orderDetl.getStandby1(), orderDetl.getStandby2(), orderDetl.getStandby3(),
+//                    orderDetl.getBoxType1(), orderDetl.getBoxType2(), orderDetl.getBoxType3()
+//                    ,locDto.getAnfme() );
+            OrderInAndOutUtil.updateOrder(Boolean.FALSE, orderDetlPakout.getOrderId(), 2L, userId);
         }
         // 淇敼搴撲綅鐘舵��:   F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
         locMast = locMastService.selectById(taskDto.getLocNo());
@@ -731,7 +742,7 @@
             LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
             if (locMast.getLocSts().equals("F")) {
                 // 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱
-                stockOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId, param.getCheckId());
+                stockOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId, param.getCheckId(), null);
             } else {
                 throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
             }

--
Gitblit v1.9.1