From 1133454469cca577f9f333af47abada48f149e6e Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期二, 06 九月 2022 16:46:26 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java |    4 ++--
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java    |    5 ++++-
 src/main/java/com/zy/asrs/controller/OutController.java        |    3 ++-
 src/main/java/com/zy/asrs/service/LocMastService.java          |    2 +-
 src/main/resources/application.yml                             |    2 +-
 5 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 41fe4d5..f5a68ca 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -149,8 +149,9 @@
             }
         }
         // -----------------------------------------------------------------------------------------------
+        List<String> excludeLocNos = taskDtos.stream().map(TaskDto::getLocNo).distinct().collect(Collectors.toList());
         for (TaskDto taskDto : taskDtos) {
-            locMastService.breakUp(taskDto.getLocNo());
+            locMastService.breakUp(taskDto.getLocNo(), excludeLocNos);
             BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo());
             workService.stockOut(staNo, taskDto, getUserId());
         }
diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java
index bbedd3e..85e64e7 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -43,6 +43,6 @@
     LocMast findOutMost(List<String> locNos);
 
     // 瀵瑰悓缁勮揣鐗╄繘琛岀Щ搴撴搷浣�
-    void breakUp(String locNo);
+    void breakUp(String locNo, List<String> excludeLocNos);
 
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
index 7dff5f0..2963b36 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -85,13 +85,13 @@
     }
 
     @Override
-    public synchronized void breakUp(String locNo) {
+    public synchronized void breakUp(String locNo, List<String> excludeLocNos) {
         List<String> groupLoc = Utils.getGroupOuterLoc(locNo);
         Iterator<String> iterator = groupLoc.iterator();
         while (iterator.hasNext()) {
             String next = iterator.next();
             LocMast locMast = this.selectById(next);
-            if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D")) {
+            if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") || excludeLocNos.contains(locMast.getLocNo())) {
                 continue;
             }
             iterator.remove();
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 61f29bc..f559003 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -196,6 +196,7 @@
             }
         }
         Integer ioType = null;
+        List<String> excludeLocNos = dtos.stream().map(OutLocDto::getLocNo).distinct().collect(Collectors.toList());
         // 鐢熸垚宸ヤ綔妗�
         for (OutLocDto dto : dtos) {
             // 濡傛灉涓烘繁搴撲綅锛屼笖瀵瑰簲娴呭簱浣嶄负X.绂佺敤锛屽垯鐣ヨ繃姝ゅ簱浣�
@@ -213,6 +214,7 @@
                 ioType = 107;
             }
             assert ioType != null;
+            locMastService.breakUp(dto.getLocNo(), excludeLocNos);
             // 鑾峰彇搴撲綅
             LocMast locMast = locMastService.selectById(dto.getLocNo());
             // 鑾峰彇璺緞
@@ -951,8 +953,9 @@
         }
         Date now = new Date();
         // 鐢熸垚绉诲簱宸ヤ綔妗�
+        Iterator<LocMast> iterator = locMasts.iterator();
         for (String sourceLocNo : locNos) {
-            Iterator<LocMast> iterator = locMasts.iterator();
+
             while (iterator.hasNext()) {
                 LocMast sourceLoc = locMastService.selectById(sourceLocNo);
                 List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", sourceLocNo));
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index f763cfe..c6b5d20 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -45,7 +45,7 @@
 # 涓嬩綅鏈洪厤缃�
 wcs-slave:
   # 鍙屾繁
-  doubleDeep: true
+  doubleDeep: false
   # 鍙屾繁搴撲綅鎺掑彿
   doubleLocs: 1,4,5,8,9,12,13,16,17,20,21,24,25,28,29,32,33,36,37,40,41,44,45,48
   # 涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁�

--
Gitblit v1.9.1