diff --git a/klp-flow/pom.xml b/klp-flow/pom.xml index f0a55827..9ae00e63 100644 --- a/klp-flow/pom.xml +++ b/klp-flow/pom.xml @@ -15,5 +15,9 @@ com.klp klp-common + + com.klp + klp-wms + diff --git a/klp-flow/src/main/java/com/klp/flow/domain/vo/TsAcceptCoilRelVo.java b/klp-flow/src/main/java/com/klp/flow/domain/vo/TsAcceptCoilRelVo.java index 13f84740..c5dca073 100644 --- a/klp-flow/src/main/java/com/klp/flow/domain/vo/TsAcceptCoilRelVo.java +++ b/klp-flow/src/main/java/com/klp/flow/domain/vo/TsAcceptCoilRelVo.java @@ -4,6 +4,7 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.klp.common.annotation.ExcelDictFormat; import com.klp.common.convert.ExcelDictConvert; +import com.klp.domain.vo.WmsMaterialCoilVo; import lombok.Data; @@ -43,5 +44,10 @@ public class TsAcceptCoilRelVo { @ExcelProperty(value = "备注") private String remark; + /** + * 关联的钢卷信息(丰富返回值) + */ + private WmsMaterialCoilVo coilInfo; + } 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 6dd2c9d8..2678d4b5 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 @@ -1,6 +1,7 @@ package com.klp.flow.service.impl; import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -8,15 +9,20 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import com.klp.domain.WmsMaterialCoil; +import com.klp.domain.vo.WmsMaterialCoilVo; 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 java.util.List; import java.util.Map; import java.util.Collection; +import java.util.Collections; +import java.util.stream.Collectors; /** * 受理单关联钢卷中间Service业务层处理 @@ -29,13 +35,18 @@ import java.util.Collection; public class TsAcceptCoilRelServiceImpl implements ITsAcceptCoilRelService { private final TsAcceptCoilRelMapper baseMapper; + private final WmsMaterialCoilMapper wmsMaterialCoilMapper; /** * 查询受理单关联钢卷中间 */ @Override public TsAcceptCoilRelVo queryById(Long relId){ - return baseMapper.selectVoById(relId); + TsAcceptCoilRelVo vo = baseMapper.selectVoById(relId); + if (vo != null) { + enrichWithCoilInfo(Collections.singletonList(vo)); + } + return vo; } /** @@ -45,6 +56,7 @@ public class TsAcceptCoilRelServiceImpl implements ITsAcceptCoilRelService { public TableDataInfo queryPageList(TsAcceptCoilRelBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + enrichWithCoilInfo(result.getRecords()); return TableDataInfo.build(result); } @@ -54,7 +66,42 @@ public class TsAcceptCoilRelServiceImpl implements ITsAcceptCoilRelService { @Override public List queryList(TsAcceptCoilRelBo bo) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); + List list = baseMapper.selectVoList(lqw); + enrichWithCoilInfo(list); + return list; + } + + /** + * 根据关联表中的coilId批量查询钢卷信息,并填充到VO中 + */ + private void enrichWithCoilInfo(List voList) { + if (voList == null || voList.isEmpty()) { + return; + } + // 收集所有coilId(去重) + List coilIds = voList.stream() + .map(TsAcceptCoilRelVo::getCoilId) + .filter(id -> id != null) + .distinct() + .collect(Collectors.toList()); + if (coilIds.isEmpty()) { + return; + } + // 批量查询钢卷信息 + QueryWrapper qw = new QueryWrapper<>(); + qw.in("mc.coil_id", coilIds); + qw.eq("mc.del_flag", 0); + qw.orderByDesc("mc.create_time"); + List coilList = wmsMaterialCoilMapper.selectVoListWithDynamicJoin(qw); + // 按coilId建立索引 + Map coilMap = coilList.stream() + .collect(Collectors.toMap(WmsMaterialCoilVo::getCoilId, c -> c, (a, b) -> a)); + // 填充到VO中 + for (TsAcceptCoilRelVo vo : voList) { + if (vo.getCoilId() != null) { + vo.setCoilInfo(coilMap.get(vo.getCoilId())); + } + } } private LambdaQueryWrapper buildQueryWrapper(TsAcceptCoilRelBo bo) {