diff --git a/src/main/java/com/ycwl/basic/repository/SourceRepository.java b/src/main/java/com/ycwl/basic/repository/SourceRepository.java index 36c159d1..dbd06d8d 100644 --- a/src/main/java/com/ycwl/basic/repository/SourceRepository.java +++ b/src/main/java/com/ycwl/basic/repository/SourceRepository.java @@ -129,6 +129,21 @@ public class SourceRepository { sourcesMap.forEach((key, value) -> { value.removeIf(item -> !value.getFirst().equals(item)); }); + } else { + // 找出重复的templatePlaceholder,修改对应的sourceMap[key]中的list顺序为倒序 + Map placeholderCounts = templatePlaceholder.stream() + .collect(Collectors.groupingBy(placeholder -> placeholder, Collectors.counting())); + + placeholderCounts.entrySet().stream() + .filter(entry -> entry.getValue() > 1) + .map(Map.Entry::getKey) + .forEach(duplicatePlaceholder -> { + // 对于重复的占位符,找到对应的设备ID并倒序sourceMap中的列表 + if (sourcesMap.containsKey(duplicatePlaceholder)) { + List sourceList = sourcesMap.get(duplicatePlaceholder); + java.util.Collections.reverse(sourceList); + } + }); } boolean hasPPlaceholder = templatePlaceholder.stream().anyMatch(placeholder -> placeholder.startsWith("P"));