From e37722d388a79ea62c27307c59afb334d43f39a4 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 05 三月 2026 15:44:15 +0800
Subject: [PATCH] 修改车辆位置存储逻辑
---
xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java | 76 +++++++++++++++++++++++++------------
1 files changed, 51 insertions(+), 25 deletions(-)
diff --git a/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java b/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java
index 416565a..fc87691 100644
--- a/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java
+++ b/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java
@@ -28,7 +28,7 @@
import com.xiaopeng.api.vo.OrderType;
import com.xiaopeng.api.vo.SystemEventType;
import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
-import com.xiaopeng.api.vo.automaticPilot.protobuf.RTCmdType;
+import com.xiaopeng.api.vo.automaticPilot.protobuf.*;
import com.xiaopeng.api.vo.operation.RouteVo;
import com.xiaopeng.api.vo.vehicleConvoy.CancelTaxiPassengerVo;
import com.xiaopeng.automaticPilot.util.XPUUtil;
@@ -46,6 +46,8 @@
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.mongodb.core.query.Update;
+import org.springframework.data.mongodb.core.query.UpdateDefinition;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
@@ -275,32 +277,56 @@
VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(vin)), VehiclePosition.class);
if (null == vehiclePosition) {
vehiclePosition = new VehiclePosition();
- }
- vehiclePosition.setVin(vin);
- vehiclePosition.setPoint(new GeoJsonPoint(longitude, latitude));
- vehiclePosition.setCourse(course);
- vehiclePosition.setAlt(alt);
- VehicleStatus vehicleStatus = systemRuntimeStatus.getVehicleStatus();
- //车辆动态信息
- VehicleDynamicStatus dynamicStatus = vehicleStatus.getDynamicStatus();
- vehiclePosition.setSpeed(dynamicStatus.getSpeed());
- vehiclePosition.setCurrentElectricity(dynamicStatus.getBmsSocDisp());
- vehiclePosition.setMileageRange(dynamicStatus.getDstBatDisp());
- //订单信息
- OrderStatusInfo runningOrderStatusInfo = systemRuntimeStatus.getRunningOrderStatusInfo();
- Long orderId = null;
- String order_id = runningOrderStatusInfo.getOrderId();
- vehiclePosition.setHasOrder(0);
- if (StringUtils.isNotEmpty(order_id)) {
- if (order_id.contains("XU")) {
- vehiclePosition.setHasOrder(1);
- orderId = Long.parseLong(order_id.substring(2));
- } else {
- orderId = Long.parseLong(order_id);
+ vehiclePosition.setVin(vin);
+ vehiclePosition.setPoint(new GeoJsonPoint(longitude, latitude));
+ vehiclePosition.setCourse(course);
+ vehiclePosition.setAlt(alt);
+ VehicleStatus vehicleStatus = systemRuntimeStatus.getVehicleStatus();
+ //车辆动态信息
+ VehicleDynamicStatus dynamicStatus = vehicleStatus.getDynamicStatus();
+ vehiclePosition.setSpeed(dynamicStatus.getSpeed());
+ vehiclePosition.setCurrentElectricity(dynamicStatus.getBmsSocDisp());
+ vehiclePosition.setMileageRange(dynamicStatus.getDstBatDisp());
+ //订单信息
+ OrderStatusInfo runningOrderStatusInfo = systemRuntimeStatus.getRunningOrderStatusInfo();
+ Long orderId = null;
+ String order_id = runningOrderStatusInfo.getOrderId();
+ vehiclePosition.setHasOrder(0);
+ if (StringUtils.isNotEmpty(order_id)) {
+ if (order_id.contains("XU")) {
+ vehiclePosition.setHasOrder(1);
+ orderId = Long.parseLong(order_id.substring(2));
+ } else {
+ orderId = Long.parseLong(order_id);
+ }
}
+ vehiclePosition.setOrderId(orderId);
+ mongoTemplate.save(vehiclePosition);
+ }else{
+ VehicleDynamicStatus dynamicStatus = vehicleStatus.getDynamicStatus();
+ String order_id = runningOrderStatusInfo.getOrderId();
+ Long orderId = null;
+ Integer hasOrder = 0;
+ if (StringUtils.isNotEmpty(order_id)) {
+ if (order_id.contains("XU")) {
+ hasOrder = 1;
+ orderId = Long.parseLong(order_id.substring(2));
+ } else {
+ orderId = Long.parseLong(order_id);
+ }
+ }
+ vehiclePosition.setOrderId(orderId);
+ Update update = new Update()
+ .set("point", new GeoJsonPoint(longitude, latitude))
+ .set("course", course)
+ .set("alt", alt)
+ .set("speed", dynamicStatus.getSpeed())
+ .set("currentElectricity", dynamicStatus.getBmsSocDisp())
+ .set("mileageRange", dynamicStatus.getDstBatDisp())
+ .set("hasOrder", hasOrder)
+ .set("orderId", orderId);
+ mongoTemplate.updateFirst(new Query(Criteria.where("vin").is(vin)), update, VehiclePosition.class);
}
- vehiclePosition.setOrderId(orderId);
- mongoTemplate.save(vehiclePosition);
//调用推送服务接口
if (null != orderId) {
RtTripInfo rtTripInfo = systemRuntimeStatus.getRtTripInfo();
--
Gitblit v1.7.1