自动化立体仓库 - WMS系统
#
lty
23 小时以前 cc27cb7605ba48ebe83e9d8736d7e539eb01d36a
src/main/resources/mapper/LocMastMapper.xml
@@ -37,7 +37,15 @@
        <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
@@ -203,5 +211,83 @@
            #{item}
        </foreach>
    </select>
    <!--    库位为F但没有明细-->
    <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>
    <!--    库位为SRQP但没有工作档案-->
    <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>
    <!--    库位为F\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>