From df851ece762f3e4b5867f2de83e655dfd5506e04 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期六, 14 二月 2026 16:10:42 +0800
Subject: [PATCH] 点位修改

---
 xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPointServiceImpl.java |   34 +++++++++++++++++++++-------------
 1 files changed, 21 insertions(+), 13 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 dcb3feb..eb9d86d 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
@@ -76,7 +76,7 @@
 
         for (XpPoint xpPoint : list) {
             // 判断是否在时间段内
-            boolean intime = getInTime(now, xpPoint);
+            boolean intime = getInTime(now, xpPoint.getEffectivePeriod(), xpPoint.getEffectiveTimePeriod());
             if (!intime) {
                 continue;
             }
@@ -108,36 +108,35 @@
 
 
 
-    private boolean getInTime(LocalTime now,XpPoint xpPoint){
+    public boolean getInTime(LocalTime now,  Integer effectivePeriod, String effectiveTimePeriod){
         //  2非工作日  0工作日  1节假日 3调休日
         Integer holidayToday = holidayUtil.isHolidayToday();
-        Integer operationType = xpPoint.getEffectivePeriod();
-        if(operationType==1){
-            boolean inTime = TimeRangeChecker.isCurrentTimeInRanges(now, xpPoint.getEffectiveTimePeriod());
+        if(effectivePeriod==1){
+            boolean inTime = TimeRangeChecker.isCurrentTimeInRanges(now,effectiveTimePeriod);
             if (!inTime) {
                 return false;
             }
-        }else if(operationType==2){
+        }else if(effectivePeriod==2){
             if(holidayToday!=0){
                 return false;
             }
-            boolean inTime = TimeRangeChecker.isCurrentTimeInRanges(now, xpPoint.getEffectiveTimePeriod());
+            boolean inTime = TimeRangeChecker.isCurrentTimeInRanges(now,effectiveTimePeriod);
             if (!inTime) {
                 return false;
             }
-        }else if(operationType==3){
+        }else if(effectivePeriod==3){
             if(holidayToday!=2){
                 return false;
             }
-            boolean inTime = TimeRangeChecker.isCurrentTimeInRanges(now, xpPoint.getEffectiveTimePeriod());
+            boolean inTime = TimeRangeChecker.isCurrentTimeInRanges(now,effectiveTimePeriod);
             if (!inTime) {
                 return false;
             }
-        }else if(operationType==4){
+        }else if(effectivePeriod==4){
             if(holidayToday!=1){
                 return false;
             }
-            boolean inTime = TimeRangeChecker.isCurrentTimeInRanges(now, xpPoint.getEffectiveTimePeriod());
+            boolean inTime = TimeRangeChecker.isCurrentTimeInRanges(now,effectiveTimePeriod);
             if (!inTime) {
                 return false;
             }
@@ -204,9 +203,18 @@
             return searchVo;
         }
 
+        LocalTime now = LocalTime.now();
+        for (XpPointsListVo xpPointsListVo : list) {
+            boolean inTime = getInTime(now, xpPointsListVo.getEffectivePeriod(), xpPointsListVo.getEffectiveTimePeriod());
+            if (!inTime) {
+                // 不在运营段
+                xpPointsListVo.setState(0);
+            }
 
-        // 组装数据 并排序
-        List<XpPointsListVo> resultList = list.stream().peek(vo -> vo.setDistance(FastDistanceCalculator.distanceFast(query.getLat(), query.getLon(), vo.getLatitude(), vo.getLongitude()))).collect(Collectors.toList());
+        }
+
+        // 组装数据 并排序 剔除不在运营段的 数据
+        List<XpPointsListVo> resultList = list.stream().peek(vo -> vo.setDistance(FastDistanceCalculator.distanceFast(query.getLat(), query.getLon(), vo.getLatitude(), vo.getLongitude()))).filter(vo -> vo.getState() == 1).collect(Collectors.toList());
 
         // 可用点位
         List<XpPointsListVo> availablePoints = resultList.stream().filter(e -> query.getElectronicAreaId() != null && e.getElectronicAreaId().equals(query.getElectronicAreaId())).sorted(Comparator.comparing(XpPointsListVo::getDistance)).collect(Collectors.toList());//

--
Gitblit v1.7.1