From d0538de830f53c31841828b7b654f80969f9611c Mon Sep 17 00:00:00 2001 From: dengqichen Date: Tue, 11 Nov 2025 16:05:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=94=E7=94=A8=E8=BF=81=E7=A7=BB=E5=88=B0?= =?UTF-8?q?=E5=9B=A2=E9=98=9F=E5=BA=94=E7=94=A8=E9=87=8C=E9=85=8D=E7=BD=AE?= =?UTF-8?q?GIT?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/RepositoryProjectServiceImpl.java | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/RepositoryProjectServiceImpl.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/RepositoryProjectServiceImpl.java index 0c20e6bd..bd7cd38b 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/RepositoryProjectServiceImpl.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/RepositoryProjectServiceImpl.java @@ -330,25 +330,36 @@ public class RepositoryProjectServiceImpl extends BaseServiceImpl repoGroupIds = projects.stream() .map(RepositoryProjectDTO::getRepoGroupId) .filter(id -> id != null) .collect(Collectors.toSet()); + + Set externalSystemIds = projects.stream() + .map(RepositoryProjectDTO::getExternalSystemId) + .filter(id -> id != null) + .collect(Collectors.toSet()); - // 2. 批量查询仓库组信息(根据 repo_group_id 字段查询,不是主键 id) - Map repoGroupMap = Collections.emptyMap(); + // 2. 批量查询仓库组信息(需要同时匹配 repo_group_id 和 external_system_id) + Map repoGroupMap = Collections.emptyMap(); if (!repoGroupIds.isEmpty()) { List repoGroupIdList = new ArrayList<>(repoGroupIds); + // 使用复合键:externalSystemId + "_" + repoGroupId 避免不同系统的 ID 冲突 repoGroupMap = repositoryGroupRepository.findByRepoGroupIdIn(repoGroupIdList).stream() - .collect(Collectors.toMap(RepositoryGroup::getRepoGroupId, Function.identity())); + .filter(group -> externalSystemIds.contains(group.getExternalSystemId())) + .collect(Collectors.toMap( + group -> group.getExternalSystemId() + "_" + group.getRepoGroupId(), + Function.identity() + )); } - // 3. 填充仓库组名称(使用 repo_group_id 作为 key) - Map finalRepoGroupMap = repoGroupMap; + // 3. 填充仓库组名称(使用复合键:externalSystemId + "_" + repoGroupId) + Map finalRepoGroupMap = repoGroupMap; projects.forEach(project -> { - if (project.getRepoGroupId() != null) { - RepositoryGroup group = finalRepoGroupMap.get(project.getRepoGroupId()); + if (project.getRepoGroupId() != null && project.getExternalSystemId() != null) { + String key = project.getExternalSystemId() + "_" + project.getRepoGroupId(); + RepositoryGroup group = finalRepoGroupMap.get(key); if (group != null) { project.setRepoGroupName(group.getName()); }