feat(oms): 出库业务单/出库执行单列表计划数量与出库数量分开计算, 返回全量不分页的计划数量总数/出库数量总数

- 新增queryListTotal: 复用queryList同条件片段, LEFT JOIN一级明细汇总SUM(quantity)/SUM(outbound_quantity), 计划数量与出库数量分开计算
- list/list1响应在data/total/code/msg同层级追加totalPlanQuantity/totalOutboundQuantity(与出库排名页合计行模式一致, 前端兼容)
- 执行单列表顺带修复每行totalOutboundQuantity恒为null(补关联子查询+resultMap映射, 对齐业务单178b7697口径)
This commit is contained in:
rcx
2026-09-14 16:24:53 +08:00
parent b1d92fdda8
commit e59173b3f9
16 changed files with 245 additions and 13 deletions
@@ -117,6 +117,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="businessChargeType" column="BUSINESS_CHARGE_TYPE" />
<result property="businessPriceWay" column="BUSINESS_PRICE_WAY" />
<result property="discount" column="DISCOUNT" />
<result property="totalOutboundQuantity" column="TOTAL_OUTBOUND_QUANTITY" />
</resultMap>
@@ -408,7 +409,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="queryList" parameterType="com.mhd.oms.domain.executionStockOutOrder.repository.todo.ExecutionStockOutOrderDO" resultMap="StockOutOrderResult">
select
<include refid="selectStockOutOrderPo"/>
<include refid="selectStockOutOrderPo"/>,
<!-- 出库数量:汇总明细表实际出库数量,只统计一级明细(level=1),与出库业务单列表(178b7697)同口径;
原逻辑为Java循环汇总(N+1)后注释,PO字段totalOutboundQuantity无映射导致列表该字段恒为null -->
(select coalesce(sum(emd.outbound_quantity), 0)
from execution_out_material_detail emd
where emd.out_order_number = a.out_order_number
and emd.del_flag = 1
and (emd.level is null or emd.level = 1)) as total_outbound_quantity
from execution_stock_out_order a
<where>
<include refid="selectStockOutOrderPo1"/>
@@ -416,6 +424,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
order by a.create_time desc nulls last
</select>
<!-- 列表合计:按查询条件(与queryList同条件片段)全量不分页汇总一级明细的计划数量与出库数量,计划数量与出库数量分开计算 -->
<select id="queryListTotal" parameterType="com.mhd.oms.domain.executionStockOutOrder.repository.todo.ExecutionStockOutOrderDO" resultType="com.mhd.oms.domain.executionStockOutOrder.repository.po.ExecutionStockOutOrderTotalPO">
select
coalesce(sum(md.plan_quantity), 0) as totalPlanQuantity,
coalesce(sum(md.outbound_quantity), 0) as totalOutboundQuantity
from execution_stock_out_order a
left join (
select out_order_number,
sum(quantity) as plan_quantity,
sum(outbound_quantity) as outbound_quantity
from execution_out_material_detail
where del_flag = 1
and (level is null or level = 1)
group by out_order_number
) md on md.out_order_number = a.out_order_number
<where>
<include refid="selectStockOutOrderPo1"/>
</where>
</select>
<!-- 出库单提货单打印-表头查询 -->
<select id="queryOutStockNoticePrint" resultMap="StockOutOrderResult">
@@ -437,6 +437,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
order by a.create_time desc nulls last
</select>
<!-- 列表合计:按查询条件(与queryList同条件片段)全量不分页汇总一级明细的计划数量与出库数量,计划数量与出库数量分开计算 -->
<select id="queryListTotal" parameterType="com.mhd.oms.domain.reservationStockOutOrder.repository.todo.ReservationStockOutOrderDO" resultType="com.mhd.oms.domain.reservationStockOutOrder.repository.po.ReservationStockOutOrderTotalPO">
select
coalesce(sum(md.plan_quantity), 0) as totalPlanQuantity,
coalesce(sum(md.outbound_quantity), 0) as totalOutboundQuantity
from reservation_stock_out_order a
left join (
select out_order_number,
sum(quantity) as plan_quantity,
sum(outbound_quantity) as outbound_quantity
from reservation_out_material_detail
where del_flag = 1
and (level is null or level = 1)
group by out_order_number
) md on md.out_order_number = a.out_order_number
<where>
<include refid="selectStockOutOrderPo1"/>
</where>
</select>
<!-- 出库单提货单打印-表头查询 -->
<select id="queryOutStockNoticePrint" resultMap="StockOutOrderResult">