Commit e9c90fdd authored by ZWT's avatar ZWT

feat(零碳): 长庆

1.修复登录页面登录接口验证码输入后不需要验证直接能登录的问题;
2.长庆演示,首页展示大屏功能修改,修改线路详情接口,增加查询日平均用电量逻辑,同时重构查询日产液量和日发电量逻辑,更新接口文档并完成接口冒烟测试,同时生成用例;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 086ddf69
...@@ -73,18 +73,6 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService { ...@@ -73,18 +73,6 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService {
@XApiGet(anonymous = true) @XApiGet(anonymous = true)
@XText("极短期间开优化--动态优化") @XText("极短期间开优化--动态优化")
public XServiceResult dynamicOptimize(XContext context) { public XServiceResult dynamicOptimize(XContext context) {
//测试用 ====== start
int dayOpen = 15;
int maxOpen = 10;
int minOpen = 3;
int maxClose = 2;
int minClose = 1;
int minOpenMinute = minOpen * 60;
int maxOpenMinute = maxOpen * 60;
int minCloseMinute = minClose * 60;
int maxCloseMinute = maxClose * 60;
int sumMinute = minCloseMinute + maxOpenMinute;
//测试用 ====== end
List<SpaceOptimizePeriodDTO> periodDTOList = new ArrayList<>(32); List<SpaceOptimizePeriodDTO> periodDTOList = new ArrayList<>(32);
List<SpaceOptimizeWellheadDTO> wellheadDTOList = new ArrayList<>(64); List<SpaceOptimizeWellheadDTO> wellheadDTOList = new ArrayList<>(64);
List<SpaceOptimizeDurationDTO> durationDTOList = new ArrayList<>(128); List<SpaceOptimizeDurationDTO> durationDTOList = new ArrayList<>(128);
...@@ -279,6 +267,18 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService { ...@@ -279,6 +267,18 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService {
.sorted(Comparator.comparing(SpaceOptimizeWeight::getSort)) .sorted(Comparator.comparing(SpaceOptimizeWeight::getSort))
.collect(Collectors.toList()); .collect(Collectors.toList());
SpaceOptimizeWeight weight; SpaceOptimizeWeight weight;
//测试用 ====== start
int dayOpen = 15;
int maxOpen = 5;
int minOpen = 3;
int maxClose = 2;
int minClose = 1;
int minOpenMinute = minOpen * 60;
int maxOpenMinute = maxOpen * 60;
int minCloseMinute = minClose * 60;
int maxCloseMinute = maxClose * 60;
int sumMinute = minCloseMinute + maxOpenMinute;
//测试用 ====== end
//分级取时间段 //分级取时间段
List<SpaceOptimizeWeightDuration> weightDurationList = new ArrayList<>(32); List<SpaceOptimizeWeightDuration> weightDurationList = new ArrayList<>(32);
long between; long between;
...@@ -335,32 +335,51 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService { ...@@ -335,32 +335,51 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService {
thisWeightDuration = weightDurationList.get(i1); thisWeightDuration = weightDurationList.get(i1);
duration = thisWeightDuration.getDuration(); duration = thisWeightDuration.getDuration();
openTime = thisWeightDuration.getOpenTime(); openTime = thisWeightDuration.getOpenTime();
if (duration > maxOpenMinute) { //判断时间间隔是否能满足最大开井时间
//判断最大开井时间+最小停井时间是否大于时间间隔 if (duration >= maxOpenMinute) {
if (sumMinute < duration) { //满足,判断能满足几次(最大开井时间)
long count = duration / sumMinute; long count = duration / maxOpenMinute;
if (count > 0) {
//todo : 能力有限,只能用(最大开井时间+最小停井时间)固定范围,求不了最优排布
for (int i2 = 1; i2 <= count; i2++) { for (int i2 = 1; i2 <= count; i2++) {
DateTime closeTime;
if (duration >= maxOpenMinute) {
closeTime = openTime.offsetNew(DateField.MINUTE, maxOpenMinute);
duration = duration - maxOpenMinute - minCloseMinute;
} else if (duration >= minOpenMinute) {
closeTime = openTime.offsetNew(DateField.MINUTE, minOpenMinute);
duration = duration - minOpenMinute - minCloseMinute;
} else {
//时间不够,舍弃
break;
}
optimizeDurationDTOList.add(SpaceOptimizeDurationDTO.builder()
.openTime(openTime)
.closeTime(closeTime)
.build());
openTime = closeTime;
} }
} else { } else {
//不满足,取全部
optimizeDurationDTOList.add(SpaceOptimizeDurationDTO.builder()
.openTime(openTime)
.closeTime(thisWeightDuration.getCloseTime())
.build());
duration = 0;
} }
//duration小于0:关井中,大于等于0,可以开井
if (duration < 0) {
}
optimizeDurationDTOList.add(SpaceOptimizeDurationDTO.builder() System.out.println();
.openTime(openTime)
.closeTime(openTime.offsetNew(DateField.MINUTE, maxOpenMinute))
.build());
} else {
//不满足,使用最小开井时间
} }
// if (i1 + 1 < weightDurationList.size()) {
// nextWeightDuration = weightDurationList.get(i1 + 1);
// }
} }
System.out.println();
} }
} }
return XServiceResult.OK; return XServiceResult.OK;
......
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