From 3bb68de5e58ec0935061ac7e143ee9d818b8c449 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期六, 14 二月 2026 15:55:29 +0800
Subject: [PATCH] 点位修改
---
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPointServiceImpl.java | 52 +++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 47 insertions(+), 5 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 9c83592..1fa4ccf 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
@@ -3,10 +3,12 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xiaopeng.api.dto.operation.PointMapQuery;
import com.xiaopeng.api.dto.order.HistoryEndPointsDto;
import com.xiaopeng.api.dto.order.HistoryStartPointsDto;
import com.xiaopeng.api.model.operation.XpPoint;
import com.xiaopeng.api.model.operation.XpSystemSetting;
+import com.xiaopeng.api.query.operation.PointPageListQuery;
import com.xiaopeng.api.vo.order.XpHistoryEndPointsVo;
import com.xiaopeng.api.vo.order.XpHistoryStartPointsVo;
import com.xiaopeng.api.vo.order.XpPointsListVo;
@@ -17,17 +19,17 @@
import com.xiaopeng.operation.mapper.XpPointMapper;
import com.xiaopeng.operation.mapper.XpSystemSettingMapper;
import com.xiaopeng.operation.query.PointByNameQuery;
-import com.xiaopeng.api.dto.operation.PointMapQuery;
-import com.xiaopeng.api.query.operation.PointPageListQuery;
import com.xiaopeng.operation.service.XpPointService;
+import com.xiaopeng.operation.utils.TimeRangeChecker;
+import com.xiaopeng.operation.utils.holiday.HolidayUtil;
import com.xiaopeng.operation.utils.map.FastDistanceCalculator;
import com.xiaopeng.operation.vo.NearestNextVo;
import com.xiaopeng.operation.vo.NearestVo;
import com.xiaopeng.operation.vo.OrderDistanceVo;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.time.LocalTime;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
@@ -51,14 +53,17 @@
@Resource
private RedisService redisService;
+ @Resource
+ private HolidayUtil holidayUtil;
+
@Override
public NearestVo nearest(NearestDto dto) {
// 获取所有的站点信息
- List<XpPoint> list = list(new LambdaQueryWrapper<XpPoint>().eq(XpPoint::getOperationStatus, 2).isNotNull(XpPoint::getElectronicAreaId));
+ List<XpPoint> list = list(new LambdaQueryWrapper<XpPoint>().eq(XpPoint::getOperationStatus, 2).eq(XpPoint::getPointType,1).isNotNull(XpPoint::getElectronicAreaId));
NearestVo nearestVo = new NearestVo();
List<NearestNextVo> nearestNextVos = new ArrayList<>();
-
+ LocalTime now = LocalTime.now();
// 走缓存
Object orderDistanceObj = redisService.getCacheObject(CacheConstants.NEAR_POINT_DISTANCE);
Integer orderDistance;
@@ -70,6 +75,40 @@
}
for (XpPoint xpPoint : list) {
+
+ // 2非工作日 0工作日 1节假日 3调休日
+ Integer holidayToday = holidayUtil.isHolidayToday();
+ Integer operationType = xpPoint.getEffectivePeriod();
+ if(operationType==1){
+ boolean inTime = TimeRangeChecker.isCurrentTimeInRanges(now, xpPoint.getEffectiveTimePeriod());
+ if (!inTime) {
+ continue;
+ }
+ }else if(operationType==2){
+ if(holidayToday!=0){
+ continue;
+ }
+ boolean inTime = TimeRangeChecker.isCurrentTimeInRanges(now, xpPoint.getEffectiveTimePeriod());
+ if (!inTime) {
+ continue;
+ }
+ }else if(operationType==3){
+ if(holidayToday!=2){
+ continue;
+ }
+ boolean inTime = TimeRangeChecker.isCurrentTimeInRanges(now, xpPoint.getEffectiveTimePeriod());
+ if (!inTime) {
+ continue;
+ }
+ }else if(operationType==4){
+ if(holidayToday!=1){
+ continue;
+ }
+ boolean inTime = TimeRangeChecker.isCurrentTimeInRanges(now, xpPoint.getEffectiveTimePeriod());
+ if (!inTime) {
+ continue;
+ }
+ }
// 计算距离 小于的站点
double v = FastDistanceCalculator.distanceFast(dto.getLatitude(), dto.getLongitude(), xpPoint.getPointLat(), xpPoint.getPointLon());
if (v < orderDistance) {
@@ -82,6 +121,8 @@
nearestNextVo.setAddress(xpPoint.getPointAddress());
nearestNextVo.setTime(xpPoint.getParkingTimeLimit());
nearestNextVo.setElectronicAreaId(xpPoint.getElectronicAreaId());
+
+
nearestNextVos.add(nearestNextVo);
}
}
@@ -94,6 +135,7 @@
}
+
@Override
public List<XpPoint> pointMap(PointMapQuery query) {
List<XpPoint> list = this.baseMapper.pointMap(query);
--
Gitblit v1.7.1