refactor(WmsAnnealPerformanceService): 优化退火钢卷查询逻辑
- 将分页查询改为列表查询以提高性能 - 移除不必要的分页参数设置 - 删除冗余的直接钢卷查询逻辑 - 简化钢卷映射查找流程 - 优化空值检查和循环处理逻辑 - 统一查询条件处理方式
This commit is contained in:
@@ -93,12 +93,9 @@ public class WmsAnnealPerformanceServiceImpl implements IWmsAnnealPerformanceSer
|
|||||||
if (!allCoilIds.isEmpty()) {
|
if (!allCoilIds.isEmpty()) {
|
||||||
WmsMaterialCoilBo coilBo = new WmsMaterialCoilBo();
|
WmsMaterialCoilBo coilBo = new WmsMaterialCoilBo();
|
||||||
coilBo.setParentCoilIds(allCoilIds.stream().map(String::valueOf).collect(Collectors.joining("-")));
|
coilBo.setParentCoilIds(allCoilIds.stream().map(String::valueOf).collect(Collectors.joining("-")));
|
||||||
PageQuery pageQuery = new PageQuery();
|
List<WmsMaterialCoilVo> coilList = materialCoilService.queryList(coilBo);
|
||||||
pageQuery.setPageNum(1);
|
if (coilList != null && !coilList.isEmpty()) {
|
||||||
pageQuery.setPageSize(Integer.MAX_VALUE);
|
for (WmsMaterialCoilVo coilVo : coilList) {
|
||||||
TableDataInfo<WmsMaterialCoilVo> coilPage = materialCoilService.queryPageList(coilBo, pageQuery);
|
|
||||||
if (coilPage != null && coilPage.getRows() != null) {
|
|
||||||
for (WmsMaterialCoilVo coilVo : coilPage.getRows()) {
|
|
||||||
// 加工后钢卷的parentCoilId存的是加工前coilId
|
// 加工后钢卷的parentCoilId存的是加工前coilId
|
||||||
String parentCoilIdStr = coilVo.getParentCoilId();
|
String parentCoilIdStr = coilVo.getParentCoilId();
|
||||||
if (StringUtils.isNotBlank(parentCoilIdStr)) {
|
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获取
|
// 重新构建details:每条detail对应一个计划钢卷,logicWarehouseId/furnaceLevel从planCoil获取
|
||||||
List<WmsAnnealPerformanceDetailVo> flatDetails = new ArrayList<>();
|
List<WmsAnnealPerformanceDetailVo> flatDetails = new ArrayList<>();
|
||||||
Long filteredPlanCount = 0L;
|
Long filteredPlanCount = 0L;
|
||||||
@@ -156,14 +135,10 @@ public class WmsAnnealPerformanceServiceImpl implements IWmsAnnealPerformanceSer
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 优先取split后的子卷,没有再取原卷(未split场景)
|
// planCoil.coilId是加工前的ID,用它在parentIdToCoilMap中查找加工后的卷
|
||||||
WmsMaterialCoilVo coilVo = parentIdToCoilMap.get(coilId);
|
WmsMaterialCoilVo coilVo = parentIdToCoilMap.get(coilId);
|
||||||
if (coilVo == null) {
|
if (coilVo == null) {
|
||||||
coilVo = directCoilMap.get(coilId);
|
continue; // 没找到加工后的卷,跳过
|
||||||
}
|
|
||||||
if (coilVo == null) {
|
|
||||||
coilVo = new WmsMaterialCoilVo();
|
|
||||||
coilVo.setCoilId(coilId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 如果传入了筛选条件,只保留匹配的钢卷
|
// 如果传入了筛选条件,只保留匹配的钢卷
|
||||||
|
|||||||
Reference in New Issue
Block a user