Commit bf028ae6 authored by ZWT's avatar ZWT

feat(零碳): 长庆

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

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 6041b594
......@@ -427,52 +427,42 @@ public class HomePageService {
@XApiGet
public XSingleResult<GetIncomeAnalysisOutput> getIncomeAnalysis(XContext context, GetStationViewInput input) {
String stationId = input.getStationId();
List<String> lineIdList = this.getLineList(context, stationId, null, null).stream()
.map(DynamicQueryBasePowerLineOutput::getId)
List<String> lineNameList = this.getLineList(context, stationId, null, null).stream()
.map(DynamicQueryBasePowerLineOutput::getLineName)
.collect(Collectors.toList());
DateTime yesterday = DateUtil.beginOfDay(DateUtil.yesterday());
EnergyConsumptionAnalysisMapper mapper = context.getBean(EnergyConsumptionAnalysisMapper.class);
EnergyConsumptionAnalysisEnt analysisEnt = mapper.selectOne(new QueryWrapper<EnergyConsumptionAnalysisEnt>()
.select("IFNULL( SUM( power_generation ), 0 ) AS power_generation",
"IFNULL( SUM( power_consumption ), 0 ) AS power_consumption")
ThirdDailyAccumulationUpdateMapper analysisMapper = context.getBean(ThirdDailyAccumulationUpdateMapper.class);
ThirdDailyAccumulationUpdateEnt analysisEnt = analysisMapper.selectOne(new QueryWrapper<ThirdDailyAccumulationUpdateEnt>()
.select("IFNULL( SUM( photovoltaic_power ), 0 ) AS photovoltaic_power",
"IFNULL( SUM( daily_electricity_consumption ), 0 ) AS daily_electricity_consumption",
"IFNULL( SUM( daily_liquid_production ), 0 ) AS daily_liquid_production",
"IFNULL( SUM( in_place_consumption ), 0 ) AS in_place_consumption")
.lambda()
.in(EnergyConsumptionAnalysisEnt::getLineId, lineIdList)
.eq(EnergyConsumptionAnalysisEnt::getDataDate, yesterday)
.in(ThirdDailyAccumulationUpdateEnt::getStationName, lineNameList)
);
//发电量
BigDecimal powerGeneration = analysisEnt.getPowerGeneration()
.setScale(2, BigDecimal.ROUND_HALF_UP);
BigDecimal powerGeneration = analysisEnt.getPhotovoltaicPower()
.divide(BigDecimal.valueOf(10000), 2, RoundingMode.HALF_UP);
//累计减碳量
BigDecimal carbonReduction = analysisEnt.getPowerGeneration()
BigDecimal carbonReduction = analysisEnt.getPhotovoltaicPower()
.multiply(BigDecimal.valueOf(6.67))
.divide(BigDecimal.valueOf(10000), 2, RoundingMode.HALF_UP);
//经济效益
BigDecimal economicBenefit = analysisEnt.getPowerGeneration()
BigDecimal economicBenefit = analysisEnt.getPhotovoltaicPower()
.multiply(BigDecimal.valueOf(0.6))
.subtract(analysisEnt.getPowerGeneration()
.subtract(analysisEnt.getPhotovoltaicPower()
.multiply(BigDecimal.valueOf(0.28)))
.setScale(2, BigDecimal.ROUND_HALF_UP);
.divide(BigDecimal.valueOf(10000), 2, RoundingMode.HALF_UP);
//绿电占比:累计就地消纳量/累计井场用电量*100%
BigDecimal greenElectricityRate = this.getAbsorptionRate(analysisEnt.getPowerGeneration(), analysisEnt.getPowerConsumption());
BigDecimal bigDecimal = new BigDecimal(100);
if (greenElectricityRate.compareTo(bigDecimal) > 0) {
greenElectricityRate = bigDecimal;
}
//查消纳量
ThirdDailyAccumulationMapper bean = context.getBean(ThirdDailyAccumulationMapper.class);
ThirdDailyAccumulationEnt accumulationEnt = bean.selectOne(new QueryWrapper<ThirdDailyAccumulationEnt>()
.select("IFNULL( SUM( in_place_consumption ), 0 ) AS in_place_consumption")
.lambda()
.in(ThirdDailyAccumulationEnt::getStationId, this.getPlantList(context, stationId, null).stream()
.map(GetBasePhotovoltaicPlantCloudOutput::getId)
.collect(Collectors.toList()))
.eq(ThirdDailyAccumulationEnt::getSaveDate, yesterday)
);
BigDecimal inPlaceConsumption = Optional.ofNullable(accumulationEnt.getInPlaceConsumption())
.orElse(BigDecimal.ZERO);
BigDecimal greenElectricityRate = analysisEnt.getInPlaceConsumption()
.multiply(BigDecimal.valueOf(100))
.divide(analysisEnt.getDailyElectricityConsumption(), 2, RoundingMode.HALF_UP);
//余电上网:发电量-就地消纳量
BigDecimal avoidPeakRate = analysisEnt.getPhotovoltaicPower()
.subtract(analysisEnt.getInPlaceConsumption())
.divide(BigDecimal.valueOf(10000), 2, RoundingMode.HALF_UP);
return XSingleResult.success(GetIncomeAnalysisOutput.builder()
.absorptionRate(BigDecimal.valueOf(100))
.avoidPeakRate(powerGeneration.subtract(inPlaceConsumption).setScale(2, BigDecimal.ROUND_HALF_UP))
.avoidPeakRate(avoidPeakRate)
.energyStorageCapacity(BigDecimal.ZERO)
.powerGeneration(powerGeneration)
.greenElectricityRate(greenElectricityRate)
......
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