refactor(WmsAnnealPerformanceService): 优化退火钢卷查询逻辑

- 将分页查询改为列表查询以提高性能
- 移除不必要的分页参数设置
- 删除冗余的直接钢卷查询逻辑
- 简化钢卷映射查找流程
- 优化空值检查和循环处理逻辑
- 统一查询条件处理方式
This commit is contained in:
2026-07-11 11:46:57 +08:00
parent 18d13cbd68
commit 59dfa4f2b8

View File

@@ -93,12 +93,9 @@ public class WmsAnnealPerformanceServiceImpl implements IWmsAnnealPerformanceSer
if (!allCoilIds.isEmpty()) {
WmsMaterialCoilBo coilBo = new WmsMaterialCoilBo();
coilBo.setParentCoilIds(allCoilIds.stream().map(String::valueOf).collect(Collectors.joining("-")));
PageQuery pageQuery = new PageQuery();
pageQuery.setPageNum(1);
pageQuery.setPageSize(Integer.MAX_VALUE);
TableDataInfo<WmsMaterialCoilVo> coilPage = materialCoilService.queryPageList(coilBo, pageQuery);
if (coilPage != null && coilPage.getRows() != null) {
for (WmsMaterialCoilVo coilVo : coilPage.getRows()) {
List<WmsMaterialCoilVo> coilList = materialCoilService.queryList(coilBo);
if (coilList != null && !coilList.isEmpty()) {
for (WmsMaterialCoilVo coilVo : coilList) {
// 加工后钢卷的parentCoilId存的是加工前coilId
String parentCoilIdStr = coilVo.getParentCoilId();
if (StringUtils.isNotBlank(parentCoilIdStr)) {
@@ -117,24 +114,6 @@ public class WmsAnnealPerformanceServiceImpl implements IWmsAnnealPerformanceSer
}
}
// 查询2直接通过coilId查未split的钢卷它们本身就是加工后的卷
Map<Long, WmsMaterialCoilVo> directCoilMap = new HashMap<>();
{
WmsMaterialCoilBo directBo = new WmsMaterialCoilBo();
directBo.setCoilIds(allCoilIds.stream().map(String::valueOf).collect(Collectors.joining(",")));
PageQuery pq = new PageQuery();
pq.setPageNum(1);
pq.setPageSize(Integer.MAX_VALUE);
TableDataInfo<WmsMaterialCoilVo> directPage = materialCoilService.queryPageList(directBo, pq);
if (directPage != null && directPage.getRows() != null) {
for (WmsMaterialCoilVo cv : directPage.getRows()) {
if (cv.getCoilId() != null) {
directCoilMap.put(cv.getCoilId(), cv);
}
}
}
}
// 重新构建details每条detail对应一个计划钢卷logicWarehouseId/furnaceLevel从planCoil获取
List<WmsAnnealPerformanceDetailVo> flatDetails = new ArrayList<>();
Long filteredPlanCount = 0L;
@@ -156,14 +135,10 @@ public class WmsAnnealPerformanceServiceImpl implements IWmsAnnealPerformanceSer
continue;
}
// 优先取split后的子卷没有再取原卷未split场景
// planCoil.coilId是加工前的ID用它在parentIdToCoilMap中查找加工后的卷
WmsMaterialCoilVo coilVo = parentIdToCoilMap.get(coilId);
if (coilVo == null) {
coilVo = directCoilMap.get(coilId);
}
if (coilVo == null) {
coilVo = new WmsMaterialCoilVo();
coilVo.setCoilId(coilId);
continue; // 没找到加工后的卷,跳过
}
// 如果传入了筛选条件,只保留匹配的钢卷