Commit 0ee22d84 authored by hanbing's avatar hanbing

[update] 干线评价-修改时段合并逻辑

parent 762373ce
......@@ -640,8 +640,8 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
private void mergeLineSchemeBuffer(Map<String, LineSchemeDTO> lineSchemeBuffer, String mainlineName) {
if (mainlineName.contains("转山西路至霞景路")) {
// 工作日合并07:00-09:00,09:00-16:00,21:30-23:59
// 周末和节假日合并13:30-20:00,21:30-23:59
// 工作日合并 07:00-09:00,09:00-16:00,21:30-23:59
// 周末和节假日合并 13:30-20:00,21:30-23:59
Map<String, LineSchemeDTO> mergedRecords = new HashMap<>();
Iterator<String> iterator = lineSchemeBuffer.keySet().iterator();
......@@ -658,10 +658,10 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
for (int[] mergingPeriod : mergingPeriods) {
if (isOverlapping(startTime, endTime, mergingPeriod[0], mergingPeriod[1])) {
startTime = Math.min(startTime, mergingPeriod[0]);
endTime = Math.max(endTime, mergingPeriod[1]);
int mergedStartTime = mergingPeriod[0];
int mergedEndTime = mergingPeriod[1];
String newKey = constructNewKey(key, intToTime(startTime), intToTime(endTime));
String newKey = constructNewKey(key, intToTime(mergedStartTime), intToTime(mergedEndTime));
if (mergedRecords.containsKey(newKey)) {
LineSchemeDTO existingDto = mergedRecords.get(newKey);
existingDto.getGreenwaveHistPOList().addAll(lineSchemeBuffer.get(key).getGreenwaveHistPOList());
......@@ -698,7 +698,7 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
}
private boolean isOverlapping(int start1, int end1, int start2, int end2) {
return (start1 < end2 && end1 > start2);
return (start1 >= start2 && end1 <= end2);
}
private static String constructNewKey(String oldKey, String newStartTime, String newEndTime) {
......@@ -1661,7 +1661,7 @@ public class MainlineEvaluateServiceImpl implements MainlineEvaluateService {
List<BaseCrossInfoPO> res = new ArrayList<>();
List<GreenwaveCrossPO> greenwaveCrosses = baseGreenwaveCrossPOList.stream()
.filter(po -> Objects.equals(po.getId(), greenwaveId))
.filter(po -> Objects.equals(po.getGreenId(), greenwaveId))
.collect(Collectors.toList());
for (GreenwaveCrossPO greenwaveCross : greenwaveCrosses) {
String crossId = greenwaveCross.getCrossId();
......
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