Commit 0af704fa authored by ZWT's avatar ZWT

feat(吉林演示): 松原

1.开发中间库表结构及数据导出功能,检查中间库表结构是否有变动,同时获取最新数据,验证数据是否更新;
2.创建场站每日信息统计记录表,新建场站日信息数据采集汇总定时任务,整理汇总场站纬度每日数据,完成功能验证;
3.针对吉林提供的统计数据,对吉林首页部分功能修改;
4.针对中间库每日井口数据统计表结构变动,修改井口日统计定时任务数据处理逻辑,完成功能验证;
5.修改日发电量统计定时任务,排查数据丢失问题,完成功能验证;
6.修改场站每日信息汇总统计定时任务,增加统计每日光伏发电量逻辑,修改表结构及数据结构和业务处理逻辑,完成功能验证;
7.修改吉林首页线路详情接口,区分部署环境,增加吉林个性化数据处理逻辑,完成接口冒烟测试;
8.修改实际发电功率统计定时任务,排查数据丢失问题,完成功能验证;
9.修改实际发电量统计定时任务,排查数据丢失问题,完成功能验证;
10.修改吉林首页井场效果评价数据统计接口,区分部署环境,增加吉林个性化数据处理逻辑,完成接口冒烟测试;
11.能耗分析页面开发吉林个性化功能,完成电量统计接口开发,编辑线上接口文档并生成接口用例,完成接口冒烟测试;
12.能耗分析页面开发吉林个性化功能,完成发电量统计接口开发,编辑线上接口文档并生成接口用例,完成接口冒烟测试;
13.能耗分析页面开发吉林个性化功能,完成用电量统计接口开发,编辑线上接口文档并生成接口用例,完成接口冒烟测试;
14.能耗分析页面开发吉林个性化功能,完成峰谷能耗对比分析接口开发,编辑线上接口文档并生成接口用例,完成接口冒烟测试;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 34cc3be5
......@@ -127,6 +127,83 @@ public class EnergyConsumptionAnalysisService {
return XListResult.success(this.getStatisticsList(context, input, true));
}
/**
* 峰谷能耗对比分析
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult }<{@link GetEnergyComparisonAnalysisOutput }>
*/
@XText("能耗分析--峰谷能耗对比分析")
@XApiPost
public XListResult<GetEnergyComparisonAnalysisOutput> feeStatisticsList(XContext context, GetStatisticsInput input) {
//日期初始化
input.getBetweenDate();
Date beginTime = input.getBeginTime();
Date endTime = input.getEndTime();
//查组织机构下所有线路
Set<String> lineNameSet = this.getLineNameSet(context, input.getOuId());
boolean yearFlag = input.getDateType().equals(3);
//统计
List<StationDailyProductionSituationEnt> list = context.getBean(StationDailyProductionSituationMapper.class).selectList(new QueryWrapper<StationDailyProductionSituationEnt>()
.select("IFNULL( SUM( electricity_charge_city ), 0 ) AS electricity_charge_city",
"IFNULL( SUM( electricity_consumption_vh ), 0 ) AS electricity_consumption_vh",
"IFNULL( SUM( electricity_consumption_np ), 0 ) AS electricity_consumption_np",
"IFNULL( SUM( electricity_consumption_hh ), 0 ) AS electricity_consumption_hh",
"IFNULL( SUM( electricity_consumption_ph ), 0 ) AS electricity_consumption_ph",
yearFlag ? "DATE_FORMAT( data_date, '%Y-%m-01' ) AS data_date" : "data_date")
.lambda()
.between(StationDailyProductionSituationEnt::getDataDate, beginTime, endTime)
.in(StationDailyProductionSituationEnt::getStationName, lineNameSet)
.last(yearFlag ? "GROUP BY DATE_FORMAT( data_date, '%Y-%m-01')" : "GROUP BY data_date")
);
Map<Date, StationDailyProductionSituationEnt> collect;
if (CollUtil.isEmpty(list)) {
collect = Collections.emptyMap();
} else {
collect = list.stream()
.collect(Collectors.toMap(StationDailyProductionSituationEnt::getDataDate, Function.identity()));
}
//封装数据
DateTime now = DateUtil.date();
List<DateTime> rangeToList = DateUtil.rangeToList(beginTime, endTime, yearFlag ? DateField.MONTH : DateField.DAY_OF_YEAR);
List<GetEnergyComparisonAnalysisOutput> outputs = new ArrayList<>(rangeToList.size());
StationDailyProductionSituationEnt dailyEnt;
BigDecimal electricityFees;
BigDecimal valleyElectricPower;
BigDecimal ordinaryElectricPower;
BigDecimal highElectricPower;
BigDecimal peakElectricPower;
for (DateTime dateTime : rangeToList) {
if (DateUtil.compare(dateTime, now) > 0) {
break;
}
if (collect.containsKey(dateTime)) {
dailyEnt = collect.get(dateTime);
electricityFees = dailyEnt.getElectricityChargeCity();
valleyElectricPower = dailyEnt.getElectricityConsumptionVh();
ordinaryElectricPower = dailyEnt.getElectricityConsumptionNp();
highElectricPower = dailyEnt.getElectricityConsumptionHh();
peakElectricPower = dailyEnt.getElectricityConsumptionPh();
} else {
electricityFees = BigDecimal.ZERO;
valleyElectricPower = BigDecimal.ZERO;
ordinaryElectricPower = BigDecimal.ZERO;
highElectricPower = BigDecimal.ZERO;
peakElectricPower = BigDecimal.ZERO;
}
outputs.add(GetEnergyComparisonAnalysisOutput.builder()
.electricityFees(electricityFees)
.valleyElectricPower(valleyElectricPower)
.ordinaryElectricPower(ordinaryElectricPower)
.highElectricPower(highElectricPower)
.peakElectricPower(peakElectricPower)
.dateFormat(yearFlag ? dateTime.toString("yyyy-MM") : dateTime.toDateStr())
.build());
}
return XListResult.success(outputs);
}
/**
* 获取统计列表
*
......@@ -177,6 +254,7 @@ public class EnergyConsumptionAnalysisService {
output.setCurrentPeriodGenerate(currentMap.getOrDefault(dateTime, BigDecimal.ZERO));
output.setLastPeriodGenerate(lastMap.getOrDefault(dateTime, BigDecimal.ZERO));
}
output.setDateStr(yearFlag ? dateTime.toString("yyyy-MM") : dateTime.toDateStr());
outputs.add(output);
}
return outputs;
......
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