Commit f9958efb authored by ZWT's avatar ZWT

feat(零碳): 长庆

1.长庆演示首页功能开发,新增采油厂统计信息查询接口,添加线上接口并完成接口冒烟测试;
2.长庆演示首页功能开发,新增线路图查询接口,添加线上接口并完成接口冒烟测试;
3.长庆演示首页功能开发,新增线路详情查询接口,添加线上接口并完成接口冒烟测试;
4.对接第三方接口,完成获取井场日累计数据接口调用,创建数据表,同时生成对应代码,开发定时任务及对外接口,完成第三方数据接入及系统展示功能,添加线上接口文档并完成接口及定时任务冒烟测试;
5.对接第三方接口,完成获取第三方单井平均有功功率接口调用,创建数据表,同时生成对应代码,开发定时任务及对外接口,完成第三方数据接入及系统展示功能,添加线上接口文档并完成接口及定时任务冒烟测试;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 37b9c06f
package pps.core.prediction.service; package pps.core.prediction.service;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.text.CharSequenceUtil;
...@@ -30,13 +31,9 @@ import pps.cloud.system.service.data.GetSysAreaOutput; ...@@ -30,13 +31,9 @@ import pps.cloud.system.service.data.GetSysAreaOutput;
import pps.cloud.system.service.data.GetSysOrganizationViewOutput; import pps.cloud.system.service.data.GetSysOrganizationViewOutput;
import pps.core.common.constant.BusinessConstant; import pps.core.common.constant.BusinessConstant;
import pps.core.prediction.constant.ThirdPartyApiConstant; import pps.core.prediction.constant.ThirdPartyApiConstant;
import pps.core.prediction.entity.EnergyConsumptionAnalysisEnt; import pps.core.prediction.entity.*;
import pps.core.prediction.entity.PredictedPowerView;
import pps.core.prediction.entity.ThirdActivePowerDailyUpdateView;
import pps.core.prediction.enums.BusinessError; import pps.core.prediction.enums.BusinessError;
import pps.core.prediction.mapper.EnergyConsumptionAnalysisMapper; import pps.core.prediction.mapper.*;
import pps.core.prediction.mapper.PredictedPowerViewMapper;
import pps.core.prediction.mapper.ThirdActivePowerDailyUpdateViewMapper;
import pps.core.prediction.service.data.energy_consumption_analysis.DynamicQueryEnergyConsumptionAnalysisViewOutput; import pps.core.prediction.service.data.energy_consumption_analysis.DynamicQueryEnergyConsumptionAnalysisViewOutput;
import pps.core.prediction.service.data.home_page.*; import pps.core.prediction.service.data.home_page.*;
import pps.core.prediction.service.data.third_current_well_condition.GetThirdCurrentWellConditionViewOutput; import pps.core.prediction.service.data.third_current_well_condition.GetThirdCurrentWellConditionViewOutput;
...@@ -216,9 +213,61 @@ public class HomePageService { ...@@ -216,9 +213,61 @@ public class HomePageService {
@XText("首页模块--用能分析") @XText("首页模块--用能分析")
@XApiGet @XApiGet
public XListResult<GetPowerAnalyseOutput> getPowerAnalyse(XContext context, GetStationViewInput input) { public XListResult<GetPowerAnalyseOutput> getPowerAnalyse(XContext context, GetStationViewInput input) {
String stationId = Optional.ofNullable(input.getStationId()) String stationId = input.getStationId();
.orElse("446285aa-ac58-435e-84af-19fc62a8267f"); //查组织下所有井
return XListResult.success(Collections.emptyList()); List<DynamicQueryBaseWellheadOutput> wellList = this.getWellList(context, stationId);
//查前七日用能分析
DateTime endTime = DateUtil.beginOfDay(DateUtil.yesterday());
DateTime startTime = DateUtil.offsetDay(endTime, -6);
//用电功率
ThirdWellAvgActivePowerMapper mapper = context.getBean(ThirdWellAvgActivePowerMapper.class);
Map<Date, BigDecimal> avgMap = mapper.selectList(new QueryWrapper<ThirdWellAvgActivePowerEnt>()
.select("IFNULL( AVG( avg_active_power ), 0 ) AS avg_active_power", "DATE( input_time ) AS input_time")
.lambda()
.in(ThirdWellAvgActivePowerEnt::getWellNumber, wellList.stream()
.map(DynamicQueryBaseWellheadOutput::getWellNumber)
.collect(Collectors.toList()))
.between(ThirdWellAvgActivePowerEnt::getInputTime, startTime, endTime)
.last("GROUP BY DATE( input_time )")
).stream()
.collect(Collectors.toMap(ThirdWellAvgActivePowerEnt::getInputTime, ThirdWellAvgActivePowerEnt::getAvgActivePower));
//查组织下所有电站
List<GetBasePhotovoltaicPlantCloudOutput> plantList = this.getPlantList(context, stationId);
//发电功率
ThirdActivePowerMapper dailyUpdateMapper = context.getBean(ThirdActivePowerMapper.class);
Map<Date, BigDecimal> powerMap = dailyUpdateMapper.selectList(new QueryWrapper<ThirdActivePowerEnt>()
.select("IFNULL( AVG( photovoltaic_power ), 0 ) AS photovoltaic_power", "DATE( create_date ) AS create_date")
.lambda()
.in(ThirdActivePowerEnt::getStationName, plantList.stream()
.map(GetBasePhotovoltaicPlantCloudOutput::getStationName)
.collect(Collectors.toList()))
.between(ThirdActivePowerEnt::getCreateDate, startTime, endTime)
.last("GROUP BY DATE( create_date )")
).stream()
.collect(Collectors.toMap(ThirdActivePowerEnt::getCreateDate, ThirdActivePowerEnt::getPhotovoltaicPower));
//封装结果
List<GetPowerAnalyseOutput> outputs = new ArrayList<>(7);
List<DateTime> rangeToList = DateUtil.rangeToList(startTime, endTime, DateField.DAY_OF_YEAR);
BigDecimal powerGeneration;
BigDecimal powerConsumption;
for (DateTime dateTime : rangeToList) {
if (avgMap.containsKey(dateTime)) {
powerConsumption = avgMap.get(dateTime);
} else {
powerConsumption = BigDecimal.ZERO;
}
if (powerMap.containsKey(dateTime)) {
powerGeneration = powerMap.get(dateTime);
} else {
powerGeneration = BigDecimal.ZERO;
}
outputs.add(GetPowerAnalyseOutput.builder()
.dateFormat(dateTime.toString(BusinessConstant.DATE_FORMAT_DAY))
.powerGeneration(powerGeneration)
.powerConsumption(powerConsumption)
.build());
}
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