diff --git a/klp-wms/src/main/java/com/klp/controller/WmsCoilQualityRejudgeController.java b/klp-wms/src/main/java/com/klp/controller/WmsCoilQualityRejudgeController.java index f38ab986d..5428150a4 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsCoilQualityRejudgeController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsCoilQualityRejudgeController.java @@ -18,7 +18,9 @@ import com.klp.common.core.validate.EditGroup; import com.klp.common.enums.BusinessType; import com.klp.common.utils.poi.ExcelUtil; import com.klp.domain.vo.WmsCoilQualityRejudgeVo; +import com.klp.domain.vo.WmsMaterialCoilRejudgeVo; import com.klp.domain.bo.WmsCoilQualityRejudgeBo; +import com.klp.domain.bo.WmsMaterialCoilBo; import com.klp.service.IWmsCoilQualityRejudgeService; import com.klp.common.core.page.TableDataInfo; @@ -44,6 +46,15 @@ public class WmsCoilQualityRejudgeController extends BaseController { return iWmsCoilQualityRejudgeService.queryPageList(bo, pageQuery); } + /** + * 查询钢卷信息并附带质量改判记录 + * 调用钢卷物料表 queryList 查询钢卷列表,同时批量查询每个钢卷的最新一条质量改判记录 + */ + @GetMapping("/coilListWithRejudge") + public R> coilListWithRejudge(WmsMaterialCoilBo bo) { + return R.ok(iWmsCoilQualityRejudgeService.queryCoilListWithRejudge(bo)); + } + /** * 导出钢卷质量改判记录列表 */ diff --git a/klp-wms/src/main/java/com/klp/service/IWmsCoilQualityRejudgeService.java b/klp-wms/src/main/java/com/klp/service/IWmsCoilQualityRejudgeService.java index 61462f956..f9323fc48 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsCoilQualityRejudgeService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsCoilQualityRejudgeService.java @@ -2,7 +2,9 @@ package com.klp.service; import com.klp.domain.WmsCoilQualityRejudge; import com.klp.domain.vo.WmsCoilQualityRejudgeVo; +import com.klp.domain.vo.WmsMaterialCoilRejudgeVo; import com.klp.domain.bo.WmsCoilQualityRejudgeBo; +import com.klp.domain.bo.WmsMaterialCoilBo; import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; @@ -46,4 +48,13 @@ public interface IWmsCoilQualityRejudgeService { * 校验并批量删除钢卷质量改判记录信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 查询钢卷列表并附带质量改判记录 + * 调用 IWmsMaterialCoilService.queryList 查询钢卷,然后批量查询每个钢卷的最新改判记录并回填 + * + * @param bo 钢卷查询条件 + * @return 钢卷列表(每个钢卷附带最新一条改判记录) + */ + List queryCoilListWithRejudge(WmsMaterialCoilBo bo); } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsCoilQualityRejudgeServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsCoilQualityRejudgeServiceImpl.java index 05bfc714a..0e5e2c9f2 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsCoilQualityRejudgeServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsCoilQualityRejudgeServiceImpl.java @@ -10,14 +10,17 @@ import com.klp.common.utils.StringUtils; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.klp.domain.bo.WmsCoilQualityRejudgeBo; +import com.klp.domain.bo.WmsMaterialCoilBo; import com.klp.domain.vo.WmsCoilQualityRejudgeVo; +import com.klp.domain.vo.WmsMaterialCoilRejudgeVo; +import com.klp.domain.vo.WmsMaterialCoilVo; import com.klp.domain.WmsCoilQualityRejudge; import com.klp.mapper.WmsCoilQualityRejudgeMapper; import com.klp.service.IWmsCoilQualityRejudgeService; +import com.klp.service.IWmsMaterialCoilService; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; +import java.util.stream.Collectors; /** * 钢卷质量改判记录Service业务层处理 @@ -30,6 +33,7 @@ import java.util.Collection; public class WmsCoilQualityRejudgeServiceImpl implements IWmsCoilQualityRejudgeService { private final WmsCoilQualityRejudgeMapper baseMapper; + private final IWmsMaterialCoilService wmsMaterialCoilService; /** * 查询钢卷质量改判记录 @@ -99,6 +103,53 @@ public class WmsCoilQualityRejudgeServiceImpl implements IWmsCoilQualityRejudgeS //TODO 做一些数据校验,如唯一约束 } + /** + * 查询钢卷列表并附带质量改判记录 + */ + @Override + public List queryCoilListWithRejudge(WmsMaterialCoilBo bo) { + List coils = wmsMaterialCoilService.queryList(bo); + if (coils == null || coils.isEmpty()) { + return Collections.emptyList(); + } + + // 收集所有钢卷ID + List coilIds = coils.stream() + .map(WmsMaterialCoilVo::getCoilId) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + + if (coilIds.isEmpty()) { + return coils.stream().map(vo -> { + WmsMaterialCoilRejudgeVo rvo = new WmsMaterialCoilRejudgeVo(); + BeanUtil.copyProperties(vo, rvo); + return rvo; + }).collect(Collectors.toList()); + } + + // 批量查询每个钢卷的最新一条改判记录 + List latestRejudges = baseMapper.selectLatestByCoilIds(coilIds); + + Map rejudgeMap = new HashMap<>(); + if (latestRejudges != null && !latestRejudges.isEmpty()) { + latestRejudges.forEach(r -> { + if (r.getCoilId() != null) { + rejudgeMap.put(r.getCoilId(), r); + } + }); + } + + // 组装返回结果 + return coils.stream().map(vo -> { + WmsMaterialCoilRejudgeVo rvo = new WmsMaterialCoilRejudgeVo(); + BeanUtil.copyProperties(vo, rvo); + if (vo.getCoilId() != null && rejudgeMap.containsKey(vo.getCoilId())) { + rvo.setRejudgeInfo(rejudgeMap.get(vo.getCoilId())); + } + return rvo; + }).collect(Collectors.toList()); + } + /** * 批量删除钢卷质量改判记录 */