From 22b93ccfeec3dfb036d7dbd9f3ba2662d964b091 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 27 二月 2026 10:49:07 +0800
Subject: [PATCH] 巡游任务接口

---
 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 06fda15..ac95ab7 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
@@ -5,6 +5,7 @@
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
 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;
@@ -12,6 +13,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;
@@ -107,6 +109,10 @@
     private Snowflake snowflake;
     @Autowired
     private RedisService redisService;
+
+    @Autowired
+    private XpCruisePlanClient xpCruisePlanClient;
+
 
 
     /**
@@ -845,9 +851,48 @@
                             long sequence1 = snowFlake.nextId();
                             xpuUtil.cloudCreateOrder(task, 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