fix(oms): 出库单列表totalOutboundQuantity恒为null,queryList改为SQL汇总一级明细出库数量

原Java循环逐单调getInfoChildren汇总(N+1)被注释后无赋值导致恒为null;改为关联子查询coalesce(sum(outbound_quantity),0),仅统计level=1且del_flag=1,口径与详情页一致;/list与/list1共用同一语句同时生效,无需DDL
This commit is contained in:
rcx
2026-09-08 15:08:00 +08:00
parent 32364baba8
commit 178b7697af
@@ -116,6 +116,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>
@@ -405,7 +406,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="queryList" parameterType="com.mhd.oms.domain.reservationStockOutOrder.repository.todo.ReservationStockOutOrderDO" resultMap="StockOutOrderResult">
select
<include refid="selectStockOutOrderPo"/>
<include refid="selectStockOutOrderPo"/>,
<!-- 出库数量:汇总明细表实际出库数量,只统计一级明细(level=1),与详情页汇总口径一致;
原逻辑为Java循环逐单调getInfoChildren汇总(N+1)后注释,未再赋值导致列表该字段恒为null -->
(select coalesce(sum(omd.outbound_quantity), 0)
from reservation_out_material_detail omd
where omd.out_order_number = a.out_order_number
and omd.del_flag = 1
and (omd.level is null or omd.level = 1)) as total_outbound_quantity
from reservation_stock_out_order a
<where>
<include refid="selectStockOutOrderPo1"/>