Commit 0ee22d84 authored by hanbing's avatar hanbing

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

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