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 b15b5454..86ea469a 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 @@ -179,6 +179,9 @@ public class WmsMaterialCoilBo extends BaseEntity { // 锌层厚度(两表通用字段名:zinc_layer) private String itemZincLayer; + //规格 + private String itemSpecification; + private Boolean onlyUnshippedAndUnplanned; } 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 0ed219b3..9e0e4f2c 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 @@ -338,14 +338,15 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { qw.eq(bo.getActualWarehouseId() != null, "mc.actual_warehouse_id", bo.getActualWarehouseId()); qw.eq(StringUtils.isNotBlank(bo.getItemType()), "mc.item_type", bo.getItemType()); - // 按 itemType + 细粒度字段筛选(若对应字段非空则拼接条件;为空则不拼) + // 按 selectType + 细粒度字段筛选(若对应字段非空则拼接条件;为空则不拼) if (StringUtils.isNotBlank(bo.getSelectType())) { List matchedItemIds = new ArrayList<>(); boolean hasAnyItemFilter = StringUtils.isNotBlank(bo.getItemMaterial()) || StringUtils.isNotBlank(bo.getItemManufacturer()) || StringUtils.isNotBlank(bo.getItemSurfaceTreatmentDesc()) || StringUtils.isNotBlank(bo.getItemZincLayer()) - || StringUtils.isNotBlank(bo.getItemName()); // 兼容性关键字 + || StringUtils.isNotBlank(bo.getItemName()) // 兼容性关键字 + || StringUtils.isNotBlank(bo.getItemSpecification()); // 添加规格筛选条件 if (hasAnyItemFilter) { try { @@ -367,6 +368,23 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { if (StringUtils.isNotBlank(bo.getItemZincLayer())) { pq.like("zinc_layer", bo.getItemZincLayer()); } + // 添加规格筛选条件,支持逗号分隔的多个规格 + if (StringUtils.isNotBlank(bo.getItemSpecification())) { + String[] specs = bo.getItemSpecification().split(","); + if (specs.length == 1) { + pq.like("specification", specs[0].trim()); + } else { + pq.and(wrapper -> { + for (int i = 0; i < specs.length; i++) { + if (i == 0) { + wrapper.like("specification", specs[i].trim()); + } else { + wrapper.or().like("specification", specs[i].trim()); + } + } + }); + } + } // MyBatis selectList默认返回空列表,无需判null,直接流式提取ID matchedItemIds = productMapper.selectList(pq).stream() .map(WmsProduct::getProductId) @@ -390,6 +408,23 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { if (StringUtils.isNotBlank(bo.getItemZincLayer())) { rq.like("zinc_layer", bo.getItemZincLayer()); } + // 添加规格筛选条件,支持逗号分隔的多个规格 + if (StringUtils.isNotBlank(bo.getItemSpecification())) { + String[] specs = bo.getItemSpecification().split(","); + if (specs.length == 1) { + rq.like("specification", specs[0].trim()); + } else { + rq.and(wrapper -> { + for (int i = 0; i < specs.length; i++) { + if (i == 0) { + wrapper.like("specification", specs[i].trim()); + } else { + wrapper.or().like("specification", specs[i].trim()); + } + } + }); + } + } // 流式提取rawMaterialId,过滤null matchedItemIds = rawMaterialMapper.selectList(rq).stream() .map(WmsRawMaterial::getRawMaterialId)