自动化立体仓库 - WMS系统
#
LSH
2023-03-27 dca272efbaf315859decfcd339b39f9f647fffad
src/main/resources/mapper/LocMastMapper.xml
@@ -62,16 +62,93 @@
                <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>
    <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>
</mapper>