From f443bf994990854466787e2acbc983fb47cea3e4 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 16 四月 2026 16:00:50 +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 |   41 +++++++++++++++++++++++++++--------------
 1 files changed, 27 insertions(+), 14 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 df5e3d1..5f5c3e9 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
@@ -13,11 +13,10 @@
 import com.xiaopeng.api.dto.operation.CruisePointDto;
 import com.xiaopeng.api.dto.operation.LonLatDto;
 import com.xiaopeng.api.dto.operation.ReassignOrderDTO;
-import com.xiaopeng.api.dto.order.AddCruiseMissionDto;
 import com.xiaopeng.api.dto.order.PopOrderDto;
 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.OrderMissionClient;
 import com.xiaopeng.api.feignClient.automaticPilot.VehicleBuriedPointClient;
 import com.xiaopeng.api.feignClient.maintenance.XpTaskClient;
 import com.xiaopeng.api.feignClient.map.XpMapClient;
@@ -63,6 +62,7 @@
 import javax.annotation.Resource;
 import java.util.*;
 import java.util.concurrent.*;
+import java.util.function.Consumer;
 
 
 /**
@@ -417,8 +417,8 @@
                 mongoTemplate.updateFirst(new Query(Criteria.where("vin").is(vin)), update, VehiclePosition.class);
             }
             //调用推送服务接口,给乘客推送剩余轨迹和里程时长
+            RtTripInfo rtTripInfo = systemRuntimeStatus.getRunningOrderStatusInfo().getRtTripInfo();
             if (null != orderId && !order_id.contains("XU")) {
-                RtTripInfo rtTripInfo = systemRuntimeStatus.getRunningOrderStatusInfo().getRtTripInfo();
                 PushOrderRouteDTO dto = new PushOrderRouteDTO();
                 dto.setOrderId(orderId);
                 dto.setRouteType(1);
@@ -440,6 +440,12 @@
                 //只有乘客订单需要推送剩余导航数据
                 if(!order_id.contains("TEST")){
                     xpPushMessageClient.pushOrderRoute(dto);//存储历史轨迹
+                    // 给连环派单的用户推送
+                    Long nextOrderId = redisService.getCacheObject(CacheConstants.nextOrder(order_id));
+                    if (null != nextOrderId){
+                        dto.setOrderId(orderId);
+                        xpPushMessageClient.pushOrderRoute(dto);
+                    }
                     xpOrderClient.saveVehicleLocation(orderTrajectory);
                 }else{
                     testOrderClient.saveVehicleLocation(orderTrajectory);
@@ -1100,8 +1106,8 @@
 
     }
 
-    ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(20);
-
+    ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(40);
+    @Resource OrderMissionClient orderMissionClient;
     /**
      * 订单状态更新事件
      * @param msgContent
@@ -1196,16 +1202,23 @@
                     log.info("到达目的地,不做任何处理:{}", orderId);
                     break;
                 case ORDER_WAITING_FOR_DROPOFF:
-                    // 根据车辆id查询订单,如果未完成订单数量不唯一则下发循环订单任务
-                    List ret = new ArrayList(2);//TODO
-                    if(ret.size() > 1){
+                    Long id = redisService.getCacheObject(CacheConstants.nextOrder(orderId));
+                    if(id != null){
                         scheduler.schedule(() -> {
-                            //下发循环订单任务
-//                        xpOrderClient.createLoopOrderTask(vin, orderId);
-                            log.info("下发循环订单任务:{}", orderId);
-                            // 修改订单状态,和推送消息的状态
-                        }, 3, TimeUnit.SECONDS);
-
+                            XpOrder xpOrder = xpOrderClient.queryOrderById(id).getData();
+                            XpVehicle xpVehicle = xpVehicleClient.queryById(xpOrder.getVehicleId()).getData();
+                            PushOrderDto pushOrderDto = new PushOrderDto();
+                            pushOrderDto.setOrderId(xpOrder.getId().toString());
+                            pushOrderDto.setStartLatitude(xpOrder.getStartLat());
+                            pushOrderDto.setStartLongitude(xpOrder.getStartLon());
+                            pushOrderDto.setEndLatitude(xpOrder.getEndLat());
+                            pushOrderDto.setEndLongitude(xpOrder.getEndLon());
+                            pushOrderDto.setEndPoiName(xpOrder.getEndPointName());
+                            pushOrderDto.setOrderType(OrderType.USER_ORDER);
+                            pushOrderDto.setStage(1);
+                            pushOrderDto.setVin(xpVehicle.getVehicleVin());
+                            orderMissionClient.pushOrder(pushOrderDto);
+                        }, 3, TimeUnit.MINUTES);
                         break;
                     }
 

--
Gitblit v1.7.1