From 993a6e6ea8ae047b9e5fffd249ae7adfcd650d3a Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期日, 17 五月 2026 11:35:44 +0800
Subject: [PATCH] 合并代码

---
 xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpPointServiceImpl.java |   24 +++++++++++++++++++++---
 1 files changed, 21 insertions(+), 3 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 f74df0d..fa2f00d 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
@@ -302,6 +302,12 @@
             if (!intime) {
                 continue;
             }
+            Integer parkingTimeLimit = xpPoint.getParkingTimeLimit();
+            //如果点位位于场站内,则使用场站的限停时间
+            if(null != xpPoint.getStationId()){
+                XpStation xpStation = xpStationService.getById(xpPoint.getStationId());
+                parkingTimeLimit = xpStation.getParkingTimeLimit();
+            }
             // 计算距离 小于的站点
             double v = FastDistanceCalculator.distanceFast(dto.getLatitude(), dto.getLongitude(), xpPoint.getPointLat(), xpPoint.getPointLon());
             if (v < orderDistance) {
@@ -312,7 +318,7 @@
                 nearestNextVo.setLongitude(xpPoint.getPointLon());
                 nearestNextVo.setDistance(v);
                 nearestNextVo.setAddress(xpPoint.getPointAddress());
-                nearestNextVo.setTime(xpPoint.getParkingTimeLimit());
+                nearestNextVo.setTime(parkingTimeLimit);
                 nearestNextVo.setElectronicAreaId(xpPoint.getElectronicAreaId());
 
 
@@ -441,6 +447,12 @@
         List<XpPoint> xpPoints = this.baseMapper.selectBatchIds(historyStartPointsDto.getPointIds());
         ArrayList<XpHistoryStartPointsVo> resultList = new ArrayList<>(10);
         for (XpPoint xpPoint : xpPoints) {
+            Integer parkingTimeLimit = xpPoint.getParkingTimeLimit();
+            //如果点位位于场站内,则使用场站的限停时间
+            if(null != xpPoint.getStationId()){
+                XpStation xpStation = xpStationService.getById(xpPoint.getStationId());
+                parkingTimeLimit = xpStation.getParkingTimeLimit();
+            }
             XpHistoryStartPointsVo xpHistoryStartPointsVo = new XpHistoryStartPointsVo();
             xpHistoryStartPointsVo.setName(xpPoint.getPointName());
             xpHistoryStartPointsVo.setAddress(xpPoint.getPointAddress());
@@ -449,7 +461,7 @@
             xpHistoryStartPointsVo.setId(xpPoint.getId());
             double distanced = FastDistanceCalculator.distanceFastKm(historyStartPointsDto.getLat(), historyStartPointsDto.getLon(), xpPoint.getPointLat(), xpPoint.getPointLon());
             xpHistoryStartPointsVo.setDistance(distanced);
-            xpHistoryStartPointsVo.setTime(xpPoint.getParkingTimeLimit());
+            xpHistoryStartPointsVo.setTime(parkingTimeLimit);
             xpHistoryStartPointsVo.setElectronicAreaId(xpPoint.getElectronicAreaId());
             resultList.add(xpHistoryStartPointsVo);
 
@@ -463,6 +475,12 @@
         List<XpPoint> xpPoints = this.baseMapper.selectBatchIds(historyEndPointsDto.getPointIds());
         ArrayList<XpHistoryEndPointsVo> resultList = new ArrayList<>(10);
         for (XpPoint xpPoint : xpPoints) {
+            Integer parkingTimeLimit = xpPoint.getParkingTimeLimit();
+            //如果点位位于场站内,则使用场站的限停时间
+            if(null != xpPoint.getStationId()){
+                XpStation xpStation = xpStationService.getById(xpPoint.getStationId());
+                parkingTimeLimit = xpStation.getParkingTimeLimit();
+            }
             XpHistoryEndPointsVo xpHistoryEndPointsVo = new XpHistoryEndPointsVo();
             xpHistoryEndPointsVo.setName(xpPoint.getPointName());
             xpHistoryEndPointsVo.setAddress(xpPoint.getPointAddress());
@@ -471,7 +489,7 @@
             xpHistoryEndPointsVo.setId(xpPoint.getId());
             double distanced = FastDistanceCalculator.distanceFastKm(historyEndPointsDto.getLat(), historyEndPointsDto.getLon(), xpPoint.getPointLat(), xpPoint.getPointLon());
             xpHistoryEndPointsVo.setDistance(distanced);
-            xpHistoryEndPointsVo.setTime(xpPoint.getParkingTimeLimit());
+            xpHistoryEndPointsVo.setTime(parkingTimeLimit);
             xpHistoryEndPointsVo.setElectronicAreaId(xpPoint.getElectronicAreaId());
             resultList.add(xpHistoryEndPointsVo);
         }

--
Gitblit v1.7.1