Commit d2da7a9c authored by ZWT's avatar ZWT

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

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

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 0bf0f627
...@@ -7,6 +7,7 @@ import pps.core.common.entity.BaseModel; ...@@ -7,6 +7,7 @@ import pps.core.common.entity.BaseModel;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
* 间开制度小间开时段配置 * 间开制度小间开时段配置
...@@ -41,4 +42,12 @@ public class SpaceInstitutionDurationEnt extends BaseModel implements Serializab ...@@ -41,4 +42,12 @@ public class SpaceInstitutionDurationEnt extends BaseModel implements Serializab
@XText("关井时间") @XText("关井时间")
@TableField @TableField
private String closeWellTime; private String closeWellTime;
@XText("开井时间")
@TableField(exist = false)
private Date openTime;
@XText("关井时间")
@TableField(exist = false)
private Date closeTime;
} }
...@@ -6,6 +6,7 @@ import pps.core.common.entity.BaseModel; ...@@ -6,6 +6,7 @@ import pps.core.common.entity.BaseModel;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
* 间开优化井口制度记录 * 间开优化井口制度记录
...@@ -43,4 +44,12 @@ public class SpaceOptimizeDurationDTO extends BaseModel implements Serializable ...@@ -43,4 +44,12 @@ public class SpaceOptimizeDurationDTO extends BaseModel implements Serializable
@XText("关井时间") @XText("关井时间")
@TableField @TableField
private String closeWellTime; private String closeWellTime;
@XText("开井时间")
@TableField(exist = false)
private Date openTime;
@XText("关井时间")
@TableField(exist = false)
private Date closeTime;
} }
...@@ -6,6 +6,7 @@ import cn.hutool.core.date.DateTime; ...@@ -6,6 +6,7 @@ import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import pps.cloud.base.service.IBasePowerLineCloudService; import pps.cloud.base.service.IBasePowerLineCloudService;
import pps.cloud.base.service.IBaseWellheadCloudService; import pps.cloud.base.service.IBaseWellheadCloudService;
...@@ -195,7 +196,12 @@ public class SpaceOptimizeBaseService { ...@@ -195,7 +196,12 @@ public class SpaceOptimizeBaseService {
*/ */
public Map<String, List<SpaceInstitutionDurationEnt>> getDurationMap(SpaceInstitutionDurationMapper durationMapper, String detailId) { public Map<String, List<SpaceInstitutionDurationEnt>> getDurationMap(SpaceInstitutionDurationMapper durationMapper, String detailId) {
//通过间开ID和井口ID查所有井口时段配置 //通过间开ID和井口ID查所有井口时段配置
List<SpaceInstitutionDurationEnt> durationList = durationMapper.selectList(new LambdaQueryWrapper<SpaceInstitutionDurationEnt>() List<SpaceInstitutionDurationEnt> durationList = durationMapper.selectList(new QueryWrapper<SpaceInstitutionDurationEnt>()
.select("*",
"STR_TO_DATE( CONCAT( open_well_time, ':00' ), '%H:%i:%s' ) AS openTime",
"STR_TO_DATE( CONCAT( close_well_time, ':00' ), '%H:%i:%s' ) AS closeTime"
)
.lambda()
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE) .eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.eq(SpaceInstitutionDurationEnt::getInstitutionId, detailId) .eq(SpaceInstitutionDurationEnt::getInstitutionId, detailId)
.orderByAsc(SpaceInstitutionDurationEnt::getOpenWellTime) .orderByAsc(SpaceInstitutionDurationEnt::getOpenWellTime)
...@@ -469,7 +475,7 @@ public class SpaceOptimizeBaseService { ...@@ -469,7 +475,7 @@ public class SpaceOptimizeBaseService {
int startDuration = (int) startTime.between(endTime, DateUnit.MINUTE); int startDuration = (int) startTime.between(endTime, DateUnit.MINUTE);
DateTime endTimeOptimize = startTime.offset(DateField.MINUTE, startDuration); DateTime endTimeOptimize = startTime.offset(DateField.MINUTE, startDuration);
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null, this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
startTimeString, endTimeOptimize.toString(BusinessConstant.MINUTES_FORMAT) StringUtils.substringBeforeLast(startTimeString, BusinessConstant.INITIALIZATION_SECOND), endTimeOptimize.toString(BusinessConstant.MINUTES_FORMAT)
); );
//计算时间偏移 //计算时间偏移
DateTime startTimeOptimize = DateUtil.parse(startTimeString, BusinessConstant.TIME_FORMAT); DateTime startTimeOptimize = DateUtil.parse(startTimeString, BusinessConstant.TIME_FORMAT);
...@@ -499,7 +505,7 @@ public class SpaceOptimizeBaseService { ...@@ -499,7 +505,7 @@ public class SpaceOptimizeBaseService {
int openDuration = (int) startTime.between(endTime, DateUnit.MINUTE); int openDuration = (int) startTime.between(endTime, DateUnit.MINUTE);
DateTime endTimeOptimize = startTimeOptimize.offset(DateField.MINUTE, openDuration); DateTime endTimeOptimize = startTimeOptimize.offset(DateField.MINUTE, openDuration);
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null, this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
openWellTime, BaseUtils.getEndTimeString(endTimeOptimize) startTimeOptimize.toString(BusinessConstant.MINUTES_FORMAT), BaseUtils.getEndTimeString(endTimeOptimize)
); );
//取时间间隔(分钟) //取时间间隔(分钟)
between = BaseUtils.getTimeDifferenceMinute(endTimeOptimize, endTime); between = BaseUtils.getTimeDifferenceMinute(endTimeOptimize, endTime);
......
...@@ -4,6 +4,7 @@ import lombok.Data; ...@@ -4,6 +4,7 @@ import lombok.Data;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
/** /**
* 光伏预测Cloud模块 * 光伏预测Cloud模块
...@@ -34,4 +35,7 @@ public class DynamicQueryPlantPredictedPowerOutput { ...@@ -34,4 +35,7 @@ public class DynamicQueryPlantPredictedPowerOutput {
@XText("可供电时长") @XText("可供电时长")
private int powerDuration; private int powerDuration;
@XText("创建时间")
private Date createTime;
} }
...@@ -47,7 +47,8 @@ public class PlantPredictedPowerCloudServiceImpl implements IPlantPredictedPower ...@@ -47,7 +47,8 @@ public class PlantPredictedPowerCloudServiceImpl implements IPlantPredictedPower
"month_time", "month_time",
"hour_time", "hour_time",
"min_time", "min_time",
"AVG( power ) AS power") "AVG( power ) AS power",
"STR_TO_DATE( CONCAT( hour_time, ':', min_time ), '%H:%i:%s' ) AS create_time")
.lambda() .lambda()
.eq(StringUtils.isNotBlank(plantId), PlantPredictedPowerDataEnt::getPlantId, plantId) .eq(StringUtils.isNotBlank(plantId), PlantPredictedPowerDataEnt::getPlantId, plantId)
.in(CollUtil.isNotEmpty(plantIds), PlantPredictedPowerDataEnt::getPlantId, plantIds) .in(CollUtil.isNotEmpty(plantIds), PlantPredictedPowerDataEnt::getPlantId, plantIds)
......
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