From 37b33d638ca9448e3330269c861bc02b16ca976d Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期三, 01 四月 2026 17:36:14 +0800
Subject: [PATCH] fix(management):围栏复制名称处理
---
xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpElectronicFenceManagementController.java | 19 ++++++++++++++++++-
1 files changed, 18 insertions(+), 1 deletions(-)
diff --git a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpElectronicFenceManagementController.java b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpElectronicFenceManagementController.java
index efdfddc..c439b96 100644
--- a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpElectronicFenceManagementController.java
+++ b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpElectronicFenceManagementController.java
@@ -39,8 +39,10 @@
import java.time.LocalDateTime;
import java.util.Collection;
import java.util.Collections;
+import java.util.HashSet;
import java.util.List;
import java.util.Objects;
+import java.util.Set;
import java.util.stream.Collectors;
import static com.xiaopeng.map.service.serviceimpl.XpElectronicFenceServiceImpl.getPinyinInitials;
@@ -239,7 +241,7 @@
I18nKeyConstant.FENCE_STATUS_CANNOT_COPIED
);
}
- electronicFence.setElectronicName("副本_"+electronicFence.getElectronicName());
+ electronicFence.setElectronicName(buildCopyFenceName(electronicFence.getElectronicName()));
electronicFence.setId(null);
electronicFence.setStatus(0);
List<XpElectronicFenceArea> electronicFenceAreaList = xpElectronicFenceAreaService.lambdaQuery().eq(XpElectronicFenceArea::getElectronicId, id)
@@ -267,6 +269,21 @@
return R.ok(electronicFence.getId());
}
+ private String buildCopyFenceName(String sourceName) {
+ Set<String> existingNames = new HashSet<>(xpElectronicFenceService.lambdaQuery()
+ .likeRight(XpElectronicFence::getElectronicName, sourceName)
+ .list()
+ .stream()
+ .map(XpElectronicFence::getElectronicName)
+ .collect(Collectors.toSet()));
+
+ String candidateName = sourceName + "_副本";
+ while (existingNames.contains(candidateName)) {
+ candidateName = candidateName + "_副本";
+ }
+ return candidateName;
+ }
+
/**
* 根据ID列表批量查询电子围栏
*
--
Gitblit v1.7.1