Commit f7cbe3f7 authored by ZWT's avatar ZWT

feat(零碳): 长庆演示系统新增功能

1.修改第三方日累计数据推送表表结构,增加日累计储能放电量字段,同时修改代码对应实体及mapper文件,修改相关接口增加储能日累计放电量接收逻辑;
2.修改首页井场收益分析模块接口,修改获取储能累计放电量逻辑;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent d91e7a72
......@@ -105,8 +105,14 @@ public class BusinessConstant {
*/
public static final Integer TEN = 10;
/**
* 025
*/
public static final BigDecimal BIG_DECIMAL_025 = BigDecimal.valueOf(0.25);
/**
* 六十
* 60
*/
public static final BigDecimal BIG_DECIMAL_60 = BigDecimal.valueOf(60);
......
......@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.CharSequenceUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import pps.cloud.prediction.service.IThirdPowerCloudService;
import pps.cloud.prediction.service.data.third_active_power.GetThirdActivePowerInput;
......@@ -60,26 +61,53 @@ public class DailyElectricityTrendCloudServiceImpl implements IDailyElectricityT
Map<String, BigDecimal> dailyUpdatePowerMap = this.getDailyUpdatePowerMap(context, yesterday);
//查去年同期用电趋势
Map<String, List<LineDailyElectricityTrendEnt>> lastElectricityTrendMap = this.getLastElectricityTrendMap(context, yesterday);
//时间区间
List<DateTime> rangeToList = DateUtil.rangeToList(BusinessConstant.DATE_FLAG_BEGIN, BusinessConstant.DATE_FLAG, DateField.MINUTE, 15);
//用电趋势计算结果
List<LineDailyElectricityTrendView> saveList = new ArrayList<>(powerMap.size());
BigDecimal currentServiceRating;
List<GetThirdActivePowerOutput> thirdActivePowerList;
Map<Integer, List<SpaceOptimizeShortDurationView>> startSeqMap;
List<SpaceOptimizeShortDurationView> durationList;
GetThirdActivePowerOutput thirdActivePower;
//遍历全量电站
for (String stationName : powerMap.keySet()) {
//取存在的间开
if (lineMap.containsKey(stationName)) {
//每15分钟有功功率
thirdActivePowerList = powerMap.get(stationName);
//按照启动顺序分组
startSeqMap = lineMap.get(stationName).stream()
.collect(Collectors.groupingBy(SpaceOptimizeShortDurationView::getStartSeq));
//光伏日累计用电(绿电)
BigDecimal photovoltaicPower = BigDecimal.ZERO;
//按启动顺序取时间段列表
BigDecimal serviceRating = BigDecimal.ZERO;
for (int i = 1; i <= startSeqMap.size(); i++) {
durationList = startSeqMap.get(i);
//当前井运行功率
currentServiceRating = durationList.get(0).getServiceRating();
//累加运行功率
serviceRating.add(durationList.get(0).getServiceRating());
System.out.println();
serviceRating.add(currentServiceRating);
//记录每一次计算结束位置
int index = 0;
for (SpaceOptimizeShortDurationView duration : durationList) {
//时间转换
DateTime openWellTime = DateUtil.parse(duration.getOpenWellTime() + BusinessConstant.INITIALIZATION_SECOND, BusinessConstant.TIME_FORMAT);
DateTime closeWellTime;
if (CharSequenceUtil.equals(duration.getCloseWellTime(), BusinessConstant.END_OF_DAY_TIME)) {
closeWellTime = BusinessConstant.DATE_FLAG;
} else {
closeWellTime = DateUtil.parse(duration.getCloseWellTime() + BusinessConstant.INITIALIZATION_SECOND, BusinessConstant.TIME_FORMAT);
}
//遍历功率
for (int i1 = index; i1 < thirdActivePowerList.size(); i1++) {
thirdActivePower = thirdActivePowerList.get(i1);
//在时间范围内,并且总运行功率满足运行
if (DateUtil.isIn(thirdActivePower.getCreateDate(), openWellTime, closeWellTime) && thirdActivePower.getPhotovoltaicPower().compareTo(serviceRating) >= 0) {
//单井绿电用电:运行功率*绿电阶段开井时间(0.25h)
photovoltaicPower = photovoltaicPower.add(currentServiceRating.multiply(BusinessConstant.BIG_DECIMAL_025));
}
}
}
}
}
}
......
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