Commit c96883fa authored by ZWT's avatar ZWT

feat(能源管理系统): 测试问题修复

1.修改间开制度管理--长期间开优化模块详情接口,优化已优化时间列表查询逻辑;
2.修改间开制度管理--中短期间开优化模块详情接口,优化已优化时间列表查询逻辑;
3.修改间开制度管理--定期校准模块重新校准接口,增加时间限制,超过优化时间不能优化;
4.修改间开制度管理--长期/中短期间开优化离网型算法,优化数据结构;
5.修改间开制度管理--设为基础制度及重新优化接口,解决部分数据没有默认值导致接口保存失败问题;
6.修改间开制度管理--间开制度详情接口,解决查询出其它井口问题;
7.修改基础信息配置--输电线路配置模块通过线路ID查询线路下井口列表接口,修改排序方式;
8.修改间开制度管理--优化间开优化功能;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent d991c0bf
...@@ -773,35 +773,16 @@ public class SpaceOptimizeBaseService { ...@@ -773,35 +773,16 @@ public class SpaceOptimizeBaseService {
List<SpaceOptimizeDurationDTO> durationDTOList, List<SpaceInstitutionWellheadView> wellheadViewList, List<SpaceOptimizeDurationDTO> durationDTOList, List<SpaceInstitutionWellheadView> wellheadViewList,
Map<String, List<SpaceInstitutionDurationEnt>> durationMap, SpaceInstitutionDetailEnt detail, Map<String, List<SpaceInstitutionDurationEnt>> durationMap, SpaceInstitutionDetailEnt detail,
int monthNum, String periodId) { int monthNum, String periodId) {
//通过线路ID和月份获取市电峰谷策略明细配置
List<GetBasePriceStrategyDetailOutput> strategyDetailList = ServiceUtil.getStrategyDetailList(context,
GetBasePriceStrategyDetailInput.builder()
.lineId(detail.getLineId())
.strategyMonth(String.valueOf(monthNum))
.build()
);
if (CollUtil.isEmpty(strategyDetailList)) {
//没有配置,不优化
return;
}
//获取第一段谷电阶段的开始时间为第一口井的开井时间
Optional<GetBasePriceStrategyDetailOutput> low = strategyDetailList.stream()
.filter(s -> !StringUtils.isAnyBlank(s.getEndTime(), s.getStartTime()) && StringUtils.equals("LOW", s.getPeriodTypeKey()))
.findFirst();
if (!low.isPresent()) {
//没有谷电,不优化
return;
}
GetBasePriceStrategyDetailOutput strategyDetailOutput = low.get();
//第一口井启动时间
DateTime firstStartTime = DateUtil.parse(strategyDetailOutput.getStartTime() + BusinessConstant.INITIALIZATION_SECOND, BusinessConstant.TIME_FORMAT);
DateTime firstEndTime = DateUtil.parse(strategyDetailOutput.getEndTime() + BusinessConstant.INITIALIZATION_SECOND, BusinessConstant.TIME_FORMAT);
//判断是否第一口井 //判断是否第一口井
boolean isFirstWellhead; boolean isFirstWellhead;
//时间差 //时间差
int between = 0; int between = 0;
//启动间隔累积 //启动间隔累积
int startInterval = 0; int startInterval = 0;
//第一口井启动时间
DateTime firstStartTime = null;
//第一口井结束时间
DateTime firstEndTime = null;
for (int w = 0, wellheadSize = wellheadViewList.size(); w < wellheadSize; w++) { for (int w = 0, wellheadSize = wellheadViewList.size(); w < wellheadSize; w++) {
SpaceInstitutionWellheadView wellhead = wellheadViewList.get(w); SpaceInstitutionWellheadView wellhead = wellheadViewList.get(w);
String wellheadId = wellhead.getWellheadId(); String wellheadId = wellhead.getWellheadId();
...@@ -831,12 +812,43 @@ public class SpaceOptimizeBaseService { ...@@ -831,12 +812,43 @@ public class SpaceOptimizeBaseService {
if (d == 0) { if (d == 0) {
//第一口井的启动时间 //第一口井的启动时间
if (isFirstWellhead) { if (isFirstWellhead) {
String startTimeString;
//通过线路ID和月份获取市电峰谷策略明细配置
List<GetBasePriceStrategyDetailOutput> strategyDetailList = ServiceUtil.getStrategyDetailList(context,
GetBasePriceStrategyDetailInput.builder()
.lineId(detail.getLineId())
.strategyMonth(String.valueOf(monthNum))
.build()
);
if (CollUtil.isNotEmpty(strategyDetailList)) {
//获取第一段谷电阶段的开始时间为第一口井的开井时间
Optional<GetBasePriceStrategyDetailOutput> low = strategyDetailList.stream()
.filter(s -> !StringUtils.isAnyBlank(s.getEndTime(), s.getStartTime()) && StringUtils.equals("LOW", s.getPeriodTypeKey()))
.findFirst();
if (low.isPresent()) {
GetBasePriceStrategyDetailOutput strategyDetailOutput = low.get();
//第一口井启动时间
firstStartTime = DateUtil.parse(strategyDetailOutput.getStartTime() + BusinessConstant.INITIALIZATION_SECOND, BusinessConstant.TIME_FORMAT);
firstEndTime = DateUtil.parse(strategyDetailOutput.getEndTime() + BusinessConstant.INITIALIZATION_SECOND, BusinessConstant.TIME_FORMAT);
startTimeString = strategyDetailOutput.getStartTime();
} else {
//没有谷电,不优化
firstStartTime = startTime;
firstEndTime = endTime;
startTimeString = duration.getOpenWellTime();
}
} else {
//没有配置,不优化
firstStartTime = startTime;
firstEndTime = endTime;
startTimeString = duration.getOpenWellTime();
}
//计算优化后的时间差优化后的第一口井开井时间-优化前第一次开井时间 //计算优化后的时间差优化后的第一口井开井时间-优化前第一次开井时间
int startDuration = (int) startTime.between(endTime, DateUnit.MINUTE); int startDuration = (int) startTime.between(endTime, DateUnit.MINUTE);
//第一次关井时间按照启动时长顺延 //第一次关井时间按照启动时长顺延
DateTime endTimeOptimize = firstStartTime.offsetNew(DateField.MINUTE, startDuration); DateTime endTimeOptimize = firstStartTime.offsetNew(DateField.MINUTE, startDuration);
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null, this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
strategyDetailOutput.getStartTime(), endTimeOptimize.toString(BusinessConstant.MINUTES_FORMAT) startTimeString, endTimeOptimize.toString(BusinessConstant.MINUTES_FORMAT)
); );
//取时间间隔(分钟) //取时间间隔(分钟)
between = BaseUtils.getTimeDifferenceMinute(endTimeOptimize, endTime); between = BaseUtils.getTimeDifferenceMinute(endTimeOptimize, endTime);
......
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