From 3f30983db5b3cd2b25cb215579501a2ef134883c Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期五, 04 八月 2023 17:00:11 +0800
Subject: [PATCH] agv 订单出库功能完善

---
 src/main/resources/mapper/LocMastMapper.xml |  137 ++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 134 insertions(+), 3 deletions(-)

diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 36d335e..552b136 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -35,6 +35,8 @@
         <result column="barcode" property="barcode" />
         <result column="Pdc_type" property="PdcType" />
         <result column="ctn_no" property="ctnNo" />
+        <result column="qr_code_value" property="qrCodeValue" />
+        <result column="status" property="status" />
 
     </resultMap>
 
@@ -62,15 +64,144 @@
                 <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>
                 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>
 
+    <select id="queryFreeLocMast0" resultMap="BaseResultMap">
+        select top 1 *
+        from asr_loc_mast
+        where row1=#{row}
+        and loc_sts='O'
+        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>
+
+    <select id="selectLocByLev" resultMap="BaseResultMap">
+        SELECT * FROM asr_loc_mast WHERE lev1 = #{lev}
+    </select>
+
+    <select id="queryFreeLocMast2" resultMap="BaseResultMap">
+        select *
+        from asr_loc_mast
+        where 1=1
+        and loc_sts='O'
+        <if test="locType1 != null">
+            and loc_type1 = #{locType1}
+        </if>
+        <if test="rowBeg != null">
+            and row1 >= #{rowBeg}
+        </if>
+        <if test="rowEnd != null">
+            and row1 &lt;= #{rowEnd}
+        </if>
+        <if test="bayBeg != null">
+            and bay1 >= #{bayBeg}
+        </if>
+        <if test="bayEnd != null">
+            and bay1 &lt;= #{bayEnd}
+        </if>
+        <if test="levBeg != null">
+            and lev1 >= #{levBeg}
+        </if>
+        <if test="levEnd != null">
+            and lev1 &lt;= #{levEnd}
+        </if>
+        and loc_no not in ('0100101')
+        order by loc_sts desc ,lev1 asc,bay1 asc
+    </select>
+
+    <select id="selectEmptyByLocNos" resultMap="BaseResultMap">
+        SELECT * FROM asr_loc_mast
+        WHERE loc_sts IN ('O')
+        AND loc_no IN
+        <foreach collection="locNos" item="loc" index="index" open="(" close=")" separator=",">
+            #{loc}
+        </foreach>
+        ORDER BY
+        row1 ASC
+    </select>
+
+    <select id="updateLocType2ByRBL" resultMap="BaseResultMap">
+        update asr_loc_mast set loc_type2 = #{locType2}
+        where (row1 &gt;= #{startRow} and row1 &lt;= #{endRow})
+        and (bay1 &gt;= #{startBay} and bay1 &lt;= #{endBay})
+        and (lev1 &gt;= #{startLev} and lev1 &lt;= #{endLev})
+    </select>
 </mapper>

--
Gitblit v1.9.1