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; ...@@ -26,35 +26,35 @@ import xstartup.feature.api.annotation.XApiPost;
public interface IBasePowerLineCloudService { public interface IBasePowerLineCloudService {
/** /**
* 输电线路配置模块--通过ID查询线路基本信息 * 输电线路配置Cloud模块--通过ID查询线路基本信息
* *
* @param context 上下文 * @param context 上下文
* @param input 输入 * @param input 输入
* @return {@link XSingleResult}<{@link GetBasePowerLineViewOutput}> * @return {@link XSingleResult}<{@link GetBasePowerLineViewOutput}>
*/ */
@XText("输电线路配置模块--通过ID查询线路基本信息") @XText("输电线路配置Cloud模块--通过ID查询线路基本信息")
@XApiGet @XApiGet
XSingleResult<GetBasePowerLineViewOutput> getBasePowerLineById(XContext context, GetBasePowerLineInput input); XSingleResult<GetBasePowerLineViewOutput> getBasePowerLineById(XContext context, GetBasePowerLineInput input);
/** /**
* 输电线路配置模块--条件查询线路基本信息列表 * 输电线路配置Cloud模块--条件查询线路基本信息列表
* *
* @param context 上下文 * @param context 上下文
* @param input 输入 * @param input 输入
* @return {@link XListResult}<{@link DynamicQueryBasePowerLineOutput}> * @return {@link XListResult}<{@link DynamicQueryBasePowerLineOutput}>
*/ */
@XText("输电线路配置模块--条件查询线路基本信息列表") @XText("输电线路配置Cloud模块--条件查询线路基本信息列表")
@XApiPost @XApiPost
XListResult<DynamicQueryBasePowerLineOutput> getBasePowerLineList(XContext context, DynamicQueryBasePowerLineInput input); XListResult<DynamicQueryBasePowerLineOutput> getBasePowerLineList(XContext context, DynamicQueryBasePowerLineInput input);
/** /**
* 输电线路配置模块--条件查询线路关联井口信息 * 输电线路配置Cloud模块--条件查询线路关联井口信息
* *
* @param context 上下文 * @param context 上下文
* @param input 输入 * @param input 输入
* @return {@link XListResult}<{@link DynamicQueryBasePowerLineWellheadViewOutput}> * @return {@link XListResult}<{@link DynamicQueryBasePowerLineWellheadViewOutput}>
*/ */
@XText("输电线路配置模块--条件查询线路关联井口信息") @XText("输电线路配置Cloud模块--条件查询线路关联井口信息")
@XApiPost @XApiPost
XListResult<DynamicQueryBasePowerLineWellheadViewOutput> getPowerLineWellheadList(XContext context, DynamicQueryBasePowerLineWellheadInput input); XListResult<DynamicQueryBasePowerLineWellheadViewOutput> getPowerLineWellheadList(XContext context, DynamicQueryBasePowerLineWellheadInput input);
} }
...@@ -28,6 +28,6 @@ public interface IBasePriceStrategyCloudService { ...@@ -28,6 +28,6 @@ public interface IBasePriceStrategyCloudService {
*/ */
@XApiAnonymous @XApiAnonymous
@XApiGet @XApiGet
@XText("市电峰谷策略--策略配置详情列表") @XText("市电峰谷配置Cloud模块--策略配置详情列表")
XListResult<GetBasePriceStrategyDetailOutput> queryStrategyDetailList(XContext context, GetBasePriceStrategyDetailInput input); 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; ...@@ -34,7 +34,7 @@ import java.util.List;
public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService { public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService {
/** /**
* 输电线路配置模块--通过ID查询线路基本信息 * 输电线路配置Cloud模块--通过ID查询线路基本信息
* *
* @param context 上下文 * @param context 上下文
* @param input 输入 * @param input 输入
...@@ -51,7 +51,7 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService ...@@ -51,7 +51,7 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService
} }
/** /**
* 输电线路配置模块--条件查询线路基本信息列表 * 输电线路配置Cloud模块--条件查询线路基本信息列表
* *
* @param context 上下文 * @param context 上下文
* @param input 输入 * @param input 输入
...@@ -85,7 +85,7 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService ...@@ -85,7 +85,7 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService
} }
/** /**
* 输电线路配置模块--条件查询线路关联井口信息 * 输电线路配置Cloud模块--条件查询线路关联井口信息
* *
* @param context 上下文 * @param context 上下文
* @param input 输入 * @param input 输入
......
...@@ -25,7 +25,7 @@ import java.util.List; ...@@ -25,7 +25,7 @@ import java.util.List;
public class BasePriceStrategyCloudServiceImpl implements IBasePriceStrategyCloudService { public class BasePriceStrategyCloudServiceImpl implements IBasePriceStrategyCloudService {
/** /**
* 市电峰谷策略--策略配置详情列表 * 市电峰谷配置Cloud模块--策略配置详情列表
* *
* @param context 上下文 * @param context 上下文
* @param input 输入 * @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 ...@@ -58,6 +58,13 @@ public class SpaceInstitutionWellheadView extends BaseModel implements Serializa
@TableField @TableField
private BigDecimal runDuration; private BigDecimal runDuration;
/**
* 运行功率
*/
@XText("运行功率(KW)")
@TableField(exist = false)
private BigDecimal serviceRating;
/** /**
* 间开制度小间开时段配置 * 间开制度小间开时段配置
*/ */
......
...@@ -11,6 +11,8 @@ import xstartup.error.XError; ...@@ -11,6 +11,8 @@ import xstartup.error.XError;
public enum BusinessError implements XError { public enum BusinessError implements XError {
LineExists(2100, "当前线路已设定周期"), LineExists(2100, "当前线路已设定周期"),
RepeatSetting(2101, "请勿重复设定"), RepeatSetting(2101, "请勿重复设定"),
DidNotFindSpace(2102, "未发现可优化基础间开制度"),
DidNotFindWellhead(2103, "未发现可优化井口"),
; ;
private int code; private int code;
......
...@@ -4,6 +4,7 @@ import org.apache.ibatis.annotations.Param; ...@@ -4,6 +4,7 @@ import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import pps.core.space.entity.SpaceInstitutionWellheadView; import pps.core.space.entity.SpaceInstitutionWellheadView;
import java.util.Collection;
import java.util.List; import java.util.List;
/** /**
...@@ -25,4 +26,6 @@ public interface SpaceInstitutionWellheadViewMapper { ...@@ -25,4 +26,6 @@ public interface SpaceInstitutionWellheadViewMapper {
* @return int * @return int
*/ */
int batchInsertList(@Param(value = "list") List<SpaceInstitutionWellheadView> list); int batchInsertList(@Param(value = "list") List<SpaceInstitutionWellheadView> list);
List<SpaceInstitutionWellheadView> selectListByInstitutionIds(Collection institutionIds);
} }
package pps.core.space.service; package pps.core.space.service;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import pps.cloud.space.service.ISpaceOptimizeLongCloudService; import pps.cloud.space.service.ISpaceOptimizeLongCloudService;
import pps.core.common.constant.BusinessConstant; import pps.core.common.constant.BusinessConstant;
import pps.core.common.entity.BaseModel; import pps.core.common.entity.BaseModel;
import pps.core.space.entity.SpaceInstitutionDetailEnt; 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.SpaceInstitutionDetailMapper;
import pps.core.space.mapper.SpaceInstitutionWellheadViewMapper;
import xstartup.annotation.XService; import xstartup.annotation.XService;
import xstartup.base.XContext; import xstartup.base.XContext;
import xstartup.data.XServiceResult; import xstartup.data.XServiceResult;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* 长期间开优化Cloud模块 * 长期间开优化Cloud模块
...@@ -36,8 +42,39 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou ...@@ -36,8 +42,39 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
.eq(SpaceInstitutionDetailEnt::getIsCurrentBasic, BusinessConstant.ZERO) .eq(SpaceInstitutionDetailEnt::getIsCurrentBasic, BusinessConstant.ZERO)
.apply(" institution_end_date >= CURDATE() ") .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; return XServiceResult.OK;
} }
/**
* 为间开井口列表设置发电功率
*
* @param context 上下文
* @param spaceWellheadList 空间井口清单
*/
private void setServiceRatingForSpaceWellheadList(XContext context, List<SpaceInstitutionWellheadView> spaceWellheadList) {
}
} }
...@@ -101,4 +101,18 @@ ...@@ -101,4 +101,18 @@
) )
</foreach> </foreach>
</insert> </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> </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