diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialWarningBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialWarningBo.java index 2a8edff8..c8f6ff0e 100644 --- a/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialWarningBo.java +++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsMaterialWarningBo.java @@ -90,6 +90,11 @@ public class WmsMaterialWarningBo extends BaseEntity { */ private String handleRemark; + /** + * 钢卷ID集合(逗号分隔),用于列表查询批量过滤 + */ + private String coilIds; + /** * 备注 */ diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialWarningVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialWarningVo.java index 7f6437d5..3c6e1696 100644 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialWarningVo.java +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialWarningVo.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.klp.common.annotation.ExcelDictFormat; import com.klp.common.convert.ExcelDictConvert; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; @@ -112,5 +113,11 @@ public class WmsMaterialWarningVo { @ExcelProperty(value = "备注") private String remark; + /** + * 钢卷信息(关联查询,不导出) + */ + @JsonIgnore + private WmsMaterialCoilVo coilVo; + } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialWarningServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialWarningServiceImpl.java index e4c92449..c5f86130 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialWarningServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialWarningServiceImpl.java @@ -8,6 +8,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.klp.common.core.service.ConfigService; import com.klp.common.utils.StringUtils; +import com.klp.domain.vo.WmsMaterialCoilVo; +import com.klp.mapper.WmsMaterialCoilMapper; +import com.klp.service.IWmsMaterialCoilService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -25,6 +28,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Collection; +import java.util.stream.Collectors; /** * 钢卷通用维度告警(长度/厚度/宽度)Service业务层处理 @@ -39,6 +43,7 @@ public class WmsMaterialWarningServiceImpl implements IWmsMaterialWarningService private final WmsMaterialWarningMapper baseMapper; private final ConfigService configService; + private final IWmsMaterialCoilService wmsMaterialCoilService; /** * 查询钢卷通用维度告警(长度/厚度/宽度) @@ -55,6 +60,33 @@ public class WmsMaterialWarningServiceImpl implements IWmsMaterialWarningService public TableDataInfo queryPageList(WmsMaterialWarningBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + // 收集所有钢卷ID,批量查询钢卷信息并填充 + List list = result.getRecords(); + if (list != null && !list.isEmpty()) { + String coilIds = list.stream() + .map(WmsMaterialWarningVo::getCoilId) + .filter(java.util.Objects::nonNull) + .distinct() + .map(String::valueOf) + .collect(Collectors.joining(",")); + if (!coilIds.isEmpty()) { + WmsMaterialCoilBo wmsMaterialCoilBo = new WmsMaterialCoilBo(); + wmsMaterialCoilBo.setCoilIds(coilIds); + List coilVos = wmsMaterialCoilService.queryList(wmsMaterialCoilBo); + java.util.Map coilMap = coilVos.stream() + .filter(v -> v.getCoilId() != null) + .collect(java.util.stream.Collectors.toMap( + WmsMaterialCoilVo::getCoilId, + v -> v, + (a, b) -> a)); + for (WmsMaterialWarningVo warning : list) { + WmsMaterialCoilVo coilVo = coilMap.get(warning.getCoilId()); + if (coilVo != null) { + warning.setCoilVo(coilVo); + } + } + } + } return TableDataInfo.build(result); } @@ -71,6 +103,20 @@ public class WmsMaterialWarningServiceImpl implements IWmsMaterialWarningService Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.eq(bo.getCoilId() != null, WmsMaterialWarning::getCoilId, bo.getCoilId()); + // 批量钢卷ID过滤(逗号分隔) + if (StringUtils.isNotBlank(bo.getCoilIds())) { + String[] ids = bo.getCoilIds().split(","); + List idList = new ArrayList<>(); + for (String id : ids) { + try { + idList.add(Long.parseLong(id.trim())); + } catch (NumberFormatException ignored) { + } + } + if (!idList.isEmpty()) { + lqw.in(WmsMaterialWarning::getCoilId, idList); + } + } lqw.eq(StringUtils.isNotBlank(bo.getWarningType()), WmsMaterialWarning::getWarningType, bo.getWarningType()); lqw.eq(bo.getTheoreticalVal() != null, WmsMaterialWarning::getTheoreticalVal, bo.getTheoreticalVal()); lqw.eq(bo.getActualVal() != null, WmsMaterialWarning::getActualVal, bo.getActualVal());