Commit f0d2b485 authored by ZWT's avatar ZWT

feat(吉林演示): 松原

1.排查并修复各时段间开优化功能执行异常导致未执行间开优化问题;
2.排查并修复15天间开优化功能执行后,优化结果时间段展示错乱问题;
3.排查并修复光伏功率预测展示功能,实际功率未展示问题;
4.排查并修复天气数据获取服务,数据处理后入库缺少数据问题;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 4a5bef09
...@@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.github.pagehelper.page.PageMethod; import com.github.pagehelper.page.PageMethod;
import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineInput;
import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineOutput; import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineOutput;
import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantInput; import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantInput;
import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantViewOutput; import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantViewOutput;
...@@ -28,7 +29,6 @@ import pps.cloud.space.service.data.line_daily_electricity_trend.GetValleyElectr ...@@ -28,7 +29,6 @@ import pps.cloud.space.service.data.line_daily_electricity_trend.GetValleyElectr
import pps.cloud.space.service.data.space_institution_wellhead.GetSpaceInstitutionWellheadInput; import pps.cloud.space.service.data.space_institution_wellhead.GetSpaceInstitutionWellheadInput;
import pps.cloud.space.service.data.space_institution_wellhead.GetSpaceInstitutionWellheadOutput; import pps.cloud.space.service.data.space_institution_wellhead.GetSpaceInstitutionWellheadOutput;
import pps.cloud.space.service.data.space_optimize_short_wellhead.*; import pps.cloud.space.service.data.space_optimize_short_wellhead.*;
import pps.cloud.space.service.data.well_daily_electricity_trend.GetWellDailyAverageInput;
import pps.cloud.space.service.data.well_daily_electricity_trend.GetWellDailyElectricityTrendInput; import pps.cloud.space.service.data.well_daily_electricity_trend.GetWellDailyElectricityTrendInput;
import pps.cloud.space.service.data.well_daily_electricity_trend.GetWellDailyElectricityTrendOutput; import pps.cloud.space.service.data.well_daily_electricity_trend.GetWellDailyElectricityTrendOutput;
import pps.core.common.constant.BusinessConstant; import pps.core.common.constant.BusinessConstant;
...@@ -245,11 +245,7 @@ public class EnergyConsumptionAnalysisService { ...@@ -245,11 +245,7 @@ public class EnergyConsumptionAnalysisService {
if (ObjectUtil.isNotNull(statistics)) { if (ObjectUtil.isNotNull(statistics)) {
output.setAccumulatePowerGeneration(statistics.getPhotovoltaicPower().setScale(2, RoundingMode.HALF_UP)); output.setAccumulatePowerGeneration(statistics.getPhotovoltaicPower().setScale(2, RoundingMode.HALF_UP));
output.setDailyElectricityConsumption(statistics.getDailyElectricityConsumption().setScale(2, RoundingMode.HALF_UP)); output.setDailyElectricityConsumption(statistics.getDailyElectricityConsumption().setScale(2, RoundingMode.HALF_UP));
output.setEconomicBenefit(statistics.getPhotovoltaicPower().multiply(BigDecimal.valueOf(0.65)) output.setEconomicBenefit(ServiceUtil.getEconomicBenefit(statistics.getPhotovoltaicPower(), BusinessConstant.ENV_SY));
.subtract(statistics.getPhotovoltaicPower()
.multiply(BigDecimal.valueOf(0.28)))
.setScale(2, RoundingMode.HALF_UP)
);
output.setCarbonReduction(ServiceUtil.calculateCarbonReductionTon(statistics.getPhotovoltaicPower())); output.setCarbonReduction(ServiceUtil.calculateCarbonReductionTon(statistics.getPhotovoltaicPower()));
} }
return XSingleResult.success(output); return XSingleResult.success(output);
...@@ -1131,6 +1127,7 @@ public class EnergyConsumptionAnalysisService { ...@@ -1131,6 +1127,7 @@ public class EnergyConsumptionAnalysisService {
powerMap = nowMapper.selectEnergyUseCurve(ThirdActivePowerDailyUpdateView.builder() powerMap = nowMapper.selectEnergyUseCurve(ThirdActivePowerDailyUpdateView.builder()
.stationIds(plantIds) .stationIds(plantIds)
.saveDate(today) .saveDate(today)
.createDate(DateUtil.date())
.build()).stream() .build()).stream()
.collect(Collectors.toMap(ThirdActivePowerDailyUpdateView::getHourNumber, ThirdActivePowerDailyUpdateView::getPhotovoltaicPower)); .collect(Collectors.toMap(ThirdActivePowerDailyUpdateView::getHourNumber, ThirdActivePowerDailyUpdateView::getPhotovoltaicPower));
} else { } else {
...@@ -1200,7 +1197,7 @@ public class EnergyConsumptionAnalysisService { ...@@ -1200,7 +1197,7 @@ public class EnergyConsumptionAnalysisService {
accumulatePowerGeneration = analysisEnt.getPhotovoltaicPower(); accumulatePowerGeneration = analysisEnt.getPhotovoltaicPower();
dailyElectricityConsumption = analysisEnt.getDailyElectricityConsumption(); dailyElectricityConsumption = analysisEnt.getDailyElectricityConsumption();
greenElectricityRate = BaseUtils.getRate(analysisEnt.getInPlaceConsumption(), analysisEnt.getDailyElectricityConsumption()); greenElectricityRate = BaseUtils.getRate(analysisEnt.getInPlaceConsumption(), analysisEnt.getDailyElectricityConsumption());
economicBenefit = this.calculateEconomicBenefit(analysisEnt.getPhotovoltaicPower()); economicBenefit = ServiceUtil.getEconomicBenefit(analysisEnt.getPhotovoltaicPower(), BusinessConstant.ENV_CQ);
carbonReduction = ServiceUtil.calculateCarbonReduction(analysisEnt.getPhotovoltaicPower()); carbonReduction = ServiceUtil.calculateCarbonReduction(analysisEnt.getPhotovoltaicPower());
} }
ISpaceOptimizeShortCloudService service = context.getBean(ISpaceOptimizeShortCloudService.class); ISpaceOptimizeShortCloudService service = context.getBean(ISpaceOptimizeShortCloudService.class);
...@@ -1270,7 +1267,7 @@ public class EnergyConsumptionAnalysisService { ...@@ -1270,7 +1267,7 @@ public class EnergyConsumptionAnalysisService {
case BusinessConstant.ENV_CQ: case BusinessConstant.ENV_CQ:
for (DateTime dateTime : rangeToList) { for (DateTime dateTime : rangeToList) {
if (map.containsKey(dateTime)) { if (map.containsKey(dateTime)) {
economicBenefit = this.calculateEconomicBenefit(map.get(dateTime)); economicBenefit = ServiceUtil.getEconomicBenefit(map.get(dateTime), oilFieldCode);
carbonReduction = ServiceUtil.calculateCarbonReduction(map.get(dateTime)); carbonReduction = ServiceUtil.calculateCarbonReduction(map.get(dateTime));
} else { } else {
economicBenefit = BigDecimal.ZERO; economicBenefit = BigDecimal.ZERO;
...@@ -1288,7 +1285,7 @@ public class EnergyConsumptionAnalysisService { ...@@ -1288,7 +1285,7 @@ public class EnergyConsumptionAnalysisService {
if (map.containsKey(dateTime)) { if (map.containsKey(dateTime)) {
saveElectricity = map.get(dateTime); saveElectricity = map.get(dateTime);
carbonReduction = ServiceUtil.calculateCarbonReduction(map.get(dateTime)); carbonReduction = ServiceUtil.calculateCarbonReduction(map.get(dateTime));
electricityFees = this.calculateElectricityFees(map.get(dateTime)); electricityFees = ServiceUtil.getEconomicBenefit(map.get(dateTime), oilFieldCode);
} else { } else {
saveElectricity = BigDecimal.ZERO; saveElectricity = BigDecimal.ZERO;
carbonReduction = BigDecimal.ZERO; carbonReduction = BigDecimal.ZERO;
...@@ -1442,13 +1439,24 @@ public class EnergyConsumptionAnalysisService { ...@@ -1442,13 +1439,24 @@ public class EnergyConsumptionAnalysisService {
BigDecimal electricityConsumption = BigDecimal.ZERO; BigDecimal electricityConsumption = BigDecimal.ZERO;
BigDecimal carbonReduction = BigDecimal.ZERO; BigDecimal carbonReduction = BigDecimal.ZERO;
BigDecimal economicBenefit = BigDecimal.ZERO; BigDecimal economicBenefit = BigDecimal.ZERO;
//查电站关联井口
DynamicQueryBasePowerLineWellheadInput param = new DynamicQueryBasePowerLineWellheadInput();
DynamicQueryBasePowerLineInput lineParam = new DynamicQueryBasePowerLineInput();
if (CharSequenceUtil.isNotBlank(input.getStationName())) {
//用stationName匹配电站
param.setLineName(input.getStationName());
lineParam.setLineNames(CollUtil.list(false, input.getStationName()));
} else {
List<String> orgIdsByPath = ServiceUtil.getOrgIdsByPath(context, input.getOuId()); List<String> orgIdsByPath = ServiceUtil.getOrgIdsByPath(context, input.getOuId());
String oilFieldCode = ServiceUtil.getOilFieldCode(context); param.setOuIds(orgIdsByPath);
List<DynamicQueryBaseWellheadOutput> wellList = this.getWellListByOuId(context, orgIdsByPath); lineParam.setOuIdList(orgIdsByPath);
if (CollUtil.isNotEmpty(wellList)) { }
sumWellNumber = wellList.size(); List<DynamicQueryBasePowerLineWellheadViewOutput> wellheadList = ServiceUtil.getPowerLineWellheadList(context, param);
List<String> set = new ArrayList<>(wellList.size()); //计算井口数
for (DynamicQueryBaseWellheadOutput out : wellList) { if (CollUtil.isNotEmpty(wellheadList)) {
sumWellNumber = wellheadList.size();
List<String> set = new ArrayList<>(wellheadList.size());
for (DynamicQueryBasePowerLineWellheadViewOutput out : wellheadList) {
set.add(out.getWellNumber()); set.add(out.getWellNumber());
if (CharSequenceUtil.equals(out.getRunTypeKey(), BusinessConstant.INTERVAL_PUMPING_WELL)) { if (CharSequenceUtil.equals(out.getRunTypeKey(), BusinessConstant.INTERVAL_PUMPING_WELL)) {
interOpenWellNumber++; interOpenWellNumber++;
...@@ -1456,33 +1464,25 @@ public class EnergyConsumptionAnalysisService { ...@@ -1456,33 +1464,25 @@ public class EnergyConsumptionAnalysisService {
normallyOpenWellNumber++; normallyOpenWellNumber++;
} }
} }
//日均产液量
IDailyElectricityTrendCloudService service = context.getBean(IDailyElectricityTrendCloudService.class);
XSingleResult<GetWellDailyElectricityTrendOutput> wellDailyAverageResult = service.queryWellDailyAverage(context, GetWellDailyAverageInput.builder()
.systemSource(oilFieldCode)
.wellNumberList(set)
.build());
wellDailyAverageResult.throwIfFail();
GetWellDailyElectricityTrendOutput result = wellDailyAverageResult.getResult();
liquidProduction = result.getDailyLiquidProduction();
electricityConsumption = result.getDailyElectricityConsumption();
} }
//累计数据 //查电站列表,计算统计数据
List<DynamicQueryBasePowerLinePlantViewOutput> plantList = ServiceUtil.getPowerLinePlantList(context, DynamicQueryBasePowerLinePlantInput.builder() List<DynamicQueryBasePowerLineOutput> powerLineList = ServiceUtil.getPowerLineList(context, lineParam);
.ouIds(orgIdsByPath) if (CollUtil.isNotEmpty(powerLineList)) {
.build()); String oilFieldCode = ServiceUtil.getOilFieldCode(context);
if (CollUtil.isNotEmpty(plantList)) { Set<String> lineNameSet = powerLineList.stream().map(DynamicQueryBasePowerLineOutput::getLineName).collect(Collectors.toSet());
ThirdDailyAccumulationUpdateMapper mapper = context.getBean(ThirdDailyAccumulationUpdateMapper.class); StationDailyProductionSituationMapper mapper = context.getBean(StationDailyProductionSituationMapper.class);
ThirdDailyAccumulationUpdateEnt analysisEnt = mapper.selectOne(new QueryWrapper<ThirdDailyAccumulationUpdateEnt>() StationDailyProductionSituationEnt ent = mapper.selectOne(new QueryWrapper<StationDailyProductionSituationEnt>()
.select("IFNULL( SUM( photovoltaic_power ), 0 ) AS photovoltaic_power") .select("IFNULL( ROUND( AVG( daily_electricity_consumption ), 2 ), 0 ) AS daily_electricity_consumption",
"IFNULL( ROUND( AVG( daily_liquid_production ), 2 ), 0 ) AS daily_liquid_production",
"IFNULL( ROUND( SUM( photovoltaic_power ), 2 ), 0 ) AS photovoltaic_power"
)
.lambda() .lambda()
.eq(ThirdDailyAccumulationUpdateEnt::getSystemSource, oilFieldCode) .in(StationDailyProductionSituationEnt::getStationName, lineNameSet)
.in(ThirdDailyAccumulationUpdateEnt::getStationName, plantList.stream()
.map(DynamicQueryBasePowerLinePlantViewOutput::getStationName)
.collect(Collectors.toList()))
); );
economicBenefit = this.calculateEconomicBenefit(analysisEnt.getPhotovoltaicPower()); liquidProduction = ent.getDailyLiquidProduction();
carbonReduction = ServiceUtil.calculateCarbonReduction(analysisEnt.getPhotovoltaicPower()); electricityConsumption = ent.getDailyElectricityConsumption();
economicBenefit = ServiceUtil.getEconomicBenefit(ent.getPhotovoltaicPower(), oilFieldCode);
carbonReduction = ServiceUtil.calculateCarbonReduction(ent.getPhotovoltaicPower());
} }
return XSingleResult.success(GetWellProductionStatusOutput.builder() return XSingleResult.success(GetWellProductionStatusOutput.builder()
.sumWellNumber(sumWellNumber) .sumWellNumber(sumWellNumber)
...@@ -1797,26 +1797,6 @@ public class EnergyConsumptionAnalysisService { ...@@ -1797,26 +1797,6 @@ public class EnergyConsumptionAnalysisService {
return collect; return collect;
} }
/**
* 计算经济效益
*
* @param photovoltaicPower 光伏发电
* @return {@link BigDecimal }
*/
private BigDecimal calculateEconomicBenefit(BigDecimal photovoltaicPower) {
BigDecimal economicBenefit;
if (photovoltaicPower.compareTo(BigDecimal.ZERO) > 0) {
economicBenefit = photovoltaicPower
.multiply(BigDecimal.valueOf(0.6))
.subtract(photovoltaicPower
.multiply(BigDecimal.valueOf(0.28)))
.setScale(2, RoundingMode.HALF_UP);
} else {
economicBenefit = BigDecimal.ZERO;
}
return economicBenefit;
}
/** /**
* 计算电费 * 计算电费
* *
......
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