Commit 9cae825e authored by ZWT's avatar ZWT

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

1.开发间开优化长期间开优化定时任务,了解长期并网型流程算法;
2.定时任务模块新增CRON常量类,定义常用表达式;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent dca84cf8
......@@ -26,35 +26,35 @@ import xstartup.feature.api.annotation.XApiPost;
public interface IBasePowerLineCloudService {
/**
* 输电线路配置模块--通过ID查询线路基本信息
* 输电线路配置Cloud模块--通过ID查询线路基本信息
*
* @param context 上下文
* @param input 输入
* @return {@link XSingleResult}<{@link GetBasePowerLineViewOutput}>
*/
@XText("输电线路配置模块--通过ID查询线路基本信息")
@XText("输电线路配置Cloud模块--通过ID查询线路基本信息")
@XApiGet
XSingleResult<GetBasePowerLineViewOutput> getBasePowerLineById(XContext context, GetBasePowerLineInput input);
/**
* 输电线路配置模块--条件查询线路基本信息列表
* 输电线路配置Cloud模块--条件查询线路基本信息列表
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link DynamicQueryBasePowerLineOutput}>
*/
@XText("输电线路配置模块--条件查询线路基本信息列表")
@XText("输电线路配置Cloud模块--条件查询线路基本信息列表")
@XApiPost
XListResult<DynamicQueryBasePowerLineOutput> getBasePowerLineList(XContext context, DynamicQueryBasePowerLineInput input);
/**
* 输电线路配置模块--条件查询线路关联井口信息
* 输电线路配置Cloud模块--条件查询线路关联井口信息
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link DynamicQueryBasePowerLineWellheadViewOutput}>
*/
@XText("输电线路配置模块--条件查询线路关联井口信息")
@XText("输电线路配置Cloud模块--条件查询线路关联井口信息")
@XApiPost
XListResult<DynamicQueryBasePowerLineWellheadViewOutput> getPowerLineWellheadList(XContext context, DynamicQueryBasePowerLineWellheadInput input);
}
......@@ -28,6 +28,6 @@ public interface IBasePriceStrategyCloudService {
*/
@XApiAnonymous
@XApiGet
@XText("市电峰谷策略--策略配置详情列表")
@XText("市电峰谷配置Cloud模块--策略配置详情列表")
XListResult<GetBasePriceStrategyDetailOutput> queryStrategyDetailList(XContext context, GetBasePriceStrategyDetailInput input);
}
package pps.cloud.base.service;
import pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadInput;
import pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadOutput;
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 17:26
*/
@XService
@XText("井口配置Cloud模块")
public interface IBaseWellheadCloudService {
/**
* 井口配置Cloud模块--条件查询井口基本信息列表
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link DynamicQueryBaseWellheadOutput}>
*/
@XText("井口配置Cloud模块--条件查询井口基本信息列表")
@XApiPost
XListResult<DynamicQueryBaseWellheadOutput> queryBaseWellheadListByParam(XContext context, DynamicQueryBaseWellheadInput input);
}
package pps.cloud.base.service.data.base_wellhead;
import lombok.Data;
import xstartup.annotation.XText;
import java.util.List;
/**
* 井口配置Cloud模块
*
* @author ZWT
* @date 2023/09/13
*/
@Data
public class DynamicQueryBaseWellheadInput {
@XText("井口ID")
private String wellheadId;
@XText("井口ID集合")
private List<String> wellheadIds;
}
package pps.cloud.base.service.data.base_wellhead;
import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
/**
* 井口配置Cloud模块
*
* @author ZWT
* @date 2023/09/13
*/
@Data
public class DynamicQueryBaseWellheadOutput {
@XText("ID")
private String id;
@XText("组织机构ID")
private String ouId;
@XText("井号")
private String wellNumber;
@XText("运行类型key(字典获取)")
private String runTypeKey;
@XText("运行功率(KW)")
private BigDecimal serviceRating;
}
......@@ -34,7 +34,7 @@ import java.util.List;
public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService {
/**
* 输电线路配置模块--通过ID查询线路基本信息
* 输电线路配置Cloud模块--通过ID查询线路基本信息
*
* @param context 上下文
* @param input 输入
......@@ -51,7 +51,7 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService
}
/**
* 输电线路配置模块--条件查询线路基本信息列表
* 输电线路配置Cloud模块--条件查询线路基本信息列表
*
* @param context 上下文
* @param input 输入
......@@ -85,7 +85,7 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService
}
/**
* 输电线路配置模块--条件查询线路关联井口信息
* 输电线路配置Cloud模块--条件查询线路关联井口信息
*
* @param context 上下文
* @param input 输入
......
......@@ -25,7 +25,7 @@ import java.util.List;
public class BasePriceStrategyCloudServiceImpl implements IBasePriceStrategyCloudService {
/**
* 市电峰谷策略--策略配置详情列表
* 市电峰谷配置Cloud模块--策略配置详情列表
*
* @param context 上下文
* @param input 输入
......
package pps.core.base.service;
import pps.cloud.base.service.IBaseWellheadCloudService;
import pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadInput;
import pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadOutput;
import xstartup.annotation.XService;
import xstartup.base.XContext;
import xstartup.data.XListResult;
/**
* 井口配置Cloud模块
*
* @author ZWT
* @date 2023/09/13 17:34
*/
@XService
public class BaseWellheadCloudServiceImpl implements IBaseWellheadCloudService {
/**
* 井口配置Cloud模块--条件查询井口基本信息列表
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link DynamicQueryBaseWellheadOutput}>
*/
@Override
public XListResult<DynamicQueryBaseWellheadOutput> queryBaseWellheadListByParam(XContext context, DynamicQueryBaseWellheadInput input) {
return null;
}
}
......@@ -58,6 +58,13 @@ public class SpaceInstitutionWellheadView extends BaseModel implements Serializa
@TableField
private BigDecimal runDuration;
/**
* 运行功率
*/
@XText("运行功率(KW)")
@TableField(exist = false)
private BigDecimal serviceRating;
/**
* 间开制度小间开时段配置
*/
......
......@@ -11,6 +11,8 @@ import xstartup.error.XError;
public enum BusinessError implements XError {
LineExists(2100, "当前线路已设定周期"),
RepeatSetting(2101, "请勿重复设定"),
DidNotFindSpace(2102, "未发现可优化基础间开制度"),
DidNotFindWellhead(2103, "未发现可优化井口"),
;
private int code;
......
......@@ -4,6 +4,7 @@ import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import pps.core.space.entity.SpaceInstitutionWellheadView;
import java.util.Collection;
import java.util.List;
/**
......@@ -25,4 +26,6 @@ public interface SpaceInstitutionWellheadViewMapper {
* @return int
*/
int batchInsertList(@Param(value = "list") List<SpaceInstitutionWellheadView> list);
List<SpaceInstitutionWellheadView> selectListByInstitutionIds(Collection institutionIds);
}
package pps.core.space.service;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import pps.cloud.space.service.ISpaceOptimizeLongCloudService;
import pps.core.common.constant.BusinessConstant;
import pps.core.common.entity.BaseModel;
import pps.core.space.entity.SpaceInstitutionDetailEnt;
import pps.core.space.entity.SpaceInstitutionWellheadView;
import pps.core.space.enums.BusinessError;
import pps.core.space.mapper.SpaceInstitutionDetailMapper;
import pps.core.space.mapper.SpaceInstitutionWellheadViewMapper;
import xstartup.annotation.XService;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
* 长期间开优化Cloud模块
......@@ -36,8 +42,39 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
.eq(SpaceInstitutionDetailEnt::getIsCurrentBasic, BusinessConstant.ZERO)
.apply(" institution_end_date >= CURDATE() ")
);
if (CollUtil.isEmpty(detailEntList)) {
//未发现可优化基础间开制度
return XServiceResult.error(context, BusinessError.DidNotFindSpace);
}
Set<String> lineIds = new HashSet<>(32);
Set<String> institutionIds = new HashSet<>(32);
for (SpaceInstitutionDetailEnt spaceInstitutionDetailEnt : detailEntList) {
lineIds.add(spaceInstitutionDetailEnt.getLineId());
institutionIds.add(spaceInstitutionDetailEnt.getId());
}
//取生效中间开的所有井口
SpaceInstitutionWellheadViewMapper wellheadMapper = context.getBean(SpaceInstitutionWellheadViewMapper.class);
List<SpaceInstitutionWellheadView> spaceWellheadList = wellheadMapper.selectListByInstitutionIds(institutionIds);
if (CollUtil.isEmpty(spaceWellheadList)) {
//未发现可优化井口
return XServiceResult.error(context, BusinessError.DidNotFindWellhead);
}
//
for (SpaceInstitutionDetailEnt detail : detailEntList) {
}
return XServiceResult.OK;
}
/**
* 为间开井口列表设置发电功率
*
* @param context 上下文
* @param spaceWellheadList 空间井口清单
*/
private void setServiceRatingForSpaceWellheadList(XContext context, List<SpaceInstitutionWellheadView> spaceWellheadList) {
}
}
......@@ -101,4 +101,18 @@
)
</foreach>
</insert>
<select id="selectListByInstitutionIds" parameterType="pps.core.space.entity.SpaceInstitutionWellheadView"
resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM
space_institution_wellhead
WHERE
is_deleted = 1
AND institution_id IN
<foreach collection="institutionIds" open="(" close=")" separator="," item="item">
#{item}
</foreach>
</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