Commit 00a416bf authored by ZWT's avatar ZWT

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

1.开发间开优化长期间开优化定时任务,了解长期并网型流程算法;
2.定时任务模块新增CRON常量类,定义常用表达式;
3.基础信息管理--井口配置Cloud模块,添加通过井口ID集合获取井口列表接口,完成接口冒烟测试;
4.基础信息管理--输电线路配置Cloud模块,添加通过线路ID集合获取线路配置光伏电站列表接口,完成接口冒烟测试;
5.光伏预测--光伏预测Cloud模块,添加条件查询获取光伏预测时间段平均值列表接口,完成接口冒烟测试;
6.修改prediction模块pom引用,添加接口;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 0c8265e7
......@@ -96,6 +96,8 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
SpaceInstitutionDurationMapper durationMapper = context.getBean(SpaceInstitutionDurationMapper.class);
DateTime dateFlag = DateUtil.parse("1970-01-02 00:00:00", "yyyy-mm-dd HH:mm:ss");
List<SpaceOptimizeLongPeriodView> longPeriodList = new ArrayList<>(32);
List<SpaceOptimizeLongWellheadView> longWellheadList = new ArrayList<>(64);
List<SpaceOptimizeLongDurationView> longDurationList = new ArrayList<>(128);
String executionCycleForMonth = BaseUtils.getExecutionCycleForMonth(date);
DateTime optimizeDeadline = DateUtil.endOfMonth(date);
//开启事务
......@@ -158,11 +160,12 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
Map<String, List<SpaceInstitutionDurationEnt>> durationMap = durationList.stream()
.collect(Collectors.groupingBy(SpaceInstitutionDurationEnt::getWellheadId));
int between = 0;
//---------------------------------井口优化---------------------------------
for (int w = 0, wellheadSize = wellheadViewList.size(); w < wellheadSize; w++) {
SpaceInstitutionWellheadView wellhead = wellheadViewList.get(w);
String wellheadId = wellhead.getWellheadId();
String longWellheadId = this.createOptimizeLongWellhead(longWellheadList, longPeriodId, wellheadId, wellhead.getWellNumber());
//取当前井口最大发电量
BigDecimal serviceRating = wellhead.getServiceRating();
List<SpaceInstitutionDurationEnt> durationConfigList = durationMap.get(wellhead);
......@@ -172,6 +175,10 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
}
for (int d = 0, durationSize = durationConfigList.size(); d < durationSize; d++) {
SpaceInstitutionDurationEnt duration = durationConfigList.get(d);
if (d == 0) {
//第一个井口
}
String openWellTime = duration.getOpenWellTime();
DateTime startTime = DateUtil.parse(openWellTime + BusinessConstant.INITIALIZATION_SECOND, BusinessConstant.TIME_FORMAT);
//第一次启动
......@@ -195,12 +202,9 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
}
DynamicQueryPlantPredictedPowerOutput end = avgPowerList.get(endIndex);
String endTimeString = end.getHourTime() + end.getMinTime();
SpaceOptimizeLongDurationEnt.builder()
.wellheadId(wellheadId)
.isOptimize(BusinessConstant.ZERO)
.openWellTime(openWellTime)
.closeWellTime(StringUtils.substringBeforeLast(endTimeString, ":00"))
.build();
this.createOptimizeLongDuration(longDurationList, duration, longPeriodId, wellheadId, "gf",
openWellTime, StringUtils.substringBeforeLast(endTimeString, ":00")
);
//计算
DateTime endTimeOptimize = DateUtil.parse(endTimeString, BusinessConstant.TIME_FORMAT);
DateTime endTime = DateUtil.parse(duration.getCloseWellTime() + BusinessConstant.INITIALIZATION_SECOND, BusinessConstant.TIME_FORMAT);
......@@ -224,14 +228,9 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
closeWellTime = endDate.toString(BusinessConstant.MINUTES_FORMAT);
}
//计算偏移
SpaceOptimizeLongDurationEnt.builder()
.wellheadId(wellheadId)
.isOptimize(BusinessConstant.ZERO)
.openWellTime(
offset.toString(BusinessConstant.MINUTES_FORMAT)
)
.closeWellTime(closeWellTime)
.build();
this.createOptimizeLongDuration(longDurationList, duration, longPeriodId, wellheadId, "gf",
offset.toString(BusinessConstant.MINUTES_FORMAT), closeWellTime
);
}
}
}
......@@ -294,6 +293,49 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
return longPeriod.getId();
}
/**
* 创建长期优化井口信息
*
* @param longWellheadList 长井口列表
* @param longPeriodId 长周期id
* @param wellheadId 井口id
* @param wellNumber 井号
* @return {@link String}
*/
private String createOptimizeLongWellhead(List<SpaceOptimizeLongWellheadView> longWellheadList, String longPeriodId, String wellheadId, String wellNumber) {
SpaceOptimizeLongWellheadView wellheadView = new SpaceOptimizeLongWellheadView();
BaseUtils.setBaseModelDefaultForJob(wellheadView);
wellheadView.setLongPeriodId(longPeriodId);
wellheadView.setWellheadId(wellheadId);
wellheadView.setWellNumber(wellNumber);
longWellheadList.add(wellheadView);
return wellheadView.getId();
}
/**
* 创建长期优化井口区间配置信息
*
* @param longDurationList 长期清单
* @param durationEnt 持续时间ent
* @param longPeriodId 长周期id
* @param wellheadId 井口id
* @param generationTypeKey 生成类型密钥
* @param openWellTime 开井时间
* @param endTimeString 结束时间字符串
*/
private void createOptimizeLongDuration(List<SpaceOptimizeLongDurationView> longDurationList, SpaceInstitutionDurationEnt durationEnt, String longPeriodId,
String wellheadId, String generationTypeKey, String openWellTime, String endTimeString) {
SpaceOptimizeLongDurationView durationView = new SpaceOptimizeLongDurationView();
BaseUtils.setBaseModelDefaultForJob(durationView);
durationView.setLongPeriodId(longPeriodId);
durationView.setWellheadId(wellheadId);
durationView.setGenerationTypeKey(generationTypeKey);
durationView.setIsOptimize(BusinessConstant.ZERO);
durationView.setOpenWellTime(openWellTime);
durationView.setCloseWellTime(endTimeString);
}
/**
* 条件获取获取光伏预测各时段平均值列表
*
......
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