From 1e16fb98c0dd2db59429e7b40f42841ea01bdb2e Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 07 三月 2026 21:00:54 +0800
Subject: [PATCH] 修改车辆管理功能和区域管理bug

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

diff --git a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpElectronicFenceServiceImpl.java b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpElectronicFenceServiceImpl.java
index 764b934..e271bee 100644
--- a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpElectronicFenceServiceImpl.java
+++ b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpElectronicFenceServiceImpl.java
@@ -28,6 +28,7 @@
 import com.xiaopeng.operation.mapper.XpPointMapper;
 import com.xiaopeng.operation.mapper.XpRegionMapper;
 import com.xiaopeng.operation.service.IXpElectronicFenceService;
+import com.xiaopeng.operation.utils.GDMapGeocodingUtil;
 import com.xiaopeng.operation.utils.PolygonOverlapService;
 import lombok.extern.slf4j.Slf4j;
 import net.sourceforge.pinyin4j.PinyinHelper;
@@ -67,6 +68,8 @@
     private XpPointMapper xpPointMapper;
     @Autowired
     private XpRegionMapper xpRegionMapper;
+    @Autowired
+    private GDMapGeocodingUtil gdMapGeocodingUtil;
 
     @Override
     public PageInfo<XpElectronicFence> pageList(ElectronicPageListQuery query) {
@@ -157,6 +160,15 @@
                     }
                 }
             }
+            //根据经纬度获取当前城市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>()
@@ -366,8 +378,16 @@
                     }
                 }
             }
+            //根据经纬度获取当前城市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);
             // 删除旧的区域数据,然后保存新的区域数据
             xpElectronicFenceAreaMapper.delete(new LambdaQueryWrapper<XpElectronicFenceArea>()

--
Gitblit v1.7.1