From f326d446abd262609c4e69521381bea02d15dace Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期三, 04 三月 2026 21:14:18 +0800
Subject: [PATCH] 修改bug

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

diff --git a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPointServiceImpl.java b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPointServiceImpl.java
index e7c2ba7..32c0589 100644
--- a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPointServiceImpl.java
+++ b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPointServiceImpl.java
@@ -349,4 +349,41 @@
         return pageInfo;
     }
 
+
+    @Override
+    public Boolean nowInTimePoint(Long pointId) {
+        XpPoint xpPoint = this.getById(pointId);
+        if(null == xpPoint){
+            return false;
+        }
+        Integer operationType = xpPoint.getOperationType();
+        if(1 == operationType){
+            //与运营区同步
+            XpElectronicFenceArea xpElectronicFenceArea = xpElectronicFenceAreaService.getById(xpPoint.getElectronicAreaId());
+            if(null == xpElectronicFenceArea){
+                return false;
+            }
+            XpElectronicFence xpElectronicFence = xpElectronicFenceService.getById(xpElectronicFenceArea.getElectronicId());
+            if(null == xpElectronicFence){
+                return false;
+            }
+            //失效类型 1=永不失效 2=定时失效
+            Integer failureType = xpElectronicFence.getFailureType();
+            //永不失效,但是还未到开始时间
+            if(1 == failureType && LocalDateTime.now().isBefore(xpElectronicFence.getEffectTime())){
+                return false;
+            }else if(2 == failureType && (LocalDateTime.now().isBefore(xpElectronicFence.getEffectTime()) || LocalDateTime.now().isAfter(xpElectronicFence.getFailureTime()))){
+                //定时失效,但是当前时间不在时间范围内
+                return false;
+            }
+        }else{
+            //自定义时间段
+            // 判断是否在时间段内
+            boolean intime = getInTime(LocalTime.now(), xpPoint.getEffectivePeriod(), xpPoint.getEffectiveTimePeriod());
+            if (!intime) {
+                return false;
+            }
+        }
+        return true;
+    }
 }

--
Gitblit v1.7.1