diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/inboundRank/repository/po/ExecutionInboundMaterialRankPO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/inboundRank/repository/po/ExecutionInboundMaterialRankPO.java
index abcf12539..6532af87f 100644
--- a/mhd_oms/src/main/java/com/mhd/oms/domain/inboundRank/repository/po/ExecutionInboundMaterialRankPO.java
+++ b/mhd_oms/src/main/java/com/mhd/oms/domain/inboundRank/repository/po/ExecutionInboundMaterialRankPO.java
@@ -14,8 +14,10 @@ import java.util.Date;
/**
* 入库排名统计PO(一行 = 某仓单内某货品的合计,按件数降序排名)
*
- *
字段口径:入仓日期=执行入仓单入仓日期;仓单编号=执行入库单号;客户编号/存货人=入仓单货主;
- * 件数/毛重/体积=仓单内该货品明细合计;毛重(吨)=明细总毛重KG/1000;
+ *
数据源跨库取 WMS 入库表(NGWL_TEST_WMS.stock_in_order / in_material_detail,OMS 执行单状态/上架量不回传),
+ * 口径与 WMS 端 /inboundRankApi 完全一致,两边数字一致。
+ * 字段口径:入仓日期=WMS入仓单入仓日期(为空兜底建档时间);仓单编号=WMS入库单号;客户编号/存货人=入仓单货主;
+ * 件数/毛重/体积=仓单内该货品明细合计(件数取实际上架量 SHELVES_QUANTITY);毛重(吨)=明细总毛重KG/1000;
* 投保总额=货品档案保额(NGWL_TEST_WMS.material_base_info.insure_amount,组内取MAX防多批次明细行重复累加)
*
* @author rcx
@@ -33,7 +35,7 @@ public class ExecutionInboundMaterialRankPO implements Serializable {
@Excel(name = "入仓日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date warehouseDate;
- @ApiModelProperty("仓单编号(执行入库单号)")
+ @ApiModelProperty("仓单编号(WMS入库单号)")
@Excel(name = "仓单编号")
private String inOrderNumber;
@@ -61,7 +63,7 @@ public class ExecutionInboundMaterialRankPO implements Serializable {
@Excel(name = "单位")
private String unitName;
- @ApiModelProperty("件数(仓单内该货品合计,排名依据)")
+ @ApiModelProperty("件数(仓单内该货品实际上架量合计 SHELVES_QUANTITY,排名依据)")
@Excel(name = "件数")
private BigDecimal pieceCount;
diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/inboundRank/repository/po/ExecutionInboundRankTotalPO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/inboundRank/repository/po/ExecutionInboundRankTotalPO.java
index d3d1bd88d..c8a51892e 100644
--- a/mhd_oms/src/main/java/com/mhd/oms/domain/inboundRank/repository/po/ExecutionInboundRankTotalPO.java
+++ b/mhd_oms/src/main/java/com/mhd/oms/domain/inboundRank/repository/po/ExecutionInboundRankTotalPO.java
@@ -22,7 +22,7 @@ public class ExecutionInboundRankTotalPO implements Serializable {
private static final long serialVersionUID = 1L;
- @ApiModelProperty("件数合计")
+ @ApiModelProperty("件数合计(实际上架量)")
private BigDecimal totalPieceCount;
@ApiModelProperty("毛重(吨)合计")
diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/inboundRank/repository/todo/ExecutionInboundRankDTO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/inboundRank/repository/todo/ExecutionInboundRankDTO.java
index 3e557dd6d..968c289d5 100644
--- a/mhd_oms/src/main/java/com/mhd/oms/domain/inboundRank/repository/todo/ExecutionInboundRankDTO.java
+++ b/mhd_oms/src/main/java/com/mhd/oms/domain/inboundRank/repository/todo/ExecutionInboundRankDTO.java
@@ -8,7 +8,7 @@ import java.io.Serializable;
/**
* 入库排名统计入参DTO
*
- * 数据源为 OMS 执行入库链路(execution_in_material_detail / execution_stock_in_order)
+ * 数据源跨库取 WMS 入库链路(NGWL_TEST_WMS.stock_in_order / in_material_detail,OMS 执行单状态/上架量不回传)
*
* @author rcx
* @date 2026-08-31
diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/inboundRank/ExecutionInboundRankApi.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/inboundRank/ExecutionInboundRankApi.java
index b7cfd6391..f97d23e57 100644
--- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/inboundRank/ExecutionInboundRankApi.java
+++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/facade/inboundRank/ExecutionInboundRankApi.java
@@ -26,9 +26,11 @@ import java.util.List;
/**
* 入库排名统计Api
*
- * 按入仓日期区间筛选商品入库量统计排名。统计口径:入仓日期(为空的历史单按建档时间兜底);
- * OMS 执行入库单状态不回传(长期停留已创建),不按"已入库"过滤,仅排除已取消(6)/已关闭(7),
- * 与入库明细查询页面口径一致;明细仅取 level=1 主行;一行 = 某仓单内某货品的合计,按件数降序排名。
+ *
按入仓日期区间筛选商品入库量统计排名。OMS 库执行入库单状态/上架数量均不回传,真实数据在 WMS 库,
+ * 故数据源跨库取 WMS 入库表(NGWL_TEST_WMS.stock_in_order/in_material_detail,与 OMS 出库排名跨库修法一致);
+ * 口径与 WMS 端 /inboundRankApi 完全一致,两边数字一致:仅已入库(5) + 明细 level=1 主行 +
+ * 入仓日期(为空的历史单按建档时间兜底) + 件数=实际上架量(SHELVES_QUANTITY);
+ * 一行 = 某仓单内某货品的合计,按件数降序排名。
* 字段:入仓日期/仓单编号/客户编号/存货人/货名/件数/毛重(吨)/投保总额/体积(CBM)。
* 与出库排名(/executionOutboundRankApi)配对,前端用 tab 页区分
*
diff --git a/mhd_oms/src/main/resources/mapper/inboundRank/ExecutionInboundRankMapper.xml b/mhd_oms/src/main/resources/mapper/inboundRank/ExecutionInboundRankMapper.xml
index 0401cc603..e6b76eb0d 100644
--- a/mhd_oms/src/main/resources/mapper/inboundRank/ExecutionInboundRankMapper.xml
+++ b/mhd_oms/src/main/resources/mapper/inboundRank/ExecutionInboundRankMapper.xml
@@ -5,19 +5,23 @@
a.del_flag = 1
and a.level = 1
- and b.del_flag = 1
- and b.status not in (6, 7)
+ and b.status = 5
and b.top_organization_id = #{topOrganizationId}
@@ -48,12 +52,12 @@
- from execution_in_material_detail a
- join execution_stock_in_order b on a.in_order_number = b.in_order_number and b.del_flag = 1
+ from NGWL_TEST_WMS.in_material_detail a
+ join NGWL_TEST_WMS.stock_in_order b on a.in_order_number = b.in_order_number and b.del_flag = 1
left join NGWL_TEST_WMS.material_base_info c on a.material_base_info_id = c.material_base_info_id
-
+
select
@@ -65,7 +69,7 @@
MAX(a.material_name) AS materialName,
MAX(a.SPECIFICATION_MODEL) AS specificationModel,
MAX(a.unit_name) AS unitName,
- IFNULL(SUM(a.PIECE_COUNT), 0) AS pieceCount,
+ IFNULL(SUM(a.SHELVES_QUANTITY), 0) AS pieceCount,
ROUND(IFNULL(SUM(a.TOTAL_GROSS_WEIGHT), 0) / 1000, 3) AS grossWeightTon,
MAX(IFNULL(c.insure_amount, 0)) AS insureAmount,
IFNULL(SUM(a.TOTAL_VOLUME), 0) AS totalVolume
@@ -89,7 +93,7 @@
from (
select
b.in_order_number AS inOrderNumber,
- IFNULL(SUM(a.PIECE_COUNT), 0) AS pieceCount,
+ IFNULL(SUM(a.SHELVES_QUANTITY), 0) AS pieceCount,
IFNULL(SUM(a.TOTAL_GROSS_WEIGHT), 0) AS grossWeightKG,
MAX(IFNULL(c.insure_amount, 0)) AS insureAmount,
IFNULL(SUM(a.TOTAL_VOLUME), 0) AS totalVolume
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/inboundRank/repository/po/InboundMaterialRankPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/inboundRank/repository/po/InboundMaterialRankPO.java
index 03567787a..3044767a9 100644
--- a/mhd_wms/src/main/java/com/mhd/wms/domain/inboundRank/repository/po/InboundMaterialRankPO.java
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/inboundRank/repository/po/InboundMaterialRankPO.java
@@ -14,8 +14,8 @@ import java.util.Date;
/**
* 入库排名统计PO(一行 = 某仓单内某货品的合计,按件数降序排名)
*
- * 字段口径:入仓日期=入仓单入仓日期;仓单编号=入库单号;客户编号/存货人=入仓单货主;
- * 件数/毛重/体积=仓单内该货品明细合计;毛重(吨)=明细总毛重KG/1000;
+ *
字段口径:入仓日期=入仓单入仓日期(为空兜底建档时间);仓单编号=入库单号;客户编号/存货人=入仓单货主;
+ * 件数/毛重/体积=仓单内该货品明细合计(件数取实际上架量 SHELVES_QUANTITY);毛重(吨)=明细总毛重KG/1000;
* 投保总额=货品档案保额(material_base_info.insure_amount,组内取MAX防多批次明细行重复累加)
*
* @author rcx
@@ -61,7 +61,7 @@ public class InboundMaterialRankPO implements Serializable {
@Excel(name = "单位")
private String unitName;
- @ApiModelProperty("件数(仓单内该货品合计,排名依据)")
+ @ApiModelProperty("件数(仓单内该货品实际上架量合计 SHELVES_QUANTITY,排名依据)")
@Excel(name = "件数")
private BigDecimal pieceCount;
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/inboundRank/repository/po/InboundRankTotalPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/inboundRank/repository/po/InboundRankTotalPO.java
index 551bf25d4..f7433e5af 100644
--- a/mhd_wms/src/main/java/com/mhd/wms/domain/inboundRank/repository/po/InboundRankTotalPO.java
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/inboundRank/repository/po/InboundRankTotalPO.java
@@ -22,7 +22,7 @@ public class InboundRankTotalPO implements Serializable {
private static final long serialVersionUID = 1L;
- @ApiModelProperty("件数合计")
+ @ApiModelProperty("件数合计(实际上架量)")
private BigDecimal totalPieceCount;
@ApiModelProperty("毛重(吨)合计")
diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/inboundRank/InboundRankApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/inboundRank/InboundRankApi.java
index 15b0843ce..bde6855dd 100644
--- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/inboundRank/InboundRankApi.java
+++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/inboundRank/InboundRankApi.java
@@ -26,7 +26,7 @@ import java.util.List;
* 入库排名统计Api
*
* 按入仓日期区间筛选商品入库量统计排名。统计口径:入仓日期(为空的历史单按建档时间兜底) + 仅已入库状态(5),
- * 明细仅取 level=1 主行;一行 = 某仓单内某货品的合计,按件数降序排名。
+ * 明细仅取 level=1 主行;一行 = 某仓单内某货品的合计,按件数(实际上架量 SHELVES_QUANTITY)降序排名。
* 字段:入仓日期/仓单编号/客户编号/存货人/货名/件数/毛重(吨)/投保总额/体积(CBM)。
* 与出库排名(/outboundRankApi)配对,前端用 tab 页区分
*
diff --git a/mhd_wms/src/main/resources/mapper/inboundRank/InboundRankMapper.xml b/mhd_wms/src/main/resources/mapper/inboundRank/InboundRankMapper.xml
index 45f454d58..63f9a07e0 100644
--- a/mhd_wms/src/main/resources/mapper/inboundRank/InboundRankMapper.xml
+++ b/mhd_wms/src/main/resources/mapper/inboundRank/InboundRankMapper.xml
@@ -10,7 +10,7 @@
left join 货品档案 material_base_info(c,取保额作投保总额)
口径:b.status = 5已入库(排除已取消(6)/已关闭(7)及未完成单据);
日期筛选按入仓单入仓日期 b.warehouse_date(与列表"入仓日期"列同源,为空的历史单按建档时间兜底);
- 一行 = 某仓单(b.in_order_number)内某货品(a.material_code)的合计,按件数降序排名
+ 一行 = 某仓单(b.in_order_number)内某货品(a.material_code)的合计,按件数(实际上架量 SUM(a.SHELVES_QUANTITY))降序排名
-->
a.del_flag = 1
@@ -54,7 +54,7 @@
left join material_base_info c on a.material_base_info_id = c.material_base_info_id
-
+
select
@@ -66,7 +66,7 @@
MAX(a.material_name) AS materialName,
MAX(a.SPECIFICATION_MODEL) AS specificationModel,
MAX(a.unit_name) AS unitName,
- IFNULL(SUM(a.PIECE_COUNT), 0) AS pieceCount,
+ IFNULL(SUM(a.SHELVES_QUANTITY), 0) AS pieceCount,
ROUND(IFNULL(SUM(a.TOTAL_GROSS_WEIGHT), 0) / 1000, 3) AS grossWeightTon,
MAX(IFNULL(c.insure_amount, 0)) AS insureAmount,
IFNULL(SUM(a.TOTAL_VOLUME), 0) AS totalVolume
@@ -90,7 +90,7 @@
from (
select
b.in_order_number AS inOrderNumber,
- IFNULL(SUM(a.PIECE_COUNT), 0) AS pieceCount,
+ IFNULL(SUM(a.SHELVES_QUANTITY), 0) AS pieceCount,
IFNULL(SUM(a.TOTAL_GROSS_WEIGHT), 0) AS grossWeightKG,
MAX(IFNULL(c.insure_amount, 0)) AS insureAmount,
IFNULL(SUM(a.TOTAL_VOLUME), 0) AS totalVolume