From 70b86bb70e6941127888979dbde37dda3b1db0b6 Mon Sep 17 00:00:00 2001
From: cp <513960435@qq.com>
Date: 星期二, 19 十一月 2024 09:14:43 +0800
Subject: [PATCH] 完善下架功能

---
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java |   46 +++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 41 insertions(+), 5 deletions(-)

diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java
index 0093790..526be1b 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java
@@ -344,6 +344,13 @@
             assert ioType != null;
             // 鑾峰彇搴撲綅
             LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, dto.getLocNo()).eq(LocMast::getHostId, hostId));
+
+            String barcode = locMast.getBarcode();
+            int count = wrkMastService.count(new LambdaQueryWrapper<WrkMast>().eq(WrkMast::getBarcode, barcode));
+            if (count > 0) {
+                throw new CoolException("宸ヤ綔妗e凡鐢熸垚");
+            }
+
             // 鑾峰彇璺緞
             StaDesc staDesc = staDescService.getOne(new LambdaQueryWrapper<StaDesc>().eq(StaDesc::getTypeNo, ioType).eq(StaDesc::getStnNo, staNo).eq(StaDesc::getHostId, hostId));
             // 鐢熸垚宸ヤ綔鍙�
@@ -355,14 +362,14 @@
             wrkMast.setWrkSts(101L); // 宸ヤ綔鐘舵�侊細101.鐢熸垚鍑哄簱
             wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
             wrkMast.setIoPri(13D); // 浼樺厛绾э細13
-            wrkMast.setSourceStaNo(staDesc.getDeviceStn()); // 婧愮珯
-            wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
+            wrkMast.setSourceStaNo(Cools.isEmpty(staDesc.getDeviceStn())? 0 : staDesc.getDeviceStn()); // 婧愮珯
+            wrkMast.setStaNo(Cools.isEmpty(staDesc.getStnNo()) ? 0:staDesc.getStnNo()); // 鐩爣绔�
             wrkMast.setSourceLocNo(dto.getLocNo()); // 婧愬簱浣�
             wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
             wrkMast.setPicking("N"); // 鎷f枡
             wrkMast.setExitMk("N"); // 閫�鍑�
             wrkMast.setEmptyMk("N"); // 绌烘澘
-            wrkMast.setBarcode(locMast.getBarcode());
+            wrkMast.setBarcode(barcode);
             wrkMast.setAppeUser(String.valueOf(userId)); // 鎿嶄綔浜哄憳鏁版嵁
             wrkMast.setAppeTime(now);
             wrkMast.setModiUser(String.valueOf(userId));
@@ -425,8 +432,11 @@
                 .eq(LocMast::getHostId, hostId));
         // 鑾峰彇璺緞
         int ioType = taskDto.isAll() ? 101 : 103;
+        if(ioType==101){
+            staNo=102;
+        }
         // 鑾峰彇璺緞
-        StaDesc staDesc = staDescService.getOne(new LambdaQueryWrapper<StaDesc>().eq(StaDesc::getTypeNo, ioType).eq(StaDesc::getDeviceStn, staNo).eq(StaDesc::getHostId, hostId));
+        StaDesc staDesc = staDescService.getOne(new LambdaQueryWrapper<StaDesc>().eq(StaDesc::getTypeNo, ioType).eq(StaDesc::getStnNo, staNo).eq(StaDesc::getHostId, hostId));
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
         // 鐢熸垚宸ヤ綔妗�
@@ -443,6 +453,7 @@
         wrkMast.setPicking("N"); // 鎷f枡
         wrkMast.setExitMk("N"); // 閫�鍑�
         wrkMast.setEmptyMk("N"); // 绌烘澘
+        wrkMast.setCrnNo(locMast.getCrnNo());
         wrkMast.setBarcode(locMast.getBarcode());
         wrkMast.setAppeUser(String.valueOf(userId)); // 鎿嶄綔浜哄憳鏁版嵁
         wrkMast.setAppeTime(now);
@@ -484,7 +495,7 @@
                 throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
             }
             // 淇敼璁㈠崟鏄庣粏
-            if (!orderDetlService.increase(orderDetl.getOrderId(), hostId, orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) {
+            if (!orderDetlService.increaseWorkQty(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme(), hostId)) {
                 throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
             }
             orderService.updateSettle(orderDetl.getOrderId(), 2L, userId, hostId);
@@ -591,6 +602,7 @@
         } else {
             throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
         }
+
         // 璁㈠崟鍏宠仈
         List<WrkDetl> wrkDetls = wrkDetlService.list(new LambdaQueryWrapper<WrkDetl>().eq(WrkDetl::getWrkNo, wrkMast.getWrkNo()).eq(WrkDetl::getHostId, hostId));
         for (WrkDetl wrkDetl : wrkDetls) {
@@ -598,6 +610,30 @@
                 if (!orderDetlService.decrease(wrkDetl.getOrderNo(), hostId, wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
                     throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
                 }
+
+                //淇敼璁㈠崟涓昏〃鐘舵��,娌℃湁浣滀笟鏁伴噺鏃舵墠鍙互淇敼
+                boolean flag = true;
+                List<OrderDetl> orderDetls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>()
+                        .eq(OrderDetl::getOrderNo, wrkDetl.getOrderNo())
+                        .eq(OrderDetl::getHostId, hostId));
+                for(OrderDetl orderDetl : orderDetls){
+                    if(orderDetl.getWorkQty() > 0){
+                        flag = false;
+                    }
+                }
+                if(flag){
+                    Order order = orderService.getOne(new LambdaQueryWrapper<Order>()
+                            .eq(Order::getOrderNo, wrkDetl.getOrderNo())
+                            .eq(Order::getHostId, hostId));
+                    if(!Cools.isEmpty(order) && order.getSettle()==2){
+                        order.setSettle(1L);
+                        order.setUpdateBy(userId);
+                        order.setUpdateTime(new Date());
+                    }
+                    if(!orderService.updateById(order)){
+                        throw new CoolException("淇敼璁㈠崟鐘舵�佸け璐�");
+                    }
+                }
             }
         }
         // 鍙栨秷鎿嶄綔浜哄憳璁板綍

--
Gitblit v1.9.1