feat(wms): 添加钢卷物料改判记录查询功能
- 在IWmsMaterialCoilService中新增queryPageListWithRejudge方法 - 实现批量查询钢卷最新改判记录的Mapper方法 - 添加SQL映射查询每个钢卷的最新一条改判记录 - 创建WmsMaterialCoilRejudgeVo视图对象包含改判信息 - 实现控制器listWithRejudge接口供前端调用 - 在服务实现中批量关联钢卷与其最新改判记录
This commit is contained in:
@@ -44,6 +44,12 @@ public interface IWmsMaterialCoilService {
|
||||
*/
|
||||
TableDataInfo<WmsMaterialCoilVo> queryPageListWithOrderRel(WmsMaterialCoilBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询钢卷物料表列表(包含改判记录信息)
|
||||
* 每个钢卷会携带其关联的改判记录列表(通过wms_coil_quality_rejudge表)
|
||||
*/
|
||||
TableDataInfo<WmsMaterialCoilRejudgeVo> queryPageListWithRejudge(WmsMaterialCoilBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询钢卷物料表列表
|
||||
*/
|
||||
|
||||
@@ -384,6 +384,53 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TableDataInfo<WmsMaterialCoilRejudgeVo> queryPageListWithRejudge(WmsMaterialCoilBo bo, PageQuery pageQuery) {
|
||||
Page<WmsMaterialCoilVo> result = queryMaterialCoilPage(bo, pageQuery);
|
||||
List<WmsMaterialCoilVo> records = result.getRecords();
|
||||
if (records == null || records.isEmpty()) {
|
||||
Page<WmsMaterialCoilRejudgeVo> rejudgePage = new Page<>();
|
||||
rejudgePage.setTotal(result.getTotal());
|
||||
rejudgePage.setCurrent(result.getCurrent());
|
||||
rejudgePage.setSize(result.getSize());
|
||||
return TableDataInfo.build(rejudgePage);
|
||||
}
|
||||
|
||||
// 填充通用字段(昵称等)
|
||||
fillPageCommonFields(records);
|
||||
|
||||
// 批量查询每个钢卷的最新一条改判记录
|
||||
List<com.klp.domain.vo.WmsCoilQualityRejudgeVo> latestRejudges =
|
||||
wmsCoilQualityRejudgeMapper.selectLatestByCoilIds(
|
||||
records.stream().map(WmsMaterialCoilVo::getCoilId).filter(Objects::nonNull).collect(Collectors.toList()));
|
||||
|
||||
Map<Long, com.klp.domain.vo.WmsCoilQualityRejudgeVo> rejudgeMap = new HashMap<>();
|
||||
if (latestRejudges != null && !latestRejudges.isEmpty()) {
|
||||
latestRejudges.forEach(r -> {
|
||||
if (r.getCoilId() != null) {
|
||||
rejudgeMap.put(r.getCoilId(), r);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 转换为新VO并回填最新改判记录
|
||||
List<WmsMaterialCoilRejudgeVo> rejudgeRecords = records.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());
|
||||
|
||||
Page<WmsMaterialCoilRejudgeVo> rejudgePage = new Page<>();
|
||||
rejudgePage.setRecords(rejudgeRecords);
|
||||
rejudgePage.setTotal(result.getTotal());
|
||||
rejudgePage.setCurrent(result.getCurrent());
|
||||
rejudgePage.setSize(result.getSize());
|
||||
return TableDataInfo.build(rejudgePage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量填充钢卷列表的订单关联信息(一次查询中间表+订单,避免N+1)
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user