From 7a14cf7cb60c567d8680392fe85f3c390c25bf36 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Mon, 23 Mar 2026 10:57:09 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=89=A9=E5=B1=95=E9=92=A2?= =?UTF-8?q?=E5=8D=B7=E6=89=93=E5=8C=85=E8=AE=B0=E5=BD=95=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 WmsCoilPackingDetailVo 中新增钢卷相关字段包括入场钢卷号、当前钢卷号、厂家原料卷号等 - 添加 WmsMaterialCoilVo 引用到 WmsCoilPackingDetailVo 中存储钢卷完整信息 - 在 WmsCoilPackingRecordVo 中增加明细列表用于存储打包详情 - 实现服务层查询时自动关联钢卷详细信息并填充到返回结果中 - 优化查询逻辑支持分页和列表查询时同时获取关联的钢卷详情数据 --- .../klp/domain/vo/WmsCoilPackingDetailVo.java | 40 ++++++++++++ .../klp/domain/vo/WmsCoilPackingRecordVo.java | 6 ++ .../impl/WmsCoilPackingRecordServiceImpl.java | 63 +++++++++++++++++-- 3 files changed, 104 insertions(+), 5 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 9467cb83..8bf35f92 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 @@ -1,6 +1,7 @@ package com.klp.domain.vo; import java.math.BigDecimal; +import com.klp.domain.vo.WmsMaterialCoilVo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.klp.common.annotation.ExcelDictFormat; @@ -71,5 +72,44 @@ 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; + + /** + * 钢卷完整信息 + */ + private WmsMaterialCoilVo coil; } diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilPackingRecordVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilPackingRecordVo.java index 3a99e833..2d5aa66b 100644 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilPackingRecordVo.java +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilPackingRecordVo.java @@ -2,6 +2,7 @@ package com.klp.domain.vo; import java.math.BigDecimal; 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; @@ -102,5 +103,10 @@ public class WmsCoilPackingRecordVo { @ExcelProperty(value = "整体打包备注") private String remark; + /** + * 明细列表 + */ + private List details; + } 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 b8f5bf11..4271d54e 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 @@ -11,22 +11,23 @@ import com.klp.common.utils.StringUtils; import com.klp.domain.WmsCoilPackingDetail; import com.klp.domain.WmsMaterialCoil; import com.klp.domain.bo.WmsCoilPackingDetailBo; +import com.klp.domain.bo.WmsMaterialCoilBo; +import com.klp.domain.vo.WmsMaterialCoilVo; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.klp.domain.bo.WmsCoilPackingRecordBo; import com.klp.domain.vo.WmsCoilPackingRecordVo; +import com.klp.domain.vo.WmsCoilPackingDetailVo; import com.klp.domain.WmsCoilPackingRecord; import com.klp.mapper.WmsCoilPackingRecordMapper; import com.klp.mapper.WmsCoilPackingDetailMapper; import com.klp.mapper.WmsMaterialCoilMapper; import com.klp.service.IWmsCoilPackingRecordService; +import com.klp.service.IWmsMaterialCoilService; import java.math.BigDecimal; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; /** * 钢卷打包记录主(打包待发区专用)Service业务层处理 @@ -41,6 +42,7 @@ public class WmsCoilPackingRecordServiceImpl implements IWmsCoilPackingRecordSer private final WmsCoilPackingRecordMapper baseMapper; private final WmsMaterialCoilMapper wmsMaterialCoilMapper; private final WmsCoilPackingDetailMapper detailMapper; + private final IWmsMaterialCoilService iWmsMaterialCoilService; /** * 查询钢卷打包记录主(打包待发区专用) @@ -57,16 +59,67 @@ 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(); + coilBo.setCoilIds(StringUtils.join(coilIds, ",")); + List coilVoList = iWmsMaterialCoilService.queryList(coilBo); + for (WmsMaterialCoilVo coilVo : coilVoList) { + 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); + } + /** * 查询钢卷打包记录主(打包待发区专用)列表 */ @Override public List queryList(WmsCoilPackingRecordBo bo) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); + List list = baseMapper.selectVoList(lqw); + + if (list != null && !list.isEmpty()) { + for (WmsCoilPackingRecordVo recordVo : list) { + enrichRecordWithDetails(recordVo); + } + } + + return list; } private LambdaQueryWrapper buildQueryWrapper(WmsCoilPackingRecordBo bo) {