自动化立体仓库 - WMS系统
ZY
2024-10-12 b248de310fd65c11f959f4cd0f02d3a6d3edb2c2
src/main/resources/mapper/WrkDetlMapper.xml
@@ -37,7 +37,7 @@
        <result column="dead_time" property="deadTime" />
        <result column="dead_warn" property="deadWarn" />
        <result column="source" property="source" />
        <result column="check" property="check" />
        <result column="inspect" property="inspect" />
        <result column="danger" property="danger" />
        <result column="modi_user" property="modiUser" />
@@ -45,10 +45,124 @@
        <result column="appe_user" property="appeUser" />
        <result column="appe_time" property="appeTime" />
        <result column="memo" property="memo" />
        <result column="i_no" property="iNo" />
        <result column="temp1" property="temp1" />
        <result column="temp2" property="temp2" />
        <result column="temp3" property="temp3" />
        <result column="pg_no" property="sPgNO" />
        <result column="pro_type" property="proType" />
        <result column="out_order_no" property="outOrderNo" />
        <result column="lu_hao" property="luHao" />
        <result column="ware_id" property="wareId" />
        <result column="ware_mame" property="wareName" />
        <result column="packing" property="packing" />
    </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>
    <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="selectByOrderNo" resultMap="BaseResultMap">
        SELECT d.*
        FROM asr_wrk_detl d
        WHERE order_no = #{orderNo}
    </select>
    <select id="selectAndLogByOrderNo" resultMap="BaseResultMap">
        SELECT
            d.*
        FROM
            asr_wrk_detl d
        WHERE
            order_no = #{orderNo} UNION
        SELECT
            d.*
        FROM
            asr_wrk_detl_log d
                JOIN asr_wrk_mast_log m ON d.wrk_no= m.wrk_no
        WHERE
            d.order_no = #{orderNo}
          AND m.io_time= d.io_time
          AND m.io_type!= 53
    </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>
    <select id="selectAndLogByOrderNoGroupByMatnrOfSum" resultMap="BaseResultMap">
        select awd.wrk_no, awd.io_time, awd.matnr,awd.zpallet,awd.specs,awd.maktx, 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 = #{orderNo}
        group by awd.wrk_no, awd.io_time, awd.matnr ,awd.zpallet,awd.specs,awd.maktx
        union
        select distinct awdl.wrk_no, awdl.io_time, awdl.matnr,awdl.zpallet,awdl.specs,awdl.maktx, sum(awdl.anfme) as anfme
        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 = #{orderNo}
        and (awml.manu_type is null or awml.manu_type != '手动取消')
        and awml.io_type != 103
        group by awdl.wrk_no, awdl.io_time, awdl.matnr ,awdl.zpallet,awdl.specs,awdl.maktx
    </select>
    <update id="updateIoTimeWms">
        update asr_wrk_detl
        set io_time = #{ioTime}
        where 1=1
        and wrk_no = #{workNo}
    </update>
</mapper>