Commit 34dccdc4 authored by ZWT's avatar ZWT

feat(吉林演示): 松原

1.排查并修复各时段间开优化功能执行异常导致未执行间开优化问题;
2.排查并修复15天间开优化功能执行后,优化结果时间段展示错乱问题;
3.排查并修复光伏功率预测展示功能,实际功率未展示问题;
4.排查并修复天气数据获取服务,数据处理后入库缺少数据问题;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent d6bd0fc0
......@@ -1586,9 +1586,9 @@ public class SpaceOptimizeBaseService {
}
//第一次启动
if (d == 0) {
DateTime endTimeOptimize;
//第一口井的启动时间
if (isFirstWellhead) {
String startTimeString;
//通过线路ID和月份获取市电峰谷策略明细配置
List<GetBasePriceStrategyDetailOutput> strategyDetailList = ServiceUtil.getStrategyDetailList(context,
GetBasePriceStrategyDetailInput.builder()
......@@ -1606,43 +1606,51 @@ public class SpaceOptimizeBaseService {
//第一口井启动时间
firstStartTime = DateUtil.parse(strategyDetailOutput.getStartTime() + BusinessConstant.INITIALIZATION_SECOND, BusinessConstant.TIME_FORMAT);
firstEndTime = DateUtil.parse(strategyDetailOutput.getEndTime() + BusinessConstant.INITIALIZATION_SECOND, BusinessConstant.TIME_FORMAT);
startTimeString = strategyDetailOutput.getStartTime();
} else {
//没有谷电,不优化
firstStartTime = startTime;
firstEndTime = endTime;
startTimeString = duration.getOpenWellTime();
}
} else {
//没有配置,不优化
firstStartTime = startTime;
firstEndTime = endTime;
startTimeString = duration.getOpenWellTime();
}
//计算优化后的时间差优化后的第一口井开井时间-优化前第一次开井时间
int startDuration = (int) startTime.between(endTime, DateUnit.MINUTE);
//第一次关井时间按照启动时长顺延
DateTime endTimeOptimize = firstStartTime.offsetNew(DateField.MINUTE, startDuration);
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
startTimeString, endTimeOptimize.toString(BusinessConstant.MINUTES_FORMAT),
BusinessConstant.ZERO, optimizeDate
);
//取时间间隔(分钟)
between = BaseUtils.getTimeDifferenceMinute(endTimeOptimize, endTime);
endTimeOptimize = firstStartTime.offsetNew(DateField.MINUTE, startDuration);
}//其它井口的第一次启动时间
else {
//其它井启动时间:第一口井启动时间+启动间隔
DateTime startTimeOffset = DateUtil.offsetMinute(firstStartTime, startInterval);
DateTime endTimeOffset = DateUtil.offsetMinute(firstEndTime, startInterval);
//取时间间隔(分钟)
between = BaseUtils.getTimeDifferenceMinute(endTimeOffset, endTime);
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
startTimeOffset.toString(BusinessConstant.MINUTES_FORMAT), endTimeOffset.toString(BusinessConstant.MINUTES_FORMAT),
BusinessConstant.ONE, optimizeDate
);
endTimeOptimize = DateUtil.offsetMinute(firstEndTime, startInterval);
//修改启动时间
firstStartTime = startTimeOffset;
}
//计算优化时间段
if (firstStartTime.compareTo(BusinessConstant.DATE_FLAG) < 0 && endTimeOptimize.compareTo(BusinessConstant.DATE_FLAG) > 0) {
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
firstStartTime.toString(BusinessConstant.MINUTES_FORMAT), BusinessConstant.END_OF_DAY_TIME,
BusinessConstant.ZERO, optimizeDate
);
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
BusinessConstant.START_OF_DAY_TIME, endTimeOptimize.toString(BusinessConstant.MINUTES_FORMAT),
BusinessConstant.ZERO, optimizeDate
);
} else if (endTimeOptimize.compareTo(BusinessConstant.DATE_FLAG) == 0) {
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
firstStartTime.toString(BusinessConstant.MINUTES_FORMAT), BusinessConstant.END_OF_DAY_TIME,
BusinessConstant.ZERO, optimizeDate
);
} else {
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
firstStartTime.toString(BusinessConstant.MINUTES_FORMAT), endTimeOptimize.toString(BusinessConstant.MINUTES_FORMAT),
BusinessConstant.ZERO, optimizeDate
);
}
//取时间间隔(分钟)
between = BaseUtils.getTimeDifferenceMinute(endTimeOptimize, endTime);
} else {
DateTime startOffset = DateUtil.offsetMinute(startTime, between);
DateTime endOffset = DateUtil.offsetMinute(endTime, between);
......
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