liujie
2026-06-09 c96fbe6b0aeb413a17c429133ee6d81d138144b9
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());