自动化立体仓库 - WMS系统
whycq
2023-07-24 b7e08df5a07b3fa832a46ecc31983e16f2bccc8c
src/main/resources/mapper/LocMastMapper.xml
@@ -54,4 +54,129 @@
<!--        </if>-->
        order by loc_sts desc ,lev1 asc,bay1 asc
    </select>
    <select id="queryFreeLocMastIncludeFirst" resultMap="BaseResultMap">
        select top 1 *
        from asr_loc_mast
        where row1=#{row}
        and bay1 = 1
        and loc_sts='O'
        <if test="locType1 != null">
            and loc_type1 = #{locType1}
        </if>
        <!--        <if test="locType2 != null">-->
        <!--            and loc_type2 = #{locType2}-->
        <!--        </if>-->
        <!--        <if test="locType3 != null">-->
        <!--            and loc_type3 = #{locType3}-->
        <!--        </if>-->
        order by loc_sts desc ,lev1 asc,bay1 asc
    </select>
    <select id="queryFreeLocMastExceptFirst" resultMap="BaseResultMap">
        select top 1 *
        from asr_loc_mast
        where row1=#{row}
        and bay1 > 1
        and loc_sts='O'
        <if test="locType1 != null">
            and loc_type1 = #{locType1}
        </if>
        <!--        <if test="locType2 != null">-->
        <!--            and loc_type2 = #{locType2}-->
        <!--        </if>-->
        <!--        <if test="locType3 != null">-->
        <!--            and loc_type3 = #{locType3}-->
        <!--        </if>-->
        order by loc_sts desc ,lev1 asc,bay1 asc
    </select>
    <select id="queryShallowLocFMast" resultMap="BaseResultMap">
        select * from asr_loc_mast
        where 1=1
        and loc_no in (
         select
         concat(
         (
         case
         when left(loc_no, 2) = '01' then '02'
         end)
         , right(loc_no, 5)) as shallowLocNo
         from asr_loc_mast
         where 1=1
         and loc_sts = 'O'
         and row1 in (1)
        )
        and (loc_sts = 'F' or loc_sts = 'D') and crn_no=1
    </select>
    <select id="queryNeedMoveShallLocF" resultMap="BaseResultMap">
        select * from asr_loc_mast
        where 1=1
        and loc_no in (
         select
         concat(
         (
         case
         when left(loc_no, 2) = '01' then '02'
         end)
         , right(loc_no, 5)) as shallowLocNo
         from asr_loc_mast
         where 1=1
         and loc_sts = 'D'
         and row1 in (1)
        )
        and loc_sts = 'F' and crn_no=1
    </select>
    <select id="queryNeedMoveShallLocD" resultMap="BaseResultMap">
        select * from asr_loc_mast
        where 1=1
        and loc_no in (
         select
         concat(
         (
         case
         when left(loc_no, 2) = '01' then '02'
         end)
         , right(loc_no, 5)) as shallowLocNo
         from asr_loc_mast
         where 1=1
         and loc_sts = 'F'
         and row1 in (1)
        )
        and loc_sts = 'D' and crn_no=1
    </select>
    <select id="queryEmptyDeepLoc" resultMap="BaseResultMap">
        select top 1 * from asr_loc_mast
        where 1=1
          and (loc_no in (
            select
                concat((case when left(loc_no, 2) = '02' then '01'end)
                    , right(loc_no, 5)) as deepLocNo
            from asr_loc_mast
            where 1=1 and loc_sts = 'O' and row1 in (2)
        ) or row1=3)
          and loc_sts = 'O' and crn_no = 1
        order by newid()
    </select>
    <select id="queryDeepLocDMast" resultMap="BaseResultMap">
        select * from asr_loc_mast
        where 1=1
        and loc_no in (
         select
         concat(
         (
         case
         when left(loc_no, 2) = '02' then '01'
         end)
         , right(loc_no, 5)) as deepLocNo
         from asr_loc_mast
         where 1=1
         and loc_sts = 'O'
         and row1 in (2)
        )
        and loc_sts = 'D' and crn_no=1
    </select>
</mapper>