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