From 4bea8bdb17910254e531fb51ac3e6b4c4c95e82d Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Fri, 3 Jul 2026 17:30:33 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=B7=BB=E5=8A=A0=E9=92=A2?= =?UTF-8?q?=E5=8D=B7=E5=88=97=E8=A1=A8=E9=99=84=E5=B8=A6=E8=B4=A8=E9=87=8F?= =?UTF-8?q?=E6=94=B9=E5=88=A4=E8=AE=B0=E5=BD=95=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 IWmsCoilQualityRejudgeService 中新增 queryCoilListWithRejudge 方法 - 实现批量查询钢卷并附带最新质量改判记录的功能 - 添加 WmsMaterialCoilRejudgeVo 和 WmsMaterialCoilBo 数据传输对象 - 在 WmsCoilQualityRejudgeController 中新增 coilListWithRejudge 接口 - 实现服务层逻辑,通过 wmsMaterialCoilService 查询钢卷列表 - 批量查询每个钢卷的最新改判记录并组装返回结果 --- .../WmsCoilQualityRejudgeController.java | 11 ++++ .../IWmsCoilQualityRejudgeService.java | 11 ++++ .../WmsCoilQualityRejudgeServiceImpl.java | 57 ++++++++++++++++++- 3 files changed, 76 insertions(+), 3 deletions(-) diff --git a/klp-wms/src/main/java/com/klp/controller/WmsCoilQualityRejudgeController.java b/klp-wms/src/main/java/com/klp/controller/WmsCoilQualityRejudgeController.java index f38ab986d..5428150a4 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsCoilQualityRejudgeController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsCoilQualityRejudgeController.java @@ -18,7 +18,9 @@ import com.klp.common.core.validate.EditGroup; import com.klp.common.enums.BusinessType; import com.klp.common.utils.poi.ExcelUtil; import com.klp.domain.vo.WmsCoilQualityRejudgeVo; +import com.klp.domain.vo.WmsMaterialCoilRejudgeVo; import com.klp.domain.bo.WmsCoilQualityRejudgeBo; +import com.klp.domain.bo.WmsMaterialCoilBo; import com.klp.service.IWmsCoilQualityRejudgeService; import com.klp.common.core.page.TableDataInfo; @@ -44,6 +46,15 @@ public class WmsCoilQualityRejudgeController extends BaseController { return iWmsCoilQualityRejudgeService.queryPageList(bo, pageQuery); } + /** + * 查询钢卷信息并附带质量改判记录 + * 调用钢卷物料表 queryList 查询钢卷列表,同时批量查询每个钢卷的最新一条质量改判记录 + */ + @GetMapping("/coilListWithRejudge") + public R> coilListWithRejudge(WmsMaterialCoilBo bo) { + return R.ok(iWmsCoilQualityRejudgeService.queryCoilListWithRejudge(bo)); + } + /** * 导出钢卷质量改判记录列表 */ diff --git a/klp-wms/src/main/java/com/klp/service/IWmsCoilQualityRejudgeService.java b/klp-wms/src/main/java/com/klp/service/IWmsCoilQualityRejudgeService.java index 61462f956..f9323fc48 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsCoilQualityRejudgeService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsCoilQualityRejudgeService.java @@ -2,7 +2,9 @@ package com.klp.service; import com.klp.domain.WmsCoilQualityRejudge; import com.klp.domain.vo.WmsCoilQualityRejudgeVo; +import com.klp.domain.vo.WmsMaterialCoilRejudgeVo; import com.klp.domain.bo.WmsCoilQualityRejudgeBo; +import com.klp.domain.bo.WmsMaterialCoilBo; import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; @@ -46,4 +48,13 @@ public interface IWmsCoilQualityRejudgeService { * 校验并批量删除钢卷质量改判记录信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 查询钢卷列表并附带质量改判记录 + * 调用 IWmsMaterialCoilService.queryList 查询钢卷,然后批量查询每个钢卷的最新改判记录并回填 + * + * @param bo 钢卷查询条件 + * @return 钢卷列表(每个钢卷附带最新一条改判记录) + */ + List queryCoilListWithRejudge(WmsMaterialCoilBo bo); } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsCoilQualityRejudgeServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsCoilQualityRejudgeServiceImpl.java index 05bfc714a..0e5e2c9f2 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsCoilQualityRejudgeServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsCoilQualityRejudgeServiceImpl.java @@ -10,14 +10,17 @@ import com.klp.common.utils.StringUtils; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.klp.domain.bo.WmsCoilQualityRejudgeBo; +import com.klp.domain.bo.WmsMaterialCoilBo; import com.klp.domain.vo.WmsCoilQualityRejudgeVo; +import com.klp.domain.vo.WmsMaterialCoilRejudgeVo; +import com.klp.domain.vo.WmsMaterialCoilVo; import com.klp.domain.WmsCoilQualityRejudge; import com.klp.mapper.WmsCoilQualityRejudgeMapper; import com.klp.service.IWmsCoilQualityRejudgeService; +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业务层处理 @@ -30,6 +33,7 @@ import java.util.Collection; public class WmsCoilQualityRejudgeServiceImpl implements IWmsCoilQualityRejudgeService { private final WmsCoilQualityRejudgeMapper baseMapper; + private final IWmsMaterialCoilService wmsMaterialCoilService; /** * 查询钢卷质量改判记录 @@ -99,6 +103,53 @@ public class WmsCoilQualityRejudgeServiceImpl implements IWmsCoilQualityRejudgeS //TODO 做一些数据校验,如唯一约束 } + /** + * 查询钢卷列表并附带质量改判记录 + */ + @Override + public List queryCoilListWithRejudge(WmsMaterialCoilBo bo) { + List coils = wmsMaterialCoilService.queryList(bo); + if (coils == null || coils.isEmpty()) { + return Collections.emptyList(); + } + + // 收集所有钢卷ID + List coilIds = coils.stream() + .map(WmsMaterialCoilVo::getCoilId) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + + if (coilIds.isEmpty()) { + return coils.stream().map(vo -> { + WmsMaterialCoilRejudgeVo rvo = new WmsMaterialCoilRejudgeVo(); + BeanUtil.copyProperties(vo, rvo); + return rvo; + }).collect(Collectors.toList()); + } + + // 批量查询每个钢卷的最新一条改判记录 + List latestRejudges = baseMapper.selectLatestByCoilIds(coilIds); + + Map rejudgeMap = new HashMap<>(); + if (latestRejudges != null && !latestRejudges.isEmpty()) { + latestRejudges.forEach(r -> { + if (r.getCoilId() != null) { + rejudgeMap.put(r.getCoilId(), r); + } + }); + } + + // 组装返回结果 + return coils.stream().map(vo -> { + WmsMaterialCoilRejudgeVo rvo = new WmsMaterialCoilRejudgeVo(); + BeanUtil.copyProperties(vo, rvo); + if (vo.getCoilId() != null && rejudgeMap.containsKey(vo.getCoilId())) { + rvo.setRejudgeInfo(rejudgeMap.get(vo.getCoilId())); + } + return rvo; + }).collect(Collectors.toList()); + } + /** * 批量删除钢卷质量改判记录 */