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