自动化立体仓库 - WMS系统
pang.jiabao
2025-04-27 f1a3407130d88ad15320ab9fcfabd109e5127c78
src/main/resources/mapper/OrderDetlMapper.xml
@@ -8,11 +8,11 @@
        <result column="order_id" property="orderId" />
        <result column="order_no" property="orderNo" />
        <result column="anfme" property="anfme" />
        <result column="work_qty" property="workQty" />
        <result column="qty" property="qty" />
        <result column="matnr" property="matnr" />
        <result column="maktx" property="maktx" />
        <result column="batch" property="batch" />
        <result column="specs" property="specs" />
        <result column="model" property="model" />
        <result column="color" property="color" />
@@ -37,15 +37,16 @@
        <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="status" property="status" />
        <result column="create_by" property="createBy" />
        <result column="create_time" property="createTime" />
        <result column="update_by" property="updateBy" />
        <result column="update_time" property="updateTime" />
        <result column="memo" property="memo" />
        <result column="tk_type" property="tkType" />
        <result column="roll_up" property="rollUp" />
    </resultMap>
@@ -69,14 +70,9 @@
        where 1=1
        and order_no = #{orderNo}
        and matnr = #{matnr}
        <choose>
            <when test="batch != null and batch != ''">
                and batch = #{batch}
            </when>
            <otherwise>
                and (batch IS NULL OR batch = '')
            </otherwise>
        </choose>
        <if test="batch!=null and batch!='' ">
            and batch = #{batch}
        </if>
    </select>
    <select id="selectWorkingDetls" resultMap="BaseResultMap">
@@ -84,6 +80,66 @@
        where 1=1
        and order_id = #{orderId}
        and qty &lt; anfme
    </select>
    <sql id="pakOutPageCondition">
        <if test="order_id!=null and order_id!='' ">
            and mod.order_id like '%' + #{order_id} + '%'
        </if>
        <if test="brand!=null and brand!='' ">
            and mod.brand like '%' + #{brand} + '%'
        </if>
        <if test="maktx!=null and maktx!='' ">
            and mod.maktx like '%' + #{maktx} + '%'
        </if>
        <if test="batch!=null and batch!='' ">
            and mod.batch like '%' + #{batch} + '%'
        </if>
    </sql>
    <select id="getPakoutPage" resultMap="BaseResultMap">
        select * from
        (
            select
            ROW_NUMBER() over (order by mo.create_time desc) as row,
            mod.*
            from man_order_detl mod
            inner join man_order mo on mod.order_id = mo.id
            inner join man_doc_type mdt on mo.doc_type = mdt.doc_id
            where 1=1
            and mo.settle &lt;= 2
            and mo.status = 1
            and mdt.pakout = 1
            <include refid="pakOutPageCondition"></include>
        ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
    </select>
    <select id="getPakoutPageCount" parameterType="java.util.Map" resultType="java.lang.Integer">
        select
        count(1)
        from man_order_detl mod
        inner join man_order mo on mod.order_id = mo.id
        inner join man_doc_type mdt on mo.doc_type = mdt.doc_id
        where 1=1
        and mo.settle &lt;= 2
        and mo.status = 1
        and mdt.pakout = 1
        <include refid="pakOutPageCondition"></include>
    </select>
    <select id="selectMoveLocDetl" resultMap="BaseResultMap">
        select
        md.*
        from
        man_order mo
        left join man_order_detl md on
        mo.order_no = md.order_no
        where
        mo.doc_type = 24
        and mo.settle &lt;= 2
        and md.danger = 0
    </select>
    <select id="selectDetlList" resultType="java.lang.String">
        select brand from man_order_detl where order_no = #{orderNo}
    </select>
    <update id="increase">
@@ -104,7 +160,7 @@
    <update id="decrease">
        update man_order_detl
        set qty = qty - #{qty}
        set work_qty = work_qty - #{qty}
        where 1=1
        and order_no = #{orderNo}
        and matnr = #{matnr}
@@ -125,4 +181,85 @@
        and order_id = #{orderId}
    </update>
    <insert id="addToLogTable">
        INSERT INTO man_order_detl_log SELECT * FROM man_order_detl WHERE id = #{id}
    </insert>
    <insert id="batchDetls">
        INSERT INTO
        man_order_detl(brand,batch,order_id,order_no,specs,model,be_batch,create_by,create_time,status,qty,anfme)
        VALUES
        <foreach collection="list" item="item" index="index" separator=",">
            (
            #{item.brand},
            #{item.batch},
            #{item.orderId},
            #{item.orderNo},
             #{item.specs},
             #{item.model},
             #{item.beBatch},
            #{item.createBy},
            #{item.createTime},
            #{item.status},
            #{item.qty},
            #{item.anfme}
            )</foreach>
    </insert>
    <update id="increaseQtyByOrderNo">
        update man_order_detl
        set qty = qty + #{qty}
        where 1=1
        and order_no = #{orderNo}
        and model = #{matnr}
        <choose>
            <when test="batch != null and batch != ''">
                and batch = #{batch}
            </when>
            <otherwise>
                and (batch IS NULL OR batch = '')
            </otherwise>
        </choose>
    </update>
    <update id="increaseWorkQty">
        update man_order_detl
        set work_qty = work_qty + #{workQty}
        where 1=1
        and order_id = #{orderId}
        and matnr = #{matnr}
        <choose>
            <when test="batch != null and batch != ''">
                and batch = #{batch}
            </when>
            <otherwise>
                and (batch IS NULL OR batch = '')
            </otherwise>
        </choose>
    </update>
    <update id="updateOrderDetlByGroupNo">
        update man_order_detl
        set work_qty = #{count}
        where 1=1
          and order_no= #{orderNo} and brand = #{brand}
    </update>
    <update id="updateOrderDetlQtyByGroupNo">
        update man_order_detl
        set qty = 1
        where 1=1
        and order_no = #{orderNo}
        and brand = #{brand}
    </update>
    <update id="updateCheckExceptionByGroup">
        update man_order_detl set source = 1 where 1 = 1 and brand in
        <foreach collection="groups" item="item" separator="," open="(" close=")">
            #{item}
        </foreach>
    </update>
    <update id="updateOrderDetlStatusByPackageNo">
        update man_order_detl set inspect = #{status} where brand in
        <foreach collection="brands" open="(" separator="," close=")" item="item"  index="index">
            #{item}
        </foreach>
    </update>
</mapper>