Commit 9814ac13 authored by ZWT's avatar ZWT

feat(吉林演示): 松原

1.开发间开优化结果统计功能,创建间开优化效果统计表,生成对应代码;
2.修改15天,10天,3天,1天间开优化功能,修改代码结构;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 4da13d66
......@@ -66,15 +66,17 @@ public class SpaceOptimizeBaseService {
* @param wellheadDTOList 井口数据表
* @param durationDTOList 优化结果
* @param unOptimizeDurationList 未优化持续时间列表
* @param offset 偏移
*/
public void calculateOptimizeEffect(XContext context, List<SpaceOptimizePeriodDTO> periodDTOList, List<SpaceOptimizeWellheadDTO> wellheadDTOList,
List<SpaceOptimizeDurationDTO> durationDTOList, List<SpaceOptimizeDurationDTO> unOptimizeDurationList) {
List<SpaceOptimizeDurationDTO> durationDTOList, List<SpaceOptimizeDurationDTO> unOptimizeDurationList, Integer offset) {
if (CollUtil.isNotEmpty(periodDTOList)) {
//按周期ID分组
Map<String, List<SpaceOptimizeWellheadDTO>> wellMap;
Map<String, Map<Date, List<SpaceOptimizeWellheadDTO>>> wellMap;
if (CollUtil.isNotEmpty(wellheadDTOList)) {
wellMap = wellheadDTOList.stream()
.collect(Collectors.groupingBy(SpaceOptimizeWellheadDTO::getPeriodId));
.collect(Collectors.groupingBy(SpaceOptimizeWellheadDTO::getPeriodId,
Collectors.groupingBy(SpaceOptimizeWellheadDTO::getOptimizeDate)));
} else {
wellMap = Collections.emptyMap();
}
......@@ -96,7 +98,7 @@ public class SpaceOptimizeBaseService {
} else {
unOptimizeMap = Collections.emptyMap();
}
DateTime now = DateUtil.date();
DateTime now = DateUtil.beginOfDay(DateUtil.date());
int month = now.monthBaseOne();
//市电峰谷
Map<String, Map<String, List<GetBasePriceStrategyDetailOutput>>> strategyMap;
......@@ -122,19 +124,39 @@ public class SpaceOptimizeBaseService {
} else {
plantIdsMap = Collections.emptyMap();
}
//取所有井口
Map<String, DynamicQueryBaseWellheadOutput> baseWellMap;
List<DynamicQueryBaseWellheadOutput> wellList = ServiceUtil.getBaseWellList(context, new DynamicQueryBaseWellheadInput());
//取所有间开关联井口
Map<String, SpaceInstitutionWellheadView> baseWellMap;
List<SpaceInstitutionWellheadView> wellList = this.getSpaceWellheadList(context, null);
if (CollUtil.isNotEmpty(wellList)) {
baseWellMap = wellList.stream()
.collect(Collectors.toMap(DynamicQueryBaseWellheadOutput::getId, Function.identity()));
.collect(Collectors.toMap(SpaceInstitutionWellheadView::getWellheadId, Function.identity()));
} else {
baseWellMap = Collections.emptyMap();
}
//初始化权重时间轴(半小时间隔)
List<DateTime> rangeToList = DateUtil.rangeToList(DateUtil.offsetDay(BusinessConstant.DATE_FLAG, -1), BusinessConstant.DATE_FLAG, DateField.MINUTE, 30);
//遍历
DateTime begin;
Map<Date, List<SpaceOptimizeWellheadDTO>> wellDateMap;
List<SpaceOptimizeWellheadDTO> optimizeWellList;
List<String> plantIds;
List<DynamicQueryPlantPredictedPowerOutput> powerList;
for (SpaceOptimizePeriodDTO period : periodDTOList) {
//取电站ID列表
plantIds = plantIdsMap.get(period.getLineId());
for (int d = 0; d < offset; d++) {
begin = DateUtil.offsetDay(now, d);
//取优化井
if (!wellMap.containsKey(period.getId())) {
continue;
}
wellDateMap = wellMap.get(period.getId());
if (!wellDateMap.containsKey(begin)) {
continue;
}
optimizeWellList = wellDateMap.get(begin);
}
}
System.out.println();
}
}
......@@ -330,8 +352,7 @@ public class SpaceOptimizeBaseService {
//待优化井口:小间开,间抽井,(最小开井时间!=每日运行时间)
CharSequenceUtil.equals(BusinessConstant.INTERVAL_PUMPING_WELL, w.getRunTypeKey()) &&
CharSequenceUtil.equals("0", w.getIntervalTypeKey()) &&
w.getRunDuration().compareTo(w.getMinOpen()) > 0 &&
!(w.getMinOpen().compareTo(BigDecimal.ZERO) == 0 && w.getRunDuration().compareTo(w.getMaxOpen()) == 0)
w.getRunDuration().compareTo(w.getMinOpen()) >= 0
)
);
//取待优化井口并遍历
......
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