Commit b4f8cb22 authored by ZWT's avatar ZWT

feat(吉林演示): 松原

1.修改系统首页大屏总览接口,增加区分组织机构逻辑,完成接口冒烟测试;
2.修改系统首页获取井场列表接口,增加区分组织机构逻辑,完成接口冒烟测试;
3.修改系统首页井场功能下钻后提示报错问题,修改用电功率数据获取逻辑,修复报错问题;
4.修改输电线路分页列表查询接口,增加查询条件,在查询父线路列表时只查询10千伏线路,修改线上接口文档同时完成接口冒烟测试;
5.修改系统首页井场实时监控接口,增加区分组织机构逻辑,完成接口冒烟测试;
6.修改系统首页用能分析接口,增加区分组织机构逻辑,完成接口冒烟测试;
7.修改系统首页井场用能分析(双坐标轴)接口,增加区分组织机构逻辑,完成接口冒烟测试;
8.修改系统首页累积用电接口,增加区分组织机构逻辑,完成接口冒烟测试;
9.修改系统首页光伏实时监控接口,增加区分组织机构逻辑,完成接口冒烟测试;
10.修改系统首页井场效果评价接口,增加区分组织机构逻辑,完成接口冒烟测试;
11.修改系统首页先导实验井间开制度接口,增加区分组织机构逻辑,完成接口冒烟测试;
12.修改极短期间开优化模块井口生产情况油井状态接口,增加区分组织机构逻辑,完成接口冒烟测试;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 9ebda1ac
...@@ -7,7 +7,6 @@ import cn.hutool.core.date.DateUtil; ...@@ -7,7 +7,6 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import pps.cloud.base.service.IBasePowerLineCloudService;
import pps.cloud.base.service.IBasePriceStrategyCloudService; import pps.cloud.base.service.IBasePriceStrategyCloudService;
import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineInput; import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineInput;
import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineOutput; import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineOutput;
...@@ -53,11 +52,6 @@ public class SpaceOptimizeApiService extends SpaceOptimizeBaseService { ...@@ -53,11 +52,6 @@ public class SpaceOptimizeApiService extends SpaceOptimizeBaseService {
@XText("极短期间开优化--计算一个率") @XText("极短期间开优化--计算一个率")
public XServiceResult getOptimization(XContext context) { public XServiceResult getOptimization(XContext context) {
DateTime of = DateTime.of("2024-04-02", "yyyy-MM-dd"); DateTime of = DateTime.of("2024-04-02", "yyyy-MM-dd");
//先查并网线路
IBasePowerLineCloudService lineCloudService = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLineOutput> lineOutputXListResult = lineCloudService.getBasePowerLineList(context, DynamicQueryBasePowerLineInput.builder()
.gridTypeKey("1")
.build());
//市电峰谷 //市电峰谷
IBasePriceStrategyCloudService strategyCloudService = context.getBean(IBasePriceStrategyCloudService.class); IBasePriceStrategyCloudService strategyCloudService = context.getBean(IBasePriceStrategyCloudService.class);
SpaceInstitutionDetailMapper detailMapper = context.getBean(SpaceInstitutionDetailMapper.class); SpaceInstitutionDetailMapper detailMapper = context.getBean(SpaceInstitutionDetailMapper.class);
...@@ -71,7 +65,9 @@ public class SpaceOptimizeApiService extends SpaceOptimizeBaseService { ...@@ -71,7 +65,9 @@ public class SpaceOptimizeApiService extends SpaceOptimizeBaseService {
List<GetBasePriceStrategyDetailOutput> strategyList; List<GetBasePriceStrategyDetailOutput> strategyList;
List<SpaceOptimizeShortDurationEnt> shortDurationList; List<SpaceOptimizeShortDurationEnt> shortDurationList;
List<DynamicQueryPlantPredictedPowerOutput> generationHourList; List<DynamicQueryPlantPredictedPowerOutput> generationHourList;
List<DynamicQueryBasePowerLineOutput> lineList = lineOutputXListResult.getResult(); List<DynamicQueryBasePowerLineOutput> lineList = ServiceUtil.getPowerLineList(context, DynamicQueryBasePowerLineInput.builder()
.gridTypeKey("1")
.build());
//分母(谷电和光伏发电去重总时间) //分母(谷电和光伏发电去重总时间)
long lowAndPowerSumMinute = 0; long lowAndPowerSumMinute = 0;
//分子已优化(谷电和光伏发电去重总时间内间开时间) //分子已优化(谷电和光伏发电去重总时间内间开时间)
...@@ -100,10 +96,9 @@ public class SpaceOptimizeApiService extends SpaceOptimizeBaseService { ...@@ -100,10 +96,9 @@ public class SpaceOptimizeApiService extends SpaceOptimizeBaseService {
continue; continue;
} }
//查线路下所有电站 //查线路下所有电站
plantResult = lineCloudService.getPowerLinePlantViewList(context, DynamicQueryBasePowerLinePlantInput.builder() plantList = ServiceUtil.getPowerLinePlantList(context, DynamicQueryBasePowerLinePlantInput.builder()
.lineId(line.getId()) .lineId(line.getId())
.build()); .build());
plantList = plantResult.getResult();
if (CollUtil.isEmpty(plantList)) { if (CollUtil.isEmpty(plantList)) {
continue; continue;
} }
...@@ -131,7 +126,7 @@ public class SpaceOptimizeApiService extends SpaceOptimizeBaseService { ...@@ -131,7 +126,7 @@ public class SpaceOptimizeApiService extends SpaceOptimizeBaseService {
continue; continue;
} }
//查当日预测发电时间段 //查当日预测发电时间段
generationHourList = this.getAveragePowerGenerationListByPlantIds(context, DynamicQueryPlantPredictedPowerInput.builder() generationHourList = this.getAveragePowerGeneration15List(context, DynamicQueryPlantPredictedPowerInput.builder()
.plantIds(plantList.stream() .plantIds(plantList.stream()
.map(DynamicQueryBasePowerLinePlantViewOutput::getPlantId) .map(DynamicQueryBasePowerLinePlantViewOutput::getPlantId)
.collect(Collectors.toList())) .collect(Collectors.toList()))
......
...@@ -165,16 +165,13 @@ public class SpaceOptimizeBaseService { ...@@ -165,16 +165,13 @@ public class SpaceOptimizeBaseService {
throw new XServiceException(BusinessError.DidNotFindWellhead); throw new XServiceException(BusinessError.DidNotFindWellhead);
} }
//取间开对应的线路 //取间开对应的线路
IBasePowerLineCloudService lineCloudService = context.getBean(IBasePowerLineCloudService.class); List<DynamicQueryBasePowerLineOutput> powerLineList = ServiceUtil.getPowerLineList(context, DynamicQueryBasePowerLineInput.builder()
XListResult<DynamicQueryBasePowerLineOutput> lineResult = lineCloudService.getBasePowerLineList(context, DynamicQueryBasePowerLineInput.builder()
.lineIds(lineIds) .lineIds(lineIds)
.build()); .build());
lineResult.throwIfFail();
//查线路下所有电站 //查线路下所有电站
XListResult<DynamicQueryBasePowerLinePlantViewOutput> linePlantResult = lineCloudService.getPowerLinePlantViewList(context, DynamicQueryBasePowerLinePlantInput.builder() List<DynamicQueryBasePowerLinePlantViewOutput> powerLinePlantList = ServiceUtil.getPowerLinePlantList(context, DynamicQueryBasePowerLinePlantInput.builder()
.lineIds(lineIds) .lineIds(lineIds)
.build()); .build());
linePlantResult.throwIfFail();
//取当前月 //取当前月
int month = startDate.monthBaseOne(); int month = startDate.monthBaseOne();
//查井口配置时间段 //查井口配置时间段
...@@ -196,10 +193,10 @@ public class SpaceOptimizeBaseService { ...@@ -196,10 +193,10 @@ public class SpaceOptimizeBaseService {
Map<String, List<SpaceInstitutionWellheadView>> wellheadMap = spaceWellheadList.stream() Map<String, List<SpaceInstitutionWellheadView>> wellheadMap = spaceWellheadList.stream()
.collect(Collectors.groupingBy(SpaceInstitutionWellheadView::getInstitutionId)); .collect(Collectors.groupingBy(SpaceInstitutionWellheadView::getInstitutionId));
//线路ID/峰谷策略ID Map //线路ID/峰谷策略ID Map
Map<String, String> lineMap = lineResult.getResult().stream() Map<String, String> lineMap = powerLineList.stream()
.collect(Collectors.toMap(DynamicQueryBasePowerLineOutput::getId, DynamicQueryBasePowerLineOutput::getStrategyId)); .collect(Collectors.toMap(DynamicQueryBasePowerLineOutput::getId, DynamicQueryBasePowerLineOutput::getStrategyId));
//线路ID/电站ID LIST Map //线路ID/电站ID LIST Map
Map<String, List<String>> plantIdsMap = linePlantResult.getResult().stream() Map<String, List<String>> plantIdsMap = powerLinePlantList.stream()
.collect(Collectors.groupingBy(DynamicQueryBasePowerLinePlantViewOutput::getLineId, .collect(Collectors.groupingBy(DynamicQueryBasePowerLinePlantViewOutput::getLineId,
Collectors.mapping(DynamicQueryBasePowerLinePlantViewOutput::getPlantId, Collectors.toList()))); Collectors.mapping(DynamicQueryBasePowerLinePlantViewOutput::getPlantId, Collectors.toList())));
//峰谷策略ID/峰谷策略LIST Map //峰谷策略ID/峰谷策略LIST Map
...@@ -781,7 +778,7 @@ public class SpaceOptimizeBaseService { ...@@ -781,7 +778,7 @@ public class SpaceOptimizeBaseService {
DynamicQueryPlantPredictedPowerInput plantPowerInput, DateTime optimizeDate) { DynamicQueryPlantPredictedPowerInput plantPowerInput, DateTime optimizeDate) {
//获取当前制度对应的光伏预测数据列表 //获取当前制度对应的光伏预测数据列表
Map<String, List<SpaceInstitutionDurationEnt>> durationMap = this.getDurationMap(context, detail.getId()); Map<String, List<SpaceInstitutionDurationEnt>> durationMap = this.getDurationMap(context, detail.getId());
List<DynamicQueryPlantPredictedPowerOutput> avgPowerList = this.getAveragePowerGenerationListByPlantIds(context, plantPowerInput); List<DynamicQueryPlantPredictedPowerOutput> avgPowerList = this.getAveragePowerGeneration15List(context, plantPowerInput);
if (CollUtil.isEmpty(avgPowerList)) { if (CollUtil.isEmpty(avgPowerList)) {
//没有预测数据都不优化 //没有预测数据都不优化
this.setUnOptimizeWellheadConfig(durationDTOList, unOptimizeDurationList, wellheadDTOList, this.setUnOptimizeWellheadConfig(durationDTOList, unOptimizeDurationList, wellheadDTOList,
...@@ -856,7 +853,7 @@ public class SpaceOptimizeBaseService { ...@@ -856,7 +853,7 @@ public class SpaceOptimizeBaseService {
//获取井口间开时间段 //获取井口间开时间段
Map<String, List<SpaceInstitutionDurationEnt>> durationMap = this.getDurationMap(context, detail.getId()); Map<String, List<SpaceInstitutionDurationEnt>> durationMap = this.getDurationMap(context, detail.getId());
//获取当前制度对应的光伏预测数据列表 //获取当前制度对应的光伏预测数据列表
List<DynamicQueryPlantPredictedPowerOutput> avgPowerList = this.getAveragePowerGenerationListByPlantIds(context, plantPowerInput); List<DynamicQueryPlantPredictedPowerOutput> avgPowerList = this.getAveragePowerGeneration15List(context, plantPowerInput);
if (CollUtil.isEmpty(avgPowerList)) { if (CollUtil.isEmpty(avgPowerList)) {
//没有预测数据都不优化 //没有预测数据都不优化
this.setUnOptimizeWellheadConfig(durationDTOList, unOptimizeDurationList, wellheadDTOList, this.setUnOptimizeWellheadConfig(durationDTOList, unOptimizeDurationList, wellheadDTOList,
...@@ -958,7 +955,7 @@ public class SpaceOptimizeBaseService { ...@@ -958,7 +955,7 @@ public class SpaceOptimizeBaseService {
} }
//其它井口的第一次启动时间 //其它井口的第一次启动时间
else { else {
DateTime startTimeOffset = firstStartTime.offsetNew(DateField.MINUTE, startInterval); DateTime startTimeOffset = DateUtil.offsetMinute(firstStartTime, startInterval);
int startIndex = -1; int startIndex = -1;
for (int a = 0, avgPowerSize = avgPowerList.size(); a < avgPowerSize; a++) { for (int a = 0, avgPowerSize = avgPowerList.size(); a < avgPowerSize; a++) {
DynamicQueryPlantPredictedPowerOutput predictedPower = avgPowerList.get(a); DynamicQueryPlantPredictedPowerOutput predictedPower = avgPowerList.get(a);
...@@ -1162,20 +1159,6 @@ public class SpaceOptimizeBaseService { ...@@ -1162,20 +1159,6 @@ public class SpaceOptimizeBaseService {
durationDTOList.add(durationDTO); durationDTOList.add(durationDTO);
} }
/**
* 条件获取获取光伏预测各时段平均值列表
*
* @param context 上下文
* @param input 输入
* @return {@link List}<{@link DynamicQueryPlantPredictedPowerOutput}>
*/
public List<DynamicQueryPlantPredictedPowerOutput> getAveragePowerGenerationListByPlantIds(XContext context, DynamicQueryPlantPredictedPowerInput input) {
IPlantPredictedPowerCloudService cloudService = context.getBean(IPlantPredictedPowerCloudService.class);
XListResult<DynamicQueryPlantPredictedPowerOutput> result = cloudService.queryAveragePowerGenerationListByParam(context, input);
result.throwIfFail();
return result.getResult();
}
/** /**
* 获得半小时平均功率 * 获得半小时平均功率
* *
...@@ -1440,7 +1423,7 @@ public class SpaceOptimizeBaseService { ...@@ -1440,7 +1423,7 @@ public class SpaceOptimizeBaseService {
} }
//其它井口的第一次启动时间 //其它井口的第一次启动时间
else { else {
DateTime startTimeOffset = firstStartTime.offsetNew(DateField.MINUTE, startInterval); DateTime startTimeOffset = DateUtil.offsetMinute(firstStartTime, startInterval);
int startIndex = -1; int startIndex = -1;
for (int a = 0, avgPowerSize = avgPowerList.size(); a < avgPowerSize; a++) { for (int a = 0, avgPowerSize = avgPowerList.size(); a < avgPowerSize; a++) {
DynamicQueryPlantPredictedPowerOutput predictedPower = avgPowerList.get(a); DynamicQueryPlantPredictedPowerOutput predictedPower = avgPowerList.get(a);
...@@ -1612,8 +1595,8 @@ public class SpaceOptimizeBaseService { ...@@ -1612,8 +1595,8 @@ public class SpaceOptimizeBaseService {
}//其它井口的第一次启动时间 }//其它井口的第一次启动时间
else { else {
//其它井启动时间:第一口井启动时间+启动间隔 //其它井启动时间:第一口井启动时间+启动间隔
DateTime startTimeOffset = firstStartTime.offsetNew(DateField.MINUTE, startInterval); DateTime startTimeOffset = DateUtil.offsetMinute(firstStartTime, startInterval);
DateTime endTimeOffset = firstEndTime.offsetNew(DateField.MINUTE, startInterval); DateTime endTimeOffset = DateUtil.offsetMinute(firstEndTime, startInterval);
//取时间间隔(分钟) //取时间间隔(分钟)
between = BaseUtils.getTimeDifferenceMinute(endTimeOffset, endTime); between = BaseUtils.getTimeDifferenceMinute(endTimeOffset, endTime);
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null, this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
......
...@@ -13,6 +13,8 @@ import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineInpu ...@@ -13,6 +13,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.DynamicQueryBasePowerLineOutput;
import pps.cloud.base.service.data.base_power_line.GetBasePowerLineInput; 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.GetBasePowerLineViewOutput;
import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantInput;
import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantViewOutput;
import pps.cloud.base.service.data.base_price_strategy_detail.GetBasePriceStrategyDetailInput; import pps.cloud.base.service.data.base_price_strategy_detail.GetBasePriceStrategyDetailInput;
import pps.cloud.base.service.data.base_price_strategy_detail.GetBasePriceStrategyDetailOutput; import pps.cloud.base.service.data.base_price_strategy_detail.GetBasePriceStrategyDetailOutput;
import pps.cloud.base.service.data.config_oil_field.GetConfigOilFieldOutput; import pps.cloud.base.service.data.config_oil_field.GetConfigOilFieldOutput;
...@@ -44,6 +46,20 @@ public class ServiceUtil { ...@@ -44,6 +46,20 @@ public class ServiceUtil {
/*-------------------------服务调用-------------------------*/ /*-------------------------服务调用-------------------------*/
/**
* 获取输电线电站列表
*
* @param context 上下文
* @param input 入参
* @return {@link List}<{@link DynamicQueryBasePowerLinePlantViewOutput}>
*/
public static List<DynamicQueryBasePowerLinePlantViewOutput> getPowerLinePlantList(XContext context, DynamicQueryBasePowerLinePlantInput input) {
IBasePowerLineCloudService service = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLinePlantViewOutput> result = service.getPowerLinePlantViewList(context, input);
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