From 78a59eda850857e1bfeb48541f0c64d442877a4d Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期二, 08 四月 2025 11:17:10 +0800
Subject: [PATCH] #实现pda简单入库出库操作

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

diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 2c261f9..3ed94b1 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -39,18 +39,77 @@
     </resultMap>
 
     <select id="queryFreeLocMast" resultMap="BaseResultMap">
-        select top 1 *
+        select
+        *
         from asr_loc_mast
-        where
-        row1 in
+        where 1=1
+        and row1 in
         <foreach item="item" collection="rows" index="index"  separator="," open="(" close=")">
             #{item}
         </foreach>
-        <if test="locType1 != null">
-            and loc_type1 = #{locType1}
-        </if>
+        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 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="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,row1 asc, lev1 asc, bay1 asc
+        order by loc_sts desc ,lev1 asc,bay1 asc
     </select>
 
 </mapper>

--
Gitblit v1.9.1