From b936dcdc85e19315937b07fc624ff63281ef771a Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 26 五月 2023 10:21:38 +0800
Subject: [PATCH] 高频入库,检测当前库位内侧其他库位是否为R或S(出入库预约状态)
---
 src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java |    7 ++++++-
 src/main/resources/mapper/LocMastMapper.xml                    |   10 +++++++++-
 src/main/java/com/zy/asrs/mapper/LocMastMapper.java            |    4 +++-
 src/main/java/com/zy/asrs/service/LocMastService.java          |    4 +++-
 src/main/java/com/zy/common/service/CommonService.java         |   18 ++++++++++++++----
 5 files changed, 35 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index df3533e..4aeaa41 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -37,7 +37,7 @@
     void updateLocSts(@Param("locNo") String locNo,@Param("locSts") String locSts);
 
     //鎵惧渚х┖搴撲綅
-    LocMast findOutMast(Short locType1, List<Integer> crnNos);
+    List<LocMast> findOutMast(Short locType1, List<Integer> crnNos);
 
     //鎵惧崟鍝佺被鍨嬶紝鏈�鍐呬晶绌哄簱浣�
     LocMast findInEmptyLocMast(Short locType1, @Param("rows") List<Integer> rows);
@@ -49,4 +49,6 @@
     LocMast findEmptyLowFrequencyLocMast(Short locType1);
 
     List<LocMast> selectLocByLev(Integer lev);
+
+    List<LocMast> selectByLocNos(@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 0db6809..8cea53f 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -56,7 +56,7 @@
     void updateLocSts(String locNo, String locSts);
 
     //鎵惧渚х┖搴撲綅
-    LocMast findOutMast(Short locType1, List<Integer> crnNos);
+    List<LocMast> findOutMast(Short locType1, List<Integer> crnNos);
 
     //鎵惧崟鍝佺被鍨嬶紝鏈�鍐呬晶绌哄簱浣�
     LocMast findInEmptyLocMast(Short locType1, List<Integer> rows);
@@ -69,4 +69,6 @@
 
     //鏌ヨ鎸囧畾妤煎眰鐨勫簱浣嶆暟鎹�
     List<LocMast> selectLocByLev(Integer lev);
+
+    List<LocMast> selectByLocNos(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 d664829..119b925 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -205,7 +205,7 @@
     }
 
     @Override
-    public LocMast findOutMast(Short locType1, List<Integer> crnNos) {
+    public List<LocMast> findOutMast(Short locType1, List<Integer> crnNos) {
         return this.baseMapper.findOutMast(locType1, crnNos);
     }
 
@@ -228,4 +228,9 @@
     public List<LocMast> selectLocByLev(Integer lev) {
         return this.baseMapper.selectLocByLev(lev);
     }
+
+    @Override
+    public List<LocMast> selectByLocNos(List<String> locNos) {
+        return this.baseMapper.selectByLocNos(locNos);
+    }
 }
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 37b6c9c..4cc9e8a 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -134,9 +134,9 @@
                 start = 12;
                 end = 21;
 
-                //203绔欏垎閰�3锛�4鍫嗗灈鏈�
+                //203绔欏垎閰�2锛�3鍫嗗灈鏈�
+                crnNos.add(2);
                 crnNos.add(3);
-                crnNos.add(4);
 
                 //鍒嗛厤14锛�15锛�21鎺�
                 rows.add(14);
@@ -267,8 +267,18 @@
     private LocMast getLocNoStep3(LocTypeDto locTypeDto, List<Integer> crnNos) {
         LocMast locMast = null;
         //鎵炬渶澶栦晶绌哄簱浣�
-        LocMast locMast0 = locMastService.findOutMast(locTypeDto.getLocType1(), crnNos);
-        if (locMast0 != null) {
+        List<LocMast> locMasts = locMastService.findOutMast(locTypeDto.getLocType1(), crnNos);
+        for (LocMast locMast0 : locMasts) {
+            //妫�娴嬪綋鍓嶅簱浣嶅唴渚у叾浠栧簱浣嶆槸鍚︿负R鎴朣(鍑哄叆搴撻绾︾姸鎬�)
+            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;
+                }
+            }
+
             // 娴呭簱浣嶇鍚堝昂瀵告娴�
             if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) {
                 // 娴呭簱浣嶅搴斿爢鍨涙満蹇呴』鍙敤涓旀棤寮傚父
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 50c8410..6eba518 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -284,7 +284,7 @@
     </select>
 
     <select id="findOutMast" resultMap="BaseResultMap">
-        select top 1 * from asr_loc_mast
+        select * from asr_loc_mast
         where loc_type1 = #{locType1}
         and loc_type2 = 2
         and crn_no in
@@ -330,4 +330,12 @@
     <select id="selectLocByLev" resultMap="BaseResultMap">
         SELECT * FROM asr_loc_mast WHERE lev1 = #{lev}
     </select>
+
+    <select id="selectByLocNos" resultMap="BaseResultMap">
+        select * from asr_loc_mast
+        where loc_no in
+        <foreach item="item" collection="locNos" index="index"  separator="," open="(" close=")">
+            #{item}
+        </foreach>
+    </select>
 </mapper>
--
Gitblit v1.9.1