From af7b73d29c760c96d14367008646d6c384cc3455 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Wed, 8 Jul 2026 10:22:58 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=B7=BB=E5=8A=A0=E6=A3=80?= =?UTF-8?q?=E9=AA=8C=E4=B8=BB=E6=95=B0=E6=8D=AE=E5=85=B3=E8=81=94=E6=98=8E?= =?UTF-8?q?=E7=BB=86=E6=9F=A5=E8=AF=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 引入 WmsInspectionDetail 相关依赖和映射器 - 在 WmsInspectionMainVo 中添加 detailList 字段存储明细列表 - 实现 fillDetailList 方法批量填充检验明细数据 - 优化查询方法在分页和列表查询时自动关联明细信息 - 使用流式处理和分组操作提升数据关联性能 --- .../klp/domain/vo/WmsInspectionMainVo.java | 5 ++++ .../impl/WmsInspectionMainServiceImpl.java | 27 ++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsInspectionMainVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsInspectionMainVo.java index aaa8d781c..bb030dc29 100644 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsInspectionMainVo.java +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsInspectionMainVo.java @@ -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 detailList; } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsInspectionMainServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsInspectionMainServiceImpl.java index a6b9c9850..9acf2a9cb 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsInspectionMainServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsInspectionMainServiceImpl.java @@ -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 queryPageList(WmsInspectionMainBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page 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 queryList(WmsInspectionMainBo bo) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); + List list = baseMapper.selectVoList(lqw); + fillDetailList(list); + return list; } private LambdaQueryWrapper buildQueryWrapper(WmsInspectionMainBo bo) { @@ -72,6 +82,21 @@ public class WmsInspectionMainServiceImpl implements IWmsInspectionMainService { return lqw; } + private void fillDetailList(List voList) { + if (CollUtil.isEmpty(voList)) { + return; + } + List mainIds = voList.stream().map(WmsInspectionMainVo::getMainId).collect(Collectors.toList()); + List allDetails = detailMapper.selectVoList( + new LambdaQueryWrapper().in(WmsInspectionDetail::getMainId, mainIds) + ); + Map> detailMap = allDetails.stream() + .collect(Collectors.groupingBy(WmsInspectionDetailVo::getMainId)); + for (WmsInspectionMainVo vo : voList) { + vo.setDetailList(detailMap.getOrDefault(vo.getMainId(), Collections.emptyList())); + } + } + /** * 新增检验主 */