From b1f26aebe882d31df351f875d59eefc946aee295 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 27 二月 2026 12:30:03 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java |   47 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 46 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 8d43870..114ecaa 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
@@ -7,6 +7,7 @@
 import com.google.protobuf.InvalidProtocolBufferException;
 import com.google.protobuf.util.JsonFormat;
 import com.xiaopeng.api.dto.map.OrderRouteAndFareDto;
+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.PopOrderDto;
@@ -14,6 +15,7 @@
 import com.xiaopeng.api.dto.pushMessage.SendMessageDTO;
 import com.xiaopeng.api.feignClient.map.XpMapClient;
 import com.xiaopeng.api.feignClient.operation.ReassignOrderClient;
+import com.xiaopeng.api.feignClient.operation.XpCruisePlanClient;
 import com.xiaopeng.api.feignClient.order.XpCruiseOrderClient;
 import com.xiaopeng.api.feignClient.order.XpOrderClient;
 import com.xiaopeng.api.feignClient.pushMessage.XpPushMessageClient;
@@ -93,6 +95,10 @@
 
     @Resource
     private RedisService redisService;
+
+    @Autowired
+    private XpCruisePlanClient xpCruisePlanClient;
+
 
 
     /**
@@ -852,9 +858,48 @@
                             long sequence1 = snowFlake.nextId();
                             xpuUtil.cloudCreateOrder(taskList, xpVehicle.getVehicleVin(),sequence1);
                         }else if(xpCruiseOrder.getOrderType()==1){
-                           // 正常巡游 找到下一个点位   若到达最后点位  则反向找点位 TODO v
+                           // 正常巡游 找到下一个点位   若到达最后点位  则反向找点位
+                            // 起点
+                            Double endLon = xpCruiseOrder.getEndLon();
+                            Double endLat = xpCruiseOrder.getEndLat();
+                            XpCruiseOrder newXpCruiseOrder = new XpCruiseOrder();
+                            newXpCruiseOrder.setId("XU"+ IdUtil.fastUUID());
+                            newXpCruiseOrder.setVehicleId(xpCruiseOrder.getVehicleId());
+                            newXpCruiseOrder.setVehicleVin(xpCruiseOrder.getVehicleVin());
+                            newXpCruiseOrder.setFleetId(xpCruiseOrder.getFleetId());
+                            newXpCruiseOrder.setOrderType(1);
+                            newXpCruiseOrder.setStartLat(endLat);
+                            newXpCruiseOrder.setStartLon(endLon);
+                            newXpCruiseOrder.setStartPointId(xpCruiseOrder.getEndPointId());
+                            newXpCruiseOrder.setStartPointName(xpCruiseOrder.getEndPointName());
+                            newXpCruiseOrder.setStatus(1);
+                            newXpCruiseOrder.setLastOrderId(xpCruiseOrder.getId());
 
 
+                            // 通过车找终点id
+                            CruisePointDto cruisePointDto = new CruisePointDto();
+                            cruisePointDto.setNewXpCruiseOrder(newXpCruiseOrder);
+                            cruisePointDto.setVehicleId(xpCruiseOrder.getVehicleId());
+                            cruisePointDto.setPointId(newXpCruiseOrder.getStartPointId());
+                            cruisePointDto.setOrderReverse(xpCruiseOrder.getOrderReverse());
+                            R<XpCruiseOrder> cruisePoint = xpCruisePlanClient.getCruisePoint(cruisePointDto);
+                            if(cruisePoint!=null){
+                                xpCruiseOrderClient.addCruiseOrder(cruisePoint.getData());
+
+
+                                // 下发任务
+                                RTTask task = new RTTask();
+                                task.setOrder_id(newXpCruiseOrder.getId());
+                                task.setTask_id("MISSION_"+ IdUtil.fastUUID());
+                                task.setTask_type(TaskType.CRUISE);
+                                task.setStatus(TaskStatus.PENDING);
+                                SnowFlake snowFlake = new SnowFlake(0, 0);
+                                snowFlake.withStartTimestamp(1420041600000L);
+                                long sequence1 = snowFlake.nextId();
+                                xpuUtil.cloudCreateOrder(task, xpVehicle.getVehicleVin(),sequence1);
+
+                            }
+
                         }
 
                     }

--
Gitblit v1.7.1