From ef32f6913325bb593d537b4ff433545f73ecb79a Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 11 三月 2026 10:00:32 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java |   78 +++++++++++++++++++++------------------
 1 files changed, 42 insertions(+), 36 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 f6cd82c..6602ed1 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
@@ -298,7 +298,9 @@
         long sequence = msgContent.getHeader().getSequence();
         responseMessage(sequence, vin);
         //保存车辆实时位置到redis
-        redisTemplate.opsForGeo().add("vehiclePosition:" + vin, new Point(longitude, latitude), vin);
+        if(0 != longitude && 0 != latitude){
+            redisTemplate.opsForGeo().add("vehiclePosition:" + vin, new Point(longitude, latitude), vin);
+        }
 
         VehicleStatus vehicleStatus = systemRuntimeStatus.getVehicleStatus();
         OrderStatusInfo runningOrderStatusInfo = systemRuntimeStatus.getRunningOrderStatusInfo();
@@ -316,44 +318,48 @@
             }
         }
         //保存车辆实时信息到mongodb
-        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);
-            vehiclePosition.setSpeed(dynamicStatus.getSpeed());
-            vehiclePosition.setCurrentElectricity(dynamicStatus.getBmsSocDisp());
-            vehiclePosition.setMileageRange(dynamicStatus.getDstBatDisp());
-            vehiclePosition.setOrderId(orderId);
-            mongoTemplate.save(vehiclePosition);
-        }else{
-            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);
-        }
-        //调用推送服务接口
-        if (null != orderId) {
-            RtTripInfo rtTripInfo = systemRuntimeStatus.getRtTripInfo();
-            PushOrderRouteDTO dto = new PushOrderRouteDTO();
-            dto.setOrderId(orderId);
-            dto.setRouteType(order_id.contains("XU") ? 2 : 1);
-            dto.setLongitude(longitude);
-            dto.setLatitude(latitude);
-            //TODO 这两个字段现在拿不到
+        if(0 != longitude && 0 != latitude){
+            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);
+                vehiclePosition.setSpeed(dynamicStatus.getSpeed());
+                vehiclePosition.setCurrentElectricity(dynamicStatus.getBmsSocDisp());
+                vehiclePosition.setMileageRange(dynamicStatus.getDstBatDisp());
+                vehiclePosition.setOrderId(orderId);
+                mongoTemplate.save(vehiclePosition);
+            }else{
+                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);
+            }
+            //调用推送服务接口
+            if (null != orderId) {
+                RtTripInfo rtTripInfo = systemRuntimeStatus.getRtTripInfo();
+                PushOrderRouteDTO dto = new PushOrderRouteDTO();
+                dto.setOrderId(orderId);
+                dto.setRouteType(order_id.contains("XU") ? 2 : 1);
+                dto.setLongitude(longitude);
+                dto.setLatitude(latitude);
+                //TODO 这两个字段现在拿不到
 //            dto.setDuration(rtTripInfo.getRemaining_time());
 //            dto.setDistance(rtTripInfo.getRemaining_distance().intValue());
-            xpPushMessageClient.pushOrderRoute(dto);
+                xpPushMessageClient.pushOrderRoute(dto);
+            }
         }
+
+
     }
 
 

--
Gitblit v1.7.1