Commit b672eb78 authored by ZWT's avatar ZWT

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

1.开发间开优化长期间开优化定时任务,了解长期并网型流程算法;
2.定时任务模块新增CRON常量类,定义常用表达式;
3.基础信息管理--井口配置Cloud模块,添加通过井口ID集合获取井口列表接口,完成接口冒烟测试;
4.基础信息管理--输电线路配置Cloud模块,添加通过线路ID集合获取线路配置光伏电站列表接口,完成接口冒烟测试;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent c587f14f
......@@ -5,6 +5,8 @@ import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineInpu
import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineOutput;
import pps.cloud.base.service.data.base_power_line.GetBasePowerLineInput;
import pps.cloud.base.service.data.base_power_line.GetBasePowerLineViewOutput;
import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantInput;
import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantOutput;
import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadInput;
import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadViewOutput;
import xstartup.annotation.XService;
......@@ -57,4 +59,15 @@ public interface IBasePowerLineCloudService {
@XText("输电线路配置Cloud模块--条件查询线路关联井口信息")
@XApiPost
XListResult<DynamicQueryBasePowerLineWellheadViewOutput> getPowerLineWellheadList(XContext context, DynamicQueryBasePowerLineWellheadInput input);
/**
* 输电线路配置Cloud模块--条件查询线路关联电站信息
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link DynamicQueryBasePowerLinePlantOutput}>
*/
@XText("输电线路配置Cloud模块--条件查询线路关联电站信息")
@XApiPost
XListResult<DynamicQueryBasePowerLinePlantOutput> queryPowerLinePlantListByParam(XContext context, DynamicQueryBasePowerLinePlantInput input);
}
package pps.cloud.base.service.data.base_power_line_plant;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import xstartup.annotation.XText;
import java.util.Collection;
/**
* 输电线路光伏配置
*
* @author ZWT
* @date 2023/08/25
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class DynamicQueryBasePowerLinePlantInput {
@XText("光伏电站ID")
private String plantId;
@XText("线路ID集合")
private Collection<String> lineIds;
}
package pps.cloud.base.service.data.base_power_line_plant;
import lombok.Data;
import xstartup.annotation.XText;
/**
* 输电线路光伏配置
*
* @author ZWT
* @date 2023/08/25
*/
@Data
public class DynamicQueryBasePowerLinePlantOutput {
@XText("光伏电站ID")
private String plantId;
@XText("线路ID")
private String lineId;
}
......@@ -8,12 +8,17 @@ import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineInpu
import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineOutput;
import pps.cloud.base.service.data.base_power_line.GetBasePowerLineInput;
import pps.cloud.base.service.data.base_power_line.GetBasePowerLineViewOutput;
import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantInput;
import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantOutput;
import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadInput;
import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadViewOutput;
import pps.core.base.entity.BasePowerLineEnt;
import pps.core.base.entity.BasePowerLinePlantEnt;
import pps.core.base.entity.BasePowerLineWellheadView;
import pps.core.base.mapper.BasePowerLineMapper;
import pps.core.base.mapper.BasePowerLinePlantMapper;
import pps.core.base.mapper.BasePowerLineWellheadViewMapper;
import pps.core.common.constant.BusinessConstant;
import pps.core.common.entity.BaseModel;
import xstartup.annotation.XService;
import xstartup.base.XContext;
......@@ -22,6 +27,7 @@ import xstartup.data.XListResult;
import xstartup.data.XSingleResult;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
/**
......@@ -108,4 +114,34 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService
}
return XListResult.success(outputs);
}
/**
* 输电线路配置Cloud模块--条件查询线路关联电站信息
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link DynamicQueryBasePowerLinePlantOutput}>
*/
@Override
public XListResult<DynamicQueryBasePowerLinePlantOutput> queryPowerLinePlantListByParam(XContext context, DynamicQueryBasePowerLinePlantInput input) {
String plantId = input.getPlantId();
Collection<String> lineIds = input.getLineIds();
BasePowerLinePlantMapper mapper = context.getBean(BasePowerLinePlantMapper.class);
List<BasePowerLinePlantEnt> list = mapper.selectList(
new LambdaQueryWrapper<BasePowerLinePlantEnt>()
.eq(BaseModel::getIsDeleted, BusinessConstant.ZERO)
.eq(StringUtils.isNotBlank(plantId), BasePowerLinePlantEnt::getPlantId, plantId)
.in(CollUtil.isNotEmpty(lineIds), BasePowerLinePlantEnt::getLineId, lineIds)
);
List<DynamicQueryBasePowerLinePlantOutput> outputs;
if (CollUtil.isEmpty(list)) {
outputs = new ArrayList<>(0);
} else {
outputs = XCopyUtils.copyNewList(
list,
DynamicQueryBasePowerLinePlantOutput.class
);
}
return XListResult.success(outputs);
}
}
\ No newline at end of file
......@@ -8,12 +8,14 @@ import pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadInput;
import pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadOutput;
import pps.core.base.entity.BaseWellheadEnt;
import pps.core.base.mapper.BaseWellheadMapper;
import pps.core.common.constant.BusinessConstant;
import pps.core.common.entity.BaseModel;
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;
/**
......@@ -37,15 +39,21 @@ public class BaseWellheadCloudServiceImpl implements IBaseWellheadCloudService {
String wellheadId = input.getWellheadId();
List<String> wellheadIds = input.getWellheadIds();
BaseWellheadMapper mapper = context.getBean(BaseWellheadMapper.class);
return XListResult.success(
XCopyUtils.copyNewList(
mapper.selectList(
new LambdaQueryWrapper<BaseWellheadEnt>()
.eq(StringUtils.isNotBlank(wellheadId), BaseModel::getId, wellheadId)
.in(CollUtil.isNotEmpty(wellheadIds), BaseModel::getId, wellheadIds)
),
DynamicQueryBaseWellheadOutput.class
)
List<BaseWellheadEnt> list = mapper.selectList(
new LambdaQueryWrapper<BaseWellheadEnt>()
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.eq(StringUtils.isNotBlank(wellheadId), BaseModel::getId, wellheadId)
.in(CollUtil.isNotEmpty(wellheadIds), BaseModel::getId, wellheadIds)
);
List<DynamicQueryBaseWellheadOutput> outputs;
if (CollUtil.isEmpty(list)) {
outputs = new ArrayList<>(0);
} else {
outputs = XCopyUtils.copyNewList(
list,
DynamicQueryBaseWellheadOutput.class
);
}
return XListResult.success(outputs);
}
}
......@@ -13,6 +13,7 @@ public enum BusinessError implements XError {
RepeatSetting(2101, "请勿重复设定"),
DidNotFindSpace(2102, "未发现可优化基础间开制度"),
DidNotFindWellhead(2103, "未发现可优化井口"),
DidNotFindPlant(2104, "未发现可用光伏电站"),
;
private int code;
......
......@@ -3,7 +3,10 @@ package pps.core.space.service;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.apache.commons.lang3.StringUtils;
import pps.cloud.base.service.IBasePowerLineCloudService;
import pps.cloud.base.service.IBaseWellheadCloudService;
import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantInput;
import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantOutput;
import pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadInput;
import pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadOutput;
import pps.cloud.space.service.ISpaceOptimizeLongCloudService;
......@@ -66,9 +69,13 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
//未发现可优化井口
return XServiceResult.error(context, BusinessError.DidNotFindWellhead);
}
this.setServiceRatingForSpaceWellheadList(context,spaceWellheadList);
this.setServiceRatingForSpaceWellheadList(context, spaceWellheadList);
//取线路关联的所有光伏电站ID
List<DynamicQueryBasePowerLinePlantOutput> plantList = this.getPowerLinePlantListByLineIds(context, lineIds);
if (CollUtil.isEmpty(plantList)) {
//未发现可用光伏电站
return XServiceResult.error(context, BusinessError.DidNotFindPlant);
}
for (SpaceInstitutionDetailEnt detail : detailEntList) {
......@@ -76,6 +83,26 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
return XServiceResult.OK;
}
/*-----------------------------------private-----------------------------------*/
/**
* 按线路ID集合获取电站列表
*
* @param context 上下文
* @param lineIds 线路ID
* @return {@link List}<{@link DynamicQueryBasePowerLinePlantOutput}>
*/
private List<DynamicQueryBasePowerLinePlantOutput> getPowerLinePlantListByLineIds(XContext context, Set<String> lineIds) {
IBasePowerLineCloudService cloudService = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLinePlantOutput> result = cloudService.queryPowerLinePlantListByParam(context,
DynamicQueryBasePowerLinePlantInput.builder()
.lineIds(lineIds)
.build()
);
result.throwIfFail();
return result.getResult();
}
/**
* 为间开井口列表设置发电功率
*
......
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