自动化立体仓库 - WMS系统
src/main/resources/mapper/OrderDetlMapper.xml
@@ -62,6 +62,22 @@
                and (batch IS NULL OR batch = '')
            </otherwise>
        </choose>
        <choose>
            <when test="csocode != null and csocode != ''">
                and three_code = #{csocode}
            </when>
            <otherwise>
                and (three_code IS NULL OR three_code = '')
            </otherwise>
        </choose>
        <choose>
            <when test="isocode != null and isocode != ''">
                and dead_time = #{isocode}
            </when>
            <otherwise>
                and (dead_time IS NULL OR dead_time = '')
            </otherwise>
        </choose>
    </select>
    <select id="selectItemByOrderNo" resultMap="BaseResultMap">
@@ -72,6 +88,31 @@
        <if test="batch!=null and batch!='' ">
            and batch = #{batch}
        </if>
        <if test="csocode!=null and csocode!='' ">
            and three_code = #{csocode}
        </if>
        <if test="isocode!=null and isocode!='' ">
            and dead_time = #{isocode}
        </if>
    </select>
    <select id="selectItemByOrderNo2" resultMap="BaseResultMap">
        select * from man_order_detl
        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="threeCode!=null and threeCode!='' ">
            and three_code = #{threeCode}
        </if>
    </select>
    <select id="selectItemNoneOfBatch" resultMap="BaseResultMap">
@@ -154,6 +195,22 @@
                and (batch IS NULL OR batch = '')
            </otherwise>
        </choose>
        <choose>
            <when test="csocode != null and csocode != ''">
                and three_code = #{csocode}
            </when>
            <otherwise>
                and (three_code IS NULL OR three_code = '')
            </otherwise>
        </choose>
        <choose>
            <when test="isocode != null and isocode != ''">
                and dead_time = #{isocode}
            </when>
            <otherwise>
                and (dead_time IS NULL OR dead_time = '')
            </otherwise>
        </choose>
    </update>
    <update id="increase">
@@ -170,6 +227,22 @@
                and (batch IS NULL OR batch = '')
            </otherwise>
        </choose>
        <choose>
            <when test="csocode != null and csocode != ''">
                and three_code = #{csocode}
            </when>
            <otherwise>
                and (three_code IS NULL OR three_code = '')
            </otherwise>
        </choose>
        <choose>
            <when test="isocode != null and isocode != ''">
                and dead_time = #{isocode}
            </when>
            <otherwise>
                and (dead_time IS NULL OR dead_time = '')
            </otherwise>
        </choose>
    </update>
    <update id="decrease">
@@ -184,6 +257,22 @@
            </when>
            <otherwise>
                and (batch IS NULL OR batch = '')
            </otherwise>
        </choose>
        <choose>
            <when test="csocode != null and csocode != ''">
                and three_code = #{csocode}
            </when>
            <otherwise>
                and (three_code IS NULL OR three_code = '')
            </otherwise>
        </choose>
        <choose>
            <when test="isocode != null and isocode != ''">
                and dead_time = #{isocode}
            </when>
            <otherwise>
                and (dead_time IS NULL OR dead_time = '')
            </otherwise>
        </choose>
    </update>
@@ -212,4 +301,65 @@
        and matnr = #{matnr}
    </select>
    <select id="getPakoutDetlPage" 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="getOrderDetlByDoctype" resultMap="BaseResultMap">
        select * from
        (
            SELECT
                *
            FROM
                man_order_detl mod
                LEFT JOIN man_order mo ON mo.id = mod.order_id
            WHERE
                1 = 1
              AND mo.doc_type = ?
        ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
    </select>
    <select id="getOrderDetlByDoctypeCount" 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="getReportDetl" resultMap="BaseResultMap">
        select DISTINCT o.order_no
        from man_order_detl d
                 join man_order o on d.id = d.order_id
        where o.doc_type = #{docType}
          and d.qty > d.report_qty
          and d.qty > 0
    </select>
    <select id="listAutoDetl" resultMap="BaseResultMap">
        select DISTINCT o.order_no
        from man_order_detl d
                 join man_order o on d.id = d.order_id
        where d.dev_no = #{devNo}
        order by d.create_time asc
    </select>
</mapper>