diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialCoilBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialCoilBo.java index bf07be34..25488627 100644 --- a/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialCoilBo.java +++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialCoilBo.java @@ -155,5 +155,10 @@ public class WmsMaterialCoilBo extends BaseEntity { */ private String packagingRequirement; + /** + * 最小异常数量(用于筛选异常数量 >= 此值的钢卷) + */ + private Integer minAbnormalCount; + } 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 12e30dd9..c6877ecf 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 @@ -329,6 +329,10 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { //根据开始时间和结束时间筛选修改时间 qw.ge(bo.getStartTime() != null, "mc.update_time", bo.getStartTime()); qw.le(bo.getEndTime() != null, "mc.update_time", bo.getEndTime()); + //根据异常数量筛选(大于等于指定值) + if (bo.getMinAbnormalCount() != null) { + qw.apply("COALESCE(ca.abnormal_count, 0) >= {0}", bo.getMinAbnormalCount()); + } //根据创建时间倒叙 qw.orderByDesc("mc.create_time"); return qw; diff --git a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml index 76f88577..09214962 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml @@ -121,12 +121,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" WHEN mc.item_type = 'raw_material' THEN rm.raw_material_code WHEN mc.item_type = 'product' THEN p.product_code ELSE NULL - END as itemCode + END as itemCode, + -- 异常数量统计 + COALESCE(ca.abnormal_count, 0) AS abnormalCount FROM wms_material_coil mc LEFT JOIN wms_warehouse w ON mc.warehouse_id = w.warehouse_id LEFT JOIN wms_actual_warehouse aw ON mc.actual_warehouse_id = aw.actual_warehouse_id LEFT JOIN wms_raw_material rm ON mc.item_type = 'raw_material' AND mc.item_id = rm.raw_material_id LEFT JOIN wms_product p ON mc.item_type = 'product' AND mc.item_id = p.product_id + LEFT JOIN ( + SELECT coil_id, COUNT(*) AS abnormal_count + FROM wms_coil_abnormal + WHERE del_flag = 0 + GROUP BY coil_id + ) ca ON mc.coil_id = ca.coil_id ${ew.customSqlSegment}