refactor(WmsAnnealPerformanceService): 优化退火钢卷查询逻辑
- 将分页查询改为列表查询以提高性能 - 移除不必要的分页参数设置 - 删除冗余的直接钢卷查询逻辑 - 简化钢卷映射查找流程 - 优化空值检查和循环处理逻辑 - 统一查询条件处理方式
This commit is contained in:
@@ -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; // 没找到加工后的卷,跳过
|
||||
}
|
||||
|
||||
// 如果传入了筛选条件,只保留匹配的钢卷
|
||||
|
||||
Reference in New Issue
Block a user