Commit d134ca6b authored by ZWT's avatar ZWT

feat(零碳): 长庆

1.修改极短期间开预测定时任务逻辑,解决优化后部分优化结果时间段过短问题;
2.修改心知天气气象数据获取及接收定时任务,解决天气数据通过邮件下载后,部分数据精度丢失问题;
3.修改首页各个接口逻辑,对小数类型字段进行处理,修改首页接口,增加小时保留两位四舍五入逻辑,同时解决线路详情接口部分查询逻辑报错问题;
4.能耗分析模块,能耗概览接口修改,修改查询逻辑,修改数据获取逻辑及绿电占比计算逻辑;
5.能耗分析模块,消纳曲线用电趋势接口修改,修改查询逻辑,修改数据获取逻辑及绿电占比计算逻辑;
6.能耗分析模块,用电详情接口修改,修改查询逻辑,修改数据获取逻辑及绿电占比计算逻辑;
7.修改首页先导实验井间开制度模块接口查询逻辑,解决极短期间开优化修改后没有第一次开井时间标识导致数据查询不出来问题;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent efd40600
...@@ -386,19 +386,43 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService { ...@@ -386,19 +386,43 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService {
} }
DateTime openTimeWeight = weightDuration.getOpenTime(); DateTime openTimeWeight = weightDuration.getOpenTime();
DateTime closeTimeWeight = weightDuration.getCloseTime(); DateTime closeTimeWeight = weightDuration.getCloseTime();
//优化时间段是否包含开井时间段
boolean include = false;
int includeIndex = 0;
//计算排除次数 //计算排除次数
int exceptSize = 0; int exceptSize = 0;
for (int i = 0; i < closeList.size(); i++) { for (int i = 0; i < closeList.size(); i++) {
SpaceOptimizeDurationDTO close = closeList.get(i); SpaceOptimizeDurationDTO close = closeList.get(i);
Date openTime = close.getOpenTime(); Date openTime = close.getOpenTime();
Date closeTime = close.getCloseTime(); Date closeTime = close.getCloseTime();
if (DateUtil.compare(openTime, openTimeWeight) <= 0 && DateUtil.compare(closeTime, closeTimeWeight) >= 0) { if (DateUtil.compare(openTime, openTimeWeight) <= 0 && DateUtil.compare(closeTimeWeight, closeTime) >= 0) {
//可优化时间段在开井范围内跳过 //可优化时间段在开井范围内
include = true; if (i > 0) {
includeIndex = i; //判断开井时间是否小于上一段关井时间
if (DateUtil.compare(openTimeWeight, closeList.get(i - 1).getCloseTime()) < 0) {
//如果小于上一段关井时间,修改当前开井时间
openTimeWeight = DateUtil.date(closeList.get(i - 1).getCloseTime());
}
}
//取后一位
if (i + 1 < closeList.size()) {
//判断关井时间是否大于下一段开井时间
if (DateUtil.compare(closeTimeWeight, closeList.get(i + 1).getOpenTime()) > 0) {
//如果大于下一段开井时间,修改当前关井时间
closeTimeWeight = DateUtil.date(closeList.get(i + 1).getOpenTime());
}
}
//这里需要把时长补回去再计算
supplementaryTime += close.getDuration();
//重新计算结束时间及总开井时长
long between = DateUtil.between(openTimeWeight, closeTimeWeight, DateUnit.MINUTE);
if (between >= supplementaryTime) {
//从后往前计算开井时间
close.setDuration(supplementaryTime);
supplementaryTime = 0;
} else {
close.setDuration(between);
supplementaryTime -= between;
}
close.setOpenTime(openTimeWeight);
close.setCloseTime(closeTimeWeight);
break; break;
} }
if (DateUtil.compare(openTime, closeTimeWeight) >= 0 || DateUtil.compare(closeTime, openTimeWeight) <= 0) { if (DateUtil.compare(openTime, closeTimeWeight) >= 0 || DateUtil.compare(closeTime, openTimeWeight) <= 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