From dca272efbaf315859decfcd339b39f9f647fffad Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期一, 27 三月 2023 10:17:21 +0800
Subject: [PATCH] #

---
 src/main/resources/mapper/LocMastMapper.xml |   80 ++++++++++++++++++++++++++++++++++++---
 1 files changed, 73 insertions(+), 7 deletions(-)

diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index bec71d6..6e94452 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -62,15 +62,45 @@
                 <foreach item="item" collection="rows" index="index"  separator="," open="(" close=")">
                     #{item}
                 </foreach>
+                and loc_no not in ('0100101', '0200101', '0300101', '0400101')
                 and loc_sts = 'O'
-                <if test="locType1 != null">
-                    and loc_type1 = #{locType1}
-                </if>
-                /*and loc_no not in ('0100101', '0200101', '0300101', '1200701', '1300701', '1400701', '1900401', '2000401', '2100401')*/
                 group by ctn_no
             ) a
             where count = #{rowsLen}
             order by right(ctn_no, 2) + 0 asc, left(ctn_no, 3) + 0 asc
+        )
+    </select>
+    <select id="queryFreeLocMast" resultMap="BaseResultMap">
+        select
+        *
+        from asr_loc_mast
+        where 1=1
+        and row1 in
+        <foreach item="item" collection="rows" index="index"  separator="," open="(" close=")">
+            #{item}
+        </foreach>
+        and ctn_no =
+        (
+        select
+        top 1
+        ctn_no
+        from (
+        select
+        ctn_no,
+        count(1) as count
+        from asr_loc_mast
+        where 1=1
+        and row1 in
+        <foreach item="item" collection="rows" index="index"  separator="," open="(" close=")">
+            #{item}
+        </foreach>
+        and loc_no not in ('0100101', '0200101', '0300101', '0400101')
+        and (bay1 = 3 or bay1 = 11 or (bay1 = 7 and row1 = 10))
+        and loc_sts = 'O'
+        group by ctn_no
+        ) a
+        where count = #{rowsLen}
+        order by right(ctn_no, 2) + 0 asc, left(ctn_no, 3) + 0 asc
         )
     </select>
 
@@ -79,10 +109,46 @@
         from asr_loc_mast
         where row1=#{row}
         and loc_sts='O'
-        <if test="locType1 != null">
-            and loc_type1 = #{locType1}
-        </if>
         order by loc_sts desc ,lev1 asc,bay1 asc
     </select>
 
+    <select id="selectAvailableNearLocDesc" resultMap="BaseResultMap">
+        SELECT TOP 1 * FROM asr_loc_mast WHERE loc_sts IN ('O')
+        <foreach collection="groupLoc" item="loc" index="index" open="AND loc_no IN (" close=")" separator=",">
+            #{loc}
+        </foreach>
+        ORDER BY
+        row1 DESC
+    </select>
+    <select id="selectAvailableNearLocAsc" resultMap="BaseResultMap">
+        SELECT TOP 1 * FROM asr_loc_mast WHERE loc_sts IN ('O') AND loc_no IN
+        <foreach collection="groupOuterLoc" item="loc" index="index" open="(" close=")" separator=",">
+            #{loc}
+        </foreach>
+        ORDER BY
+        row1 ASC
+    </select>
+
+    <select id="selectAllPeakLoc" resultMap="BaseResultMap">
+        SELECT a.*
+        from(
+            SELECT * FROM asr_loc_mast WHERE loc_sts = 'O' AND row1 = 1
+            UNION ALL
+            SELECT * FROM asr_loc_mast WHERE loc_sts = 'O' AND row1 = 8 and bay1 > 7
+            UNION ALL
+            SELECT * FROM asr_loc_mast WHERE loc_sts = 'O' AND row1 = 12
+            UNION ALL
+            SELECT * FROM asr_loc_mast WHERE loc_sts = 'O' AND row1 = 23
+            UNION ALL
+            SELECT * FROM asr_loc_mast WHERE loc_sts = 'O' AND row1 = 18 AND (bay1 = 1 or bay1 = 3 )
+        ) a ORDER BY a.lev1,a.bay1 ASC
+    </select>
+
+    <select id="selectAllLocNotEmpty" resultMap="BaseResultMap">
+        SELECT * FROM asr_loc_mast WHERE loc_sts != 'O' AND loc_no in
+        <foreach collection="groupLoc" item="loc" index="index" open="(" close=")" separator=",">
+            #{loc}
+        </foreach>
+    </select>
+
 </mapper>

--
Gitblit v1.9.1