From 84583bb05256b5134edc8d296b07effb1ef86b13 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Mon, 23 Mar 2026 15:23:01 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=B7=BB=E5=8A=A0=E9=92=A2?= =?UTF-8?q?=E5=8D=B7=E6=89=93=E5=8C=85=E6=98=8E=E7=BB=86=E5=85=B3=E8=81=94?= =?UTF-8?q?=E9=92=A2=E5=8D=B7=E4=BF=A1=E6=81=AF=E6=9F=A5=E8=AF=A2=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 WmsCoilPackingDetailServiceImpl 中新增 IWmsMaterialCoilService 依赖注入 - 为分页查询和列表查询方法添加钢卷信息丰富逻辑 - 实现 enrichCoilInfo 方法通过钢卷ID批量获取钢卷完整信息 - 重构 WmsCoilPackingRecordServiceImpl 中的详情查询逻辑 - 移除 WmsCoilPackingDetailVo 中冗余的钢卷字段定义 - 使用关联查询替代原有的独立字段存储方式 --- .../klp/domain/vo/WmsCoilPackingDetailVo.java | 34 -------------- .../impl/WmsCoilPackingDetailServiceImpl.java | 46 +++++++++++++++++-- .../impl/WmsCoilPackingRecordServiceImpl.java | 23 ++++------ 3 files changed, 50 insertions(+), 53 deletions(-) diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilPackingDetailVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilPackingDetailVo.java index 8bf35f92..47ebefc5 100644 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilPackingDetailVo.java +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilPackingDetailVo.java @@ -72,40 +72,6 @@ public class WmsCoilPackingDetailVo { @ExcelDictFormat(readConverterExp = "如=:库区A-钢卷1001") private String remark; - /** - * 钢卷入场钢卷号 - */ - private String coilEnterCoilNo; - - /** - * 钢卷当前钢卷号 - */ - private String coilCurrentCoilNo; - - /** - * 钢卷厂家原料卷号 - */ - private String coilSupplierCoilNo; - - /** - * 钢卷物品类型 - */ - private String coilItemType; - - /** - * 钢卷物品ID - */ - private Long coilItemId; - - /** - * 钢卷材料类型 - */ - private String coilMaterialType; - - /** - * 钢卷状态 - */ - private Integer coilStatus; /** * 钢卷完整信息 diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsCoilPackingDetailServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsCoilPackingDetailServiceImpl.java index f90aebfc..7f98a06a 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsCoilPackingDetailServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsCoilPackingDetailServiceImpl.java @@ -6,17 +6,20 @@ import com.klp.common.core.domain.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.klp.common.utils.StringUtils; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.klp.domain.bo.WmsCoilPackingDetailBo; +import com.klp.domain.bo.WmsMaterialCoilBo; import com.klp.domain.vo.WmsCoilPackingDetailVo; +import com.klp.domain.vo.WmsMaterialCoilVo; import com.klp.domain.WmsCoilPackingDetail; import com.klp.mapper.WmsCoilPackingDetailMapper; import com.klp.service.IWmsCoilPackingDetailService; +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业务层处理 @@ -29,6 +32,7 @@ import java.util.Collection; public class WmsCoilPackingDetailServiceImpl implements IWmsCoilPackingDetailService { private final WmsCoilPackingDetailMapper baseMapper; + private final IWmsMaterialCoilService iWmsMaterialCoilService; /** * 查询钢卷打包明细(存储每个钢卷的库区/重量信息) @@ -45,6 +49,11 @@ public class WmsCoilPackingDetailServiceImpl implements IWmsCoilPackingDetailSer public TableDataInfo queryPageList(WmsCoilPackingDetailBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + + if (result.getRecords() != null && !result.getRecords().isEmpty()) { + enrichCoilInfo(result.getRecords()); + } + return TableDataInfo.build(result); } @@ -54,7 +63,36 @@ public class WmsCoilPackingDetailServiceImpl implements IWmsCoilPackingDetailSer @Override public List queryList(WmsCoilPackingDetailBo bo) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); + List list = baseMapper.selectVoList(lqw); + + if (list != null && !list.isEmpty()) { + enrichCoilInfo(list); + } + + return list; + } + + private void enrichCoilInfo(List detailVos) { + List coilIds = detailVos.stream() + .map(WmsCoilPackingDetailVo::getCoilId) + .filter(Objects::nonNull) + .distinct() + .collect(Collectors.toList()); + + if (coilIds.isEmpty()) { + return; + } + + WmsMaterialCoilBo coilBo = new WmsMaterialCoilBo(); + coilBo.setCoilIds(StringUtils.join(coilIds, ",")); + List coilVoList = iWmsMaterialCoilService.queryList(coilBo); + + Map coilMap = coilVoList.stream() + .collect(Collectors.toMap(WmsMaterialCoilVo::getCoilId, v -> v, (a, b) -> a)); + + for (WmsCoilPackingDetailVo detailVo : detailVos) { + detailVo.setCoil(coilMap.get(detailVo.getCoilId())); + } } private LambdaQueryWrapper buildQueryWrapper(WmsCoilPackingDetailBo bo) { diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsCoilPackingRecordServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsCoilPackingRecordServiceImpl.java index 4271d54e..247e39cb 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsCoilPackingRecordServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsCoilPackingRecordServiceImpl.java @@ -59,32 +59,25 @@ public class WmsCoilPackingRecordServiceImpl implements IWmsCoilPackingRecordSer public TableDataInfo queryPageList(WmsCoilPackingRecordBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - - if (result.getRecords() != null && !result.getRecords().isEmpty()) { - for (WmsCoilPackingRecordVo recordVo : result.getRecords()) { - enrichRecordWithDetails(recordVo); - } - } - return TableDataInfo.build(result); } private void enrichRecordWithDetails(WmsCoilPackingRecordVo recordVo) { Long packingId = recordVo.getPackingId(); - + LambdaQueryWrapper detailLqw = Wrappers.lambdaQuery(); detailLqw.eq(WmsCoilPackingDetail::getPackingId, packingId); List details = detailMapper.selectList(detailLqw); - + if (details == null || details.isEmpty()) { return; } - + List coilIds = new ArrayList<>(); for (WmsCoilPackingDetail detail : details) { coilIds.add(detail.getCoilId()); } - + Map coilMap = new HashMap<>(); if (!coilIds.isEmpty()) { WmsMaterialCoilBo coilBo = new WmsMaterialCoilBo(); @@ -94,14 +87,14 @@ public class WmsCoilPackingRecordServiceImpl implements IWmsCoilPackingRecordSer coilMap.put(coilVo.getCoilId(), coilVo); } } - + List detailVos = new ArrayList<>(); for (WmsCoilPackingDetail detail : details) { WmsCoilPackingDetailVo detailVo = BeanUtil.toBean(detail, WmsCoilPackingDetailVo.class); detailVo.setCoil(coilMap.get(detail.getCoilId())); detailVos.add(detailVo); } - + recordVo.setDetails(detailVos); } @@ -112,13 +105,13 @@ public class WmsCoilPackingRecordServiceImpl implements IWmsCoilPackingRecordSer public List queryList(WmsCoilPackingRecordBo bo) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); List list = baseMapper.selectVoList(lqw); - + if (list != null && !list.isEmpty()) { for (WmsCoilPackingRecordVo recordVo : list) { enrichRecordWithDetails(recordVo); } } - + return list; }