Commit 94520344 authored by ZWT's avatar ZWT

feat(能源管理系统): 测试问题修复

1.修改间开制度管理--长期间开优化模块详情接口,优化已优化时间列表查询逻辑;
2.修改间开制度管理--中短期间开优化模块详情接口,优化已优化时间列表查询逻辑;
3.修改间开制度管理--定期校准模块重新校准接口,增加时间限制,超过优化时间不能优化;
4.修改间开制度管理--长期/中短期间开优化离网型算法,优化数据结构;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent a3a92e47
......@@ -438,6 +438,60 @@ public class SpaceOptimizeBaseService {
}
}
}
//时间段优化
if (CollUtil.isNotEmpty(durationDTOList)) {
List<SpaceOptimizeDurationDTO> finallyList = new ArrayList<>(durationDTOList.size());
List<SpaceOptimizeDurationDTO> offList = new ArrayList<>(durationDTOList.size());
for (SpaceOptimizeDurationDTO durationDTO : durationDTOList) {
if (StringUtils.equals(periodId, durationDTO.getPeriodId())) {
offList.add(durationDTO);
} else {
finallyList.add(durationDTO);
}
}
//优化
if (CollUtil.isNotEmpty(offList)) {
Map<String, List<SpaceOptimizeDurationDTO>> collect = offList.stream()
.collect(Collectors.groupingBy(SpaceOptimizeDurationDTO::getWellheadId));
for (String wellheadId : collect.keySet()) {
List<SpaceOptimizeDurationDTO> list = collect.get(wellheadId);
int size = list.size();
if (size == 1) {
finallyList.add(list.get(0));
continue;
}
List<SpaceOptimizeDurationDTO> temporarilyList = CollUtil.newArrayList(list.get(0));
for (int i = 1; i < size; i++) {
SpaceOptimizeDurationDTO end = temporarilyList.get(temporarilyList.size() - 1);
SpaceOptimizeDurationDTO durationDTO = list.get(i);
boolean equals = StringUtils.equals(end.getGenerationTypeKey(), durationDTO.getGenerationTypeKey());
//判断类型和时间段
if (!equals) {
SpaceOptimizeDurationDTO begin = temporarilyList.get(0);
begin.setCloseWellTime(end.getCloseWellTime());
finallyList.add(begin);
temporarilyList = new ArrayList<>(12);
} else if (equals &&
!StringUtils.equals(end.getCloseWellTime(), durationDTO.getOpenWellTime()) &&
!StringUtils.equals(end.getId(), durationDTO.getId())
) {
SpaceOptimizeDurationDTO begin = temporarilyList.get(0);
begin.setCloseWellTime(end.getCloseWellTime());
finallyList.add(begin);
temporarilyList = new ArrayList<>(12);
}
temporarilyList.add(durationDTO);
if (i == size - 1) {
SpaceOptimizeDurationDTO begin = temporarilyList.get(0);
begin.setCloseWellTime(end.getCloseWellTime());
finallyList.add(begin);
}
}
}
CollUtil.clear(durationDTOList);
finallyList.forEach(f -> durationDTOList.add(f));
}
}
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment