From b3219e6984a541563eb28e5138aefb7f7d3a6da3 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期一, 05 十二月 2022 10:30:38 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/utils/Utils.java                  |   34 ++++++++++++++++++++++++++++++++++
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   10 ++++++++++
 src/main/java/com/zy/asrs/mapper/WrkMastMapper.java         |    4 +++-
 src/main/resources/mapper/WrkMastMapper.xml                 |   12 +++++++++++-
 4 files changed, 58 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
index c88b693..c13627a 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -45,7 +45,9 @@
 
     // 鍑哄簱绗竴姝ワ紝浠庡簱浣嶅埌鍫嗗灈鏈哄嚭搴撶珯
 //    @Select("select top 1 * from dbo.asr_wrk_mast where crn_no=#{crnNo} and wrk_sts=11 and io_type>100 order by io_pri desc,io_time,wrk_no asc")
-    WrkMast selectPakOutStep111215(@Param("crnNo")Integer crnNO, @Param("sourceStaNo")Integer sourceStaNo);
+    WrkMast selectPakOutStep111215(@Param("crnNo")Integer crnNo, @Param("sourceStaNo")Integer sourceStaNo);
+
+    List<WrkMast> selectWorkingOfPakOutBySource(@Param("locNos") List<String> locNos);
 
     // 鍑哄簱绗簩姝ワ紝浠庡爢鍨涙満鍑哄簱绔欏埌鐩爣鍑哄簱绔欙紝鍫嗗灈鏈哄嚭搴撶珯鏈夌墿鏃舵墽琛�
 //    @Select("select top 1 * from dbo.asr_wrk_mast where source_sta_no=#{sourceStaNo} and wrk_sts=12 and io_type>100 order by io_pri desc,io_time desc,wrk_no ASC")
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 2d9671b..598e97e 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -948,6 +948,16 @@
                 log.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), sourceSta.getLocSts());
                 continue;
             }
+
+            // 鍒ゆ柇鏄惁鏈夊悓搴撲綅缁勭殑鍑哄簱浠诲姟锛屽鏋滄湁锛屽垯鏆傚仠
+            List<String> outsideLoc = Utils.getGroupOutsideLoc(wrkMast.getSourceLocNo());
+            if (!Cools.isEmpty(outsideLoc)) {
+                if (!Cools.isEmpty(wrkMastMapper.selectWorkingOfPakOutBySource(outsideLoc))) {
+                    log.warn("{}宸ヤ綔妗e嚭搴撳け璐ワ紝鍘熷洜锛氬灞傚簱浣峽}姝e湪鎵ц鍑哄簱浠诲姟锛�", wrkMast.getWrkNo(), JSON.toJSONString(outsideLoc));
+                    continue;
+                }
+            }
+
             // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
             DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
             StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index fd12dab..08df323 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -6,6 +6,8 @@
 
 import java.text.DecimalFormat;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -244,4 +246,36 @@
         return zerofill(String.valueOf(row), 2) + zerofill(String.valueOf(bay), 3) + zerofill(String.valueOf(lev), 2);
     }
 
+    // 澶栦晶鏂瑰悜鐨勮揣浣�  浼樺厛鍏ュ簱鏂瑰悜/浼樺厛鍑哄簱鏂瑰悜 ===>> 鍙嶄箣
+    public static List<String> getGroupOutsideLoc(String locNo){
+        int row = getRow(locNo);
+        List<String> result = new ArrayList<>();
+        if (FIRST_GROUP_ROW_LIST.contains(row)) {
+            for (Integer integer : FIRST_GROUP_ROW_LIST) {
+                if (integer < row) {
+                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
+                } else {
+                    break;
+                }
+            }
+        } else if (SECOND_GROUP_ROW_LIST.contains(row)) {
+            List<Integer> clone = Arrays.asList(new Integer[SECOND_GROUP_ROW_LIST.size()]);
+            Collections.copy(clone, SECOND_GROUP_ROW_LIST);
+            Collections.reverse(clone);
+            for (Integer integer : clone) {
+                if (integer > row) {
+                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
+                } else {
+                    break;
+                }
+            }
+        } else {
+//            throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
+        }
+        if (!Cools.isEmpty(result)) {
+            Collections.reverse(result);
+        }
+        return result;
+    }
+
 }
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index 80f50da..4e74ad3 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -114,7 +114,17 @@
     </select>
 
     <select id="selectPakOutStep111215" resultMap="BaseResultMap">
-        select top 1 * from dbo.asr_wrk_mast where crn_no=#{crnNo} and wrk_sts in (11,12,13,14,15, 16) and io_type>100 order by io_pri desc,io_time,wrk_no asc
+        select top 1 * from dbo.asr_wrk_mast where crn_no=#{crnNo} and wrk_sts in (11,12,13,14,15,16) and io_type>100 order by io_pri desc,io_time,wrk_no asc
+    </select>
+
+    <select id="selectWorkingOfPakOutBySource" resultMap="BaseResultMap">
+        select * from dbo.asr_wrk_mast
+        where 1=1
+        and source_loc_no in
+        <foreach item="item" collection="locNos" index="index"  separator="," open="(" close=")">
+            #{item}
+        </foreach>
+        and wrk_sts in (11,12,13,14,15,16) and io_type>100 order by io_pri desc,io_time,wrk_no asc
     </select>
 
     <select id="selectPakOutStep16" resultMap="BaseResultMap">

--
Gitblit v1.9.1