diff --git a/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java b/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java index ede74568..6e03b501 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java @@ -68,6 +68,15 @@ public class WmsMaterialCoilController extends BaseController { return iWmsMaterialCoilService.queryPageListWithBindInfo(bo, pageQuery); } + /** + * 统计筛选条件下的全量汇总数据 + * 独立的统计接口,使用与分页列表相同的查询条件 + */ + @GetMapping("/statisticsList") + public R> getStatistics(WmsMaterialCoilBo bo) { + return R.ok(iWmsMaterialCoilService.getStatistics(bo)); + } + /** * 原料钢卷库位分布查询(先库位,再钢卷映射) */ diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java index f2e71842..674a3bd5 100644 --- a/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java +++ b/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java @@ -97,5 +97,12 @@ List selectDeliveryExportListByCoilIds(@Param(" * @return 不匹配的钢卷列表 */ List selectMismatchedItemCoils(); + + /** + * 统计筛选条件下的全量汇总数据(高性能:只查sum/count) + * @param qw 查询条件(只使用WHERE和JOIN部分) + * @return 统计结果(Map包含totalGrossWeight, totalNetWeight) + */ + Map selectStatistics(@Param("ew") QueryWrapper qw); } diff --git a/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java b/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java index eba199e5..7e2131c6 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java @@ -42,6 +42,12 @@ public interface IWmsMaterialCoilService { */ List queryList(WmsMaterialCoilBo bo); + /** + * 统计筛选条件下的全量汇总数据(高性能:只查sum/count) + * 独立的统计接口,不影响分页查询 + */ + Map getStatistics(WmsMaterialCoilBo bo); + /** * 新增钢卷物料表 */ diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java index c45bd77a..4684eaf3 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java @@ -342,6 +342,16 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { return TableDataInfo.build(bindResult); } + /** + * 统计筛选条件下的全量汇总数据(高性能:只查sum/count) + * 独立的统计接口,不影响分页查询 + */ + @Override + public Map getStatistics(WmsMaterialCoilBo bo) { + QueryWrapper qw = buildQueryWrapperPlus(bo); + return selectMaterialCoilStatistics(qw); + } + private Page queryMaterialCoilPage(WmsMaterialCoilBo bo, PageQuery pageQuery) { QueryWrapper qw = buildQueryWrapperPlus(bo); Page result; @@ -380,6 +390,30 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { } } + /** + * 统计筛选条件下的全量汇总数据(高性能:只查sum/count) + */ + private Map selectMaterialCoilStatistics(QueryWrapper qw) { + Map result = new HashMap<>(); + result.put("total_gross_weight", BigDecimal.ZERO); + result.put("total_net_weight", BigDecimal.ZERO); + result.put("total_count", BigDecimal.ZERO); + + try { + Map stats = baseMapper.selectStatistics(qw); + if (stats != null) { + Object grossWeight = stats.get("total_gross_weight"); + Object netWeight = stats.get("total_net_weight"); + result.put("total_gross_weight", grossWeight != null ? new BigDecimal(grossWeight.toString()) : BigDecimal.ZERO); + result.put("total_net_weight", netWeight != null ? new BigDecimal(netWeight.toString()) : BigDecimal.ZERO); + } + } catch (Exception e) { + log.warn("统计查询失败: {}", e.getMessage()); + } + + return result; + } + private void fillBindInfoForPage(List records) { // 绑定信息仅用于专用接口,避免污染通用分页结构 try { diff --git a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml index 7f393e5f..e2d9292d 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml @@ -902,5 +902,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) + + +