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.*;
import pps.core.prediction.service.data.energy_consumption_analysis.*;
import pps.core.prediction.service.data.home_page.GetPowerAnalyseOutput;
import pps.core.prediction.service.data.third_current_well_condition.GetThirdCurrentWellConditionOutput;
import pps.core.prediction.utils.ServiceUtil;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
......@@ -177,8 +178,8 @@ public class EnergyConsumptionAnalysisService {
.collect(Collectors.toList());
//查本期
DateTime endTime = DateUtil.offsetDay(input.getEndTime(), 1);
nowMap = this.getPowerMap(context, input.getStartTime(), endTime, collect, 1);
lastMap = this.getPowerMap(context, DateUtil.offset(input.getStartTime(), DateField.YEAR, -1), DateUtil.offset(endTime, DateField.YEAR, -1), 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, null);
} else {
nowMap = Collections.emptyMap();
lastMap = Collections.emptyMap();
......@@ -237,8 +238,8 @@ public class EnergyConsumptionAnalysisService {
.collect(Collectors.toList());
//查本期
DateTime endTime = DateUtil.offsetDay(input.getEndTime(), 1);
nowMap = this.getPowerMap(context, input.getStartTime(), endTime, collect, 2);
lastMap = this.getPowerMap(context, DateUtil.offset(input.getStartTime(), DateField.YEAR, -1), DateUtil.offset(endTime, DateField.YEAR, -1), 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, null);
} else {
nowMap = Collections.emptyMap();
lastMap = Collections.emptyMap();
......@@ -699,33 +700,61 @@ public class EnergyConsumptionAnalysisService {
DateTime end = DateUtil.beginOfDay(DateUtil.yesterday());
DateTime start = DateUtil.beginOfMonth(end);
Map<Date, BigDecimal> map;
//区分环境
String oilFieldCode = ServiceUtil.getOilFieldCode(context);
if (CollUtil.isNotEmpty(plantList)) {
//实际发电量
map = this.getPowerMap(context, start, DateUtil.offsetDay(end, 1),
plantList.stream()
.map(DynamicQueryBasePowerLinePlantViewOutput::getStationName)
.collect(Collectors.toList()), 1);
.collect(Collectors.toList()), 1, oilFieldCode);
} else {
map = Collections.emptyMap();
}
List<DateTime> rangeToList = DateUtil.rangeToList(start, end, DateField.DAY_OF_YEAR);
//封装数据
List<GetEconomicBenefitsOutput> outputs = new ArrayList<>(rangeToList.size());
for (DateTime dateTime : rangeToList) {
BigDecimal economicBenefit;
BigDecimal carbonReduction;
if (map.containsKey(dateTime)) {
economicBenefit = this.calculateEconomicBenefit(map.get(dateTime));
carbonReduction = this.calculateCarbonReduction(map.get(dateTime));
} else {
economicBenefit = BigDecimal.ZERO;
carbonReduction = BigDecimal.ZERO;
}
outputs.add(GetEconomicBenefitsOutput.builder()
.dateFormat(dateTime)
.economicBenefit(economicBenefit)
.carbonReduction(carbonReduction)
.build());
BigDecimal economicBenefit;
BigDecimal carbonReduction;
BigDecimal electricityFees;
BigDecimal saveElectricity;
switch (oilFieldCode) {
case BusinessConstant.ENV_CQ:
for (DateTime dateTime : rangeToList) {
if (map.containsKey(dateTime)) {
economicBenefit = this.calculateEconomicBenefit(map.get(dateTime));
carbonReduction = this.calculateCarbonReduction(map.get(dateTime));
} else {
economicBenefit = BigDecimal.ZERO;
carbonReduction = BigDecimal.ZERO;
}
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);
}
......@@ -1060,14 +1089,16 @@ public class EnergyConsumptionAnalysisService {
* @param endTime 结束时间
* @param stationNameList 车站名称列表
* @param flag 旗帜 (1_发电,2_用电)
* @param oilFieldCode 部署环境
* @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);
List<ThirdDailyAccumulationUpdateView> powerList = mapper.selectPowerTrendByDate(ThirdDailyAccumulationUpdateView.builder()
.startTime(startTime)
.endTime(endTime)
.stationNameList(stationNameList)
.systemSource(oilFieldCode)
.build());
Map<Date, BigDecimal> powerMap;
if (CollUtil.isNotEmpty(powerList) && CollUtil.isNotEmpty(stationNameList)) {
......
......@@ -29,4 +29,10 @@ public class GetEconomicBenefitsOutput {
@XText("减碳量(吨)")
private BigDecimal carbonReduction;
@XText("电费(元)")
private BigDecimal electricityFees;
@XText("节约电量")
private BigDecimal saveElectricity;
}
......@@ -144,6 +144,9 @@
<if test="month != null and month != ''">
AND MONTH(create_date) = #{month}
</if>
<if test="systemSource != null">
AND system_source = #{systemSource}
</if>
GROUP BY
DATE( create_date )
</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