Commit c1405bb4 authored by ZWT's avatar ZWT

feat(吉林演示): 松原

1.开发间开优化结果统计功能,创建间开优化效果统计表,生成对应代码;
2.修改15天,10天,3天,1天间开优化功能,修改代码结构;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 1be79880
......@@ -2062,7 +2062,10 @@ public class SpaceOptimizeBaseService {
DateTime firstStartTime = null;
//第一口井结束时间
DateTime firstEndTime = null;
//临时间开
List<SpaceOptimizeDurationDTO> newDurationDTOList;
for (int w = 0, wellheadSize = wellheadViewList.size(); w < wellheadSize; w++) {
newDurationDTOList = new ArrayList<>(12);
SpaceInstitutionWellheadView wellhead = wellheadViewList.get(w);
String wellheadId = wellhead.getWellheadId();
String recordId = this.createOptimizeWellhead(wellheadDTOList, periodId, wellheadId, wellhead.getWellNumber(), wellhead.getStartSeq(), optimizeDate, BusinessConstant.ONE);
......@@ -2139,21 +2142,21 @@ public class SpaceOptimizeBaseService {
}
//计算优化时间段
if (firstStartTime.compareTo(BusinessConstant.DATE_FLAG) < 0 && endTimeOptimize.compareTo(BusinessConstant.DATE_FLAG) > 0) {
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
this.createOptimizeDuration(newDurationDTOList, periodId, recordId, wellheadId, null,
firstStartTime.toString(BusinessConstant.MINUTES_FORMAT), BusinessConstant.END_OF_DAY_TIME,
BusinessConstant.ZERO, optimizeDate
);
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
this.createOptimizeDuration(newDurationDTOList, periodId, recordId, wellheadId, null,
BusinessConstant.START_OF_DAY_TIME, endTimeOptimize.toString(BusinessConstant.MINUTES_FORMAT),
BusinessConstant.ZERO, optimizeDate
);
} else if (endTimeOptimize.compareTo(BusinessConstant.DATE_FLAG) == 0) {
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
this.createOptimizeDuration(newDurationDTOList, periodId, recordId, wellheadId, null,
firstStartTime.toString(BusinessConstant.MINUTES_FORMAT), BusinessConstant.END_OF_DAY_TIME,
BusinessConstant.ZERO, optimizeDate
);
} else {
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
this.createOptimizeDuration(newDurationDTOList, periodId, recordId, wellheadId, null,
firstStartTime.toString(BusinessConstant.MINUTES_FORMAT), endTimeOptimize.toString(BusinessConstant.MINUTES_FORMAT),
BusinessConstant.ZERO, optimizeDate
);
......@@ -2165,25 +2168,25 @@ public class SpaceOptimizeBaseService {
DateTime endOffset = DateUtil.offsetMinute(endTime, between);
if (startOffset.compareTo(BusinessConstant.DATE_FLAG) < 0 && endOffset.compareTo(BusinessConstant.DATE_FLAG) > 0) {
//如果时间超过当天,舍弃
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
this.createOptimizeDuration(newDurationDTOList, periodId, recordId, wellheadId, null,
startOffset.toString(BusinessConstant.MINUTES_FORMAT),
BusinessConstant.END_OF_DAY_TIME,
BusinessConstant.ONE, optimizeDate
);
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
this.createOptimizeDuration(newDurationDTOList, periodId, recordId, wellheadId, null,
BusinessConstant.START_OF_DAY_TIME,
endOffset.toString(BusinessConstant.MINUTES_FORMAT),
BusinessConstant.ONE, optimizeDate
);
} else if (endOffset.compareTo(BusinessConstant.DATE_FLAG) == 0) {
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
this.createOptimizeDuration(newDurationDTOList, periodId, recordId, wellheadId, null,
startOffset.toString(BusinessConstant.MINUTES_FORMAT),
BusinessConstant.END_OF_DAY_TIME,
BusinessConstant.ONE, optimizeDate
);
} else {
//计算偏移
this.createOptimizeDuration(durationDTOList, periodId, recordId, wellheadId, null,
this.createOptimizeDuration(newDurationDTOList, periodId, recordId, wellheadId, null,
startOffset.toString(BusinessConstant.MINUTES_FORMAT),
endOffset.toString(BusinessConstant.MINUTES_FORMAT),
BusinessConstant.ONE, optimizeDate
......@@ -2191,6 +2194,25 @@ public class SpaceOptimizeBaseService {
}
}
}
//数据处理
if (CollUtil.isNotEmpty(newDurationDTOList)) {
newDurationDTOList.sort(Comparator.comparing(SpaceOptimizeDurationDTO::getOpenWellTime));
List<SpaceOptimizeDurationDTO> tempDurationDTOList = new ArrayList<>(newDurationDTOList.size());
tempDurationDTOList.add(newDurationDTOList.get(0));
for (int i = 1; i < newDurationDTOList.size(); i++) {
SpaceOptimizeDurationDTO nowOne = newDurationDTOList.get(i);
SpaceOptimizeDurationDTO lastOne = tempDurationDTOList.get(tempDurationDTOList.size() - 1);
if (CharSequenceUtil.equals(lastOne.getCloseWellTime(), nowOne.getOpenWellTime())) {
lastOne.setCloseWellTime(nowOne.getCloseWellTime());
} else {
tempDurationDTOList.add(nowOne);
}
}
//保存结果
for (SpaceOptimizeDurationDTO dto : tempDurationDTOList) {
durationDTOList.add(dto);
}
}
}
}
......
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