Commit e3fe710d 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 96847b83
...@@ -28,5 +28,4 @@ public interface IBaseWellheadCloudService { ...@@ -28,5 +28,4 @@ public interface IBaseWellheadCloudService {
@XText("井口配置Cloud模块--条件查询井口基本信息列表") @XText("井口配置Cloud模块--条件查询井口基本信息列表")
@XApiPost @XApiPost
XListResult<DynamicQueryBaseWellheadOutput> queryBaseWellheadListByParam(XContext context, DynamicQueryBaseWellheadInput input); XListResult<DynamicQueryBaseWellheadOutput> queryBaseWellheadListByParam(XContext context, DynamicQueryBaseWellheadInput input);
}
} \ No newline at end of file
...@@ -7,34 +7,34 @@ import xstartup.data.XSingleResult; ...@@ -7,34 +7,34 @@ import xstartup.data.XSingleResult;
import xstartup.feature.api.annotation.XApiGet; import xstartup.feature.api.annotation.XApiGet;
/** /**
* 基础间开配置模块 * 基础间开配置Cloud模块
* *
* @author ZWT * @author ZWT
* @date 2023/09/06 17:07 * @date 2023/09/06 17:07
*/ */
@XService @XService
@XText("基础间开配置模块") @XText("基础间开配置Cloud模块")
public interface ISpaceInstitutionDetailCloudService { public interface ISpaceInstitutionDetailCloudService {
/** /**
* 基础间开配置模块--检查线路是否被引用 * 基础间开配置Cloud模块--检查线路是否被引用
* *
* @param context 上下文 * @param context 上下文
* @param lineId 线路id * @param lineId 线路id
* @return {@link XSingleResult}<{@link Long}> * @return {@link XSingleResult}<{@link Long}>
*/ */
@XText("基础间开配置模块--检查线路是否被引用") @XText("基础间开配置Cloud模块--检查线路是否被引用")
@XApiGet @XApiGet
XSingleResult<Long> getInstitutionLineCountByLineId(XContext context, String lineId); XSingleResult<Long> getInstitutionLineCountByLineId(XContext context, String lineId);
/** /**
* 基础间开配置模块--检查井口是否被引用 * 基础间开配置Cloud模块--检查井口是否被引用
* *
* @param context 上下文 * @param context 上下文
* @param wellheadId 井口id * @param wellheadId 井口id
* @return {@link XSingleResult}<{@link Long}> * @return {@link XSingleResult}<{@link Long}>
*/ */
@XText("基础间开配置模块--检查井口是否被引用") @XText("基础间开配置Cloud模块--检查井口是否被引用")
@XApiGet @XApiGet
XSingleResult<Long> getInstitutionWellheadCountByWellheadId(XContext context, String wellheadId); XSingleResult<Long> getInstitutionWellheadCountByWellheadId(XContext context, String wellheadId);
} }
...@@ -6,21 +6,21 @@ import xstartup.base.XContext; ...@@ -6,21 +6,21 @@ import xstartup.base.XContext;
import xstartup.data.XServiceResult; import xstartup.data.XServiceResult;
/** /**
* 长期间开优化模块 * 长期间开优化Cloud模块
* *
* @author ZWT * @author ZWT
* @date 2023/09/13 14:03 * @date 2023/09/13 14:03
*/ */
@XService @XService
@XText("长期间开优化模块") @XText("长期间开优化Cloud模块")
public interface ISpaceOptimizeLongCloudService { public interface ISpaceOptimizeLongCloudService {
/** /**
* 长期间开优化--定时任务 * 长期间开优化Cloud模块--定时任务
* *
* @param context 上下文 * @param context 上下文
* @return {@link XServiceResult} * @return {@link XServiceResult}
*/ */
@XText("长期间开优化--定时任务") @XText("长期间开优化Cloud模块--定时任务")
XServiceResult optimizeLongJob(XContext context); XServiceResult optimizeLongJob(XContext context);
} }
\ No newline at end of file
...@@ -22,7 +22,7 @@ import xstartup.data.XSingleResult; ...@@ -22,7 +22,7 @@ import xstartup.data.XSingleResult;
public class SpaceInstitutionDetailCloudServiceImpl implements ISpaceInstitutionDetailCloudService { public class SpaceInstitutionDetailCloudServiceImpl implements ISpaceInstitutionDetailCloudService {
/** /**
* 基础间开配置模块--获取线路配置制度数量 * 基础间开配置Cloud模块--获取线路配置制度数量
* *
* @param context 上下文 * @param context 上下文
* @param lineId 线路id * @param lineId 线路id
...@@ -39,7 +39,7 @@ public class SpaceInstitutionDetailCloudServiceImpl implements ISpaceInstitution ...@@ -39,7 +39,7 @@ public class SpaceInstitutionDetailCloudServiceImpl implements ISpaceInstitution
} }
/** /**
* 基础间开配置模块--检查井口是否被引用 * 基础间开配置Cloud模块--检查井口是否被引用
* *
* @param context 上下文 * @param context 上下文
* @param wellheadId 井口id * @param wellheadId 井口id
......
...@@ -38,7 +38,7 @@ import java.util.stream.Collectors; ...@@ -38,7 +38,7 @@ import java.util.stream.Collectors;
public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongCloudService { public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongCloudService {
/** /**
* 长期间开优化--定时任务 * 长期间开优化Cloud模块--定时任务
* *
* @param context 上下文 * @param context 上下文
* @return {@link XServiceResult} * @return {@link XServiceResult}
......
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
<version>1.15.169-xstartup-cloud</version> <version>1.15.169-xstartup-cloud</version>
<relativePath/> <relativePath/>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>gf</groupId> <groupId>gf</groupId>
<artifactId>pps-cloud-prediction</artifactId> <artifactId>pps-cloud-prediction</artifactId>
...@@ -16,6 +15,15 @@ ...@@ -16,6 +15,15 @@
<properties> <properties>
<maven.build.timestamp.format>yyyy.MMdd.HHmmss</maven.build.timestamp.format> <maven.build.timestamp.format>yyyy.MMdd.HHmmss</maven.build.timestamp.format>
</properties> </properties>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build> <build>
<plugins> <plugins>
<!-- 打包jar文件时,配置manifest文件,加入lib包的jar依赖 --> <!-- 打包jar文件时,配置manifest文件,加入lib包的jar依赖 -->
......
package pps.cloud.prediction.service;
import pps.cloud.prediction.service.data.plant_predicted_power_data.DynamicQueryPlantPredictedPowerInput;
import pps.cloud.prediction.service.data.plant_predicted_power_data.DynamicQueryPlantPredictedPowerOutput;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XListResult;
import xstartup.feature.api.annotation.XApiPost;
/**
* 光伏预测Cloud模块
*
* @author ZWT
* @date 2023/09/13 18:49
*/
@XService
@XText("光伏预测Cloud模块")
public interface IPlantPredictedPowerCloudService {
/**
* 光伏预测Cloud模块--条件查询时段发电量平均值
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link DynamicQueryPlantPredictedPowerOutput}>
*/
@XText("光伏预测Cloud模块--条件查询时段发电量平均值")
@XApiPost
XListResult<DynamicQueryPlantPredictedPowerOutput> queryAveragePowerGenerationByParam(XContext context, DynamicQueryPlantPredictedPowerInput input);
}
\ No newline at end of file
package pps.cloud.prediction.service.data.plant_predicted_power_data;
import lombok.Data;
import xstartup.annotation.XText;
import java.util.List;
/**
* 光伏预测Cloud模块
*
* @author ZWT
* @date 2023/09/13
*/
@Data
public class DynamicQueryPlantPredictedPowerInput {
@XText("电站ID")
private String plantId;
@XText("电站ID集合")
private List<String> plantIds;
@XText("月")
private String monthTime;
}
package pps.cloud.prediction.service.data.plant_predicted_power_data;
import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
/**
* 光伏预测Cloud模块
*
* @author ZWT
* @date 2023/09/13
*/
@Data
public class DynamicQueryPlantPredictedPowerOutput {
@XText("日期")
private String dataDate;
@XText("年")
private String yearTime;
@XText("月")
private String monthTime;
@XText("日")
private String dayTime;
@XText("时")
private String hourTime;
@XText("分")
private String minTime;
@XText("预测功率")
private BigDecimal power;
}
...@@ -27,6 +27,12 @@ ...@@ -27,6 +27,12 @@
<version>1.0.0-pps</version> <version>1.0.0-pps</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency>
<groupId>gf</groupId>
<artifactId>pps-cloud-prediction</artifactId>
<version>1.0.0-pps</version>
<scope>compile</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>
<plugins> <plugins>
......
package pps.core.prediction.service;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.commons.lang3.StringUtils;
import pps.cloud.prediction.service.IPlantPredictedPowerCloudService;
import pps.cloud.prediction.service.data.plant_predicted_power_data.DynamicQueryPlantPredictedPowerInput;
import pps.cloud.prediction.service.data.plant_predicted_power_data.DynamicQueryPlantPredictedPowerOutput;
import pps.core.prediction.entity.PlantPredictedPowerDataEnt;
import pps.core.prediction.mapper.PlantPredictedPowerDataMapper;
import xstartup.base.XContext;
import xstartup.base.util.XCopyUtils;
import xstartup.data.XListResult;
import java.util.ArrayList;
import java.util.List;
/**
* 光伏预测Cloud模块
*
* @author ZWT
* @date 2023/09/13 19:05
*/
public class PlantPredictedPowerCloudServiceImpl implements IPlantPredictedPowerCloudService {
/**
* 光伏预测Cloud模块--条件查询时段发电量平均值
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link DynamicQueryPlantPredictedPowerOutput}>
*/
@Override
public XListResult<DynamicQueryPlantPredictedPowerOutput> queryAveragePowerGenerationByParam(XContext context, DynamicQueryPlantPredictedPowerInput input) {
String plantId = input.getPlantId();
List<String> plantIds = input.getPlantIds();
String monthTime = input.getMonthTime();
PlantPredictedPowerDataMapper mapper = context.getBean(PlantPredictedPowerDataMapper.class);
List<PlantPredictedPowerDataEnt> list = mapper.selectList(
new QueryWrapper<PlantPredictedPowerDataEnt>()
.select("data_date",
"year_time",
"month_time",
"day_time",
"hour_time",
"min_time",
"AVG( power ) AS power")
.lambda()
.eq(StringUtils.isNotBlank(plantId), PlantPredictedPowerDataEnt::getPlantId, plantId)
.in(CollUtil.isNotEmpty(plantIds), PlantPredictedPowerDataEnt::getPlantId, plantIds)
.eq(StringUtils.isNotBlank(monthTime), PlantPredictedPowerDataEnt::getMonthTime, monthTime)
.groupBy(PlantPredictedPowerDataEnt::getDataDate,
PlantPredictedPowerDataEnt::getYearTime,
PlantPredictedPowerDataEnt::getMonthTime,
PlantPredictedPowerDataEnt::getDayTime,
PlantPredictedPowerDataEnt::getHourTime,
PlantPredictedPowerDataEnt::getMinTime)
);
List<DynamicQueryPlantPredictedPowerOutput> outputs;
if (CollUtil.isEmpty(list)) {
outputs = new ArrayList<>(0);
} else {
outputs = XCopyUtils.copyNewList(list, DynamicQueryPlantPredictedPowerOutput.class);
}
return XListResult.success(outputs);
}
}
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