From 4bbbfc8cf87ee90b58d39bdde8a8a6932c38fa0f Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期四, 12 三月 2026 14:00:01 +0800
Subject: [PATCH] 车辆运维修改
---
xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpVehicleServiceImpl.java | 39 +++++++++++++++++++++++++--------------
1 files changed, 25 insertions(+), 14 deletions(-)
diff --git a/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpVehicleServiceImpl.java b/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpVehicleServiceImpl.java
index 4426d01..631a176 100644
--- a/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpVehicleServiceImpl.java
+++ b/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpVehicleServiceImpl.java
@@ -54,6 +54,7 @@
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.data.geo.Point;
import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.geo.GeoJsonPoint;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.redis.core.RedisTemplate;
@@ -195,18 +196,23 @@
}
for (XpVehicleVO xpVehicleVO : list) {
- List<Point> positionList = redisTemplate.opsForGeo().position("vehiclePosition:" + xpVehicleVO.getVehicleVin(), xpVehicleVO.getVehicleVin());
- if (!CollectionUtils.isEmpty(positionList)) {
- Point geoJsonPoint = positionList.get(0);
- // 获取经纬度
- xpVehicleVO.setLongitude(geoJsonPoint.getX());
- xpVehicleVO.setLatitude(geoJsonPoint.getY());
- }
+// List<Point> positionList = redisTemplate.opsForGeo().position("vehiclePosition:" + xpVehicleVO.getVehicleVin(), xpVehicleVO.getVehicleVin());
+// if (!CollectionUtils.isEmpty(positionList)) {
+// Point geoJsonPoint = positionList.get(0);
+// // 获取经纬度
+// xpVehicleVO.setLongitude(geoJsonPoint.getX());
+// xpVehicleVO.setLatitude(geoJsonPoint.getY());
+// }
// 查询车辆的续航里程
VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(xpVehicleVO.getVehicleVin())), VehiclePosition.class);
if (Objects.nonNull(vehiclePosition)) {
xpVehicleVO.setMileageRange(vehiclePosition.getMileageRange());
xpVehicleVO.setCurrentElectricity(vehiclePosition.getCurrentElectricity());
+ GeoJsonPoint point = vehiclePosition.getPoint();
+ if(Objects.nonNull(point)){
+ xpVehicleVO.setLongitude(point.getX());
+ xpVehicleVO.setLatitude(point.getY());
+ }
} else {
xpVehicleVO.setMileageRange(0F);
xpVehicleVO.setCurrentElectricity(0);
@@ -246,13 +252,18 @@
throw new ServiceException("未查询到有效车辆信息", I18nKeyConstant.VEHICLE_NOT_EXISTS);
}
// 判断距离是否在范围之内 4米
- List<Point> positionList = redisTemplate.opsForGeo().position("vehiclePosition:" + xpVehicle.getVehicleVin(), xpVehicle.getVehicleVin());
- if (CollUtil.isNotEmpty(positionList)) {
- Point geoJsonPoint = positionList.get(0);
- Map<String, Double> distance = GeodesyUtil.getDistance(dto.getLongitude()+ "," + dto.getLatitude(), geoJsonPoint.getX()+","+geoJsonPoint.getY());
- if (null != distance) {
- Double distance1 = distance.get("WGS84");
- if (distance1 > 4) {
+// List<Point> positionList = redisTemplate.opsForGeo().position("vehiclePosition:" + xpVehicle.getVehicleVin(), xpVehicle.getVehicleVin());
+ VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(xpVehicle.getVehicleVin())), VehiclePosition.class);
+ if (Objects.nonNull(vehiclePosition)) {
+ GeoJsonPoint point = vehiclePosition.getPoint();
+ if(Objects.nonNull(point)){
+ Map<String, Double> distance = GeodesyUtil.getDistance(dto.getLongitude()+ "," + dto.getLatitude(), point.getX()+","+point.getY());
+ if (null != distance) {
+ Double distance1 = distance.get("WGS84");
+ if (distance1 > 4) {
+ throw new ServiceException("距离过远,无法打开", I18nKeyConstant.VEHICLE_DISTANCE_TOO_LONG);
+ }
+ }else {
throw new ServiceException("距离过远,无法打开", I18nKeyConstant.VEHICLE_DISTANCE_TOO_LONG);
}
}else {
--
Gitblit v1.7.1