From 58b23d18daa51a9837306fb0a8c03285fbd80e99 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期一, 08 十二月 2025 09:16:49 +0800
Subject: [PATCH] #

---
 src/main/resources/mapper/LocMastMapper.xml |  218 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 216 insertions(+), 2 deletions(-)

diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index fb1bd8d..42c6712 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -33,25 +33,39 @@
         <result column="inv_wh" property="invWh" />
         <result column="mk" property="mk" />
         <result column="barcode" property="barcode" />
-        <result column="Pdc_type" property="PdcType" />
         <result column="ctn_no" property="ctnNo" />
+        <result column="frozen" property="frozen" />
+        <result column="frozen_memo" property="frozenMemo" />
+    </resultMap>
+    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+    <resultMap id="BaseResultMapError" type="com.zy.asrs.entity.param.ErrorDeviceParam">
+        <result column="category" property="category" />
+        <result column="equipmentNo" property="equipmentNo" />
+        <result column="categoryOther" property="categoryOther" />
+        <result column="equipmentNoOther" property="equipmentNoOther" />
+        <result column="errorM" property="errorM" />
 
     </resultMap>
-
     <select id="queryFreeLocMast" resultMap="BaseResultMap">
         select top 1 *
         from asr_loc_mast
         where row1=#{row}
         and loc_sts='O'
+        and whs_type=#{whsType}
         <if test="locType1 != null">
             and loc_type1 = #{locType1}
         </if>
         order by loc_sts desc ,lev1 asc,bay1 asc
     </select>
 
+    <select id="selectLocByLev" resultMap="BaseResultMap">
+        SELECT * FROM asr_loc_mast WHERE lev1 = #{lev}
+    </select>
+
     <select id="queryShallowLocFMast" resultMap="BaseResultMap">
         select * from asr_loc_mast
         where 1=1
