From 12543cfc307e139976f7100af1f8fbb2f095cd77 Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期二, 24 三月 2026 17:10:53 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java | 73 ++++++++++++++++++++++++++++++++++++
1 files changed, 72 insertions(+), 1 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 84206e9..80e2520 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
@@ -6,6 +6,7 @@
import com.google.protobuf.InvalidProtocolBufferException;
import com.google.protobuf.util.JsonFormat;
import com.xiaopeng.api.dto.automaticPilot.MqttPublishDto;
+import com.xiaopeng.api.dto.automaticPilot.VehicleEventDTO;
import com.xiaopeng.api.dto.map.OrderRouteAndFareDto;
import com.xiaopeng.api.dto.operation.CruisePointDto;
import com.xiaopeng.api.dto.operation.LonLatDto;
@@ -15,6 +16,7 @@
import com.xiaopeng.api.dto.pushMessage.PushOrderRouteDTO;
import com.xiaopeng.api.dto.pushMessage.SendMessageDTO;
import com.xiaopeng.api.dto.vehicleConvoy.UpdateVehicleStateDto;
+import com.xiaopeng.api.feignClient.automaticPilot.VehicleBuriedPointClient;
import com.xiaopeng.api.feignClient.maintenance.XpTaskClient;
import com.xiaopeng.api.feignClient.map.XpMapClient;
import com.xiaopeng.api.feignClient.operation.ReassignOrderClient;
@@ -111,6 +113,8 @@
@Resource
private XpTaskClient xpTaskClient;
+ @Resource
+ private VehicleBuriedPointClient vehicleBuriedPointClient;
private static final JsonFormat.Printer jsonPrinter = JsonFormat.printer()
.printingEnumsAsInts()
@@ -340,6 +344,7 @@
vehiclePosition.setCurrentElectricity(dynamicStatus.getBmsSocDisp());
vehiclePosition.setMileageRange(dynamicStatus.getDstBatDisp());
vehiclePosition.setOrderId(orderId);
+ vehiclePosition.setTotalOdometer(dynamicStatus.getTotalOdometer());
mongoTemplate.save(vehiclePosition);
}else{
vehiclePosition.setOrderId(orderId);
@@ -351,7 +356,8 @@
.set("currentElectricity", dynamicStatus.getBmsSocDisp())
.set("mileageRange", dynamicStatus.getDstBatDisp())
.set("hasOrder", hasOrder)
- .set("orderId", orderId);
+ .set("orderId", orderId)
+ .set("totalOdometer", dynamicStatus.getTotalOdometer());
mongoTemplate.updateFirst(new Query(Criteria.where("vin").is(vin)), update, VehiclePosition.class);
}
//调用推送服务接口
@@ -874,6 +880,39 @@
case ORDER_COMPLETED:
//已完成
log.info("已完成,不做任何处理:{}", orderId);
+ if(!orderId.contains("XU")){
+ XpOrder xpOrder = xpOrderClient.queryOrderById(Long.valueOf(orderId)).getData();
+ if (Objects.nonNull(xpOrder)){
+ // 查询车辆
+ XpVehicle xpVehicle = xpVehicleClient.queryById(xpOrder.getVehicleId()).getData();
+ if (Objects.nonNull(xpVehicle)){
+ String vin = xpVehicle.getVehicleVin();
+ // 封装埋点消息实体
+ VehicleEventDTO vehicleEventDTO = new VehicleEventDTO();
+ vehicleEventDTO.setVin(vin);
+ vehicleEventDTO.setXpuId("");
+ vehicleEventDTO.setOrderId(orderId);
+ vehicleEventDTO.setEventKey("RT_xpu_vehicle_trace_upload");
+ vehicleEventDTO.setEventTime(System.currentTimeMillis());
+ Map<String,Object> attributes = new HashMap<>();
+ attributes.put("vin",vin);
+ attributes.put("order_id",vehicleEventDTO.getOrderId());
+ attributes.put("order_type","user_order");
+ attributes.put("timestamp",vehicleEventDTO.getEventTime());
+ attributes.put("current_main_status",OrderStatus.ORDER_COMPLETED);
+ attributes.put("current_sub_status","");
+ VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(vin)), VehiclePosition.class);
+ if(Objects.nonNull(vehiclePosition)){
+ attributes.put("odometer_km",vehiclePosition.getTotalOdometer());
+ }else {
+ attributes.put("odometer_km","");
+ }
+ vehicleEventDTO.setAttributes(attributes);
+ vehicleBuriedPointClient.sendVehicleEvent(vehicleEventDTO);
+ log.info("已完成,推送埋点:{}", orderId);
+ }
+ }
+ }
break;
case ORDER_CANCELLED:
//已取消
@@ -895,6 +934,38 @@
//到达巡游终点
if(orderId.contains("XU")){
buildPushOrderStatus(orderId, OrderStatusEnum.COMPLETED, sequence);
+ String cruiseOrderId = orderId.substring(2);
+ XpCruiseOrder xpCruiseOrder = xpCruiseOrderClient.getCruiseOrder(Long.parseLong(cruiseOrderId)).getData();
+ if (Objects.nonNull(xpCruiseOrder)){
+ // 查询车辆
+ XpVehicle xpVehicle = xpVehicleClient.queryById(xpCruiseOrder.getVehicleId()).getData();
+ if (Objects.nonNull(xpVehicle)){
+ String vin = xpVehicle.getVehicleVin();
+ // 封装埋点消息实体
+ VehicleEventDTO vehicleEventDTO = new VehicleEventDTO();
+ vehicleEventDTO.setVin(vin);
+ vehicleEventDTO.setXpuId("");
+ vehicleEventDTO.setOrderId(cruiseOrderId);
+ vehicleEventDTO.setEventKey("RT_xpu_vehicle_trace_upload");
+ vehicleEventDTO.setEventTime(System.currentTimeMillis());
+ Map<String,Object> attributes = new HashMap<>();
+ attributes.put("vin",vin);
+ attributes.put("order_id",vehicleEventDTO.getOrderId());
+ attributes.put("order_type","cruise_order");
+ attributes.put("timestamp",vehicleEventDTO.getEventTime());
+ attributes.put("current_main_status",OrderStatus.ORDER_ARRIVED_AT_CRUISE_DESTINATION);
+ attributes.put("current_sub_status","");
+ VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(vin)), VehiclePosition.class);
+ if(Objects.nonNull(vehiclePosition)){
+ attributes.put("odometer_km",vehiclePosition.getTotalOdometer());
+ }else {
+ attributes.put("odometer_km","");
+ }
+ vehicleEventDTO.setAttributes(attributes);
+ vehicleBuriedPointClient.sendVehicleEvent(vehicleEventDTO);
+ log.info("到达巡游终点,推送埋点:{}", orderId);
+ }
+ }
}
break;
case ORDER_PAUSED:
--
Gitblit v1.7.1