feat(wms,oms):出库排名统计改造为聚合排名——商品按物料合并/线路按线路+物料合并,按出库数量降序
- 商品tab:一行=一个货品(跨出库单汇总),返回 货号/货名/件数/毛重(吨)/体积(CBM)/退保总额(占位null),忽略线路筛选参数 - 线路tab:一行=线路×货品(按线路+物料编码合并),额外返回 线路编码/线路,仅统计带线路的单(排除line_code为空的历史单);商品/线路筛选参数均生效 - 单据级字段(种类/仓单编号/入库单号/客户编号/收货人/出仓日期)合并后无单值可对应,不再返回 - 件数=SUM(CHECK_QUANTITY)复核确认的实际出库量(与入库排名实际上架量SHELVES_QUANTITY对称),按件数降序,编码次之 - 合计行:件数/毛重吨/体积 全量合计;商品tab含totalOrderCount(去重出库单数),线路tab含totalOrderCount+totalLineCount(去重线路数) - 数据源不变:WMS查本库出库表,OMS跨库查NGWL_TEST_WMS同名表,两边数字一致;接口路径/传参不变
This commit is contained in:
@@ -5,12 +5,13 @@
|
||||
<mapper namespace="com.mhd.wms.domain.outboundRank.repository.mapper.OutboundRankMapper">
|
||||
|
||||
<!--
|
||||
出库排名统计(明细)公共查询条件
|
||||
出库排名统计公共查询条件
|
||||
数据源:出库明细 out_material_detail(a,仅 level=1 主行防重复) join 出库单 stock_out_order(b)
|
||||
口径:b.status in (9已出库,12已复核,13已交接),排除已取消(10)/已关闭(11);
|
||||
日期按出库单创建时间 b.create_time(与出库单列表日期筛选一致);
|
||||
一行 = 某仓单(b.out_order_number)内某货品(a.material_code)的合计;
|
||||
件数 = SUM(a.CHECK_QUANTITY) 复核确认的实际出库量(与入库排名的实际上架量 SHELVES_QUANTITY 对称),按件数降序排名
|
||||
商品排名:一行 = 一个货品(GROUP BY a.material_code),区间内跨单汇总,按实际出库量降序;
|
||||
线路排名:一行 = 线路×货品(GROUP BY b.line_code, a.material_code),仅统计带线路的单;
|
||||
件数 = SUM(a.CHECK_QUANTITY) 复核确认的实际出库量(与入库排名的实际上架量 SHELVES_QUANTITY 对称)
|
||||
-->
|
||||
<sql id="outboundRankConditions">
|
||||
a.del_flag = 1
|
||||
@@ -62,50 +63,70 @@
|
||||
join stock_out_order b on a.out_order_number = b.out_order_number and b.del_flag = 1
|
||||
</sql>
|
||||
|
||||
<!-- 出库明细列表(仓单+货品汇总,按件数(实际复核出库量)降序;退保总额暂无后端字段不提供) -->
|
||||
<select id="queryDetailList" parameterType="com.mhd.wms.domain.outboundRank.repository.todo.OutboundRankDO"
|
||||
resultType="com.mhd.wms.domain.outboundRank.repository.po.OutboundDetailRankPO">
|
||||
<!-- 商品出库排名列表(按物料编码合并,跨单汇总;退保总额暂无后端字段不提供) -->
|
||||
<select id="queryMaterialRankList" parameterType="com.mhd.wms.domain.outboundRank.repository.todo.OutboundRankDO"
|
||||
resultType="com.mhd.wms.domain.outboundRank.repository.po.OutboundMaterialRankPO">
|
||||
select
|
||||
MAX(b.ORDER_TYPE_NAME) AS orderTypeName,
|
||||
b.out_order_number AS outOrderNumber,
|
||||
MAX(a.in_order_number) AS inOrderNumber,
|
||||
MAX(b.customer_code) AS customerCode,
|
||||
MAX(IFNULL(b."TO", b.contact_person)) AS receiver,
|
||||
a.material_code AS materialCode,
|
||||
MAX(a.material_name) AS materialName,
|
||||
MAX(b.line_code) AS lineCode,
|
||||
MAX(b.line_name) AS lineName,
|
||||
IFNULL(SUM(a.CHECK_QUANTITY), 0) AS pieceCount,
|
||||
ROUND(IFNULL(SUM(a.TOTAL_GROSS_WEIGHT), 0) / 1000, 3) AS grossWeightTon,
|
||||
IFNULL(SUM(a.TOTAL_VOLUME), 0) AS totalVolume,
|
||||
MAX(IFNULL(b.OUTBOUND_DATE, IFNULL(b.COMPLETE_TIME, b.create_time))) AS outboundDate
|
||||
IFNULL(SUM(a.TOTAL_VOLUME), 0) AS totalVolume
|
||||
<include refid="outboundRankFrom"/>
|
||||
<where>
|
||||
<include refid="outboundRankConditions"/>
|
||||
</where>
|
||||
GROUP BY b.out_order_number, a.material_code
|
||||
order by pieceCount desc, outboundDate desc, outOrderNumber desc
|
||||
GROUP BY a.material_code
|
||||
order by pieceCount desc, materialCode asc
|
||||
</select>
|
||||
|
||||
<!-- 出库明细合计(当前筛选条件全量;外层对分组结果再汇总,与入库排名同模板) -->
|
||||
<select id="queryDetailTotal" parameterType="com.mhd.wms.domain.outboundRank.repository.todo.OutboundRankDO"
|
||||
<!-- 商品出库排名合计(当前筛选条件全量) -->
|
||||
<select id="queryMaterialRankTotal" parameterType="com.mhd.wms.domain.outboundRank.repository.todo.OutboundRankDO"
|
||||
resultType="com.mhd.wms.domain.outboundRank.repository.po.OutboundDetailRankTotalPO">
|
||||
select
|
||||
IFNULL(SUM(t.pieceCount), 0) AS totalPieceCount,
|
||||
ROUND(IFNULL(SUM(t.grossWeightKG), 0) / 1000, 3) AS totalGrossWeightTon,
|
||||
IFNULL(SUM(t.totalVolume), 0) AS totalVolume,
|
||||
COUNT(DISTINCT t.outOrderNumber) AS totalOrderCount
|
||||
from (
|
||||
select
|
||||
b.out_order_number AS outOrderNumber,
|
||||
IFNULL(SUM(a.CHECK_QUANTITY), 0) AS pieceCount,
|
||||
IFNULL(SUM(a.TOTAL_GROSS_WEIGHT), 0) AS grossWeightKG,
|
||||
IFNULL(SUM(a.TOTAL_VOLUME), 0) AS totalVolume
|
||||
<include refid="outboundRankFrom"/>
|
||||
<where>
|
||||
<include refid="outboundRankConditions"/>
|
||||
</where>
|
||||
GROUP BY b.out_order_number, a.material_code
|
||||
) t
|
||||
IFNULL(SUM(a.CHECK_QUANTITY), 0) AS totalPieceCount,
|
||||
ROUND(IFNULL(SUM(a.TOTAL_GROSS_WEIGHT), 0) / 1000, 3) AS totalGrossWeightTon,
|
||||
IFNULL(SUM(a.TOTAL_VOLUME), 0) AS totalVolume,
|
||||
COUNT(DISTINCT a.out_order_number) AS totalOrderCount
|
||||
<include refid="outboundRankFrom"/>
|
||||
<where>
|
||||
<include refid="outboundRankConditions"/>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<!-- 线路出库排名列表(线路+物料编码合并,仅统计带线路的单;商品/线路筛选参数均生效) -->
|
||||
<select id="queryLineRankList" parameterType="com.mhd.wms.domain.outboundRank.repository.todo.OutboundRankDO"
|
||||
resultType="com.mhd.wms.domain.outboundRank.repository.po.OutboundLineRankPO">
|
||||
select
|
||||
b.line_code AS lineCode,
|
||||
MAX(b.line_name) AS lineName,
|
||||
a.material_code AS materialCode,
|
||||
MAX(a.material_name) AS materialName,
|
||||
IFNULL(SUM(a.CHECK_QUANTITY), 0) AS pieceCount,
|
||||
ROUND(IFNULL(SUM(a.TOTAL_GROSS_WEIGHT), 0) / 1000, 3) AS grossWeightTon,
|
||||
IFNULL(SUM(a.TOTAL_VOLUME), 0) AS totalVolume
|
||||
<include refid="outboundRankFrom"/>
|
||||
<where>
|
||||
<include refid="outboundRankConditions"/>
|
||||
and b.line_code is not null and b.line_code != ''
|
||||
</where>
|
||||
GROUP BY b.line_code, a.material_code
|
||||
order by pieceCount desc, lineCode asc, materialCode asc
|
||||
</select>
|
||||
|
||||
<!-- 线路出库排名合计(当前筛选条件全量) -->
|
||||
<select id="queryLineRankTotal" parameterType="com.mhd.wms.domain.outboundRank.repository.todo.OutboundRankDO"
|
||||
resultType="com.mhd.wms.domain.outboundRank.repository.po.OutboundDetailRankTotalPO">
|
||||
select
|
||||
IFNULL(SUM(a.CHECK_QUANTITY), 0) AS totalPieceCount,
|
||||
ROUND(IFNULL(SUM(a.TOTAL_GROSS_WEIGHT), 0) / 1000, 3) AS totalGrossWeightTon,
|
||||
IFNULL(SUM(a.TOTAL_VOLUME), 0) AS totalVolume,
|
||||
COUNT(DISTINCT b.line_code) AS totalLineCount,
|
||||
COUNT(DISTINCT b.out_order_number) AS totalOrderCount
|
||||
<include refid="outboundRankFrom"/>
|
||||
<where>
|
||||
<include refid="outboundRankConditions"/>
|
||||
and b.line_code is not null and b.line_code != ''
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user