Commit 8786c8de authored by ZWT's avatar ZWT

feat(能源管理系统): 间开优化定时任务

1.开发间开优化定期校准定时任务,配置表达式修改定时任务配置文件,创建cloud模块方法;
2.开发间开优化定期校准定时任务,完成业务逻辑开发;
3.修改间开制度管理模块定期校准新增功能,增加初始化校准历史业务逻辑;
4.开发间开优化短期间开优化定时任务,配置表达式修改定时任务配置文件,创建cloud模块方法;
5.修改长期间开优化定时任务,添加离网型线路数据处理逻辑;
6.创建储能预测电量数据(模拟数据测试用)表,生成对应代码,添加条件查询各时段储能预测数据Cloud模块接口;
7.修改长期间开优化定时任务,增加离网型算法计算储能可用时长逻辑;
8.修改长期间开优化定时任务,优化部分sql查询语句查询逻辑,优化代码结构;
9.光伏预测Cloud模块查询预测发电量接口修改,增加查询长期发电量逻辑;
10.修改中短期间开优化定时任务,添加离网型优化逻辑;
11.修改长期/中短期间开优化定时任务,优化代码结构;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent db1880f3
...@@ -191,11 +191,12 @@ public class SpaceOptimizeBaseService { ...@@ -191,11 +191,12 @@ public class SpaceOptimizeBaseService {
/** /**
* 获取井口间开时间段 * 获取井口间开时间段
* *
* @param durationMapper 持续时间映射器 * @param context 上下文
* @param detailId 详细信息id * @param detailId 详细信息id
* @return {@link Map}<{@link String}, {@link List}<{@link SpaceInstitutionDurationEnt}>> * @return {@link Map}<{@link String}, {@link List}<{@link SpaceInstitutionDurationEnt}>>
*/ */
public Map<String, List<SpaceInstitutionDurationEnt>> getDurationMap(SpaceInstitutionDurationMapper durationMapper, String detailId) { public Map<String, List<SpaceInstitutionDurationEnt>> getDurationMap(XContext context, String detailId) {
SpaceInstitutionDurationMapper durationMapper = context.getBean(SpaceInstitutionDurationMapper.class);
//通过间开ID和井口ID查所有井口时段配置 //通过间开ID和井口ID查所有井口时段配置
List<SpaceInstitutionDurationEnt> durationList = durationMapper.selectList(new QueryWrapper<SpaceInstitutionDurationEnt>() List<SpaceInstitutionDurationEnt> durationList = durationMapper.selectList(new QueryWrapper<SpaceInstitutionDurationEnt>()
.select("*", .select("*",
...@@ -541,18 +542,17 @@ public class SpaceOptimizeBaseService { ...@@ -541,18 +542,17 @@ public class SpaceOptimizeBaseService {
* @param wellheadViewList 井口视图列表 * @param wellheadViewList 井口视图列表
* @param durationMap 持续时间图 * @param durationMap 持续时间图
* @param detail 细节 * @param detail 细节
* @param lineId 线路id
* @param monthNum 月份 * @param monthNum 月份
* @param midPeriodId 中期id * @param midPeriodId 中期id
*/ */
public void peakEliminationAndValleyLevelingStrategy(XContext context, List<SpaceOptimizeWellheadDTO> wellheadDTOList, List<SpaceOptimizeDurationDTO> unOptimizeDurationList, public void peakEliminationAndValleyLevelingStrategy(XContext context, List<SpaceOptimizeWellheadDTO> wellheadDTOList, List<SpaceOptimizeDurationDTO> unOptimizeDurationList,
List<SpaceOptimizeDurationDTO> durationDTOList, List<SpaceInstitutionWellheadView> wellheadViewList, List<SpaceOptimizeDurationDTO> durationDTOList, List<SpaceInstitutionWellheadView> wellheadViewList,
Map<String, List<SpaceInstitutionDurationEnt>> durationMap, SpaceInstitutionDetailEnt detail, Map<String, List<SpaceInstitutionDurationEnt>> durationMap, SpaceInstitutionDetailEnt detail,
String lineId, int monthNum, String midPeriodId) { int monthNum, String periodId) {
//通过线路ID和月份获取市电峰谷策略明细配置 //通过线路ID和月份获取市电峰谷策略明细配置
List<GetBasePriceStrategyDetailOutput> strategyDetailList = ServiceUtil.getStrategyDetailList(context, List<GetBasePriceStrategyDetailOutput> strategyDetailList = ServiceUtil.getStrategyDetailList(context,
GetBasePriceStrategyDetailInput.builder() GetBasePriceStrategyDetailInput.builder()
.lineId(lineId) .lineId(detail.getLineId())
.strategyMonth(String.valueOf(monthNum)) .strategyMonth(String.valueOf(monthNum))
.build() .build()
); );
...@@ -581,7 +581,7 @@ public class SpaceOptimizeBaseService { ...@@ -581,7 +581,7 @@ public class SpaceOptimizeBaseService {
for (int w = 0, wellheadSize = wellheadViewList.size(); w < wellheadSize; w++) { for (int w = 0, wellheadSize = wellheadViewList.size(); w < wellheadSize; w++) {
SpaceInstitutionWellheadView wellhead = wellheadViewList.get(w); SpaceInstitutionWellheadView wellhead = wellheadViewList.get(w);
String wellheadId = wellhead.getWellheadId(); String wellheadId = wellhead.getWellheadId();
String recordId = this.createOptimizeWellhead(wellheadDTOList, midPeriodId, wellheadId, wellhead.getWellNumber()); String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber());
List<SpaceInstitutionDurationEnt> durationConfigList = durationMap.get(wellhead); List<SpaceInstitutionDurationEnt> durationConfigList = durationMap.get(wellhead);
if (CollUtil.isEmpty(durationConfigList)) { if (CollUtil.isEmpty(durationConfigList)) {
//没有设置时间段,无法优化 //没有设置时间段,无法优化
...@@ -589,7 +589,7 @@ public class SpaceOptimizeBaseService { ...@@ -589,7 +589,7 @@ public class SpaceOptimizeBaseService {
} }
//保存原始记录 //保存原始记录
for (SpaceInstitutionDurationEnt durationEnt : durationConfigList) { for (SpaceInstitutionDurationEnt durationEnt : durationConfigList) {
this.createUnOptimizeDuration(unOptimizeDurationList, durationEnt, midPeriodId, recordId, wellheadId); this.createUnOptimizeDuration(unOptimizeDurationList, durationEnt, periodId, recordId, wellheadId);
} }
if (w == 0) { if (w == 0) {
//第一个井口 //第一个井口
...@@ -612,7 +612,7 @@ public class SpaceOptimizeBaseService { ...@@ -612,7 +612,7 @@ public class SpaceOptimizeBaseService {
int startDuration = (int) startTime.between(endTime, DateUnit.MINUTE); int startDuration = (int) startTime.between(endTime, DateUnit.MINUTE);
//第一次关井时间按照启动时长顺延 //第一次关井时间按照启动时长顺延
DateTime endTimeOptimize = startTime.offset(DateField.MINUTE, startDuration); DateTime endTimeOptimize = startTime.offset(DateField.MINUTE, startDuration);
this.createOptimizeDuration(durationDTOList, midPeriodId, recordId, wellheadId, null, this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
strategyDetailOutput.getStartTime(), endTimeOptimize.toString(BusinessConstant.MINUTES_FORMAT) strategyDetailOutput.getStartTime(), endTimeOptimize.toString(BusinessConstant.MINUTES_FORMAT)
); );
//取时间间隔(分钟) //取时间间隔(分钟)
...@@ -624,7 +624,7 @@ public class SpaceOptimizeBaseService { ...@@ -624,7 +624,7 @@ public class SpaceOptimizeBaseService {
DateTime endTimeOffset = firstEndTime.offset(DateField.MINUTE, startInterval); DateTime endTimeOffset = firstEndTime.offset(DateField.MINUTE, startInterval);
//取时间间隔(分钟) //取时间间隔(分钟)
between = BaseUtils.getTimeDifferenceMinute(firstEndTime, endTime); between = BaseUtils.getTimeDifferenceMinute(firstEndTime, endTime);
this.createOptimizeDuration(durationDTOList, midPeriodId, recordId, wellheadId, null, this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
startTimeOffset.toString(BusinessConstant.MINUTES_FORMAT), endTimeOffset.toString(BusinessConstant.MINUTES_FORMAT) startTimeOffset.toString(BusinessConstant.MINUTES_FORMAT), endTimeOffset.toString(BusinessConstant.MINUTES_FORMAT)
); );
} }
...@@ -635,7 +635,7 @@ public class SpaceOptimizeBaseService { ...@@ -635,7 +635,7 @@ public class SpaceOptimizeBaseService {
//如果时间超过当天,舍弃 //如果时间超过当天,舍弃
continue; continue;
} }
this.createOptimizeDuration(durationDTOList, midPeriodId, recordId, wellheadId, null, this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
offset.toString(BusinessConstant.MINUTES_FORMAT), BaseUtils.getEndTimeString( offset.toString(BusinessConstant.MINUTES_FORMAT), BaseUtils.getEndTimeString(
DateUtil.parse(duration.getCloseWellTime() + BusinessConstant.INITIALIZATION_SECOND, BusinessConstant.TIME_FORMAT) DateUtil.parse(duration.getCloseWellTime() + BusinessConstant.INITIALIZATION_SECOND, BusinessConstant.TIME_FORMAT)
.offset(DateField.MINUTE, between) .offset(DateField.MINUTE, between)
...@@ -650,32 +650,35 @@ public class SpaceOptimizeBaseService { ...@@ -650,32 +650,35 @@ public class SpaceOptimizeBaseService {
* 并网优化 * 并网优化
* *
* @param context 上下文 * @param context 上下文
* @param durationMapper 持续时间映射器
* @param wellheadDTOList 井口dtolist * @param wellheadDTOList 井口dtolist
* @param durationDTOList 持续时间dtolist * @param durationDTOList 持续时间dtolist
* @param unOptimizeDurationList 取消优化工期列表 * @param unOptimizeDurationList 取消优化工期列表
* @param spaceWellheadList 空间井口清单 * @param spaceWellheadList 空间井口清单
* @param avgPowerList 平均功率列表
* @param detail 细节 * @param detail 细节
* @param monthNum 月份 * @param monthNum 月份
* @param detailId 详细信息id
* @param periodId 期间id * @param periodId 期间id
* @param lineId 线路id * @param plantPowerInput 电厂功率输入
*/ */
public void gridConnectedOptimization(XContext context, SpaceInstitutionDurationMapper durationMapper, List<SpaceOptimizeWellheadDTO> wellheadDTOList, public void gridConnectedOptimization(XContext context, List<SpaceOptimizeWellheadDTO> wellheadDTOList,
List<SpaceOptimizeDurationDTO> durationDTOList, List<SpaceOptimizeDurationDTO> unOptimizeDurationList, List<SpaceOptimizeDurationDTO> durationDTOList, List<SpaceOptimizeDurationDTO> unOptimizeDurationList,
List<SpaceInstitutionWellheadView> spaceWellheadList, List<DynamicQueryPlantPredictedPowerOutput> avgPowerList, List<SpaceInstitutionWellheadView> spaceWellheadList,
SpaceInstitutionDetailEnt detail, int monthNum, String detailId, String periodId, String lineId) { SpaceInstitutionDetailEnt detail, int monthNum, String periodId,
DynamicQueryPlantPredictedPowerInput plantPowerInput) {
//获取当前制度对应的光伏预测数据列表
List<DynamicQueryPlantPredictedPowerOutput> avgPowerList = this.getAveragePowerGenerationListByPlantIds(context, plantPowerInput);
if (CollUtil.isEmpty(avgPowerList)) {
return;
}
//取光伏出力峰值 //取光伏出力峰值
BigDecimal powerMax = this.getPowerMax(avgPowerList); BigDecimal powerMax = this.getPowerMax(avgPowerList);
//取当前制度下井口的总功率 //取当前制度下井口的总功率
BigDecimal wellheadTotalPower = this.getWellheadTotalPower(spaceWellheadList, detailId); BigDecimal wellheadTotalPower = this.getWellheadTotalPower(spaceWellheadList, detail.getId());
//根据类型过滤井口:大间开,连抽井不优化 //根据类型过滤井口:大间开,连抽井不优化
List<SpaceInstitutionWellheadView> wellheadViewList = this.getWellheadViewList(spaceWellheadList, detailId); List<SpaceInstitutionWellheadView> wellheadViewList = this.getWellheadViewList(spaceWellheadList, detail.getId());
if (CollUtil.isEmpty(wellheadViewList)) { if (CollUtil.isEmpty(wellheadViewList)) {
return; return;
} }
Map<String, List<SpaceInstitutionDurationEnt>> durationMap = this.getDurationMap(durationMapper, detailId); Map<String, List<SpaceInstitutionDurationEnt>> durationMap = this.getDurationMap(context, detail.getId());
if (CollUtil.isEmpty(durationMap)) { if (CollUtil.isEmpty(durationMap)) {
//没有设置时间段,无法优化 //没有设置时间段,无法优化
return; return;
...@@ -695,7 +698,7 @@ public class SpaceOptimizeBaseService { ...@@ -695,7 +698,7 @@ public class SpaceOptimizeBaseService {
if (size == lowWellheadListSize) { if (size == lowWellheadListSize) {
//---------------------------------消峰平谷策略--------------------------------- //---------------------------------消峰平谷策略---------------------------------
this.peakEliminationAndValleyLevelingStrategy(context, wellheadDTOList, unOptimizeDurationList, durationDTOList, wellheadViewList, this.peakEliminationAndValleyLevelingStrategy(context, wellheadDTOList, unOptimizeDurationList, durationDTOList, wellheadViewList,
durationMap, detail, lineId, monthNum, periodId); durationMap, detail, monthNum, periodId);
} }
//光伏出力峰值>=线路哪部分井口运行功率:满足的部分井口采用绿电消纳优先,不满足的井采用消峰平谷 //光伏出力峰值>=线路哪部分井口运行功率:满足的部分井口采用绿电消纳优先,不满足的井采用消峰平谷
else { else {
...@@ -703,7 +706,7 @@ public class SpaceOptimizeBaseService { ...@@ -703,7 +706,7 @@ public class SpaceOptimizeBaseService {
this.greenElectricityConsumptionStrategy(wellheadDTOList, unOptimizeDurationList, durationDTOList, this.greenElectricityConsumptionStrategy(wellheadDTOList, unOptimizeDurationList, durationDTOList,
highWellheadList, avgPowerList, durationMap, detail, periodId); highWellheadList, avgPowerList, durationMap, detail, periodId);
this.peakEliminationAndValleyLevelingStrategy(context, wellheadDTOList, unOptimizeDurationList, durationDTOList, this.peakEliminationAndValleyLevelingStrategy(context, wellheadDTOList, unOptimizeDurationList, durationDTOList,
lowWellheadList, durationMap, detail, lineId, monthNum, periodId); lowWellheadList, durationMap, detail, monthNum, periodId);
} }
} }
} }
...@@ -726,20 +729,19 @@ public class SpaceOptimizeBaseService { ...@@ -726,20 +729,19 @@ public class SpaceOptimizeBaseService {
List<SpaceOptimizeDurationDTO> unOptimizeDurationList, List<SpaceInstitutionWellheadView> spaceWellheadList, List<SpaceOptimizeDurationDTO> unOptimizeDurationList, List<SpaceInstitutionWellheadView> spaceWellheadList,
Map<String, List<DynamicQueryBasePowerLineStorageViewOutput>> storageAvgMap, SpaceInstitutionDetailEnt detail, String periodId, Map<String, List<DynamicQueryBasePowerLineStorageViewOutput>> storageAvgMap, SpaceInstitutionDetailEnt detail, String periodId,
DynamicQueryStoragePredictedPowerInput input, DynamicQueryPlantPredictedPowerInput plantPowerInput) { DynamicQueryStoragePredictedPowerInput input, DynamicQueryPlantPredictedPowerInput plantPowerInput) {
//获取当前制度对应的光伏预测数据列表
List<DynamicQueryPlantPredictedPowerOutput> avgPowerList = this.getAveragePowerGenerationListByPlantIds(context, plantPowerInput); List<DynamicQueryPlantPredictedPowerOutput> avgPowerList = this.getAveragePowerGenerationListByPlantIds(context, plantPowerInput);
if (CollUtil.isEmpty(avgPowerList)) { if (CollUtil.isEmpty(avgPowerList)) {
return; return;
} }
String detailId = detail.getId();
String lineId = detail.getLineId();
//根据类型过滤井口:大间开,连抽井不优化 //根据类型过滤井口:大间开,连抽井不优化
List<SpaceInstitutionWellheadView> wellheadViewList = this.getWellheadViewList(spaceWellheadList, detailId); List<SpaceInstitutionWellheadView> wellheadViewList = this.getWellheadViewList(spaceWellheadList, detail.getId());
if (CollUtil.isEmpty(wellheadViewList)) { if (CollUtil.isEmpty(wellheadViewList)) {
return; return;
} }
//获取井口间开时间段 //获取井口间开时间段
SpaceInstitutionDurationMapper durationMapper = context.getBean(SpaceInstitutionDurationMapper.class); SpaceInstitutionDurationMapper durationMapper = context.getBean(SpaceInstitutionDurationMapper.class);
Map<String, List<SpaceInstitutionDurationEnt>> durationMap = this.getDurationMap(durationMapper, detailId); Map<String, List<SpaceInstitutionDurationEnt>> durationMap = this.getDurationMap(context, detail.getId());
if (CollUtil.isEmpty(durationMap)) { if (CollUtil.isEmpty(durationMap)) {
//没有设置时间段,无法优化 //没有设置时间段,无法优化
return; return;
...@@ -852,7 +854,7 @@ public class SpaceOptimizeBaseService { ...@@ -852,7 +854,7 @@ public class SpaceOptimizeBaseService {
} }
//离网优化 //离网优化
if (CollUtil.isNotEmpty(offGridPeriodList)) { if (CollUtil.isNotEmpty(offGridPeriodList)) {
if (!storageAvgMap.containsKey(lineId)) { if (!storageAvgMap.containsKey(detail.getLineId())) {
//没有储能设备,无法计算 //没有储能设备,无法计算
return; return;
} }
...@@ -869,7 +871,7 @@ public class SpaceOptimizeBaseService { ...@@ -869,7 +871,7 @@ public class SpaceOptimizeBaseService {
return; return;
} }
//取储能计算参数 //取储能计算参数
List<DynamicQueryBasePowerLineStorageViewOutput> avgStorageViewList = storageAvgMap.get(lineId); List<DynamicQueryBasePowerLineStorageViewOutput> avgStorageViewList = storageAvgMap.get(detail.getLineId());
DynamicQueryBasePowerLineStorageViewOutput avgStorageView = avgStorageViewList.get(0); DynamicQueryBasePowerLineStorageViewOutput avgStorageView = avgStorageViewList.get(0);
//平均额定放电效率(%) //平均额定放电效率(%)
BigDecimal avgRatedDischargeEfficiency = avgStorageView.getRatedDischargeEfficiency(); BigDecimal avgRatedDischargeEfficiency = avgStorageView.getRatedDischargeEfficiency();
......
...@@ -4,13 +4,14 @@ import cn.hutool.core.collection.CollUtil; ...@@ -4,13 +4,14 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import pps.cloud.prediction.service.data.plant_predicted_power_data.DynamicQueryPlantPredictedPowerInput; import pps.cloud.prediction.service.data.plant_predicted_power_data.DynamicQueryPlantPredictedPowerInput;
import pps.cloud.prediction.service.data.plant_predicted_power_data.DynamicQueryPlantPredictedPowerOutput;
import pps.cloud.prediction.service.data.storage_predicted_power_data.DynamicQueryStoragePredictedPowerInput; import pps.cloud.prediction.service.data.storage_predicted_power_data.DynamicQueryStoragePredictedPowerInput;
import pps.cloud.space.service.ISpaceOptimizeLongCloudService; import pps.cloud.space.service.ISpaceOptimizeLongCloudService;
import pps.core.common.constant.BusinessConstant; import pps.core.common.constant.BusinessConstant;
import pps.core.common.utils.BaseUtils; import pps.core.common.utils.BaseUtils;
import pps.core.space.entity.*; import pps.core.space.entity.SpaceInstitutionDetailEnt;
import pps.core.space.mapper.SpaceInstitutionDurationMapper; import pps.core.space.entity.SpaceOptimizeDurationDTO;
import pps.core.space.entity.SpaceOptimizePeriodDTO;
import pps.core.space.entity.SpaceOptimizeWellheadDTO;
import pps.core.space.mapper.SpaceOptimizeViewMapper; import pps.core.space.mapper.SpaceOptimizeViewMapper;
import pps.core.space.service.data.SpaceOptimizeLineRelation; import pps.core.space.service.data.SpaceOptimizeLineRelation;
import xstartup.annotation.XService; import xstartup.annotation.XService;
...@@ -58,14 +59,12 @@ public class SpaceOptimizeLongCloudServiceImpl extends SpaceOptimizeBaseService ...@@ -58,14 +59,12 @@ public class SpaceOptimizeLongCloudServiceImpl extends SpaceOptimizeBaseService
} }
String month = BaseUtils.getMonthString(lastMonthNum); String month = BaseUtils.getMonthString(lastMonthNum);
String lastMonth = BaseUtils.getMonthString(date.month()); String lastMonth = BaseUtils.getMonthString(date.month());
SpaceInstitutionDurationMapper durationMapper = context.getBean(SpaceInstitutionDurationMapper.class);
List<SpaceOptimizePeriodDTO> periodDTOList = new ArrayList<>(32); List<SpaceOptimizePeriodDTO> periodDTOList = new ArrayList<>(32);
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);
String executionCycleForMonth = BaseUtils.getExecutionCycleForMonth(date); String executionCycleForMonth = BaseUtils.getExecutionCycleForMonth(date);
DateTime optimizeDeadline = DateUtil.endOfMonth(date); DateTime optimizeDeadline = DateUtil.endOfMonth(date);
List<DynamicQueryPlantPredictedPowerOutput> avgPowerList;
//优化 //优化
for (SpaceInstitutionDetailEnt detail : detailEntList) { for (SpaceInstitutionDetailEnt detail : detailEntList) {
//创建记录 //创建记录
...@@ -73,17 +72,14 @@ public class SpaceOptimizeLongCloudServiceImpl extends SpaceOptimizeBaseService ...@@ -73,17 +72,14 @@ public class SpaceOptimizeLongCloudServiceImpl extends SpaceOptimizeBaseService
switch (detail.getGridTypeKey()) { switch (detail.getGridTypeKey()) {
//并网型优化 //并网型优化
case "1": case "1":
//获取当前制度对应的光伏预测数据列表 super.gridConnectedOptimization(context, wellheadDTOList, durationDTOList, unOptimizeDurationList,
avgPowerList = super.getAveragePowerGenerationListByPlantIds(context, relation.getSpaceWellheadList(), detail, monthNum, periodId,
DynamicQueryPlantPredictedPowerInput.builder() DynamicQueryPlantPredictedPowerInput.builder()
.plantIds(plantIdsByLineIdMap.get(detail.getLineId())) .plantIds(plantIdsByLineIdMap.get(detail.getLineId()))
.yearTime(String.valueOf(year)) .yearTime(String.valueOf(year))
.monthTime(month) .monthTime(month)
.dateType(BusinessConstant.ZERO) .dateType(BusinessConstant.ZERO)
.build() .build());
);
super.gridConnectedOptimization(context, durationMapper, wellheadDTOList, durationDTOList, unOptimizeDurationList,
relation.getSpaceWellheadList(), avgPowerList, detail, monthNum, detail.getId(), periodId, detail.getLineId());
break; break;
//离网型优化 //离网型优化
case "0": case "0":
......
...@@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollUtil; ...@@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import pps.cloud.prediction.service.data.plant_predicted_power_data.DynamicQueryPlantPredictedPowerInput; import pps.cloud.prediction.service.data.plant_predicted_power_data.DynamicQueryPlantPredictedPowerInput;
import pps.cloud.prediction.service.data.plant_predicted_power_data.DynamicQueryPlantPredictedPowerOutput;
import pps.cloud.prediction.service.data.storage_predicted_power_data.DynamicQueryStoragePredictedPowerInput; import pps.cloud.prediction.service.data.storage_predicted_power_data.DynamicQueryStoragePredictedPowerInput;
import pps.cloud.space.service.ISpaceOptimizeMidCloudService; import pps.cloud.space.service.ISpaceOptimizeMidCloudService;
import pps.core.common.constant.BusinessConstant; import pps.core.common.constant.BusinessConstant;
...@@ -13,7 +12,6 @@ import pps.core.space.entity.SpaceInstitutionDetailEnt; ...@@ -13,7 +12,6 @@ import pps.core.space.entity.SpaceInstitutionDetailEnt;
import pps.core.space.entity.SpaceOptimizeDurationDTO; import pps.core.space.entity.SpaceOptimizeDurationDTO;
import pps.core.space.entity.SpaceOptimizePeriodDTO; import pps.core.space.entity.SpaceOptimizePeriodDTO;
import pps.core.space.entity.SpaceOptimizeWellheadDTO; import pps.core.space.entity.SpaceOptimizeWellheadDTO;
import pps.core.space.mapper.SpaceInstitutionDurationMapper;
import pps.core.space.mapper.SpaceOptimizeViewMapper; import pps.core.space.mapper.SpaceOptimizeViewMapper;
import pps.core.space.service.data.SpaceOptimizeLineRelation; import pps.core.space.service.data.SpaceOptimizeLineRelation;
import xstartup.annotation.XService; import xstartup.annotation.XService;
...@@ -52,7 +50,6 @@ public class SpaceOptimizeMidCloudServiceImpl extends SpaceOptimizeBaseService i ...@@ -52,7 +50,6 @@ public class SpaceOptimizeMidCloudServiceImpl extends SpaceOptimizeBaseService i
//月份要加一 //月份要加一
int monthNum = date.month() + 1; int monthNum = date.month() + 1;
DateTime lastWeek = DateUtil.lastWeek(); DateTime lastWeek = DateUtil.lastWeek();
SpaceInstitutionDurationMapper durationMapper = context.getBean(SpaceInstitutionDurationMapper.class);
List<SpaceOptimizePeriodDTO> periodDTOList = new ArrayList<>(32); List<SpaceOptimizePeriodDTO> periodDTOList = new ArrayList<>(32);
List<SpaceOptimizeWellheadDTO> wellheadDTOList = new ArrayList<>(64); List<SpaceOptimizeWellheadDTO> wellheadDTOList = new ArrayList<>(64);
List<SpaceOptimizeDurationDTO> durationDTOList = new ArrayList<>(128); List<SpaceOptimizeDurationDTO> durationDTOList = new ArrayList<>(128);
...@@ -71,8 +68,8 @@ public class SpaceOptimizeMidCloudServiceImpl extends SpaceOptimizeBaseService i ...@@ -71,8 +68,8 @@ public class SpaceOptimizeMidCloudServiceImpl extends SpaceOptimizeBaseService i
switch (detail.getGridTypeKey()) { switch (detail.getGridTypeKey()) {
//并网型优化 //并网型优化
case "1": case "1":
//获取当前制度对应的光伏预测数据列表 super.gridConnectedOptimization(context, wellheadDTOList, durationDTOList, unOptimizeDurationList,
List<DynamicQueryPlantPredictedPowerOutput> avgPowerList = super.getAveragePowerGenerationListByPlantIds(context, relation.getSpaceWellheadList(), detail, monthNum, periodId,
DynamicQueryPlantPredictedPowerInput.builder() DynamicQueryPlantPredictedPowerInput.builder()
.plantIds(plantIdsByLineIdMap.get(lineId)) .plantIds(plantIdsByLineIdMap.get(lineId))
.startTime(startWeek) .startTime(startWeek)
...@@ -80,13 +77,11 @@ public class SpaceOptimizeMidCloudServiceImpl extends SpaceOptimizeBaseService i ...@@ -80,13 +77,11 @@ public class SpaceOptimizeMidCloudServiceImpl extends SpaceOptimizeBaseService i
.dateType(BusinessConstant.ONE) .dateType(BusinessConstant.ONE)
.build() .build()
); );
super.gridConnectedOptimization(context, durationMapper, wellheadDTOList, durationDTOList, unOptimizeDurationList,
relation.getSpaceWellheadList(), avgPowerList, detail, monthNum, detailId, periodId, lineId);
break; break;
//离网型优化 //离网型优化
case "0": case "0":
super.offGridOptimization(context, wellheadDTOList, durationDTOList, unOptimizeDurationList, relation.getSpaceWellheadList(), super.offGridOptimization(context, wellheadDTOList, durationDTOList, unOptimizeDurationList,
relation.getStorageAvgMap(), detail, periodId, relation.getSpaceWellheadList(), relation.getStorageAvgMap(), detail, periodId,
DynamicQueryStoragePredictedPowerInput.builder() DynamicQueryStoragePredictedPowerInput.builder()
.storageIds(plantIdsByLineIdMap.get(detail.getLineId())) .storageIds(plantIdsByLineIdMap.get(detail.getLineId()))
.startTime(DateUtil.beginOfWeek(lastWeek).toString(BusinessConstant.DATE_FORMAT_DAY)) .startTime(DateUtil.beginOfWeek(lastWeek).toString(BusinessConstant.DATE_FORMAT_DAY))
......
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