Commit eb40624b authored by ZWT's avatar ZWT

feat[零碳项目]: 松原演示

[1.修改井口日用电趋势统计表,增加谷电时段发电时长及谷电占比字段,同时在代码中添加对应字段并修改数据库mapper文件相关业务处理逻辑sql语句;
2.修改线路日用电趋势统计表,增加谷电时段发电时长及谷电占比字段,同时在代码中添加对应字段并修改数据库mapper文件相关业务处理逻辑sql语句;
3.修改井口/线路日用电趋势统计定时任务,增加环境区分,通过读取配置表来获取当前部署环境,针对不同环境进行不同业务处理,同时增加获取每日井口及线路谷电运行时长统计逻辑,完成功能冒烟测试;
4.修改首页总览接口逻辑,增加环境区分,通过读取配置表来获取当前部署环境,针对不同环境进行不同业务处理;
5.修改首页井场实时监控接口逻辑,增加环境区分,通过读取配置表来获取当前部署环境,针对不同环境进行不同业务处理;
6.修改首页光伏实时监控接口逻辑,增加环境区分,通过读取配置表来获取当前部署环境,针对不同环境进行不同业务处理;
7.修改首页井场效果评价接口逻辑,增加环境区分,通过读取配置表来获取当前部署环境,针对不同环境进行不同业务处理;
8.修改首页井场用能分析接口逻辑,增加环境区分,通过读取配置表来获取当前部署环境,针对不同环境进行不同业务处理;
9.修改首页线路详情接口逻辑,增加环境区分,通过读取配置表来获取当前部署环境,针对不同环境进行不同业务处理;
10.修改间开效果评价页累计减碳/累节电能接口逻辑,增加环境区分,通过读取配置表来获取当前部署环境,针对不同环境进行不同业务处理;
]
parent c5eecce4
...@@ -43,6 +43,7 @@ import pps.core.prediction.mapper.*; ...@@ -43,6 +43,7 @@ import pps.core.prediction.mapper.*;
import pps.core.prediction.service.data.energy_consumption_analysis.*; import pps.core.prediction.service.data.energy_consumption_analysis.*;
import pps.core.prediction.service.data.home_page.GetPowerAnalyseOutput; import pps.core.prediction.service.data.home_page.GetPowerAnalyseOutput;
import pps.core.prediction.service.data.third_current_well_condition.GetThirdCurrentWellConditionOutput; import pps.core.prediction.service.data.third_current_well_condition.GetThirdCurrentWellConditionOutput;
import pps.core.prediction.utils.ServiceUtil;
import xstartup.annotation.XService; import xstartup.annotation.XService;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import xstartup.base.XContext; import xstartup.base.XContext;
...@@ -177,8 +178,8 @@ public class EnergyConsumptionAnalysisService { ...@@ -177,8 +178,8 @@ public class EnergyConsumptionAnalysisService {
.collect(Collectors.toList()); .collect(Collectors.toList());
//查本期 //查本期
DateTime endTime = DateUtil.offsetDay(input.getEndTime(), 1); DateTime endTime = DateUtil.offsetDay(input.getEndTime(), 1);
nowMap = this.getPowerMap(context, input.getStartTime(), endTime, collect, 1); nowMap = this.getPowerMap(context, input.getStartTime(), endTime, collect, 1, null);
lastMap = this.getPowerMap(context, DateUtil.offset(input.getStartTime(), DateField.YEAR, -1), DateUtil.offset(endTime, DateField.YEAR, -1), collect, 1); lastMap = this.getPowerMap(context, DateUtil.offset(input.getStartTime(), DateField.YEAR, -1), DateUtil.offset(endTime, DateField.YEAR, -1), collect, 1, null);
} else { } else {
nowMap = Collections.emptyMap(); nowMap = Collections.emptyMap();
lastMap = Collections.emptyMap(); lastMap = Collections.emptyMap();
...@@ -237,8 +238,8 @@ public class EnergyConsumptionAnalysisService { ...@@ -237,8 +238,8 @@ public class EnergyConsumptionAnalysisService {
.collect(Collectors.toList()); .collect(Collectors.toList());
//查本期 //查本期
DateTime endTime = DateUtil.offsetDay(input.getEndTime(), 1); DateTime endTime = DateUtil.offsetDay(input.getEndTime(), 1);
nowMap = this.getPowerMap(context, input.getStartTime(), endTime, collect, 2); nowMap = this.getPowerMap(context, input.getStartTime(), endTime, collect, 2, null);
lastMap = this.getPowerMap(context, DateUtil.offset(input.getStartTime(), DateField.YEAR, -1), DateUtil.offset(endTime, DateField.YEAR, -1), collect, 2); lastMap = this.getPowerMap(context, DateUtil.offset(input.getStartTime(), DateField.YEAR, -1), DateUtil.offset(endTime, DateField.YEAR, -1), collect, 2, null);
} else { } else {
nowMap = Collections.emptyMap(); nowMap = Collections.emptyMap();
lastMap = Collections.emptyMap(); lastMap = Collections.emptyMap();
...@@ -699,33 +700,61 @@ public class EnergyConsumptionAnalysisService { ...@@ -699,33 +700,61 @@ public class EnergyConsumptionAnalysisService {
DateTime end = DateUtil.beginOfDay(DateUtil.yesterday()); DateTime end = DateUtil.beginOfDay(DateUtil.yesterday());
DateTime start = DateUtil.beginOfMonth(end); DateTime start = DateUtil.beginOfMonth(end);
Map<Date, BigDecimal> map; Map<Date, BigDecimal> map;
//区分环境
String oilFieldCode = ServiceUtil.getOilFieldCode(context);
if (CollUtil.isNotEmpty(plantList)) { if (CollUtil.isNotEmpty(plantList)) {
//实际发电量 //实际发电量
map = this.getPowerMap(context, start, DateUtil.offsetDay(end, 1), map = this.getPowerMap(context, start, DateUtil.offsetDay(end, 1),
plantList.stream() plantList.stream()
.map(DynamicQueryBasePowerLinePlantViewOutput::getStationName) .map(DynamicQueryBasePowerLinePlantViewOutput::getStationName)
.collect(Collectors.toList()), 1); .collect(Collectors.toList()), 1, oilFieldCode);
} else { } else {
map = Collections.emptyMap(); map = Collections.emptyMap();
} }
List<DateTime> rangeToList = DateUtil.rangeToList(start, end, DateField.DAY_OF_YEAR); List<DateTime> rangeToList = DateUtil.rangeToList(start, end, DateField.DAY_OF_YEAR);
//封装数据 //封装数据
List<GetEconomicBenefitsOutput> outputs = new ArrayList<>(rangeToList.size()); List<GetEconomicBenefitsOutput> outputs = new ArrayList<>(rangeToList.size());
for (DateTime dateTime : rangeToList) { BigDecimal economicBenefit;
BigDecimal economicBenefit; BigDecimal carbonReduction;
BigDecimal carbonReduction; BigDecimal electricityFees;
if (map.containsKey(dateTime)) { BigDecimal saveElectricity;
economicBenefit = this.calculateEconomicBenefit(map.get(dateTime)); switch (oilFieldCode) {
carbonReduction = this.calculateCarbonReduction(map.get(dateTime)); case BusinessConstant.ENV_CQ:
} else { for (DateTime dateTime : rangeToList) {
economicBenefit = BigDecimal.ZERO; if (map.containsKey(dateTime)) {
carbonReduction = BigDecimal.ZERO; economicBenefit = this.calculateEconomicBenefit(map.get(dateTime));
} carbonReduction = this.calculateCarbonReduction(map.get(dateTime));
outputs.add(GetEconomicBenefitsOutput.builder() } else {
.dateFormat(dateTime) economicBenefit = BigDecimal.ZERO;
.economicBenefit(economicBenefit) carbonReduction = BigDecimal.ZERO;
.carbonReduction(carbonReduction) }
.build()); outputs.add(GetEconomicBenefitsOutput.builder()
.dateFormat(dateTime)
.economicBenefit(economicBenefit)
.carbonReduction(carbonReduction)
.build());
}
break;
case BusinessConstant.ENV_SY:
for (DateTime dateTime : rangeToList) {
if (map.containsKey(dateTime)) {
saveElectricity = map.get(dateTime);
carbonReduction = this.calculateCarbonReduction(map.get(dateTime));
electricityFees = BigDecimal.ZERO;
} else {
saveElectricity = BigDecimal.ZERO;
carbonReduction = BigDecimal.ZERO;
electricityFees = BigDecimal.ZERO;
}
outputs.add(GetEconomicBenefitsOutput.builder()
.dateFormat(dateTime)
.carbonReduction(carbonReduction)
.saveElectricity(saveElectricity)
.electricityFees(electricityFees)
.build());
}
break;
default:
} }
return XListResult.success(outputs); return XListResult.success(outputs);
} }
...@@ -1060,14 +1089,16 @@ public class EnergyConsumptionAnalysisService { ...@@ -1060,14 +1089,16 @@ public class EnergyConsumptionAnalysisService {
* @param endTime 结束时间 * @param endTime 结束时间
* @param stationNameList 车站名称列表 * @param stationNameList 车站名称列表
* @param flag 旗帜 (1_发电,2_用电) * @param flag 旗帜 (1_发电,2_用电)
* @param oilFieldCode 部署环境
* @return {@link Map }<{@link Date }, {@link BigDecimal }> * @return {@link Map }<{@link Date }, {@link BigDecimal }>
*/ */
private Map<Date, BigDecimal> getPowerMap(XContext context, Date startTime, Date endTime, List<String> stationNameList, int flag) { private Map<Date, BigDecimal> getPowerMap(XContext context, Date startTime, Date endTime, List<String> stationNameList, int flag, String oilFieldCode) {
ThirdDailyAccumulationUpdateViewMapper mapper = context.getBean(ThirdDailyAccumulationUpdateViewMapper.class); ThirdDailyAccumulationUpdateViewMapper mapper = context.getBean(ThirdDailyAccumulationUpdateViewMapper.class);
List<ThirdDailyAccumulationUpdateView> powerList = mapper.selectPowerTrendByDate(ThirdDailyAccumulationUpdateView.builder() List<ThirdDailyAccumulationUpdateView> powerList = mapper.selectPowerTrendByDate(ThirdDailyAccumulationUpdateView.builder()
.startTime(startTime) .startTime(startTime)
.endTime(endTime) .endTime(endTime)
.stationNameList(stationNameList) .stationNameList(stationNameList)
.systemSource(oilFieldCode)
.build()); .build());
Map<Date, BigDecimal> powerMap; Map<Date, BigDecimal> powerMap;
if (CollUtil.isNotEmpty(powerList) && CollUtil.isNotEmpty(stationNameList)) { if (CollUtil.isNotEmpty(powerList) && CollUtil.isNotEmpty(stationNameList)) {
......
...@@ -29,4 +29,10 @@ public class GetEconomicBenefitsOutput { ...@@ -29,4 +29,10 @@ public class GetEconomicBenefitsOutput {
@XText("减碳量(吨)") @XText("减碳量(吨)")
private BigDecimal carbonReduction; private BigDecimal carbonReduction;
@XText("电费(元)")
private BigDecimal electricityFees;
@XText("节约电量")
private BigDecimal saveElectricity;
} }
...@@ -144,6 +144,9 @@ ...@@ -144,6 +144,9 @@
<if test="month != null and month != ''"> <if test="month != null and month != ''">
AND MONTH(create_date) = #{month} AND MONTH(create_date) = #{month}
</if> </if>
<if test="systemSource != null">
AND system_source = #{systemSource}
</if>
GROUP BY GROUP BY
DATE( create_date ) DATE( create_date )
</select> </select>
......
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