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;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.ObjectUtil;
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.data.base_power_line.DynamicQueryBasePowerLineInput;
import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineOutput;
......@@ -53,11 +52,6 @@ public class SpaceOptimizeApiService extends SpaceOptimizeBaseService {
@XText("极短期间开优化--计算一个率")
public XServiceResult getOptimization(XContext context) {
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);
SpaceInstitutionDetailMapper detailMapper = context.getBean(SpaceInstitutionDetailMapper.class);
......@@ -71,7 +65,9 @@ public class SpaceOptimizeApiService extends SpaceOptimizeBaseService {
List<GetBasePriceStrategyDetailOutput> strategyList;
List<SpaceOptimizeShortDurationEnt> shortDurationList;
List<DynamicQueryPlantPredictedPowerOutput> generationHourList;
List<DynamicQueryBasePowerLineOutput> lineList = lineOutputXListResult.getResult();
List<DynamicQueryBasePowerLineOutput> lineList = ServiceUtil.getPowerLineList(context, DynamicQueryBasePowerLineInput.builder()
.gridTypeKey("1")
.build());
//分母(谷电和光伏发电去重总时间)
long lowAndPowerSumMinute = 0;
//分子已优化(谷电和光伏发电去重总时间内间开时间)
......@@ -100,10 +96,9 @@ public class SpaceOptimizeApiService extends SpaceOptimizeBaseService {
continue;
}
//查线路下所有电站
plantResult = lineCloudService.getPowerLinePlantViewList(context, DynamicQueryBasePowerLinePlantInput.builder()
plantList = ServiceUtil.getPowerLinePlantList(context, DynamicQueryBasePowerLinePlantInput.builder()
.lineId(line.getId())
.build());
plantList = plantResult.getResult();
if (CollUtil.isEmpty(plantList)) {
continue;
}
......@@ -131,7 +126,7 @@ public class SpaceOptimizeApiService extends SpaceOptimizeBaseService {
continue;
}
//查当日预测发电时间段
generationHourList = this.getAveragePowerGenerationListByPlantIds(context, DynamicQueryPlantPredictedPowerInput.builder()
generationHourList = this.getAveragePowerGeneration15List(context, DynamicQueryPlantPredictedPowerInput.builder()
.plantIds(plantList.stream()
.map(DynamicQueryBasePowerLinePlantViewOutput::getPlantId)
.collect(Collectors.toList()))
......
......@@ -165,16 +165,13 @@ public class SpaceOptimizeBaseService {
throw new XServiceException(BusinessError.DidNotFindWellhead);
}
//取间开对应的线路
IBasePowerLineCloudService lineCloudService = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLineOutput> lineResult = lineCloudService.getBasePowerLineList(context, DynamicQueryBasePowerLineInput.builder()
List<DynamicQueryBasePowerLineOutput> powerLineList = ServiceUtil.getPowerLineList(context, DynamicQueryBasePowerLineInput.builder()
.lineIds(lineIds)
.build());
lineResult.throwIfFail();
//查线路下所有电站
XListResult<DynamicQueryBasePowerLinePlantViewOutput> linePlantResult = lineCloudService.getPowerLinePlantViewList(context, DynamicQueryBasePowerLinePlantInput.builder()
List<DynamicQueryBasePowerLinePlantViewOutput> powerLinePlantList = ServiceUtil.getPowerLinePlantList(context, DynamicQueryBasePowerLinePlantInput.builder()
.lineIds(lineIds)
.build());
linePlantResult.throwIfFail();
//取当前月
int month = startDate.monthBaseOne();
//查井口配置时间段
......@@ -196,10 +193,10 @@ public class SpaceOptimizeBaseService {
Map<String, List<SpaceInstitutionWellheadView>> wellheadMap = spaceWellheadList.stream()
.collect(Collectors.groupingBy(SpaceInstitutionWellheadView::getInstitutionId));
//线路ID/峰谷策略ID Map
Map<String, String> lineMap = lineResult.getResult().stream()
Map<String, String> lineMap = powerLineList.stream()
.collect(Collectors.toMap(DynamicQueryBasePowerLineOutput::getId, DynamicQueryBasePowerLineOutput::getStrategyId));
//线路ID/电站ID LIST Map
Map<String, List<String>> plantIdsMap = linePlantResult.getResult().stream()
Map<String, List<String>> plantIdsMap = powerLinePlantList.stream()
.collect(Collectors.groupingBy(DynamicQueryBasePowerLinePlantViewOutput::getLineId,
Collectors.mapping(DynamicQueryBasePowerLinePlantViewOutput::getPlantId, Collectors.toList())));
//峰谷策略ID/峰谷策略LIST Map
......@@ -781,7 +778,7 @@ public class SpaceOptimizeBaseService {
DynamicQueryPlantPredictedPowerInput plantPowerInput, DateTime optimizeDate) {
//获取当前制度对应的光伏预测数据列表
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)) {
//没有预测数据都不优化
this.setUnOptimizeWellheadConfig(durationDTOList, unOptimizeDurationList, wellheadDTOList,
......@@ -856,7 +853,7 @@ public class SpaceOptimizeBaseService {
//获取井口间开时间段
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)) {
//没有预测数据都不优化
this.setUnOptimizeWellheadConfig(durationDTOList, unOptimizeDurationList, wellheadDTOList,
......@@ -958,7 +955,7 @@ public class SpaceOptimizeBaseService {
}
//其它井口的第一次启动时间
else {
DateTime startTimeOffset = firstStartTime.offsetNew(DateField.MINUTE, startInterval);
DateTime startTimeOffset = DateUtil.offsetMinute(firstStartTime, startInterval);
int startIndex = -1;
for (int a = 0, avgPowerSize = avgPowerList.size(); a < avgPowerSize; a++) {
DynamicQueryPlantPredictedPowerOutput predictedPower = avgPowerList.get(a);
......@@ -1162,20 +1159,6 @@ public class SpaceOptimizeBaseService {
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 {
}
//其它井口的第一次启动时间
else {
DateTime startTimeOffset = firstStartTime.offsetNew(DateField.MINUTE, startInterval);
DateTime startTimeOffset = DateUtil.offsetMinute(firstStartTime, startInterval);
int startIndex = -1;
for (int a = 0, avgPowerSize = avgPowerList.size(); a < avgPowerSize; a++) {
DynamicQueryPlantPredictedPowerOutput predictedPower = avgPowerList.get(a);
......@@ -1612,8 +1595,8 @@ public class SpaceOptimizeBaseService {
}//其它井口的第一次启动时间
else {
//其它井启动时间:第一口井启动时间+启动间隔
DateTime startTimeOffset = firstStartTime.offsetNew(DateField.MINUTE, startInterval);
DateTime endTimeOffset = firstEndTime.offsetNew(DateField.MINUTE, startInterval);
DateTime startTimeOffset = DateUtil.offsetMinute(firstStartTime, startInterval);
DateTime endTimeOffset = DateUtil.offsetMinute(firstEndTime, startInterval);
//取时间间隔(分钟)
between = BaseUtils.getTimeDifferenceMinute(endTimeOffset, endTime);
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
......
......@@ -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.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.DynamicQueryBasePowerLinePlantViewOutput;
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.config_oil_field.GetConfigOilFieldOutput;
......@@ -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