From 751d75b51a19c521364af730f5d6ea95fc25c871 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 11 三月 2026 18:04:58 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpElectronicFenceManagementController.java |   22 +++++++++++++++++++++-
 1 files changed, 21 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 1144fc4..53b4552 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
@@ -2,6 +2,7 @@
 
 
 import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.xiaopeng.api.dto.operation.ElectronicFenceAddDto;
 import com.xiaopeng.api.dto.operation.ElectronicFenceAreaUpdateStatusDto;
 import com.xiaopeng.api.dto.operation.ElectronicFenceUpdateDto;
@@ -26,6 +27,8 @@
 import lombok.extern.slf4j.Slf4j;
 import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType;
 import org.apache.shardingsphere.transaction.core.TransactionType;
+import org.locationtech.jts.geom.Coordinate;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -34,6 +37,9 @@
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
+
+import static com.xiaopeng.map.service.serviceimpl.XpElectronicFenceServiceImpl.getPinyinInitials;
 
 /**
  * <p>
@@ -58,6 +64,8 @@
 
     @Resource
     private XpRegionService regionService;
+    @Autowired
+    private XpRegionService xpRegionService;
     /**
      * 查询省市管理
      */
@@ -166,9 +174,21 @@
         electronicFence.setElectronicName("副本_"+electronicFence.getElectronicName());
         electronicFence.setId(null);
         electronicFence.setStatus(0);
-        xpElectronicFenceService.save(electronicFence);
         List<XpElectronicFenceArea> electronicFenceAreaList = xpElectronicFenceAreaService.lambdaQuery().eq(XpElectronicFenceArea::getElectronicId, id)
                 .list();
+        //根据经纬度获取当前城市code
+        // 生成围栏id 规则:城市首字母-类型简写-4位自增流水号(如 SZ-OP-001),支持复制;数据停用或删除后,流水号不回收
+        XpRegion xpRegion = xpRegionService.getOne(new LambdaQueryWrapper<XpRegion>()
+                .eq(XpRegion::getCode, electronicFence.getCityCode()));
+        String name = xpRegion.getName();
+        // 根据城市中文名,截取前两位的首字母并且大写
+        // 截取前两个字符
+        String prefix = name.substring(0, 2);
+        // 获取拼音首字母并大写
+        String result = getPinyinInitials(prefix).toUpperCase();
+        xpElectronicFenceService.save(electronicFence);
+        electronicFence.setElectronicNumber(result + "-OP-" + String.format("%04d", electronicFence.getId()));
+        xpElectronicFenceService.updateById(electronicFence);
         for (XpElectronicFenceArea area : electronicFenceAreaList) {
             area.setId(null);
             area.setElectronicId(electronicFence.getId());

--
Gitblit v1.7.1