feat(flow): 添加钢卷信息关联查询功能
- 在pom.xml中添加klp-wms依赖模块 - 引入WmsMaterialCoil和WmsMaterialCoilVo相关类 - 注入WmsMaterialCoilMapper用于钢卷信息查询 - 实现enrichWithCoilInfo方法批量获取钢卷详情 - 优化查询逻辑支持单条和分页查询的钢卷信息填充 - 在TsAcceptCoilRelVo中新增coilInfo字段存储钢卷信息
This commit is contained in:
@@ -15,5 +15,9 @@
|
||||
<groupId>com.klp</groupId>
|
||||
<artifactId>klp-common</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.klp</groupId>
|
||||
<artifactId>klp-wms</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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<TsAcceptCoilRelVo> queryPageList(TsAcceptCoilRelBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<TsAcceptCoilRel> lqw = buildQueryWrapper(bo);
|
||||
Page<TsAcceptCoilRelVo> 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<TsAcceptCoilRelVo> queryList(TsAcceptCoilRelBo bo) {
|
||||
LambdaQueryWrapper<TsAcceptCoilRel> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
List<TsAcceptCoilRelVo> list = baseMapper.selectVoList(lqw);
|
||||
enrichWithCoilInfo(list);
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据关联表中的coilId批量查询钢卷信息,并填充到VO中
|
||||
*/
|
||||
private void enrichWithCoilInfo(List<TsAcceptCoilRelVo> voList) {
|
||||
if (voList == null || voList.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
// 收集所有coilId(去重)
|
||||
List<Long> coilIds = voList.stream()
|
||||
.map(TsAcceptCoilRelVo::getCoilId)
|
||||
.filter(id -> id != null)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
if (coilIds.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
// 批量查询钢卷信息
|
||||
QueryWrapper<WmsMaterialCoil> qw = new QueryWrapper<>();
|
||||
qw.in("mc.coil_id", coilIds);
|
||||
qw.eq("mc.del_flag", 0);
|
||||
qw.orderByDesc("mc.create_time");
|
||||
List<WmsMaterialCoilVo> coilList = wmsMaterialCoilMapper.selectVoListWithDynamicJoin(qw);
|
||||
// 按coilId建立索引
|
||||
Map<Long, WmsMaterialCoilVo> 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<TsAcceptCoilRel> buildQueryWrapper(TsAcceptCoilRelBo bo) {
|
||||
|
||||
Reference in New Issue
Block a user