feat(wms): 添加检验主数据关联明细查询功能
- 引入 WmsInspectionDetail 相关依赖和映射器 - 在 WmsInspectionMainVo 中添加 detailList 字段存储明细列表 - 实现 fillDetailList 方法批量填充检验明细数据 - 优化查询方法在分页和列表查询时自动关联明细信息 - 使用流式处理和分组操作提升数据关联性能
This commit is contained in:
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
@@ -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()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增检验主
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user