Commit 7da51c66 authored by ZWT's avatar ZWT

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

1.开发间开优化定期校准定时任务,配置表达式修改定时任务配置文件,创建cloud模块方法;
2.开发间开优化定期校准定时任务,完成业务逻辑开发;
3.修改间开制度管理模块定期校准新增功能,增加初始化校准历史业务逻辑;
4.开发间开优化短期间开优化定时任务,配置表达式修改定时任务配置文件,创建cloud模块方法;
5.修改长期间开优化定时任务,添加离网型线路数据处理逻辑;
6.创建储能预测电量数据(模拟数据测试用)表,生成对应代码,添加条件查询各时段储能预测数据Cloud模块接口;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 34396975
package pps.cloud.prediction.service;
import pps.cloud.prediction.service.data.plant_predicted_power_data.DynamicQueryPlantPredictedPowerOutput;
import pps.cloud.prediction.service.data.storage_predicted_power_data.DynamicQueryStoragePredictedPowerInput;
import pps.cloud.prediction.service.data.storage_predicted_power_data.DynamicQueryStoragePredictedPowerOutput;
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/20 15:40
*/
@XService
@XText("储能预测Cloud模块")
public interface IStoragePredictedPowerCloudService {
/**
* 储能预测Cloud模块--条件查询时段储能电量平均值
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link DynamicQueryPlantPredictedPowerOutput}>
*/
@XText("储能预测Cloud模块--条件查询时段储能电量平均值")
@XApiPost
XListResult<DynamicQueryStoragePredictedPowerOutput> queryAverageEnergyStorageListByParam(XContext context, DynamicQueryStoragePredictedPowerInput input);
}
package pps.cloud.prediction.service.data.storage_predicted_power_data;
import lombok.Data;
import xstartup.annotation.XText;
import java.util.List;
/**
* 储能预测电量数据(模拟数据测试用)
*
* @author ZWT
* @date 2023/09/20
*/
@Data
public class DynamicQueryStoragePredictedPowerInput {
@XText("储能设备id")
private String storageId;
@XText("储能设备ID集合")
private List<String> storageIds;
@XText("年")
private String yearTime;
@XText("月")
private String monthTime;
@XText("开始时间")
private String startTime;
@XText("结束时间")
private String endTime;
}
package pps.cloud.prediction.service.data.storage_predicted_power_data;
import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
/**
* 储能预测电量数据(模拟数据测试用)
*
* @author ZWT
* @date 2023/09/20
*/
@Data
public class DynamicQueryStoragePredictedPowerOutput {
@XText("年")
private String yearTime;
@XText("月")
private String monthTime;
@XText("时")
private String hourTime;
@XText("分")
private String minTime;
@XText("预测功率")
private BigDecimal power;
}
package pps.core.prediction.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import xstartup.annotation.XText;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 储能预测电量数据(模拟数据测试用)
*
* @author ZWT
* @date 2023/09/20
*/
@Data
@TableName("storage_predicted_power_data")
public class StoragePredictedPowerDataEnt implements Serializable {
@TableId(type = IdType.AUTO)
private Integer id;
@XText("储能设备id")
@TableField
private String storageId;
@XText("日期")
@TableField
private String dataDate;
@XText("年")
@TableField
private String yearTime;
@XText("月")
@TableField
private String monthTime;
@XText("日")
@TableField
private String dayTime;
@XText("时")
@TableField
private String hourTime;
@XText("分")
@TableField
private String minTime;
@XText("预测功率")
@TableField
private BigDecimal power;
@XText("创建时间")
@TableField
private Date createTime;
}
package pps.core.prediction.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import xstartup.annotation.XText;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 储能预测电量数据(模拟数据测试用)
*
* @author ZWT
* @date 2023/09/20
*/
@Data
public class StoragePredictedPowerDataView implements Serializable {
@TableField
private Integer id;
@XText("储能设备id")
@TableField
private String storageId;
@XText("日期")
@TableField
private String dataDate;
@XText("年")
@TableField
private String yearTime;
@XText("月")
@TableField
private String monthTime;
@XText("日")
@TableField
private String dayTime;
@XText("时")
@TableField
private String hourTime;
@XText("分")
@TableField
private String minTime;
@XText("预测功率")
@TableField
private BigDecimal power;
@XText("创建时间")
@TableField
private Date createTime;
}
package pps.core.prediction.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
import pps.core.prediction.entity.StoragePredictedPowerDataEnt;
/**
* 储能预测电量数据(模拟数据测试用)
*
* @author ZWT
* @date 2023/09/20
*/
@Repository(value = "pps.core.prediction.mapper.StoragePredictedPowerDataMapper")
public interface StoragePredictedPowerDataMapper extends BaseMapper<StoragePredictedPowerDataEnt> {
}
package pps.core.prediction.mapper;
import org.springframework.stereotype.Repository;
import pps.core.prediction.entity.StoragePredictedPowerDataView;
import java.util.List;
/**
* 储能预测电量数据(模拟数据测试用)
*
* @author ZWT
* @date 2023/09/20
*/
@Repository(value = "pps.core.prediction.mapper.StoragePredictedPowerDataViewMapper")
public interface StoragePredictedPowerDataViewMapper {
StoragePredictedPowerDataView selectOne(StoragePredictedPowerDataView record);
List<StoragePredictedPowerDataView> selectList(StoragePredictedPowerDataView record);
}
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.IStoragePredictedPowerCloudService;
import pps.cloud.prediction.service.data.storage_predicted_power_data.DynamicQueryStoragePredictedPowerInput;
import pps.cloud.prediction.service.data.storage_predicted_power_data.DynamicQueryStoragePredictedPowerOutput;
import pps.core.prediction.entity.StoragePredictedPowerDataEnt;
import pps.core.prediction.mapper.StoragePredictedPowerDataMapper;
import xstartup.annotation.XService;
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/20 15:44
*/
@XService
public class StoragePredictedPowerCloudServiceImpl implements IStoragePredictedPowerCloudService {
/**
* 储能预测Cloud模块--条件查询时段储能电量平均值
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link DynamicQueryStoragePredictedPowerOutput}>
*/
@Override
public XListResult<DynamicQueryStoragePredictedPowerOutput> queryAverageEnergyStorageListByParam(XContext context, DynamicQueryStoragePredictedPowerInput input) {
String storageId = input.getStorageId();
List<String> storageIds = input.getStorageIds();
String yearTime = input.getYearTime();
String monthTime = input.getMonthTime();
String startTime = input.getStartTime();
String endTime = input.getEndTime();
StoragePredictedPowerDataMapper mapper = context.getBean(StoragePredictedPowerDataMapper.class);
List<StoragePredictedPowerDataEnt> list = mapper.selectList(
new QueryWrapper<StoragePredictedPowerDataEnt>()
.select("year_time",
"month_time",
"hour_time",
"min_time",
"AVG( power ) AS power")
.lambda()
.eq(StringUtils.isNotBlank(storageId), StoragePredictedPowerDataEnt::getStorageId, storageId)
.in(CollUtil.isNotEmpty(storageIds), StoragePredictedPowerDataEnt::getStorageId, storageIds)
.eq(StringUtils.isNotBlank(yearTime), StoragePredictedPowerDataEnt::getYearTime, yearTime)
.eq(StringUtils.isNotBlank(monthTime), StoragePredictedPowerDataEnt::getMonthTime, monthTime)
.between(!StringUtils.isAnyBlank(startTime, endTime), StoragePredictedPowerDataEnt::getDataDate, startTime, endTime)
.groupBy(StoragePredictedPowerDataEnt::getYearTime,
StoragePredictedPowerDataEnt::getMonthTime,
StoragePredictedPowerDataEnt::getHourTime,
StoragePredictedPowerDataEnt::getMinTime)
);
List<DynamicQueryStoragePredictedPowerOutput> outputs;
if (CollUtil.isEmpty(list)) {
outputs = new ArrayList<>(0);
} else {
outputs = XCopyUtils.copyNewList(list, DynamicQueryStoragePredictedPowerOutput.class);
}
return XListResult.success(outputs);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="pps.core.prediction.mapper.StoragePredictedPowerDataViewMapper">
<resultMap id="BaseResultMap" type="pps.core.prediction.entity.StoragePredictedPowerDataView">
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="storage_id" property="storageId" jdbcType="VARCHAR"/>
<result column="data_date" property="dataDate" jdbcType="VARCHAR"/>
<result column="year_time" property="yearTime" jdbcType="VARCHAR"/>
<result column="month_time" property="monthTime" jdbcType="VARCHAR"/>
<result column="day_time" property="dayTime" jdbcType="VARCHAR"/>
<result column="hour_time" property="hourTime" jdbcType="VARCHAR"/>
<result column="min_time" property="minTime" jdbcType="VARCHAR"/>
<result column="power" property="power" jdbcType="DECIMAL"/>
<result column="create_time" property="createTime" jdbcType="DATE"/>
</resultMap>
<sql id="Base_Column_List">
id
,
storage_id,
data_date,
year_time,
month_time,
day_time,
hour_time,
min_time,
power,
create_time
</sql>
<select id="selectOne" parameterType="pps.core.prediction.entity.StoragePredictedPowerDataView"
resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from storage_predicted_power_data
where
id=#{id}
</select>
<select id="selectList" parameterType="pps.core.prediction.entity.StoragePredictedPowerDataView"
resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from storage_predicted_power_data
where
id=#{id}
</select>
</mapper>
\ 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