+        and whs_type=#{whsType}
         and loc_no in (
          select
          concat(
@@ -76,4 +90,204 @@
         )
         and (loc_sts = 'F' or loc_sts = 'D') and crn_no = #{crnNo}
     </select>
+
+    <select id="selectLocShuttleMoveUnilateralY" resultMap="BaseResultMap">
+        select *
+        from [dbo].[asr_loc_mast]
+        where 1=1
+        and whs_type=#{whsType}
+        and row1>1 and row1 &lt; 18
+        and bay1 = #{bay}
+        and lev1 = #{lev}
+        and loc_sts='F'
+        order by row1
+    </select>
+
+    <select id="selectLocShuttleMoveUnilateralN" resultMap="BaseResultMap">
+        select *
+        from [dbo].[asr_loc_mast]
+        where 1=1
+        and whs_type=#{whsType}
+        and row1>17 and row1 &lt; 31
+        and bay1 = #{bay}
+        and lev1 = #{lev}
+        and loc_sts='F'
+        order by row1 desc
+    </select>
+
+<!--    <select id="selectLocByLocStsPakInF1" resultMap="BaseResultMap">-->
+<!--        SELECT top 1 *-->
+<!--        FROM [dbo].[asr_loc_mast]-->
+<!--        WHERE 1=1-->
+<!--        and whs_type=#{whsType}-->
+<!--        and loc_no in-->
+<!--        <foreach collection="locNos" item="locNo" index="index" open="(" close=")" separator=",">-->
+<!--            #{locNo}-->
+<!--        </foreach>-->
+<!--        AND loc_sts not in ('O') order by row1-->
+<!--    </select>-->
+
+    <select id="selectLocByLocStsPakInF1" resultMap="BaseResultMap">
+        SELECT top 1 *
+        FROM [dbo].[asr_loc_mast]
+        WHERE 1=1
+        and whs_type=#{whsType}
+        and crn_no=#{crnNo}
+        and bay1 = #{bay}
+        and lev1 = #{lev}
+        and gro1 = #{gro}
+        AND loc_sts not in ('O') order by row1
+    </select>
+
+<!--    <select id="selectLocByLocStsPakInF2" resultMap="BaseResultMap">-->
+<!--        SELECT top 1 *-->
+<!--        FROM [dbo].[asr_loc_mast]-->
+<!--        WHERE 1=1-->
+<!--        and whs_type=#{whsType}-->
+<!--        and loc_no in-->
+<!--        <foreach collection="locNos" item="locNo" index="index" open="(" close=")" separator=",">-->
+<!--            #{locNo}-->
+<!--        </foreach>-->
+<!--        AND loc_sts not in ('O') order by row1 desc-->
+<!--    </select>-->
+    <select id="selectLocByLocStsPakInF2" resultMap="BaseResultMap">
+        SELECT top 1 *
+        FROM [dbo].[asr_loc_mast]
+        WHERE 1=1
+        and whs_type=#{whsType}
+        and crn_no=#{crnNo}
+        and bay1 = #{bay}
+        and lev1 = #{lev}
+        and gro1 = #{gro}
+        AND loc_sts not in ('O') order by row1 desc
+    </select>
+<!--    <select id="selectLocByLocStsPakInO1" resultMap="BaseResultMap">-->
+<!--        SELECT top 1 *-->
+<!--        FROM [dbo].[asr_loc_mast]-->
+<!--        WHERE 1=1-->
+<!--        and whs_type=#{whsType}-->
+<!--        and loc_no in-->
+<!--        <foreach collection="locNos" item="locNo" index="index" open="(" close=")" separator=",">-->
+<!--            #{locNo}-->
+<!--        </foreach>-->
+<!--        AND loc_sts in ('O') order by row1 desc-->
+<!--    </select>-->
+    <select id="selectLocByLocStsPakInO1" resultMap="BaseResultMap">
+        SELECT top 1 *
+        FROM [dbo].[asr_loc_mast]
+        WHERE 1=1
+        and whs_type=#{whsType}
+        and crn_no=#{crnNo}
+        and bay1 = #{bay}
+        and lev1 = #{lev}
+        and gro1 = #{gro}
+        AND loc_sts in ('O') order by row1 desc
+    </select>
+<!--    <select id="selectLocByLocStsPakInO2" resultMap="BaseResultMap">-->
+<!--        SELECT top 1 *-->
+<!--        FROM [dbo].[asr_loc_mast]-->
+<!--        WHERE 1=1-->
+<!--        and whs_type=#{whsType}-->
+<!--        and loc_no in-->
+<!--        <foreach collection="locNos" item="locNo" index="index" open="(" close=")" separator=",">-->
+<!--            #{locNo}-->
+<!--        </foreach>-->
+<!--        AND loc_sts in ('O') order by row1-->
+<!--    </select>-->
+    <select id="selectLocByLocStsPakInO2" resultMap="BaseResultMap">
+        SELECT top 1 *
+        FROM [dbo].[asr_loc_mast]
+        WHERE 1=1
+        and whs_type=#{whsType}
+        and crn_no=#{crnNo}
+        and bay1 = #{bay}
+        and lev1 = #{lev}
+        and gro1 = #{gro}
+        AND loc_sts in ('O') order by row1
+    </select>
+    <select id="findFirstFrozenLocNo" resultType="java.lang.String">
+        select top 1 loc_no  from asr_loc_mast where frozen = 1 and loc_no in 
+        <foreach collection="locNoList" item="item" index="index" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+    </select>
+    <!--    搴撲綅涓篎浣嗘病鏈夋槑缁�-->
+    <select id="asrLocMastNotInDetl1" resultMap="BaseResultMap">
+        SELECT a.*
+        FROM asr_loc_mast AS a
+                 LEFT JOIN asr_loc_detl AS b ON a.loc_no = b.loc_no
+        WHERE a.loc_sts = 'F'
+          AND b.loc_no IS NULL
+    </select>
+
+    <!--    搴撲綅涓篠RQP浣嗘病鏈夊伐浣滄。妗�-->
+    <select id="asrLocMastNotInDetl2" resultMap="BaseResultMap">
+        SELECT a.*
+        FROM asr_loc_mast AS a
+        WHERE a.loc_sts IN ('S','R','Q','P')
+          AND NOT EXISTS (
+            SELECT 1
+            FROM asr_wrk_mast AS d
+            WHERE a.loc_no = d.loc_no OR a.loc_no = d.source_loc_no
+        )
+        order by a.loc_no
+    </select>
+
+    <!--    搴撲綅涓篎\D浣嗗瓨鍦ㄥ伐浣滄。妗�-->
+    <select id="asrLocMastNotInDetl3" resultMap="BaseResultMap">
+        SELECT a.*
+        FROM asr_loc_mast AS a
+        WHERE a.loc_sts IN ('F','D')
+          AND EXISTS (
+            SELECT 1
+            FROM asr_wrk_mast AS d
+            WHERE a.loc_no = d.loc_no OR a.loc_no = d.source_loc_no
+        )
+        order by a.loc_no
+    </select>
+
+    <!-- 娣辨祬搴撲綅涓嶄竴鑷� -->
+    <select id="adjacentLocMast" resultMap="BaseResultMapError">
+        SELECT
+            a.loc_no AS category,
+            a.loc_sts AS equipmentNo,
+            neighbor.loc_no AS categoryOther,
+            neighbor.loc_sts AS equipmentNoOther,
+            '娣辨祬搴撲綅涓嶄竴鑷�' AS errorM
+        FROM
+            asr_loc_mast AS a
+                JOIN
+            asr_loc_mast AS neighbor ON
+                a.bay1 = neighbor.bay1
+                    AND a.lev1 = neighbor.lev1
+                    AND (
+                    (a.row1 = 1  AND neighbor.row1 = 2)  OR
+                    (a.row1 = 2  AND neighbor.row1 = 1)  OR
+                    (a.row1 = 3  AND neighbor.row1 = 4)  OR
+                    (a.row1 = 4  AND neighbor.row1 = 3)  OR
+                    (a.row1 = 5  AND neighbor.row1 = 6)  OR
+                    (a.row1 = 6  AND neighbor.row1 = 5)  OR
+                    (a.row1 = 7  AND neighbor.row1 = 8)  OR
+                    (a.row1 = 8  AND neighbor.row1 = 7)  OR
+                    (a.row1 = 9  AND neighbor.row1 = 10) OR
+                    (a.row1 = 10 AND neighbor.row1 = 9)  OR
+                    (a.row1 = 11 AND neighbor.row1 = 12) OR
+                    (a.row1 = 12 AND neighbor.row1 = 11) OR
+                    (a.row1 = 13 AND neighbor.row1 = 14) OR
+                    (a.row1 = 14 AND neighbor.row1 = 13) OR
+                    (a.row1 = 15 AND neighbor.row1 = 16) OR
+                    (a.row1 = 16 AND neighbor.row1 = 15) OR
+                    (a.row1 = 17 AND neighbor.row1 = 18) OR
+                    (a.row1 = 18 AND neighbor.row1 = 17) OR
+                    (a.row1 = 19 AND neighbor.row1 = 20) OR
+                    (a.row1 = 20 AND neighbor.row1 = 19)
+                    )
+        WHERE
+            a.row1 IN (2,3,6,7,10,11,14,15,18,19)
+          AND NOT (
+            a.loc_sts = neighbor.loc_sts
+                OR (a.loc_sts IN ('F', 'D') AND neighbor.loc_sts IN ('F', 'D'))
+            )
+    </select>
+
 </mapper>

--
Gitblit v1.9.1