From 574a90c2d6550fa67dde1994d533fcd4c2a08735 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 21 十一月 2023 16:02:22 +0800
Subject: [PATCH] #出库过滤同库位组

---
 src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java |    5 ++
 src/main/java/com/zy/asrs/utils/Utils.java                     |   63 ++++++++++++++++++++++++-------
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java    |    8 ++++
 src/main/resources/mapper/LocMastMapper.xml                    |   11 +++++
 src/main/java/com/zy/asrs/mapper/LocMastMapper.java            |    2 +
 src/main/java/com/zy/asrs/service/LocMastService.java          |    2 +
 6 files changed, 75 insertions(+), 16 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index 7a892c0..9180b4c 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -41,4 +41,6 @@
     List<LocMast> selectLocByLev(Integer lev);
 
     List<LocMast> selectEmptyLocNos(@Param("locNos") List<String> locNos);
+
+    List<LocMast> selectNotEmptyLocNos(@Param("locNos") List<String> locNos);
 }
diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java
index 0587f7c..4dd365d 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -72,4 +72,6 @@
     List<LocMast> selectLocByLev(Integer lev);
 
     List<LocMast> selectEmptyLocNos(List<String> locNos);
+
+    List<LocMast> selectNotEmptyLocNos(List<String> locNos);
 }
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 6ba3fab..a7b5b7d 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -96,4 +96,9 @@
     public List<LocMast> selectEmptyLocNos(List<String> locNos) {
         return this.baseMapper.selectEmptyLocNos(locNos);
     }
+
+    @Override
+    public List<LocMast> selectNotEmptyLocNos(List<String> locNos) {
+        return this.baseMapper.selectNotEmptyLocNos(locNos);
+    }
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 8c189ed..f6b7da2 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -918,6 +918,14 @@
                 return false;//瀛樺湪鍏ュ簱浠诲姟锛岀姝㈠嚭搴�
             }
 
+            //鍚屽簱浣嶇粍鏍¢獙
+            List<String> outerLoc = Utils.getGroupOuterLoc(wrkMast.getSourceLocNo());
+            List<LocMast> outerLocMasts = locMastService.selectNotEmptyLocNos(outerLoc);
+            if (!outerLocMasts.isEmpty()) {
+                News.info("{}浠诲姟锛屾祬搴撲綅瀛樺湪璐х墿锛岀郴缁熺瓑寰呬腑", wrkMast.getWrkNo());
+                return false;//娴呭簱浣嶅瓨鍦ㄦ湭鎵ц浠诲姟
+            }
+
             //鑾峰彇婧愮珯
             LiftStaProtocol liftStaProtocol = NyLiftUtils.getLiftStaByLev(basDevp.getLiftNo(), Utils.getLev(wrkMast.getSourceLocNo()));
             if (liftStaProtocol == null) {
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 2ef4f98..938b141 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -100,21 +100,6 @@
         return getGroupRow(row, pakin);
     }
 
-    public static List<String> getGroupLocNo(String locNo){
-        int row = getRow(locNo);
-        List<String> result = new ArrayList<>();
-        if (FIRST_GROUP_ROW_LIST.contains(row)) {
-            for (Integer groupRow : FIRST_GROUP_ROW_LIST) {
-                result.add(zerofill(String.valueOf(groupRow), 2) + locNo.substring(2));
-            }
-        } else if (SECOND_GROUP_ROW_LIST.contains(row)) {
-            for (Integer groupRow : SECOND_GROUP_ROW_LIST) {
-                result.add(zerofill(String.valueOf(groupRow), 2) + locNo.substring(2));
-            }
-        }
-        return result;
-    }
-
     public static Integer getGroupRow(Integer row, Boolean pakin) {
         if (FIRST_GROUP_ROW_LIST.contains(row)) {
             return 4;
@@ -370,6 +355,54 @@
         throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
     }
 
+    /**
+     * 鑾峰彇澶栦晶鏂瑰悜鐨勫簱浣嶇粍
+     * @param locNo 搴撲綅鍙�
+     */
+    public static List<String> getGroupOuterLoc(String locNo){
+        int row = getRow(locNo);
+        int bay = getBay(locNo);
+
+        //(1,3,4,10,11)娌℃湁澶栦晶鏂瑰悜搴撲綅缁�,(13,14,16)59鍒椾箣鍐呮病鏈夊渚ф柟鍚戝簱浣嶇粍
+        if (FIRST_GROUP_ROW_LIST.contains(row)) {//1鎺�
+            return new ArrayList<>();
+        }
+        if (SECOND_GROUP_ROW_LIST.contains(row)) {//3-4鎺�
+            return new ArrayList<>();
+        }
+        if (THIRD_GROUP_ROW_LIST.contains(row)) {//6-7鎺�
+            List<String> result = new ArrayList<>();
+            for (Integer row0 : THIRD_GROUP_ROW_LIST) {
+                if (row0 < row) {
+                    result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
+                }
+            }
+            return result;
+        }
+        if (FOURTH_GROUP_ROW_LIST.contains(row)) {//8鎺�
+            return new ArrayList<>();
+        }
+        if (FIFTH_GROUP_ROW_LIST.contains(row)) {//10-11鎺�
+            return new ArrayList<>();
+        }
+        if (SIXTH_GROUP_ROW_LIST.contains(row) && (bay >= 59 && bay <= 61)) {//13-16鎺�59-61鍒楀渚ф柟鍚戝簱浣嶇粍
+            List<String> result = new ArrayList<>();
+            for (Integer row0 : SIXTH_GROUP_ROW_LIST) {
+                if (row0 < row) {
+                    result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
+                }
+            }
+            return result;
+        }
+        if (SEVENTH_GROUP_ROW_LIST.contains(row) && bay < 59) {//13-14鎺�59鍒椾箣鍐呮病鏈夊渚ф柟鍚戝簱浣嶇粍
+            return new ArrayList<>();
+        }
+        if (EIGHTH_GROUP_ROW_LIST.contains(row) && bay < 59) {//16鎺�59鍒椾箣鍐呮病鏈夊渚ф柟鍚戝簱浣嶇粍
+            return new ArrayList<>();
+        }
+        throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
+    }
+
     //鑾峰彇闄ょ櫧鍚嶅崟澶栫殑鎸囧畾妤煎眰鍏ㄩ儴绌挎杞y鍧愭爣鐐�
     public static List<int[]> getShuttlePoints(Integer whiteShuttle, Integer lev) {
         BasShuttleService basShuttleService = SpringUtils.getBean(BasShuttleService.class);
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 6e96cd2..2df399a 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -33,7 +33,6 @@
         <result column="inv_wh" property="invWh" />
         <result column="mk" property="mk" />
         <result column="barcode" property="barcode" />
-        <result column="Pdc_type" property="PdcType" />
         <result column="ctn_no" property="ctnNo" />
         <result column="qr_code_value" property="qrCodeValue" />
 
@@ -83,4 +82,14 @@
         and loc_sts = 'O'
         order by row1
     </select>
+
+    <select id="selectNotEmptyLocNos" resultMap="BaseResultMap">
+        select * from asr_loc_mast
+        where loc_no in
+        <foreach item="loc" collection="locNos" index="index"  separator="," open="(" close=")">
+            #{loc}
+        </foreach>
+        and loc_sts != 'O'
+        order by row1
+    </select>
 </mapper>

--
Gitblit v1.9.1