Commit 2b820784 authored by ZWT's avatar ZWT

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

1.修改基础信息配置--井口配置模块,新增/修改接口,增加井口编号重复校验及必填项校验逻辑;
2.修改基础信息配置--井口配置模块,修改接口,解决部分字段丢失导致数据未更新问题;
3.修改基础信息配置--柴发设备配置模块,新增/修改接口,增加出场编号重复校验及必填项校验逻辑;
4.修改基础信息配置--储能设备配置模块,新增/修改接口,增加出场编号重复校验及必填项校验逻辑;
5.修改基础信息配置--光伏电站配置模块,新增/修改接口,增加出场编号重复校验及必填项校验逻辑;
6.修改基础信息配置--间开制度管理模块,设为基础制度/重新优化接口,增加业务逻辑初始化校准周期;
7.修改间开制度管理--定期校准模块重新优化接口,解决离网型线路优化时间超过一天问题;
8.修改系统管理Cloud模块,查询子集组织列表接口,增加查询逻辑,解决查询出重复数据问题;
9.修改间开制度管理--定期校准模块重新优化接口,解决离网型线路优化跨月导致数据异常问题;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 47d631ef
...@@ -350,16 +350,11 @@ public class SpaceOptimizeBaseService { ...@@ -350,16 +350,11 @@ public class SpaceOptimizeBaseService {
} }
//离网优化 //离网优化
if (CollUtil.isNotEmpty(offGridPeriodList)) { if (CollUtil.isNotEmpty(offGridPeriodList)) {
if (!storageAvgMap.containsKey(detail.getLineId())) { BigDecimal avgRatedDischargeEfficiency = BigDecimal.ZERO;
//没有储能设备,无法计算 BigDecimal avgRatedDischargeDepth = BigDecimal.ZERO;
return; BigDecimal avgRatedDischargePower = BigDecimal.ZERO;
} Iterator<DynamicQueryStoragePredictedPowerOutput> iterator = null;
//截取从第一次开井时间往后的时间段 if (storageAvgMap.containsKey(detail.getLineId())) {
List<DynamicQueryPlantPredictedPowerOutput> subAvgPowerList = CollUtil.sub(avgPowerList, firstIndex + 1, avgPowerList.size());
if (CollUtil.isEmpty(subAvgPowerList)) {
//没有时间段,无法计算
return;
}
//查获取前一个月该时间点储能剩余电量,求平均数 //查获取前一个月该时间点储能剩余电量,求平均数
List<DynamicQueryStoragePredictedPowerOutput> averageEnergyStorageList = this.getAverageEnergyStorageListByParam(context, input); List<DynamicQueryStoragePredictedPowerOutput> averageEnergyStorageList = this.getAverageEnergyStorageListByParam(context, input);
if (CollUtil.isEmpty(averageEnergyStorageList)) { if (CollUtil.isEmpty(averageEnergyStorageList)) {
...@@ -370,19 +365,29 @@ public class SpaceOptimizeBaseService { ...@@ -370,19 +365,29 @@ public class SpaceOptimizeBaseService {
List<DynamicQueryBasePowerLineStorageViewOutput> avgStorageViewList = storageAvgMap.get(detail.getLineId()); List<DynamicQueryBasePowerLineStorageViewOutput> avgStorageViewList = storageAvgMap.get(detail.getLineId());
DynamicQueryBasePowerLineStorageViewOutput avgStorageView = avgStorageViewList.get(0); DynamicQueryBasePowerLineStorageViewOutput avgStorageView = avgStorageViewList.get(0);
//平均额定放电效率(%) //平均额定放电效率(%)
BigDecimal avgRatedDischargeEfficiency = avgStorageView.getRatedDischargeEfficiency(); avgRatedDischargeEfficiency = avgStorageView.getRatedDischargeEfficiency();
//平均额定放电深度(%) //平均额定放电深度(%)
BigDecimal avgRatedDischargeDepth = avgStorageView.getRatedDischargeDepth(); avgRatedDischargeDepth = avgStorageView.getRatedDischargeDepth();
//平均额定放电功率(KW) //平均额定放电功率(KW)
BigDecimal avgRatedDischargePower = avgStorageView.getRatedDischargePower(); avgRatedDischargePower = avgStorageView.getRatedDischargePower();
//逐15分钟计算光伏出力-井场运行功率之和,获得光伏出力不足时间段,并计算储能可用时长 //逐15分钟计算光伏出力-井场运行功率之和,获得光伏出力不足时间段,并计算储能可用时长
Iterator<DynamicQueryStoragePredictedPowerOutput> iterator = averageEnergyStorageList.iterator(); iterator = averageEnergyStorageList.iterator();
}
//截取从第一次开井时间往后的时间段
List<DynamicQueryPlantPredictedPowerOutput> subAvgPowerList = CollUtil.sub(avgPowerList, firstIndex, avgPowerList.size());
if (CollUtil.isEmpty(subAvgPowerList)) {
//没有时间段,无法计算
return;
}
for (DynamicQueryPlantPredictedPowerOutput avg : subAvgPowerList) { for (DynamicQueryPlantPredictedPowerOutput avg : subAvgPowerList) {
if (totalOperatingPower.compareTo(avg.getPower()) >= 0) { if (totalOperatingPower.compareTo(avg.getPower()) >= 0) {
//电量不足,计算储能可用时长 //电量不足,计算储能可用时长
avg.setBatteryLowFlag(false); avg.setBatteryLowFlag(false);
String hourTime = avg.getHourTime(); String hourTime = avg.getHourTime();
String minTime = avg.getMinTime(); String minTime = avg.getMinTime();
if (Objects.isNull(iterator)) {
avg.setPowerDuration(0);
} else {
while (iterator.hasNext()) { while (iterator.hasNext()) {
DynamicQueryStoragePredictedPowerOutput storagePredicted = iterator.next(); DynamicQueryStoragePredictedPowerOutput storagePredicted = iterator.next();
if (StringUtils.equals(hourTime, storagePredicted.getHourTime()) && StringUtils.equals(minTime, storagePredicted.getMinTime())) { if (StringUtils.equals(hourTime, storagePredicted.getHourTime()) && StringUtils.equals(minTime, storagePredicted.getMinTime())) {
...@@ -400,6 +405,7 @@ public class SpaceOptimizeBaseService { ...@@ -400,6 +405,7 @@ public class SpaceOptimizeBaseService {
//删除计算过的时间段 //删除计算过的时间段
iterator.remove(); iterator.remove();
} }
}
} else { } else {
avg.setBatteryLowFlag(true); avg.setBatteryLowFlag(true);
} }
......
...@@ -181,7 +181,7 @@ public class SpaceOptimizeMidPeriodService extends SpaceOptimizeBaseService { ...@@ -181,7 +181,7 @@ public class SpaceOptimizeMidPeriodService extends SpaceOptimizeBaseService {
.get(detailEnt.getLineId())) .get(detailEnt.getLineId()))
.startTime(DateUtil.beginOfWeek(period.getCreateTime()) .startTime(DateUtil.beginOfWeek(period.getCreateTime())
.toString(BusinessConstant.DATE_FORMAT_DAY)) .toString(BusinessConstant.DATE_FORMAT_DAY))
.endTime(DateUtil.date(period.getOptimizeDeadline()) .endTime(DateUtil.offsetDay(period.getOptimizeDeadline(), 1)
.toString(BusinessConstant.DATE_FORMAT_DAY)) .toString(BusinessConstant.DATE_FORMAT_DAY))
.dateType(BusinessConstant.ONE) .dateType(BusinessConstant.ONE)
.build()) .build())
......
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