From ba5b53d746a91f0ec10daba4786ee6b7793490ac Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 02 六月 2023 12:36:17 +0800
Subject: [PATCH] 移库判断小车,库位状态

---
 src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java |    9 +++++++++
 src/main/java/com/zy/asrs/utils/Utils.java                     |   24 ++++++++++++++++++++++++
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java    |   12 ++++++++++++
 src/main/resources/mapper/LocMastMapper.xml                    |    8 ++++++++
 src/main/java/com/zy/asrs/mapper/LocMastMapper.java            |    2 ++
 src/main/java/com/zy/asrs/service/LocMastService.java          |    2 ++
 6 files changed, 57 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index f2461a1..286d471 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -34,4 +34,6 @@
     @Select("select loc_no from asr_loc_mast where crn_no = #{crnNo} and loc_sts='O' order by lev1, bay1, row1")
     List<String> getDemoNextLoc(Integer crnNo);
 
+    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 9be06ce..4d529a4 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -59,4 +59,6 @@
     Boolean isOutMost(String locNo);
 
     List<String> getDemoNextLoc(Integer crnNo);
+
+    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 3c7fb69..1c3c026 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -8,6 +8,7 @@
 import com.zy.asrs.utils.Utils;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 
 @Service("locMastService")
@@ -63,4 +64,12 @@
         return this.baseMapper.getDemoNextLoc(crnNo);
     }
 
+    @Override
+    public List<LocMast> selectByLocNos(List<String> locNos) {
+        if (locNos == null || locNos.size() == 0) {
+            return new ArrayList<LocMast>();
+        }
+        return this.baseMapper.selectByLocNos(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 10fe3a8..ff60848 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -4308,6 +4308,18 @@
                     || Utils.getBay(one.getLocNo()) != Utils.getBay(shallowLoc.getLocNo())
                     || Utils.getLev(one.getLocNo()) != Utils.getLev(shallowLoc.getLocNo())){
 
+                    Integer steNo = this.hasCarOfIdle(one.getLocNo());
+                    if (steNo != null) {
+                        //鏈夊皬杞�
+                        continue;
+                    }
+
+                    //妫�娴嬪綋鍓嶅簱浣嶅唴渚у叾浠栧簱浣嶆槸鍚︿负D銆丗銆乆
+                    if (Utils.checkInsideLocIsDFX(one.getLocNo())) {
+                        //鍐呬晶鍏朵粬搴撲綅涓嶆槸D銆丗銆乆銆備笉鑳介�夊彇璇ュ簱浣�
+                        continue;
+                    }
+
                     loc = one;
                     break;
                 }
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 08060e9..7afa71a 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -2,6 +2,9 @@
 
 import com.core.common.Arith;
 import com.core.common.Cools;
+import com.core.common.SpringUtils;
+import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.service.LocMastService;
 import com.zy.core.properties.SlaveProperties;
 
 import java.text.DecimalFormat;
@@ -589,4 +592,25 @@
         }
     }
 
+    /**
+     * 妫�娴嬪綋鍓嶅簱浣嶅唴渚у叾浠栧簱浣嶆槸鍚︿负D銆丗銆乆
+     * 杩斿洖true琛ㄧず鍐呬晶搴撲綅涓嶆槸DFX锛岃繑鍥瀎alse琛ㄧず鍐呬晶搴撲綅鏄疍FX
+     */
+    public static boolean checkInsideLocIsDFX(String locNo) {
+        LocMastService locMastService = SpringUtils.getBean(LocMastService.class);
+        List<String> insideLoc = Utils.getGroupInsideLoc(locNo);
+        if (insideLoc.size() > 0) {
+            List<LocMast> insideLocMast = locMastService.selectByLocNos(insideLoc);
+            for (LocMast mast : insideLocMast) {
+                if (!mast.getLocSts().equals("D")
+                        && !mast.getLocSts().equals("F")
+                        && !mast.getLocSts().equals("X")) {
+                    //D銆丗銆乆(涓嶈兘閫夊畾杩欎釜澶栦晶搴撲綅)
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
 }
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 7f46793..95ea60a 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -60,4 +60,12 @@
         ORDER BY NEWID()
     </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