From c96fbe6b0aeb413a17c429133ee6d81d138144b9 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期二, 09 六月 2026 10:58:52 +0800
Subject: [PATCH] Merge branch '1.0' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi into 1.0

---
 xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java |   40 +++++++++++++++++++++++-----------------
 1 files changed, 23 insertions(+), 17 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 1dd278f..dcd3acb 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
@@ -337,8 +337,10 @@
                         dto.setOrderType(orderType);
                         R<?> r = xpOrderClient.popOrder(dto);
                         if(200 != r.getCode()){
+                            XpOrder xpOrder = xpOrderClient.queryOrderById(Long.valueOf(orderId)).getData();
                             //业务执行失败,给差车端发送取消任务报文,继续执行巡游任务
                             PushOrderDto pushOrderDto = new PushOrderDto();
+                            pushOrderDto.setEndTaskId(xpOrder.getXpuStartTaskId());
                             pushOrderDto.setOrderId(orderId);
                             pushOrderDto.setVin(vin);
                             pushOrderDto.setOperation_type(OrderOperationType.CLOUD_CANCEL_ORDER);
@@ -996,24 +998,28 @@
                 R<XpCruiseOrder> cruiseOrder = xpCruiseOrderClient.getCruiseOrder(Long.parseLong(orderId.substring(2)));
                 XpCruiseOrder xpCruiseOrder = cruiseOrder.getData();
 
-                origin.setLongitude(xpCruiseOrder.getStartLon());
-                origin.setLatitude(xpCruiseOrder.getStartLat());
-                destination.setLongitude(xpCruiseOrder.getEndLon());
-                destination.setLatitude(xpCruiseOrder.getEndLat());
+                Object cacheObject = redisService.getCacheObject("CRUISE_ROUTE:" + xpCruiseOrder.getVehicleId());
+                if(null != cacheObject){
+                    RouteVo routeVo = JSON.parseObject(cacheObject.toString(), RouteVo.class);
+                    routeID = routeVo.getRouteID();
+                }else{
+                    origin.setLongitude(xpCruiseOrder.getStartLon());
+                    origin.setLatitude(xpCruiseOrder.getStartLat());
+                    destination.setLongitude(xpCruiseOrder.getEndLon());
+                    destination.setLatitude(xpCruiseOrder.getEndLat());
 
-                OrderRouteAndFareDto dto = new OrderRouteAndFareDto();
-                dto.setOrderId(Long.parseLong(orderId.substring(2)));
-                dto.setOrigin(origin);
-                dto.setDestination(destination);
-                dto.setRouteType(3);
-                R<RouteVo> routeVoR = xpMapClient.getOrderDistanceAndDuration(dto);
-                if (200 != routeVoR.getCode()) {
-                    throw new RuntimeException("获取订单线路和运费失败");
+                    OrderRouteAndFareDto dto = new OrderRouteAndFareDto();
+                    dto.setOrderId(Long.parseLong(orderId.substring(2)));
+                    dto.setOrigin(origin);
+                    dto.setDestination(destination);
+                    dto.setRouteType(3);
+                    R<RouteVo> routeVoR = xpMapClient.getOrderDistanceAndDuration(dto);
+                    if (200 != routeVoR.getCode()) {
+                        throw new RuntimeException("获取订单线路和运费失败");
+                    }
+                    RouteVo routeVo = routeVoR.getData();
+                    routeID = routeVo.getRouteID();
                 }
-                RouteVo routeVo = routeVoR.getData();
-                routeID = routeVo.getRouteID();
-
-
                 vehicleId = xpCruiseOrder.getVehicleId();
             }
         } else if(orderId.contains("TEST")){
@@ -1608,7 +1614,7 @@
                         cruisePointDto.setPointId(newXpCruiseOrder.getStartPointId());
                         cruisePointDto.setOrderReverse(xpCruiseOrder.getOrderReverse());
                         R<XpCruiseOrder> cruisePoint = xpCruisePlanClient.getCruisePoint(cruisePointDto);
-                        if(cruisePoint!=null){
+                        if(cruisePoint!=null && 200 == cruisePoint.getCode()){
                             XpCruiseOrder cruiseOrder1 = cruisePoint.getData();
                             //不停车替换新任务
                             cruiseOrder1.setLastOrderId1("XU" + xpCruiseOrder.getId());

--
Gitblit v1.7.1