Commit bb387b6c authored by ZWT's avatar ZWT

feat(零碳): 长庆演示系统新增功能

1.修改第三方日累计数据推送表表结构,增加日累计储能放电量字段,同时修改代码对应实体及mapper文件,修改相关接口增加储能日累计放电量接收逻辑;
2.修改首页井场收益分析模块接口,修改获取储能累计放电量逻辑;
3.设计并创建井口日用电趋势表,生成对应实体类及mapper文件;
4.统计分析模块,新增本月累计节电经济效益查询接口,添加线上接口文档并完成接口冒烟测试;
5.统计分析模块,新增本月累计减碳量查询接口,添加线上接口文档并完成接口冒烟测试;
6.统计分析模块,新增光伏发电趋势查询接口,添加线上接口文档并完成接口冒烟测试;
7.统计分析模块,新增月度总览查询接口,添加线上接口文档并完成接口冒烟测试;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent dcccdfc9
...@@ -219,6 +219,7 @@ public class SpaceOptimizeBaseService { ...@@ -219,6 +219,7 @@ public class SpaceOptimizeBaseService {
//取优化截至日期 //取优化截至日期
DateTime optimizeDate; DateTime optimizeDate;
DateTime begin; DateTime begin;
DateTime recordTime;
for (SpaceInstitutionDetailEnt detail : detailEntList) { for (SpaceInstitutionDetailEnt detail : detailEntList) {
//查最新间开历史 //查最新间开历史
if (this.isOptimize(context, detail.getId(), flag, startDate)) { if (this.isOptimize(context, detail.getId(), flag, startDate)) {
...@@ -236,12 +237,13 @@ public class SpaceOptimizeBaseService { ...@@ -236,12 +237,13 @@ public class SpaceOptimizeBaseService {
for (int d = 0; d < offset; d++) { for (int d = 0; d < offset; d++) {
begin = DateUtil.offsetDay(startDate, d); begin = DateUtil.offsetDay(startDate, d);
optimizeDate = DateUtil.offsetDay(startDate, d + 1); optimizeDate = DateUtil.offsetDay(startDate, d + 1);
recordTime = offset > 1 ? begin : optimizeDate;
//查预测光伏出力 //查预测光伏出力
powerList = this.getAveragePowerHalfHour(context, DynamicQueryPlantPredictedPowerInput.builder() powerList = this.getAveragePowerHalfHour(context, DynamicQueryPlantPredictedPowerInput.builder()
.plantIds(plantIdsMap.get(detail.getLineId())) .plantIds(plantIdsMap.get(detail.getLineId()))
.startTime(begin.toString(BusinessConstant.DATE_FORMAT_DAY)) .startTime(begin.toString(BusinessConstant.DATE_FORMAT_DAY))
.endTime(optimizeDate.toString(BusinessConstant.DATE_FORMAT_DAY)) .endTime(optimizeDate.toString(BusinessConstant.DATE_FORMAT_DAY))
.dateType(BusinessConstant.ONE) .dateType(dateType)
.build()); .build());
//取峰谷策略 //取峰谷策略
strategyList = strategyMap.get(lineMap.get(detail.getLineId())); strategyList = strategyMap.get(lineMap.get(detail.getLineId()));
...@@ -257,7 +259,7 @@ public class SpaceOptimizeBaseService { ...@@ -257,7 +259,7 @@ public class SpaceOptimizeBaseService {
//保存不需要优化的井口 //保存不需要优化的井口
List<SpaceInstitutionWellheadView> unOptimizeWellhead = collect.get(Boolean.FALSE); List<SpaceInstitutionWellheadView> unOptimizeWellhead = collect.get(Boolean.FALSE);
this.setUnOptimizeWellheadConfig(durationDTOList, unOptimizeDurationList, wellheadDTOList, this.setUnOptimizeWellheadConfig(durationDTOList, unOptimizeDurationList, wellheadDTOList,
unOptimizeWellhead, durationMap.get(detail.getId()), periodId, optimizeDate); unOptimizeWellhead, durationMap.get(detail.getId()), periodId, recordTime);
//取待优化井口并遍历 //取待优化井口并遍历
wellheadList = collect.get(Boolean.TRUE); wellheadList = collect.get(Boolean.TRUE);
//防冻堵策略(一口井就全开不走优化) //防冻堵策略(一口井就全开不走优化)
...@@ -272,16 +274,16 @@ public class SpaceOptimizeBaseService { ...@@ -272,16 +274,16 @@ public class SpaceOptimizeBaseService {
if (wellheadList.size() == 1) { if (wellheadList.size() == 1) {
SpaceInstitutionWellheadView wellhead = wellheadList.get(0); SpaceInstitutionWellheadView wellhead = wellheadList.get(0);
String wellheadId = wellhead.getWellheadId(); String wellheadId = wellhead.getWellheadId();
String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber(), wellhead.getStartSeq(), optimizeDate, BusinessConstant.ZERO); String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber(), wellhead.getStartSeq(), recordTime, BusinessConstant.ZERO);
//保存间开原始记录 //保存间开原始记录
for (SpaceInstitutionDurationEnt durationEnt : durationMap.get(detail.getId()).get(wellheadId)) { for (SpaceInstitutionDurationEnt durationEnt : durationMap.get(detail.getId()).get(wellheadId)) {
this.createUnOptimizeDuration(unOptimizeDurationList, durationEnt, periodId, recordId, wellheadId, optimizeDate); this.createUnOptimizeDuration(unOptimizeDurationList, durationEnt, periodId, recordId, wellheadId, recordTime);
} }
//设置间开优化24小时全开 //设置间开优化24小时全开
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null, this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
BusinessConstant.START_OF_DAY_TIME, BusinessConstant.START_OF_DAY_TIME,
BusinessConstant.END_OF_DAY_TIME, BusinessConstant.END_OF_DAY_TIME,
BusinessConstant.ZERO, optimizeDate BusinessConstant.ZERO, recordTime
); );
} else { } else {
for (int i = 1; i < wellheadList.size(); i++) { for (int i = 1; i < wellheadList.size(); i++) {
...@@ -307,10 +309,10 @@ public class SpaceOptimizeBaseService { ...@@ -307,10 +309,10 @@ public class SpaceOptimizeBaseService {
for (int i = 0; i < wellheadList.size(); i++) { for (int i = 0; i < wellheadList.size(); i++) {
wellhead = wellheadList.get(i); wellhead = wellheadList.get(i);
String wellheadId = wellhead.getWellheadId(); String wellheadId = wellhead.getWellheadId();
String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber(), wellhead.getStartSeq(), optimizeDate, BusinessConstant.ONE); String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber(), wellhead.getStartSeq(), recordTime, BusinessConstant.ONE);
//保存间开原始记录 //保存间开原始记录
for (SpaceInstitutionDurationEnt durationEnt : durationMap.get(detail.getId()).get(wellheadId)) { for (SpaceInstitutionDurationEnt durationEnt : durationMap.get(detail.getId()).get(wellheadId)) {
this.createUnOptimizeDuration(unOptimizeDurationList, durationEnt, periodId, recordId, wellheadId, optimizeDate); this.createUnOptimizeDuration(unOptimizeDurationList, durationEnt, periodId, recordId, wellheadId, recordTime);
} }
//累加运行功率 //累加运行功率
serviceRating = serviceRating.add(wellhead.getServiceRating()); serviceRating = serviceRating.add(wellhead.getServiceRating());
...@@ -327,7 +329,7 @@ public class SpaceOptimizeBaseService { ...@@ -327,7 +329,7 @@ public class SpaceOptimizeBaseService {
firstOpenWellTime = this.timePeriodOptimization(optimizeDurationDTOList, weightDurationList, firstOpenWellTime, i, firstOpenWellTime = this.timePeriodOptimization(optimizeDurationDTOList, weightDurationList, firstOpenWellTime, i,
startInterval, minOpenMinute, wellhead, weightList); startInterval, minOpenMinute, wellhead, weightList);
//创建优化后的间开区间 //创建优化后的间开区间
this.addOptimizeDuration(optimizeDurationDTOList, durationDTOList, tundraStrategyList, periodId, recordId, wellheadId, optimizeDate); this.addOptimizeDuration(optimizeDurationDTOList, durationDTOList, tundraStrategyList, periodId, recordId, wellheadId, recordTime);
} }
//防冻井 //防冻井
if (ObjectUtil.isNotNull(tundraStrategyWellhead) && CollUtil.isNotEmpty(tundraStrategyList)) { if (ObjectUtil.isNotNull(tundraStrategyWellhead) && CollUtil.isNotEmpty(tundraStrategyList)) {
...@@ -437,10 +439,10 @@ public class SpaceOptimizeBaseService { ...@@ -437,10 +439,10 @@ public class SpaceOptimizeBaseService {
List<SpaceOptimizeWeightDuration> weightDurationList = this.weightListProcessing(ladder, weightList, minOpenMinute); List<SpaceOptimizeWeightDuration> weightDurationList = this.weightListProcessing(ladder, weightList, minOpenMinute);
//创建优化记录 //创建优化记录
String wellheadId = tundraStrategyWellhead.getWellheadId(); String wellheadId = tundraStrategyWellhead.getWellheadId();
String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, tundraStrategyWellhead.getWellNumber(), tundraStrategyWellhead.getStartSeq(), optimizeDate, BusinessConstant.ZERO); String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, tundraStrategyWellhead.getWellNumber(), tundraStrategyWellhead.getStartSeq(), recordTime, BusinessConstant.ZERO);
//保存间开原始记录 //保存间开原始记录
for (SpaceInstitutionDurationEnt durationEnt : durationMap.get(detail.getId()).get(wellheadId)) { for (SpaceInstitutionDurationEnt durationEnt : durationMap.get(detail.getId()).get(wellheadId)) {
this.createUnOptimizeDuration(unOptimizeDurationList, durationEnt, periodId, recordId, wellheadId, optimizeDate); this.createUnOptimizeDuration(unOptimizeDurationList, durationEnt, periodId, recordId, wellheadId, recordTime);
} }
//关井时间优化 //关井时间优化
if (CollUtil.isNotEmpty(closeList)) { if (CollUtil.isNotEmpty(closeList)) {
...@@ -594,7 +596,7 @@ public class SpaceOptimizeBaseService { ...@@ -594,7 +596,7 @@ public class SpaceOptimizeBaseService {
startInterval, minOpenMinute, tundraStrategyWellhead, weightList); startInterval, minOpenMinute, tundraStrategyWellhead, weightList);
} }
//创建优化后的间开区间 //创建优化后的间开区间
this.addOptimizeDuration(closeList, durationDTOList, tundraStrategyList, periodId, recordId, wellheadId, optimizeDate); this.addOptimizeDuration(closeList, durationDTOList, tundraStrategyList, periodId, recordId, wellheadId, recordTime);
} }
} }
} }
......
...@@ -37,7 +37,7 @@ public class SpaceOptimizeMidCloudServiceImpl extends SpaceOptimizeBaseService i ...@@ -37,7 +37,7 @@ public class SpaceOptimizeMidCloudServiceImpl extends SpaceOptimizeBaseService i
List<SpaceOptimizeWellheadDTO> wellheadDTOList = new ArrayList<>(64); List<SpaceOptimizeWellheadDTO> wellheadDTOList = new ArrayList<>(64);
List<SpaceOptimizeDurationDTO> durationDTOList = new ArrayList<>(128); List<SpaceOptimizeDurationDTO> durationDTOList = new ArrayList<>(128);
List<SpaceOptimizeDurationDTO> unOptimizeDurationList = new ArrayList<>(128); List<SpaceOptimizeDurationDTO> unOptimizeDurationList = new ArrayList<>(128);
super.doOptimize(context, periodDTOList, wellheadDTOList, durationDTOList, unOptimizeDurationList, BusinessConstant.ONE, BusinessConstant.ONE, 3); super.dynamicOptimize(context, periodDTOList, wellheadDTOList, durationDTOList, unOptimizeDurationList, BusinessConstant.ONE, BusinessConstant.ONE, 3);
//开启事务 //开启事务
return XTransactionHelper.begin(context, () -> { return XTransactionHelper.begin(context, () -> {
int size; int size;
......
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