From c9e446957405d666a3fb45d8cbfa434625fa960d Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 26 五月 2023 10:47:13 +0800
Subject: [PATCH] 检测当前库位外侧库位是否为O

---
 src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java |    2 +-
 src/main/resources/mapper/LocMastMapper.xml                    |    2 +-
 src/main/java/com/zy/asrs/mapper/LocMastMapper.java            |    2 +-
 src/main/java/com/zy/asrs/service/LocMastService.java          |    2 +-
 src/main/java/com/zy/common/service/CommonService.java         |   37 ++++++++++++++++++++++++++++++++++---
 5 files changed, 38 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index 4aeaa41..461f22c 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -46,7 +46,7 @@
     LocMast findEmptyLocMastByLocNos(Short locType1, @Param("locNos") List<String> locNos);
 
     //鎼滅储浣庨(娣锋斁鍖哄煙)绌哄簱浣�
-    LocMast findEmptyLowFrequencyLocMast(Short locType1);
+    List<LocMast> findEmptyLowFrequencyLocMast(Short locType1);
 
     List<LocMast> selectLocByLev(Integer lev);
 
diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java
index 8cea53f..18dbdba 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -65,7 +65,7 @@
     LocMast findEmptyLocMastByLocNos(Short locType1, List<String> locNos);
 
     //鎼滅储浣庨(娣锋斁鍖哄煙)绌哄簱浣�
-    LocMast findEmptyLowFrequencyLocMast(Short locType1);
+    List<LocMast> findEmptyLowFrequencyLocMast(Short locType1);
 
     //鏌ヨ鎸囧畾妤煎眰鐨勫簱浣嶆暟鎹�
     List<LocMast> selectLocByLev(Integer lev);
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 119b925..4c3dbe9 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -220,7 +220,7 @@
     }
 
     @Override
-    public LocMast findEmptyLowFrequencyLocMast(Short locType1) {
+    public List<LocMast> findEmptyLowFrequencyLocMast(Short locType1) {
         return this.baseMapper.findEmptyLowFrequencyLocMast(locType1);
     }
 
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 613ad1b..a080000 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -272,13 +272,18 @@
         List<LocMast> locMasts = locMastService.findOutMast(locTypeDto.getLocType1(), crnNos);
         for (LocMast locMast0 : locMasts) {
             //妫�娴嬪綋鍓嶅簱浣嶅唴渚у叾浠栧簱浣嶆槸鍚︿负R鎴朣(鍑哄叆搴撻绾︾姸鎬�)
+            boolean flag = false;
             List<String> insideLoc = Utils.getGroupInsideLoc(locMast0.getLocNo());
             List<LocMast> insideLocMast = locMastService.selectByLocNos(insideLoc);
             for (LocMast mast : insideLocMast) {
                 if (mast.getLocSts().equals("R") || mast.getLocSts().equals("S")) {
                     //R鎴朣(鍑哄叆搴撻绾︾姸鎬侊紝涓嶈兘閫夊畾杩欎釜澶栦晶搴撲綅)
-                    continue;
+                    flag = true;
+                    break;
                 }
+            }
+            if (flag) {
+                continue;
             }
 
             // 娴呭簱浣嶇鍚堝昂瀵告娴�
@@ -299,8 +304,34 @@
     //浣庨绫诲瀷锛岀洿鎺ユ壘娣锋斁鍖哄煙
     private LocMast getLocNoStep4(LocTypeDto locTypeDto) {
         LocMast locMast = null;
-        LocMast locMast0 = locMastService.findEmptyLowFrequencyLocMast(locTypeDto.getLocType1());
-        if (locMast0 != null) {
+        List<LocMast> locMasts = locMastService.findEmptyLowFrequencyLocMast(locTypeDto.getLocType1());
+        for (LocMast locMast0 : locMasts) {
+            //妫�娴嬪綋鍓嶅簱浣嶅唴渚у叾浠栧簱浣嶆槸鍚︿负R鎴朣(鍑哄叆搴撻绾︾姸鎬�)
+            boolean flag = false;
+            List<String> insideLoc = Utils.getGroupInsideLoc(locMast0.getLocNo());
+            List<LocMast> insideLocMast = locMastService.selectByLocNos(insideLoc);
+            for (LocMast mast : insideLocMast) {
+                if (mast.getLocSts().equals("R") || mast.getLocSts().equals("S")) {
+                    //R鎴朣(鍑哄叆搴撻绾︾姸鎬侊紝涓嶈兘閫夊畾杩欎釜澶栦晶搴撲綅)
+                    flag = true;
+                    break;
+                }
+            }
+            //妫�娴嬪綋鍓嶅簱浣嶅渚у簱浣嶆槸鍚︿负O(绌哄簱浣�)
+            List<String> outerLoc = Utils.getGroupOuterLoc(locMast0.getLocNo());
+            List<LocMast> outerLocMast = locMastService.selectByLocNos(outerLoc);
+            for (LocMast mast : outerLocMast) {
+                if (!mast.getLocSts().equals("O")) {
+                    //涓嶆槸绌哄簱浣嶏紝鎵句笅涓�涓�
+                    flag = true;
+                    break;
+                }
+            }
+            if (flag) {
+                continue;
+            }
+
+
             // 娴呭簱浣嶇鍚堝昂瀵告娴�
             if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) {
                 // 娴呭簱浣嶅搴斿爢鍨涙満蹇呴』鍙敤涓旀棤寮傚父
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 6eba518..5052fe6 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -320,7 +320,7 @@
     </select>
 
     <select id="findEmptyLowFrequencyLocMast" resultMap="BaseResultMap">
-        select top 1 * from asr_loc_mast
+        select * from asr_loc_mast
         where loc_type2 = 3
         and loc_type1 = #{locType1}
         and loc_sts = 'O'

--
Gitblit v1.9.1