自动化立体仓库 - WMS系统
1
12 小时以前 51889b97a85b070cbb80a5bb2893149c80448d5d
src/main/resources/mapper/LocDetlMapper.xml
@@ -358,7 +358,22 @@
            and a.standby3 like '%' + #{standby3} + '%'
        </if>
        <if test="boxType3!=null and boxType3!='' ">
            and a.boxType3 like '%' + #{boxType3} + '%'
            and a.box_type3 like '%' + #{boxType3} + '%'
        </if>
    </sql>
    <sql id="stockOutCondition1">
        <if test="matnr!=null and matnr!='' ">
            and a.matnr like '%' + #{matnr} + '%'
        </if>
        <if test="standby1!=null and standby1!='' ">
            and a.standby1 like '%' + #{standby1} + '%'
        </if>
        <if test="standby2!=null and standby2!='' ">
            and a.standby2 like '%' + #{standby2} + '%'
        </if>
        <if test="boxType3!=null and boxType3!='' ">
            and a.box_type3 like '%' + #{boxType3} + '%'
        </if>
    </sql>
@@ -386,21 +401,48 @@
        <include refid="stockOutCondition"></include>
    </select>
    <select id="getStockStatis" resultType="com.zy.asrs.entity.LocDetl">
        select * from
        (
            select
            ROW_NUMBER() over (order by sum(a.anfme) desc) as row
            , a.matnr
            , a.batch
            , a.standby1
            , a.standby2
            , sum(a.anfme) as anfme
            from asr_loc_detl a
            where 1=1
            <include refid="stockOutCondition"></include>
            group by a.matnr, a.batch, a.standby1, a.standby2
         ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
    <select id="getStockStatis" resultMap="BaseResultMap">
        SELECT * FROM (
            SELECT
                ROW_NUMBER() OVER (ORDER BY SUM(a.anfme) DESC) AS row,
                a.matnr,
                a.batch,
                a.standby1,
                a.standby2,
                MAX(a.box_type3) AS box_type3,  -- 关键:用 MAX 避免 null 或不确定性
                SUM(a.anfme) AS anfme
                FROM asr_loc_detl a
                WHERE 1=1
                <include refid="stockOutCondition"/>
                GROUP BY
                a.matnr,
                a.batch,
                a.standby1,
                a.standby2,
                a.box_type3  -- 保留,因为业务需要按采购单区分
            ) t
        WHERE t.row BETWEEN ((#{pageNumber}-1)*#{pageSize}+1) AND (#{pageNumber}*#{pageSize})
    </select>
    <!-- 库存统计导出:全量汇总数据(不分页) -->
    <select id="selectStockStatisExport" resultMap="BaseResultMap">
        SELECT
        a.matnr,
        a.batch,
        a.standby1,
        a.standby2,
        MAX(a.box_type3) AS box_type3,
        SUM(a.anfme) AS anfme
        FROM asr_loc_detl a
        WHERE 1=1
        <include refid="stockOutCondition1"/>
        GROUP BY
        a.matnr,
        a.batch,
        a.standby1,
        a.standby2,
        a.box_type3
        ORDER BY SUM(a.anfme) DESC
    </select>
    <select id="getStockStatisCount" parameterType="java.util.Map" resultType="java.lang.Integer">