feat(wms/material-coil): 优化钢卷囤积统计查询性能
1. 重构囤积统计方法:将原Java循环计算逻辑替换为单SQL聚合查询,通过JSON_EXTRACT解析二维码步骤创建时间,一次性计算平均囤积周期与成本 2. 移除原低效实现:删除getHoardingStatistics方法中的批量查询与循环解析代码,消除N+1性能问题 3. 新增Mapper方法与XML映射:添加selectHoardingStatistics接口及对应SQL,支持与分页查询相同的条件筛选 调整前,统计需先查询钢卷列表再批量获取二维码并循环解析,存在性能瓶颈;调整后,通过单SQL完成所有聚合计算,大幅提升查询效率,支持大规模数据统计。
This commit is contained in:
@@ -131,6 +131,14 @@ public interface WmsMaterialCoilMapper extends BaseMapperPlus<WmsMaterialCoilMap
|
||||
*/
|
||||
Map<String, Object> selectStatistics(@Param("ew") QueryWrapper<WmsMaterialCoil> qw);
|
||||
|
||||
/**
|
||||
* 统计已发货钢卷的平均囤积周期和平均囤积成本
|
||||
* 使用JSON_EXTRACT解析二维码steps[0].create_time,一次SQL完成聚合
|
||||
* @param qw 查询条件(与buildQueryWrapperPlus一致)
|
||||
* @return Map包含total_count, avg_hoarding_days, avg_hoarding_cost
|
||||
*/
|
||||
Map<String, Object> selectHoardingStatistics(@Param("ew") QueryWrapper<WmsMaterialCoil> qw);
|
||||
|
||||
/**
|
||||
* 统计仓库使用次数(按warehouse_id出现次数排序)
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user