From b939052a88b8b52ef1517bf31530356c666c204c Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Sun, 21 Jun 2026 15:11:27 +0800 Subject: [PATCH] =?UTF-8?q?feat(flow):=20=E6=B7=BB=E5=8A=A0=E9=92=A2?= =?UTF-8?q?=E5=8D=B7=E5=85=B3=E8=81=94=E5=90=88=E5=90=8C=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=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 - 引入 WmsCoilContractRelVo 和 WmsCoilContractRelMapper 依赖 - 在 TsAcceptCoilRelServiceImpl 中添加 wmsCoilContractRelMapper 注入 - 修改 enrichWithCoilInfo 方法同时查询钢卷关联的合同/订单信息 - 通过一次 SQL JOIN 查询批量获取钢卷合同关系数据 - 按 coilId 分组合同订单信息并填充到钢卷信息中 - 优化查询性能减少数据库访问次数 --- .../service/impl/TsAcceptCoilRelServiceImpl.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/klp-flow/src/main/java/com/klp/flow/service/impl/TsAcceptCoilRelServiceImpl.java b/klp-flow/src/main/java/com/klp/flow/service/impl/TsAcceptCoilRelServiceImpl.java index 2678d4b5..3de01896 100644 --- a/klp-flow/src/main/java/com/klp/flow/service/impl/TsAcceptCoilRelServiceImpl.java +++ b/klp-flow/src/main/java/com/klp/flow/service/impl/TsAcceptCoilRelServiceImpl.java @@ -11,12 +11,14 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.klp.domain.WmsMaterialCoil; import com.klp.domain.vo.WmsMaterialCoilVo; +import com.klp.domain.vo.WmsCoilContractRelVo; import com.klp.flow.domain.bo.TsAcceptCoilRelBo; import com.klp.flow.domain.vo.TsAcceptCoilRelVo; import com.klp.flow.domain.TsAcceptCoilRel; import com.klp.flow.mapper.TsAcceptCoilRelMapper; import com.klp.flow.service.ITsAcceptCoilRelService; import com.klp.mapper.WmsMaterialCoilMapper; +import com.klp.mapper.WmsCoilContractRelMapper; import java.util.List; import java.util.Map; @@ -36,6 +38,7 @@ public class TsAcceptCoilRelServiceImpl implements ITsAcceptCoilRelService { private final TsAcceptCoilRelMapper baseMapper; private final WmsMaterialCoilMapper wmsMaterialCoilMapper; + private final WmsCoilContractRelMapper wmsCoilContractRelMapper; /** * 查询受理单关联钢卷中间 @@ -73,6 +76,7 @@ public class TsAcceptCoilRelServiceImpl implements ITsAcceptCoilRelService { /** * 根据关联表中的coilId批量查询钢卷信息,并填充到VO中 + * 同时批量查询钢卷关联的合同/订单信息 */ private void enrichWithCoilInfo(List voList) { if (voList == null || voList.isEmpty()) { @@ -96,10 +100,20 @@ public class TsAcceptCoilRelServiceImpl implements ITsAcceptCoilRelService { // 按coilId建立索引 Map coilMap = coilList.stream() .collect(Collectors.toMap(WmsMaterialCoilVo::getCoilId, c -> c, (a, b) -> a)); + // 批量查询钢卷关联的合同/订单信息(一次SQL,JOIN crm_order) + List allOrderList = wmsCoilContractRelMapper.selectOrdersByCoilIds(coilIds); + // 按coilId分组 + Map> orderMap = allOrderList.stream() + .collect(Collectors.groupingBy(WmsCoilContractRelVo::getCoilId)); // 填充到VO中 for (TsAcceptCoilRelVo vo : voList) { if (vo.getCoilId() != null) { - vo.setCoilInfo(coilMap.get(vo.getCoilId())); + WmsMaterialCoilVo coilInfo = coilMap.get(vo.getCoilId()); + if (coilInfo != null) { + // 填充合同/订单列表 + coilInfo.setOrderList(orderMap.get(vo.getCoilId())); + } + vo.setCoilInfo(coilInfo); } } }