From 3a5fc9e4c43a682a98ca1beabb6c8309b4ca6d01 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 03 三月 2026 18:16:12 +0800
Subject: [PATCH] 合并代码

---
 xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceServiceImpl.java |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceServiceImpl.java b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceServiceImpl.java
index 5cafe56..a6fa724 100644
--- a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceServiceImpl.java
+++ b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceServiceImpl.java
@@ -26,6 +26,7 @@
 import com.xiaopeng.map.mapper.XpPointMapper;
 import com.xiaopeng.map.mapper.XpRegionMapper;
 import com.xiaopeng.map.service.XpElectronicFenceService;
+import com.xiaopeng.map.utils.GDMapGeocodingUtil;
 import com.xiaopeng.map.utils.PolygonOverlapService;
 import lombok.extern.slf4j.Slf4j;
 import net.sourceforge.pinyin4j.PinyinHelper;
@@ -66,6 +67,8 @@
     private XpPointMapper xpPointMapper;
     @Autowired
     private XpRegionMapper xpRegionMapper;
+    @Autowired
+    private GDMapGeocodingUtil gdMapGeocodingUtil;
 
     @Override
     public PageInfo<XpElectronicFence> pageList(ElectronicPageListQuery query) {
@@ -155,6 +158,16 @@
                 }
             }
         }
+
+        //根据经纬度获取当前城市code
+        XpElectronicFenceArea xpElectronicFenceArea = dto.getElectronicFenceAreas().get(0);
+        String[] split = xpElectronicFenceArea.getFencePoints().split(",")[0].split("_");
+        Map<String, String> geocode = gdMapGeocodingUtil.geocode(split[0], split[1]);
+        if(null == geocode){
+            return R.fail("经纬度转换城市code失败");
+        }
+        String cityCode = geocode.get("cityCode");
+        dto.setCityCode(cityCode);
         xpElectronicFence.setCityCode(dto.getCityCode());
         // 生成围栏id 规则:城市首字母-类型简写-4位自增流水号(如 SZ-OP-001),支持复制;数据停用或删除后,流水号不回收
         XpRegion xpRegion = xpRegionMapper.selectOne(new LambdaQueryWrapper<XpRegion>()
@@ -363,6 +376,15 @@
                     }
                 }
             }
+            //根据经纬度获取当前城市code
+            XpElectronicFenceArea electronicFenceArea = dto.getElectronicFenceAreas().get(0);
+            String[] split = electronicFenceArea.getFencePoints().split(",")[0].split("_");
+            Map<String, String> geocode = gdMapGeocodingUtil.geocode(split[0], split[1]);
+            if(null == geocode){
+                return R.fail("经纬度转换城市code失败");
+            }
+            String cityCode = geocode.get("cityCode");
+            dto.setCityCode(cityCode);
             xpElectronicFence.setCityCode(dto.getCityCode());
 
             this.updateById(xpElectronicFence);

--
Gitblit v1.7.1