From e90998053faecd0346591c2bba2ce58e198776b4 Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期三, 04 三月 2026 19:47:13 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceServiceImpl.java |   18 +++++++++++++-----
 1 files changed, 13 insertions(+), 5 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 0bcd642..e2b402c 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
@@ -25,6 +25,7 @@
 import com.xiaopeng.map.mapper.XpElectronicFenceMapper;
 import com.xiaopeng.map.mapper.XpPointMapper;
 import com.xiaopeng.map.mapper.XpRegionMapper;
+import com.xiaopeng.map.service.XpElectronicFenceAreaService;
 import com.xiaopeng.map.service.XpElectronicFenceService;
 import com.xiaopeng.map.utils.GDMapGeocodingUtil;
 import com.xiaopeng.map.utils.PolygonOverlapService;
@@ -69,6 +70,8 @@
     private XpRegionMapper xpRegionMapper;
     @Autowired
     private GDMapGeocodingUtil gdMapGeocodingUtil;
+    @Resource
+    private XpElectronicFenceAreaService xpElectronicFenceAreaService;
 
     @Override
     public PageInfo<XpElectronicFence> pageList(ElectronicPageListQuery query) {
@@ -389,10 +392,7 @@
 
             this.updateById(xpElectronicFence);
             // 删除旧的区域数据,然后保存新的区域数据
-            xpElectronicFenceAreaMapper.delete(new LambdaQueryWrapper<XpElectronicFenceArea>()
-                    .eq(XpElectronicFenceArea::getElectronicId, dto.getId()));
             mongoTemplate.remove(new Query(Criteria.where("fenceId").is(String.valueOf(dto.getId()))), XpGeoFencingPolygon.class);
-
             if (xpElectronicFence.getStatus() == 2) {
                 // 设置电子围栏ID并保存区域数据
                 for (XpElectronicFenceArea area : updatedElectronicFenceAreas) {
@@ -400,7 +400,11 @@
                     area.setAreaStatus(1);
                     area.setArea(area.getArea());
                     area.setCityCode(dto.getCityCode());
-                    xpElectronicFenceAreaMapper.insert(area);
+                    if(null != area.getId()){
+                        xpElectronicFenceAreaService.updateById(area);
+                    }else{
+                        xpElectronicFenceAreaService.save(area);
+                    }
                 }
             }else{
                 // 设置电子围栏ID并保存区域数据
@@ -409,7 +413,11 @@
                     area.setAreaStatus(2);
                     area.setArea(area.getArea());
                     area.setCityCode(dto.getCityCode());
-                    xpElectronicFenceAreaMapper.insert(area);
+                    if(null != area.getId()){
+                        xpElectronicFenceAreaService.updateById(area);
+                    }else{
+                        xpElectronicFenceAreaService.save(area);
+                    }
                 }
             }
             if (dto.getStatus() == 1 || dto.getStatus() == 2) {

--
Gitblit v1.7.1