From 244228feba355b4df8e160fd4c7c353f674044f1 Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期六, 14 二月 2026 17:08:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java |   50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 50 insertions(+), 0 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 822c6ea..a3848ae 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
@@ -270,6 +270,56 @@
 
 
     /**
+     * XPU发布系统运行状态---车辆实时位置
+     *
+     * @param msgContent
+     */
+    public void systemStatusXpuAndReassign(MsgContent msgContent) {
+        //开始处理消息对应的业务逻辑
+        SystemRuntimeStatus systemRuntimeStatus = msgContent.getContent_detail().getObject("systemRuntimeStatus", SystemRuntimeStatus.class);
+        AbnormalReason abnormalReason = systemRuntimeStatus.getSystem_status().getAbnormal_reason();
+        // 判断是否为故障状态
+        if (abnormalReason == AbnormalReason.FAULT) {
+            log.info("车辆故障,开始处理故障");
+            // TODO 添加异常任务
+            // 解绑用户与车辆关系
+            CancelTaxiPassengerVo cancelTaxiPassengerVo = new CancelTaxiPassengerVo();
+            String orderId = systemRuntimeStatus.getRunning_order_status_info().getOrder_id();
+            XpOrder xpOrder = xpOrderClient.queryOrderById(Long.parseLong(orderId)).getData();
+            XpVehicle vehicle = xpVehicleClient.queryById(xpOrder.getVehicleId()).getData();
+            if (vehicle != null) {
+                // 修改车辆状态
+                vehicle.setOperatingStatus(4);
+                xpVehicleClient.updateVehicleById(vehicle);
+                cancelTaxiPassengerVo.setVin(vehicle.getVehicleVin());
+                cancelTaxiPassengerVo.setUid(xpOrder.getAppUserId().toString());
+                cancelTaxiPassengerVo.setOrderNo(xpOrder.getOrderNumber());
+                // TODO
+//            cancelTaxiPassengerVo.setAppId();
+                userVehicleClient.cancelTaxiPassenger(cancelTaxiPassengerVo);
+            }
+            // 取消订单
+            R<?> r = xpOrderClient.cancelOrder(String.valueOf(xpOrder.getId()));
+            if (r.getCode() == R.SUCCESS){
+                log.info("取消订单成功");
+                // TODO 重新派单
+                ReassignOrderDTO reassignOrderDTO = new ReassignOrderDTO();
+                reassignOrderDTO.setUid(xpOrder.getAppUserId().toString());
+                reassignOrderDTO.setOrderNo(xpOrder.getOrderNumber());
+                reassignOrderDTO.setCount(10);
+                RealtimePose pose = systemRuntimeStatus.getPose();
+                Wgs naviPose = pose.getNavi_pose();
+                Double latitude = naviPose.getLatitude();
+                Double longitude = naviPose.getLongitude();
+                reassignOrderDTO.setLongitude(longitude);
+                reassignOrderDTO.setLatitude(latitude);
+                reassignOrderClient.reassignOrder(reassignOrderDTO);
+            }
+        }
+    }
+
+
+    /**
      * XPU向云端请求导航
      *
      * @param msgContent

--
Gitblit v1.7.1