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; package pps.core.common.utils;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.UUID; import cn.hutool.core.lang.UUID;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import pps.core.common.entity.BaseModel; import pps.core.common.entity.BaseModel;
...@@ -36,6 +37,22 @@ public class BaseUtils { ...@@ -36,6 +37,22 @@ public class BaseUtils {
model.setModifyTime(now); 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 * 获取uuid
* *
...@@ -44,4 +61,18 @@ public class BaseUtils { ...@@ -44,4 +61,18 @@ public class BaseUtils {
public static String getUUID() { public static String getUUID() {
return StringUtils.replace(UUID.randomUUID().toString(), "-", ""); 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 ...@@ -95,14 +95,17 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
} }
SpaceInstitutionDurationMapper durationMapper = context.getBean(SpaceInstitutionDurationMapper.class); SpaceInstitutionDurationMapper durationMapper = context.getBean(SpaceInstitutionDurationMapper.class);
DateTime dateFlag = DateUtil.parse("1970-01-02 00:00:00", "yyyy-mm-dd HH:mm:ss"); 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, () -> { return XTransactionHelper.begin(context, () -> {
//优化 //优化
for (SpaceInstitutionDetailEnt detail : detailEntList) { for (SpaceInstitutionDetailEnt detail : detailEntList) {
SpaceOptimizeLongPeriodEnt longPeriod = new SpaceOptimizeLongPeriodEnt();
longPeriod.setId(BaseUtils.getUUID());
String detailId = detail.getId(); String detailId = detail.getId();
String lineId = detail.getLineId();
//创建记录
String longPeriodId = this.createOptimizeLongPeriod(longPeriodList, detailId, lineId, executionCycleForMonth, optimizeDeadline);
switch (detail.getGridTypeKey()) { switch (detail.getGridTypeKey()) {
//并网型优化 //并网型优化
case "1": case "1":
...@@ -111,7 +114,7 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou ...@@ -111,7 +114,7 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
DynamicQueryPlantPredictedPowerInput.builder() DynamicQueryPlantPredictedPowerInput.builder()
.plantIds( .plantIds(
plantList.stream() plantList.stream()
.filter(p -> StringUtils.equals(detail.getLineId(), p.getLineId())) .filter(p -> StringUtils.equals(lineId, p.getLineId()))
.map(DynamicQueryBasePowerLinePlantOutput::getPlantId) .map(DynamicQueryBasePowerLinePlantOutput::getPlantId)
.collect(Collectors.toList()) .collect(Collectors.toList())
) )
...@@ -155,6 +158,8 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou ...@@ -155,6 +158,8 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
Map<String, List<SpaceInstitutionDurationEnt>> durationMap = durationList.stream() Map<String, List<SpaceInstitutionDurationEnt>> durationMap = durationList.stream()
.collect(Collectors.groupingBy(SpaceInstitutionDurationEnt::getWellheadId)); .collect(Collectors.groupingBy(SpaceInstitutionDurationEnt::getWellheadId));
int between = 0; int between = 0;
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();
...@@ -214,7 +219,7 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou ...@@ -214,7 +219,7 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
.offset(DateField.MINUTE, between); .offset(DateField.MINUTE, between);
String closeWellTime; String closeWellTime;
if (endDate.compareTo(dateFlag) > 0) { if (endDate.compareTo(dateFlag) > 0) {
closeWellTime = "23:30"; closeWellTime = "23:45";
} else { } else {
closeWellTime = endDate.toString(BusinessConstant.MINUTES_FORMAT); closeWellTime = endDate.toString(BusinessConstant.MINUTES_FORMAT);
} }
...@@ -268,6 +273,27 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou ...@@ -268,6 +273,27 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
/*-----------------------------------private-----------------------------------*/ /*-----------------------------------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