From 7368bb37f78ef361105c795190c502299d3bdfc4 Mon Sep 17 00:00:00 2001
From: yyy <1083599556@qq.com>
Date: 星期四, 07 五月 2026 10:37:58 +0800
Subject: [PATCH] 合并代码

---
 xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpPointServiceImpl.java |   49 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 49 insertions(+), 0 deletions(-)

diff --git a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpPointServiceImpl.java b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpPointServiceImpl.java
index 049789d..81c1aea 100644
--- a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpPointServiceImpl.java
+++ b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpPointServiceImpl.java
@@ -9,6 +9,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xiaopeng.api.dto.operation.PointAddDto;
 import com.xiaopeng.api.dto.operation.PointMapQuery;
+import com.xiaopeng.api.dto.operation.PointUpdateDto;
 import com.xiaopeng.api.dto.order.HistoryEndPointsDto;
 import com.xiaopeng.api.dto.order.HistoryStartPointsDto;
 import com.xiaopeng.api.feignClient.account.XpAppUserCollectAddrClient;
@@ -39,6 +40,7 @@
 import com.xiaopeng.map.mapper.XpSystemSettingMapper;
 import com.xiaopeng.map.query.PointByNameQuery;
 import com.xiaopeng.map.service.XpElectronicFenceAreaService;
+import com.xiaopeng.map.service.XpElectronicFenceService;
 import com.xiaopeng.map.service.XpPointService;
 import com.xiaopeng.map.service.XpStationService;
 import com.xiaopeng.map.utils.holiday.HolidayUtil;
@@ -116,6 +118,53 @@
     @Lazy
     @Autowired
     private BootCommonService bootCommonService;
+    @Lazy
+    @Resource
+    private XpElectronicFenceService xpElectronicFenceService;
+
+
+
+    @Override
+    public void validateAdd(PointAddDto dto) {
+
+        XpElectronicFenceArea electronicFenceArea = xpElectronicFenceAreaService.getById(dto.getElectronicAreaId());
+        if(electronicFenceArea == null){
+            throw new ServiceException("所属运营区id错误");
+        }
+        XpElectronicFence electronicFence = xpElectronicFenceService.getById(electronicFenceArea.getElectronicId());
+        //场站的自定义时间必须在 围栏运营时间内
+        if(dto.getOperationType() != null && dto.getOperationType() == 2){
+//            ["06:00-12:00", "13:00-21:00"]
+            if(StrUtil.isBlank(dto.getEffectiveTimePeriod())){
+                throw new ServiceException("自定义时间段不能为空");
+            }
+            boolean stationTimeFenceOperationStrategy = bootCommonService.getStationTime_fenceOperationStrategy(dto.getEffectivePeriod(), dto.getEffectiveTimePeriod(), electronicFence.getOperationStrategy());
+            if(!stationTimeFenceOperationStrategy){
+                throw new ServiceException("自定义时间必须在围栏运营时间内");
+            }
+        }
+    }
+
+    @Override
+    public void validateUpdate(PointUpdateDto dto) {
+
+        XpElectronicFenceArea electronicFenceArea = xpElectronicFenceAreaService.getById(dto.getElectronicAreaId());
+        if(electronicFenceArea == null){
+            throw new ServiceException("所属运营区id错误");
+        }
+        XpElectronicFence electronicFence = xpElectronicFenceService.getById(electronicFenceArea.getElectronicId());
+        //场站的自定义时间必须在 围栏运营时间内
+        if(dto.getOperationType() != null && dto.getOperationType() == 2){
+//            ["06:00-12:00", "13:00-21:00"]
+            if(StrUtil.isBlank(dto.getEffectiveTimePeriod())){
+                throw new ServiceException("自定义时间段不能为空");
+            }
+            boolean stationTimeFenceOperationStrategy = bootCommonService.getStationTime_fenceOperationStrategy(dto.getEffectivePeriod(), dto.getEffectiveTimePeriod(), electronicFence.getOperationStrategy());
+            if(!stationTimeFenceOperationStrategy){
+                throw new ServiceException("自定义时间必须在围栏运营时间内");
+            }
+        }
+    }
 
     @Override
     @Transactional

--
Gitblit v1.7.1