Commit 0e5b44f6 authored by ZWT's avatar ZWT

feat(吉林演示): 松原

1.修改天气数据抽取定时任务,解决部分历史数据丢失问题;
2.修改第三方风机电站真实数据定时任务,修改代码逻辑,解决时间未按照15分钟间隔推送问题;
3.修改第三方风机电站模拟数据定时任务,解决时间日期格式错误导致数据重复问题;
4.新建第三方风力发电数据(每日最新数据)表,同时生成对应代码,修改第三方风机电站模拟数据定时任务,增加每日最新数据更新逻辑;
5.修改风资源监控页面场站发电量统计接口,增加模拟数据查询逻辑,修改代码完成冒烟测试;
6.修改风资源监控页面历史风速接口,增加模拟数据查询逻辑,修改代码完成冒烟测试;
7.修改风资源监控页面历史风向接口,增加模拟数据查询逻辑,修改代码完成冒烟测试;
8.修改模拟数据历史表和每日最新数据表,增加发电量字段,同时修改对应代码增加字段并修改模拟数据生成定时任务,增加生成发电量逻辑并添加插入历史表和最新数据表逻辑;
9.修改风资源监控页面风电站运行状态接口,增加模拟数据查询逻辑,修改代码完成冒烟测试;
10.修改风资源监控页面发电功率列表接口,增加模拟数据查询逻辑,修改代码完成冒烟测试;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 92d83e48
...@@ -492,6 +492,7 @@ public class WindPredictionFutureService { ...@@ -492,6 +492,7 @@ public class WindPredictionFutureService {
/** /**
* 发电功率列表 * 发电功率列表
* todo 模拟数据
* *
* @param context 上下文 * @param context 上下文
* @param input 输入 * @param input 输入
...@@ -508,18 +509,30 @@ public class WindPredictionFutureService { ...@@ -508,18 +509,30 @@ public class WindPredictionFutureService {
//计算时间 //计算时间
DateTime now = DateUtil.date(); DateTime now = DateUtil.date();
DateTime beginTime = DateUtil.beginOfDay(now); DateTime beginTime = DateUtil.beginOfDay(now);
//todo 通过电站名查实际发电量
//封装 //封装
DateTime endTime = DateUtil.offsetDay(beginTime, BusinessConstant.ONE); DateTime endTime = DateUtil.offsetDay(beginTime, BusinessConstant.ONE);
List<DateTime> rangeToList = DateUtil.rangeToList(beginTime, endTime, DateField.MINUTE, 15); //查数据
List<GetWindActivePowerOutput> outputs = new ArrayList<>(rangeToList.size()); ThirdWindPowerGenerationMapper generationMapper = context.getBean(ThirdWindPowerGenerationMapper.class);
for (DateTime dateTime : rangeToList) { List<ThirdWindPowerGenerationEnt> list = generationMapper.selectList(new QueryWrapper<ThirdWindPowerGenerationEnt>()
outputs.add( .select("collect_time", "IFNULL( SUM( actual_power ), 0 ) AS actual_power")
GetWindActivePowerOutput.builder() .lambda()
.dataTime(dateTime) .between(ThirdWindPowerGenerationEnt::getCollectTime, beginTime, endTime)
.activePower(BigDecimal.ZERO) .eq(ThirdWindPowerGenerationEnt::getStationId, input.getStationId())
.build() .groupBy(ThirdWindPowerGenerationEnt::getCollectTime)
); );
List<GetWindActivePowerOutput> outputs = new ArrayList<>();
if (CollUtil.isNotEmpty(list)) {
Map<Date, BigDecimal> map = list.stream()
.collect(Collectors.toMap(ThirdWindPowerGenerationEnt::getCollectTime, ThirdWindPowerGenerationEnt::getActualPower));
List<DateTime> rangeToList = DateUtil.rangeToList(beginTime, endTime, DateField.MINUTE, 15);
for (DateTime dateTime : rangeToList) {
outputs.add(
GetWindActivePowerOutput.builder()
.dataTime(dateTime)
.activePower(map.getOrDefault(dateTime, BigDecimal.ZERO))
.build()
);
}
} }
return XListResult.success(outputs); return XListResult.success(outputs);
} }
......
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