Commit d25417bb authored by ZWT's avatar ZWT

feat(零碳): 长庆

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

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 3ba88121
...@@ -7,7 +7,6 @@ import cn.hutool.core.date.DateUnit; ...@@ -7,7 +7,6 @@ import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
...@@ -80,6 +79,7 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService { ...@@ -80,6 +79,7 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService {
int minOpen = 3; int minOpen = 3;
int maxClose = 2; int maxClose = 2;
int minClose = 1; int minClose = 1;
int minOpenMinute = minOpen * 60;
//测试用 ====== end //测试用 ====== 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);
...@@ -162,6 +162,8 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService { ...@@ -162,6 +162,8 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService {
List<GetBasePriceStrategyDetailOutput> strategyList; List<GetBasePriceStrategyDetailOutput> strategyList;
List<SpaceInstitutionWellheadView> wellheadList; List<SpaceInstitutionWellheadView> wellheadList;
String periodId; String periodId;
//权重数组
int[] ladder = {10, 5, 3, 1};
for (SpaceInstitutionDetailEnt detail : detailEntList) { for (SpaceInstitutionDetailEnt detail : detailEntList) {
//创建记录 //创建记录
periodId = this.createOptimizePeriod(periodDTOList, detail.getId(), detail.getLineId(), BaseUtils.getExecutionCycleForCalibration(startDate, optimizeDate), optimizeDate); periodId = this.createOptimizePeriod(periodDTOList, detail.getId(), detail.getLineId(), BaseUtils.getExecutionCycleForCalibration(startDate, optimizeDate), optimizeDate);
...@@ -272,28 +274,11 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService { ...@@ -272,28 +274,11 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService {
weightList = weightList.stream() weightList = weightList.stream()
.sorted(Comparator.comparing(SpaceOptimizeWeight::getSort)) .sorted(Comparator.comparing(SpaceOptimizeWeight::getSort))
.collect(Collectors.toList()); .collect(Collectors.toList());
if (i != 0) {
//判断是不是第一口井
}
//计算第一次启动时间
int startIndex = 0;
int weightNum = 0;
SpaceOptimizeWeight weight; SpaceOptimizeWeight weight;
for (int i1 = 0; i1 < weightList.size(); i1++) {
weight = weightList.get(i1);
if (weight.getWeight() > weightNum) {
weightNum = weight.getWeight();
startIndex = i1;
}
}
//分级取时间段 //分级取时间段
List<SpaceOptimizeWeightDuration> weightDurationList = new ArrayList<>(32); List<SpaceOptimizeWeightDuration> weightDurationList = new ArrayList<>(32);
int[] ladder = {10, 5, 3, 1}; long between;
for (int i1 = 0; i1 < ladder.length; i1++) { for (int i1 = 0; i1 < ladder.length; i1++) {
//如果权重大于当前最大权重,跳过
if (weightNum < ladder[i1]) {
continue;
}
int begin = -1; int begin = -1;
//取每级时间 //取每级时间
for (int i2 = 0; i2 < weightList.size(); i2++) { for (int i2 = 0; i2 < weightList.size(); i2++) {
...@@ -304,11 +289,10 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService { ...@@ -304,11 +289,10 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService {
if (begin == -1) { if (begin == -1) {
begin = i2; begin = i2;
} }
//如果索引小于第一次开井时间,则算为第二天
if (i2 < startIndex) {
}
} else if (begin != -1) { } else if (begin != -1) {
//如果开井时间不满足最小开井时间则舍弃
between = DateUtil.between(weightList.get(begin).getTimestamp(), weightList.get(i2).getTimestamp(), DateUnit.MINUTE);
if (minOpenMinute <= between) {
//创建区间 //创建区间
weightDurationList.add( weightDurationList.add(
SpaceOptimizeWeightDuration.builder() SpaceOptimizeWeightDuration.builder()
...@@ -316,21 +300,20 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService { ...@@ -316,21 +300,20 @@ public class SpaceOptimizeShortPeriodService extends SpaceOptimizeBaseService {
.closeTime(weightList.get(i2).getTimestamp()) .closeTime(weightList.get(i2).getTimestamp())
.openIndex(begin) .openIndex(begin)
.closeIndex(i2) .closeIndex(i2)
.duration(DateUtil.between(weightList.get(begin).getTimestamp(), weightList.get(i2).getTimestamp(), DateUnit.MINUTE)) .duration(between)
.weight(ladder[i1]) .weight(ladder[i1])
.build() .build()
); );
}
begin = -1; begin = -1;
} }
} }
System.out.println();
} }
weightDurationList = weightDurationList.stream() weightDurationList = weightDurationList.stream()
.sorted(Comparator.comparing(SpaceOptimizeWeightDuration::getOpenTime)) .sorted(Comparator.comparing(SpaceOptimizeWeightDuration::getOpenTime))
.collect(Collectors.toList()); .collect(Collectors.toList());
System.out.println(JSON.toJSONString(weightDurationList)); //找到第一次开井时间
} }
} }
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