Commit c96e416d authored by ZWT's avatar ZWT

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

1.开发间开优化长期间开优化定时任务,完成并网流程绿电消纳优先策略;
2.开发间开优化长期间开优化定时任务,完成并网流程消峰平谷策略;
3.开发间开优化中短期间开优化定时任务,创建定时任务并添加配置;
4.抽取间开优化定时任务逻辑处理父类,对长期间开优化定时任务/中短期间开优化定时任务代码结构进行优化;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent da08b3c5
...@@ -10,6 +10,7 @@ import pps.core.common.constant.BusinessConstant; ...@@ -10,6 +10,7 @@ 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.*;
import pps.core.space.mapper.SpaceInstitutionDurationMapper; import pps.core.space.mapper.SpaceInstitutionDurationMapper;
import pps.core.space.mapper.SpaceOptimizeViewMapper;
import pps.core.space.service.data.SpaceOptimizeWellheadAndPlant; import pps.core.space.service.data.SpaceOptimizeWellheadAndPlant;
import xstartup.annotation.XService; import xstartup.annotation.XService;
import xstartup.base.XContext; import xstartup.base.XContext;
...@@ -49,9 +50,9 @@ public class SpaceOptimizeMidCloudServiceImpl extends SpaceOptimizeBaseService i ...@@ -49,9 +50,9 @@ public class SpaceOptimizeMidCloudServiceImpl extends SpaceOptimizeBaseService i
//月份要加一 //月份要加一
int monthNum = date.month() + 1; int monthNum = date.month() + 1;
SpaceInstitutionDurationMapper durationMapper = context.getBean(SpaceInstitutionDurationMapper.class); SpaceInstitutionDurationMapper durationMapper = context.getBean(SpaceInstitutionDurationMapper.class);
List<SpaceOptimizePeriodDTO> midPeriodList = new ArrayList<>(32); List<SpaceOptimizePeriodDTO> periodDTOList = new ArrayList<>(32);
List<SpaceOptimizeWellheadDTO> midWellheadList = new ArrayList<>(64); List<SpaceOptimizeWellheadDTO> wellheadDTOList = new ArrayList<>(64);
List<SpaceOptimizeDurationDTO> midDurationList = new ArrayList<>(128); List<SpaceOptimizeDurationDTO> durationDTOList = new ArrayList<>(128);
List<SpaceOptimizeDurationDTO> unOptimizeDurationList = new ArrayList<>(128); List<SpaceOptimizeDurationDTO> unOptimizeDurationList = new ArrayList<>(128);
String executionCycleForWeek = BaseUtils.getExecutionCycleForWeek(date); String executionCycleForWeek = BaseUtils.getExecutionCycleForWeek(date);
DateTime optimizeDeadline = DateUtil.beginOfDay(DateUtil.nextWeek()); DateTime optimizeDeadline = DateUtil.beginOfDay(DateUtil.nextWeek());
...@@ -62,7 +63,7 @@ public class SpaceOptimizeMidCloudServiceImpl extends SpaceOptimizeBaseService i ...@@ -62,7 +63,7 @@ public class SpaceOptimizeMidCloudServiceImpl extends SpaceOptimizeBaseService i
String detailId = detail.getId(); String detailId = detail.getId();
String lineId = detail.getLineId(); String lineId = detail.getLineId();
//创建记录 //创建记录
String midPeriodId = super.createOptimizePeriod(midPeriodList, detailId, lineId, executionCycleForWeek, optimizeDeadline); String midPeriodId = super.createOptimizePeriod(periodDTOList, detailId, lineId, executionCycleForWeek, optimizeDeadline);
switch (detail.getGridTypeKey()) { switch (detail.getGridTypeKey()) {
//并网型优化 //并网型优化
case "1": case "1":
...@@ -91,7 +92,7 @@ public class SpaceOptimizeMidCloudServiceImpl extends SpaceOptimizeBaseService i ...@@ -91,7 +92,7 @@ public class SpaceOptimizeMidCloudServiceImpl extends SpaceOptimizeBaseService i
//光伏出力峰值大于等于井口总功率:绿电消纳优先策略 //光伏出力峰值大于等于井口总功率:绿电消纳优先策略
if (powerMax.compareTo(wellheadTotalPower) >= BusinessConstant.ZERO) { if (powerMax.compareTo(wellheadTotalPower) >= BusinessConstant.ZERO) {
//---------------------------------绿电消纳策略--------------------------------- //---------------------------------绿电消纳策略---------------------------------
super.greenElectricityConsumptionStrategy(midWellheadList, unOptimizeDurationList, midDurationList, super.greenElectricityConsumptionStrategy(wellheadDTOList, unOptimizeDurationList, durationDTOList,
wellheadViewList, avgPowerList, durationMap, detail, midPeriodId); wellheadViewList, avgPowerList, durationMap, detail, midPeriodId);
} else { } else {
//遍历井口,按发电功率大于等于光伏出力峰值条件分组 //遍历井口,按发电功率大于等于光伏出力峰值条件分组
...@@ -102,16 +103,16 @@ public class SpaceOptimizeMidCloudServiceImpl extends SpaceOptimizeBaseService i ...@@ -102,16 +103,16 @@ public class SpaceOptimizeMidCloudServiceImpl extends SpaceOptimizeBaseService i
//光伏出力峰值<任何一口井的运行功率:消峰平谷策略 //光伏出力峰值<任何一口井的运行功率:消峰平谷策略
if (size == lowWellheadListSize) { if (size == lowWellheadListSize) {
//---------------------------------消峰平谷策略--------------------------------- //---------------------------------消峰平谷策略---------------------------------
super.peakEliminationAndValleyLevelingStrategy(context, midWellheadList, unOptimizeDurationList, midDurationList, wellheadViewList, super.peakEliminationAndValleyLevelingStrategy(context, wellheadDTOList, unOptimizeDurationList, durationDTOList, wellheadViewList,
durationMap, detail, lineId, monthNum, midPeriodId); durationMap, detail, lineId, monthNum, midPeriodId);
} }
//光伏出力峰值>=线路哪部分井口运行功率:满足的部分井口采用绿电消纳优先,不满足的井采用消峰平谷 //光伏出力峰值>=线路哪部分井口运行功率:满足的部分井口采用绿电消纳优先,不满足的井采用消峰平谷
else { else {
List<SpaceInstitutionWellheadView> highWellheadList = collect.get(true); List<SpaceInstitutionWellheadView> highWellheadList = collect.get(true);
super.greenElectricityConsumptionStrategy(midWellheadList, unOptimizeDurationList, midDurationList, super.greenElectricityConsumptionStrategy(wellheadDTOList, unOptimizeDurationList, durationDTOList,
highWellheadList, avgPowerList, durationMap, detail, midPeriodId); highWellheadList, avgPowerList, durationMap, detail, midPeriodId);
super.peakEliminationAndValleyLevelingStrategy(context, midWellheadList, unOptimizeDurationList, midDurationList, lowWellheadList, super.peakEliminationAndValleyLevelingStrategy(context, wellheadDTOList, unOptimizeDurationList, durationDTOList,
durationMap, detail, lineId, monthNum, midPeriodId); lowWellheadList, durationMap, detail, lineId, monthNum, midPeriodId);
} }
} }
break; break;
...@@ -125,54 +126,46 @@ public class SpaceOptimizeMidCloudServiceImpl extends SpaceOptimizeBaseService i ...@@ -125,54 +126,46 @@ public class SpaceOptimizeMidCloudServiceImpl extends SpaceOptimizeBaseService i
//开启事务 //开启事务
return XTransactionHelper.begin(context, () -> { return XTransactionHelper.begin(context, () -> {
int size; int size;
// if (CollUtil.isNotEmpty(longPeriodList)) { SpaceOptimizeViewMapper optimizeViewMapper = context.getBean(SpaceOptimizeViewMapper.class);
// SpaceOptimizeLongPeriodViewMapper longPeriodViewMapper = context.getBean(SpaceOptimizeLongPeriodViewMapper.class); if (CollUtil.isNotEmpty(periodDTOList)) {
// size = longPeriodList.size(); size = periodDTOList.size();
// if (size > BaseUtils.BATCH_SIZE) { if (size > BaseUtils.BATCH_SIZE) {
// List<List<SpaceOptimizeLongPeriodView>> subList = BaseUtils.getSubList(longPeriodList); List<List<SpaceOptimizePeriodDTO>> subList = BaseUtils.getSubList(periodDTOList);
// subList.forEach(b -> longPeriodViewMapper.batchInsertList(b)); subList.forEach(b -> optimizeViewMapper.midPeriodBatchInsertList(b));
// } else { } else {
// longPeriodViewMapper.batchInsertList(longPeriodList); optimizeViewMapper.midPeriodBatchInsertList(periodDTOList);
// } }
// } }
// if (CollUtil.isNotEmpty(midWellheadList)) { if (CollUtil.isNotEmpty(wellheadDTOList)) {
// SpaceOptimizeMidWellheadViewMapper longWellheadViewMapper = context.getBean(SpaceOptimizeMidWellheadViewMapper.class); size = wellheadDTOList.size();
// size = midWellheadList.size(); if (size > BaseUtils.BATCH_SIZE) {
// if (size > BaseUtils.BATCH_SIZE) { List<List<SpaceOptimizeWellheadDTO>> subList = BaseUtils.getSubList(wellheadDTOList);
// List<List<SpaceOptimizeMidWellheadView>> subList = BaseUtils.getSubList(midWellheadList); subList.forEach(b -> optimizeViewMapper.midWellheadBatchInsertList(b));
// subList.forEach(b -> longWellheadViewMapper.batchInsertList(b)); } else {
// } else { optimizeViewMapper.midWellheadBatchInsertList(wellheadDTOList);
// longWellheadViewMapper.batchInsertList(midWellheadList); }
// } }
// } if (CollUtil.isNotEmpty(unOptimizeDurationList)) {
// if (CollUtil.isNotEmpty(unOptimizeDurationList)) { size = unOptimizeDurationList.size();
// SpaceOptimizeMidDurationViewMapper longDurationViewMapper = context.getBean(SpaceOptimizeMidDurationViewMapper.class); if (size > BaseUtils.BATCH_SIZE) {
// size = unOptimizeDurationList.size(); List<List<SpaceOptimizeDurationDTO>> subList = BaseUtils.getSubList(unOptimizeDurationList);
// if (size > BaseUtils.BATCH_SIZE) { subList.forEach(b -> optimizeViewMapper.midDurationBatchInsertList(b));
// List<List<SpaceOptimizeMidDurationView>> subList = BaseUtils.getSubList(unOptimizeDurationList); } else {
// subList.forEach(b -> longDurationViewMapper.batchInsertList(b)); optimizeViewMapper.midDurationBatchInsertList(unOptimizeDurationList);
// } else { }
// longDurationViewMapper.batchInsertList(unOptimizeDurationList); }
// } if (CollUtil.isNotEmpty(durationDTOList)) {
// } size = durationDTOList.size();
// if (CollUtil.isNotEmpty(midDurationList)) { if (size > BaseUtils.BATCH_SIZE) {
// SpaceOptimizeMidDurationViewMapper longDurationViewMapper = context.getBean(SpaceOptimizeMidDurationViewMapper.class); List<List<SpaceOptimizeDurationDTO>> subList = BaseUtils.getSubList(durationDTOList);
// size = midDurationList.size(); subList.forEach(b -> optimizeViewMapper.midDurationBatchInsertList(b));
// if (size > BaseUtils.BATCH_SIZE) { } else {
// List<List<SpaceOptimizeMidDurationView>> subList = BaseUtils.getSubList(midDurationList); optimizeViewMapper.midDurationBatchInsertList(durationDTOList);
// subList.forEach(b -> longDurationViewMapper.batchInsertList(b)); }
// } else { }
// longDurationViewMapper.batchInsertList(midDurationList);
// }
// }
return XServiceResult.OK; return XServiceResult.OK;
}); });
} }
/*-----------------------------------private-----------------------------------*/ /*-----------------------------------private-----------------------------------*/
} }
\ No newline at end of file
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