自动化立体仓库 - WMS系统
whycq
2023-08-28 d3f11759e6b32d7e9e63e0f7b0cc4b6874aea020
src/main/resources/mapper/WrkDetlMapper.xml
@@ -45,10 +45,106 @@
        <result column="appe_user" property="appeUser" />
        <result column="appe_time" property="appeTime" />
        <result column="memo" property="memo" />
        <result column="mat_type" property="matType" />
    </resultMap>
    <sql id="batchSeq">
        <choose>
            <when test="batch != null and batch != ''">
                and batch = #{batch}
            </when>
            <otherwise>
                and (batch IS NULL OR batch = '')
            </otherwise>
        </choose>
    </sql>
    <select id="selectByWrkNo" resultMap="BaseResultMap">
        select * from asr_wrk_detl where 1=1 and wrk_no = #{wrkNo}
    </select>
    <delete id="deleteItem">
        delete from asr_wrk_detl
        where 1=1
        and wrk_no = #{wrkNo}
        and matnr = #{matnr}
        <include refid="batchSeq"></include>
    </delete>
    <delete id="deleteByWrkNo">
        DELETE FROM asr_wrk_detl where wrk_no = #{wrkNo}
    </delete>
    <update id="updateAnfme">
        update asr_wrk_detl
        set anfme = #{anfme}
        , modi_time = getdate()
        where 1=1
        and wrk_no = #{wrkNo}
        and matnr = #{matnr}
        <include refid="batchSeq"></include>
    </update>
    <select id="selectAndLogByOrderNo" resultMap="BaseResultMap">
        select awd.*
        from asr_wrk_detl awd
        left join asr_wrk_mast awm on awd.wrk_no = awm.wrk_no and awd.io_time = awm.io_time
        where order_no like '%' + #{orderNo} + '%'
        union
        select distinct awdl.*
        from asr_wrk_detl_log awdl
        left join asr_wrk_mast_log awml on awdl.wrk_no = awml.wrk_no and awdl.io_time = awml.io_time
        where awdl.order_no like '%' + #{orderNo} + '%'
        and (awml.manu_type is null or awml.manu_type != '手动取消')
    </select>
    <select id="selectAndLogByOrderNoGroupByMatnrOfSum" resultMap="BaseResultMap">
        select awd.wrk_no, awd.io_time, awd.matnr, awd.order_no, sum(awd.anfme) as anfme
        from asr_wrk_detl awd
        left join asr_wrk_mast awm on awd.wrk_no = awm.wrk_no and awd.io_time = awm.io_time
        where order_no like '%' + #{orderNo} + '%'
        group by awd.wrk_no, awd.io_time, awd.matnr, awd.order_no
        union
        select awdl.wrk_no, awdl.io_time, awdl.matnr, awdl.order_no, sum(awdl.anfme) as anfme from
        (
            select distinct awdl.*
            from asr_wrk_detl_log awdl
            left join asr_wrk_mast_log awml on awdl.wrk_no = awml.wrk_no and awdl.io_time = awml.io_time
            where awdl.order_no like '%' + #{orderNo} + '%'
            and (awml.manu_type is null or awml.manu_type != '手动取消')
        ) as awdl
        group by awdl.wrk_no, awdl.io_time, awdl.matnr, awdl.order_no
    </select>
    <update id="updateInspect">
        update asr_wrk_detl
        set inspect = 1
        where 1=1
        and wrk_no = #{wrkNo}
        and matnr = #{matnr}
        <include refid="batchSeq"></include>
    </update>
    <select id="selectPakoutQuery" resultMap="BaseResultMap">
        select
        awd.*
        from asr_wrk_detl awd
        left join asr_wrk_mast awm on awd.wrk_no = awm.wrk_no
        where 1=1
        and awm.wrk_sts = 14
        and (awd.inspect is null or awd.inspect = 0)
        and awm.sta_no = #{staNo}
        and awd.matnr + '-' + awd.batch = #{matnr}
    </select>
    <update id="updateOrderNo">
        update asr_wrk_detl
        set order_no = #{orderNo}
        , modi_time = getdate()
        where 1=1
        and wrk_no = #{wrkNo}
        and matnr = #{matnr}
        <include refid="batchSeq"></include>
    </update>
</mapper>