From 58c9b7c52b446ac2438eaaf24ec1e487d07dbaaa Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期三, 18 三月 2026 16:20:38 +0800
Subject: [PATCH] 修改后台围栏

---
 xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceServiceImpl.java |   24 ++++++++++++------------
 1 files changed, 12 insertions(+), 12 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 4eb3197..2e2dfbd 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
@@ -765,14 +765,12 @@
                 || CollUtil.isNotEmpty(delPointIds)
                 || CollUtil.isNotEmpty(disablePointIds);
         boolean needFenceAreaIds = needPointHandling || needAutoDisableByUnion;
-        XpElectronicFenceArea operationArea = needFenceAreaIds
-                ? xpElectronicFenceAreaService.lambdaQuery()
+        XpElectronicFenceArea operationArea =  xpElectronicFenceAreaService.lambdaQuery()
                 .eq(XpElectronicFenceArea::getElectronicId, dto.getId())
                 .eq(XpElectronicFenceArea::getAreaType, 1)
                 .orderByDesc(XpElectronicFenceArea::getId)
                 .last("limit 1")
-                .one()
-                : null;
+                .one();
         Long operationAreaId = operationArea == null ? null : operationArea.getId();
         if (needPointHandling && operationAreaId == null) {
             throw new ServiceException("运营区域不存在", I18nKeyConstant.POINT_ELECTRONIC_AREA_NOT_EXIST);
@@ -808,7 +806,7 @@
         }
 
         // 围栏运营时间缩短校验:若缩短后点位时间段不在新范围内,则更新为已停用(operation_status=3)
-        if (needAutoDisableByUnion && operationAreaId != null) {
+        if (true) {
             LambdaQueryWrapper<XpPoint> pointQuery = new LambdaQueryWrapper<>();
             pointQuery.eq(XpPoint::getElectronicAreaId, operationAreaId)
                     .eq(XpPoint::getPointType, 1)
@@ -837,13 +835,15 @@
                     }
                 }
                 if (!disablePointIdList.isEmpty()) {
-                    XpPoint updatePoint = new XpPoint();
-                    updatePoint.setOperationStatus(3);
-                    UpdateWrapper<XpPoint> updateWrapper = new UpdateWrapper<>();
-                    updateWrapper.in("id", disablePointIdList);
-                    updateWrapper.and(w -> w.isNull("operation_status").or().ne("operation_status", 4));
-                    xpPointMapper.update(updatePoint, updateWrapper);
-                    log.info("围栏运营时间缩短停用点位完成 fenceId={}, disableCount={}", dto.getId(), disablePointIdList.size());
+                    for (Long l : disablePointIdList) {
+                        XpPoint xpPoint = xpPointMapper.selectById(l);
+                        if(xpPoint.getOperationStatus()!=4){
+                            xpPoint.setOperationStatus(3);
+                            xpPoint.setVerificationStatus(5);
+                            xpPointMapper.updateById(xpPoint);
+                        }
+
+                    }
                 }
             }
         }

--
Gitblit v1.7.1