From b6f3de8451867d85242b2bd706fcfa4a65df4ff7 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 11 四月 2026 02:46:30 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi

---
 xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceServiceImpl.java |   30 ++++++++++++++++++++++++++++++
 1 files changed, 30 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 142918b..a54e6b9 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
@@ -958,6 +958,36 @@
         return list();
     }
 
+    @Override
+    @Transactional
+    @ShardingSphereTransactionType(TransactionType.BASE)
+    public void expireFence(Long electronicId) {
+        if (electronicId == null) {
+            return;
+        }
+        XpElectronicFence electronicFence = this.getById(electronicId);
+        if (electronicFence == null || electronicFence.getStatus() == null) {
+            return;
+        }
+        Integer status = electronicFence.getStatus();
+        if (status != 1 && status != 2) {
+            return;
+        }
+        electronicFence.setStatus(3);
+        this.updateById(electronicFence);
+
+        List<XpElectronicFenceArea> electronicFenceAreaList = xpElectronicFenceAreaService.lambdaQuery()
+                .eq(XpElectronicFenceArea::getElectronicId, electronicId)
+                .list();
+        if (CollUtil.isEmpty(electronicFenceAreaList)) {
+            return;
+        }
+        for (XpElectronicFenceArea electronicFenceArea : electronicFenceAreaList) {
+            electronicFenceArea.setAreaStatus(2);
+        }
+        xpElectronicFenceAreaService.updateBatchById(electronicFenceAreaList);
+    }
+
 
     /**
      * 计算围栏中心点

--
Gitblit v1.7.1