From f945eb6b421df05442db88945f81ee1c35a13f6a Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 13 三月 2026 16:39:03 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpPointManagementController.java |   23 ++++++++++++++++++++++-
 1 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpPointManagementController.java b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpPointManagementController.java
index bea9c13..21b89c5 100644
--- a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpPointManagementController.java
+++ b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpPointManagementController.java
@@ -4,11 +4,13 @@
 import com.xiaopeng.api.dto.operation.PointAddDto;
 import com.xiaopeng.api.dto.operation.PointUpdateDto;
 import com.xiaopeng.api.dto.operation.XpPointEnableDisableDto;
+import com.xiaopeng.api.model.operation.XpCruisePlanPoint;
 import com.xiaopeng.api.model.operation.XpElectronicFence;
 import com.xiaopeng.api.model.operation.XpElectronicFenceArea;
 import com.xiaopeng.api.model.operation.XpPoint;
 import com.xiaopeng.api.query.operation.PointListQuery;
 import com.xiaopeng.api.query.operation.PointPageListListQuery;
+import com.xiaopeng.map.constant.I18nKeyConstant;
 import com.xiaopeng.common.core.domain.R;
 import com.xiaopeng.common.core.exception.ServiceException;
 import com.xiaopeng.common.core.utils.WebUtils;
@@ -16,12 +18,14 @@
 import com.xiaopeng.common.core.web.page.PageInfo;
 import com.xiaopeng.api.dto.map.XpPointExportExcelQuery;
 import com.xiaopeng.map.exportExcel.XpPointExportExcel;
+import com.xiaopeng.map.mapper.XpCruisePlanPointMapper;
 import com.xiaopeng.map.mangodb.service.XpGeoFencingPolygonService;
 import com.xiaopeng.map.service.XpElectronicFenceAreaService;
 import com.xiaopeng.map.service.XpElectronicFenceService;
 import com.xiaopeng.map.service.XpPointService;
 import cn.afterturn.easypoi.excel.ExcelExportUtil;
 import cn.afterturn.easypoi.excel.entity.ExportParams;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -67,6 +71,8 @@
     private XpElectronicFenceService xpElectronicFenceService;
     @Resource
     private XpGeoFencingPolygonService xpGeoFencingPolygonService;
+    @Resource
+    private XpCruisePlanPointMapper xpCruisePlanPointMapper;
 
 
     @ApiOperation(value = "获取所有运营中的区域", response = XpElectronicFenceArea.class)
@@ -168,7 +174,22 @@
     @ResponseBody
     @ApiOperation(value = "删除点位")
     public R deletePoint(@RequestParam("ids") String ids) {
-        xpPointService.removeBatchByIds(Arrays.stream(ids.split(",")).map(Long::parseLong).collect(Collectors.toList()));
+        List<Long> pointIds = Arrays.stream(ids.split(","))
+                .map(String::trim)
+                .filter(s -> !s.isEmpty())
+                .map(Long::parseLong)
+                .distinct()
+                .collect(Collectors.toList());
+        if (pointIds.isEmpty()) {
+            return R.ok();
+        }
+        Long relatedCount = xpCruisePlanPointMapper.selectCount(
+                new LambdaQueryWrapper<XpCruisePlanPoint>().in(XpCruisePlanPoint::getPointId, pointIds)
+        );
+        if (relatedCount != null && relatedCount > 0) {
+            throw new ServiceException("操作失败,该点位有关联的巡游点位", I18nKeyConstant.POINT_DELETE_HAS_CRUISE_PLAN_POINT);
+        }
+        xpPointService.removeBatchByIds(pointIds);
         return R.ok();
     }
 

--
Gitblit v1.7.1