feat(wms): 添加检验主数据关联明细查询功能

- 引入 WmsInspectionDetail 相关依赖和映射器
- 在 WmsInspectionMainVo 中添加 detailList 字段存储明细列表
- 实现 fillDetailList 方法批量填充检验明细数据
- 优化查询方法在分页和列表查询时自动关联明细信息
- 使用流式处理和分组操作提升数据关联性能
This commit is contained in:
2026-07-08 10:22:58 +08:00
parent 72a9371f5f
commit af7b73d29c
2 changed files with 31 additions and 1 deletions

View File

@@ -1,6 +1,7 @@
package com.klp.domain.vo;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
@@ -73,5 +74,9 @@ public class WmsInspectionMainVo {
@ExcelProperty(value = "备注")
private String remark;
/**
* 检验项目明细列表
*/
private List<WmsInspectionDetailVo> detailList;
}

View File

@@ -1,6 +1,7 @@
package com.klp.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -11,13 +12,18 @@ import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.domain.bo.WmsInspectionMainBo;
import com.klp.domain.vo.WmsInspectionMainVo;
import com.klp.domain.vo.WmsInspectionDetailVo;
import com.klp.domain.WmsInspectionMain;
import com.klp.domain.WmsInspectionDetail;
import com.klp.mapper.WmsInspectionMainMapper;
import com.klp.mapper.WmsInspectionDetailMapper;
import com.klp.service.IWmsInspectionMainService;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.stream.Collectors;
/**
* 检验主Service业务层处理
@@ -30,6 +36,7 @@ import java.util.Collection;
public class WmsInspectionMainServiceImpl implements IWmsInspectionMainService {
private final WmsInspectionMainMapper baseMapper;
private final WmsInspectionDetailMapper detailMapper;
/**
* 查询检验主
@@ -46,6 +53,7 @@ public class WmsInspectionMainServiceImpl implements IWmsInspectionMainService {
public TableDataInfo<WmsInspectionMainVo> queryPageList(WmsInspectionMainBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<WmsInspectionMain> lqw = buildQueryWrapper(bo);
Page<WmsInspectionMainVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
fillDetailList(result.getRecords());
return TableDataInfo.build(result);
}
@@ -55,7 +63,9 @@ public class WmsInspectionMainServiceImpl implements IWmsInspectionMainService {
@Override
public List<WmsInspectionMainVo> queryList(WmsInspectionMainBo bo) {
LambdaQueryWrapper<WmsInspectionMain> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
List<WmsInspectionMainVo> list = baseMapper.selectVoList(lqw);
fillDetailList(list);
return list;
}
private LambdaQueryWrapper<WmsInspectionMain> buildQueryWrapper(WmsInspectionMainBo bo) {
@@ -72,6 +82,21 @@ public class WmsInspectionMainServiceImpl implements IWmsInspectionMainService {
return lqw;
}
private void fillDetailList(List<WmsInspectionMainVo> voList) {
if (CollUtil.isEmpty(voList)) {
return;
}
List<Long> mainIds = voList.stream().map(WmsInspectionMainVo::getMainId).collect(Collectors.toList());
List<WmsInspectionDetailVo> allDetails = detailMapper.selectVoList(
new LambdaQueryWrapper<WmsInspectionDetail>().in(WmsInspectionDetail::getMainId, mainIds)
);
Map<Long, List<WmsInspectionDetailVo>> detailMap = allDetails.stream()
.collect(Collectors.groupingBy(WmsInspectionDetailVo::getMainId));
for (WmsInspectionMainVo vo : voList) {
vo.setDetailList(detailMap.getOrDefault(vo.getMainId(), Collections.emptyList()));
}
}
/**
* 新增检验主
*/