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 {
@XApiGet(anonymous = true)
@XText("极短期间开优化--动态优化")
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<SpaceOptimizeWellheadDTO> wellheadDTOList = new ArrayList<>(64);
List<SpaceOptimizeDurationDTO> durationDTOList = new ArrayList<>(128);
......@@ -279,6 +267,18 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService {
.sorted(Comparator.comparing(SpaceOptimizeWeight::getSort))
.collect(Collectors.toList());
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);
long between;
......@@ -335,32 +335,51 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService {
thisWeightDuration = weightDurationList.get(i1);
duration = thisWeightDuration.getDuration();
openTime = thisWeightDuration.getOpenTime();
if (duration > maxOpenMinute) {
//判断最大开井时间+最小停井时间是否大于时间间隔
if (sumMinute < duration) {
long count = duration / sumMinute;
//判断时间间隔是否能满足最大开井时间
if (duration >= maxOpenMinute) {
//满足,判断能满足几次(最大开井时间)
long count = duration / maxOpenMinute;
if (count > 0) {
//todo : 能力有限,只能用(最大开井时间+最小停井时间)固定范围,求不了最优排布
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 {
//不满足,取全部
optimizeDurationDTOList.add(SpaceOptimizeDurationDTO.builder()
.openTime(openTime)
.closeTime(thisWeightDuration.getCloseTime())
.build());
duration = 0;
}
//duration小于0:关井中,大于等于0,可以开井
if (duration < 0) {
}
optimizeDurationDTOList.add(SpaceOptimizeDurationDTO.builder()
.openTime(openTime)
.closeTime(openTime.offsetNew(DateField.MINUTE, maxOpenMinute))
.build());
System.out.println();
} else {
//不满足,使用最小开井时间
}
// if (i1 + 1 < weightDurationList.size()) {
// nextWeightDuration = weightDurationList.get(i1 + 1);
// }
}
System.out.println();
}
}
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