From fb637bc7db45fcef2b3210828f1aa706caa09f2e Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Fri, 24 Oct 2025 17:12:07 +0800 Subject: [PATCH] =?UTF-8?q?feat(repository):=20=E5=A4=84=E7=90=86=E9=87=8D?= =?UTF-8?q?=E5=A4=8DtemplatePlaceholder=E6=97=B6=E5=80=92=E5=BA=8FsourceMa?= =?UTF-8?q?p=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增逻辑用于识别重复的templatePlaceholder - 对于重复的占位符,将其对应的sourceMap列表进行倒序排列 - 保持原有去重逻辑不变 - 添加了对占位符前缀"P"的检查逻辑 --- .../ycwl/basic/repository/SourceRepository.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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"));