From bbd837a72bb9ec1bcef044624960345f98969a49 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期四, 26 三月 2026 16:53:32 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java |   37 +++++++++++++++++++++++++++++++++++--
 1 files changed, 35 insertions(+), 2 deletions(-)

diff --git a/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java b/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java
index 3541fc0..a60ebd0 100644
--- a/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java
+++ b/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java
@@ -19,7 +19,6 @@
 import com.xiaopeng.api.feignClient.pushMessage.XpPushMessageClient;
 import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient;
 import com.xiaopeng.api.model.order.XpOrder;import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
-import com.xiaopeng.api.vo.OrderType;
 import com.xiaopeng.api.vo.SystemEventType;
 import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
 import com.xiaopeng.api.vo.automaticPilot.protobuf.*;
@@ -104,6 +103,7 @@
             taskBuilder.addOrderPhase(OrderPhase.ROUTE_TO_CRUISE);
             taskListBuilder.addTasks(taskBuilder.build());
         }else if(dto.getOrderType().equals(com.xiaopeng.api.vo.OrderType.USER_ORDER)){
+            //乘客单
             for (int i = 1; i < 3; i++) {
                 RtTask.Builder taskBuilder = RtTask.newBuilder();
                 taskBuilder.setOrderId(dto.getOrderId().toString());
@@ -162,6 +162,7 @@
                 taskListBuilder.addTasks(taskBuilder.build());
             }
         }else if(dto.getOrderType().equals(com.xiaopeng.api.vo.OrderType.TEST_ORDER)){
+            //测试单
             for (int i = 1; i < 3; i++) {
                 RtTask.Builder taskBuilder = RtTask.newBuilder();
                 taskBuilder.setOrderId(dto.getOrderId().toString());
@@ -219,12 +220,44 @@
                 }
                 taskListBuilder.addTasks(taskBuilder.build());
             }
+        }else if(dto.getOrderType().equals(com.xiaopeng.api.vo.OrderType.TEST_CRUISE_ORDER)){
+            //测试单巡游单
+            RtTask.Builder taskBuilder = RtTask.newBuilder();
+            taskBuilder.setOrderId(dto.getOrderId().toString());
+            taskBuilder.setTaskId(snowflake.nextId() + "");
+            taskBuilder.setTaskType(OrderType.ORDER_TYPE_CRUISE);
+            //构建起点坐标数据
+            pointBuilderStart.setWaypointId(dto.getOrderId() + "-001");
+            pointBuilderStart.setPointType(PointType.START_POINT);
+            pointBuilderStart.setSequence(1);
+            pointBuilderStart.setActionType(ActionType.ACTION_UNSPECIFIED);
+            GeoPoint.Builder geoPointBuilder = GeoPoint.newBuilder();
+            geoPointBuilder.setLatitude(dto.getStartLatitude());
+            geoPointBuilder.setLongitude(dto.getStartLongitude());
+            pointBuilderStart.setPoint(geoPointBuilder.build());
+            taskBuilder.addPoints(pointBuilderStart);
+
+            //构建终点数据
+            pointBuilderEnd.setWaypointId(dto.getOrderId() + "-002");
+            pointBuilderEnd.setPointType(PointType.CRUISE_END_POINT);
+            pointBuilderEnd.setSequence(2);
+            pointBuilderEnd.setActionType(ActionType.DRIVE_THROUGH);
+            geoPointBuilder = GeoPoint.newBuilder();
+            geoPointBuilder.setLatitude(dto.getEndLatitude());
+            geoPointBuilder.setLongitude(dto.getEndLongitude());
+            pointBuilderEnd.setPoint(geoPointBuilder.build());
+            taskBuilder.addPoints(pointBuilderEnd);
+            taskBuilder.setSequence(1);
+            taskBuilder.addOrderPhase(OrderPhase.ROUTE_TO_CRUISE);
+            taskListBuilder.addTasks(taskBuilder.build());
         }
 
         long sequence = snowflake.nextId();
         MqttPublishDto mqttPublishDto = xpuUtil.cloudCreateOrder(taskListBuilder.build(), dto.getVin(),sequence);
         //先将车辆修改状态,防止在异步通知之前被其他订单选中
-        if (!dto.getOrderId().contains("XU") && mqttPublishDto.getCode()== 200) {
+        if(!dto.getOrderType().equals(com.xiaopeng.api.vo.OrderType.CRUISE_ORDER) &&
+                !dto.getOrderType().equals(com.xiaopeng.api.vo.OrderType.TEST_CRUISE_ORDER)
+                && mqttPublishDto.getCode()== 200){
             // 修改车子为接单状态
             xpVehicleClient.updateVehicleStatus(new UpdateVehicleStateDto(dto.getVin(), 1));
         }

--
Gitblit v1.7.1