Commit 0c8265e7 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 694d7d09
package pps.core.common.utils;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.UUID;
import org.apache.commons.lang3.StringUtils;
import pps.core.common.entity.BaseModel;
......@@ -36,6 +37,22 @@ public class BaseUtils {
model.setModifyTime(now);
}
/**
* 设置实体默认值(定时任务)
*
* @param model 模型
*/
public static void setBaseModelDefaultForJob(BaseModel model) {
Date now = new Date();
model.setId(BaseUtils.getUUID());
model.setCreateById("Task");
model.setCreateByName("Task");
model.setCreateTime(now);
model.setModifyById("Task");
model.setModifyByName("Task");
model.setModifyTime(now);
}
/**
* 获取uuid
*
......@@ -44,4 +61,18 @@ public class BaseUtils {
public static String getUUID() {
return StringUtils.replace(UUID.randomUUID().toString(), "-", "");
}
/**
* 获取月份执行周期
*
* @param date 日期
* @return {@link String}
*/
public static String getExecutionCycleForMonth(Date date) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(DateUtil.format(DateUtil.beginOfMonth(date), "yyyy-MM-dd"))
.append('-')
.append(DateUtil.format(DateUtil.endOfMonth(date), "yyyy-MM-dd"));
return stringBuilder.toString();
}
}
\ No newline at end of file
......@@ -95,14 +95,17 @@ 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);
String executionCycleForMonth = BaseUtils.getExecutionCycleForMonth(date);
DateTime optimizeDeadline = DateUtil.endOfMonth(date);
//开启事务
return XTransactionHelper.begin(context, () -> {
//优化
for (SpaceInstitutionDetailEnt detail : detailEntList) {
SpaceOptimizeLongPeriodEnt longPeriod = new SpaceOptimizeLongPeriodEnt();
longPeriod.setId(BaseUtils.getUUID());
String detailId = detail.getId();
String lineId = detail.getLineId();
//创建记录
String longPeriodId = this.createOptimizeLongPeriod(longPeriodList, detailId, lineId, executionCycleForMonth, optimizeDeadline);
switch (detail.getGridTypeKey()) {
//并网型优化
case "1":
......@@ -111,7 +114,7 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
DynamicQueryPlantPredictedPowerInput.builder()
.plantIds(
plantList.stream()
.filter(p -> StringUtils.equals(detail.getLineId(), p.getLineId()))
.filter(p -> StringUtils.equals(lineId, p.getLineId()))
.map(DynamicQueryBasePowerLinePlantOutput::getPlantId)
.collect(Collectors.toList())
)
......@@ -155,6 +158,8 @@ 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();
......@@ -214,7 +219,7 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
.offset(DateField.MINUTE, between);
String closeWellTime;
if (endDate.compareTo(dateFlag) > 0) {
closeWellTime = "23:30";
closeWellTime = "23:45";
} else {
closeWellTime = endDate.toString(BusinessConstant.MINUTES_FORMAT);
}
......@@ -268,6 +273,27 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
/*-----------------------------------private-----------------------------------*/
/**
* 创建长期优化信息
*
* @param longPeriodList 长期清单
* @param detailId 详细信息id
* @param lineId 线路id
* @param executionCycleForMonth 月执行周期
* @param optimizeDeadline 优化截止日期
* @return {@link String}
*/
private String createOptimizeLongPeriod(List<SpaceOptimizeLongPeriodView> longPeriodList, String detailId, String lineId, String executionCycleForMonth, Date optimizeDeadline) {
SpaceOptimizeLongPeriodView longPeriod = new SpaceOptimizeLongPeriodView();
BaseUtils.setBaseModelDefaultForJob(longPeriod);
longPeriod.setInstitutionId(detailId);
longPeriod.setLineId(lineId);
longPeriod.setExecutionCycle(executionCycleForMonth);
longPeriod.setOptimizeDeadline(optimizeDeadline);
longPeriodList.add(longPeriod);
return longPeriod.getId();
}
/**
* 条件获取获取光伏预测各时段平均值列表
*
......
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