From 4e1f4e7ce26bc0c506797dfc35cb2d0fb6366034 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 27 二月 2026 15:10:43 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 xp-robotaxi-api/src/main/proto/rt_common.proto                                                                    |    2 
 xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/util/XPUUtil.java                      |   41 ++++++++++----------
 xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java      |   30 +++++++--------
 xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java |    2 
 4 files changed, 36 insertions(+), 39 deletions(-)

diff --git a/xp-robotaxi-api/src/main/proto/rt_common.proto b/xp-robotaxi-api/src/main/proto/rt_common.proto
index b145813..2c567f3 100644
--- a/xp-robotaxi-api/src/main/proto/rt_common.proto
+++ b/xp-robotaxi-api/src/main/proto/rt_common.proto
@@ -82,7 +82,7 @@
   ORDER_TYPE_UNSPECIFIED = 0;             // 未指定
   ORDER_TYPE_ROBOTAXI = 1;                // Robotaxi订单
   ORDER_TYPE_REMOTE_DRIVING = 2;          // 云代驾订单
-  c = 3;                   // 巡游任务
+  ORDER_TYPE_CRUISE = 3;                   // 巡游任务
 }
 
 ////////////////////////////////////////////////////////////////////////////////////////////////
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 9336a2d..ae3fb3d 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
@@ -43,7 +43,7 @@
         taskBuilder.setTaskId("MISSION_"+ IdUtil.fastUUID());
 
         if(dto.getOrderId().contains("XU")){
-            taskBuilder.setTaskType(OrderType.ORDER_TYPE_ROBOTAXI);
+            taskBuilder.setTaskType(OrderType.ORDER_TYPE_CRUISE);
         }else {
             taskBuilder.setTaskType(OrderType.ORDER_TYPE_ROBOTAXI);
         }
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 114ecaa..47fea4d 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
@@ -96,7 +96,7 @@
     @Resource
     private RedisService redisService;
 
-    @Autowired
+    @Resource
     private XpCruisePlanClient xpCruisePlanClient;
 
 
@@ -256,8 +256,8 @@
         //获取实时位置
         RealtimePose pose = systemRuntimeStatus.getPose();
         Wgs naviPose = pose.getNaviPose();
-        Double latitude = naviPose.getLatitude();
-        Double longitude = naviPose.getLongitude();
+        double latitude = naviPose.getLatitude();
+        double longitude = naviPose.getLongitude();
         Double course = naviPose.getCourse();
         Float alt = naviPose.getAlt();
         //获取车辆静态信息
@@ -414,7 +414,9 @@
         long sequence = msgContent.getHeader().getSequence();
         //开始处理消息对应的业务逻辑
         NavigationDeviationEvent deviationEvent = msgContent.getNaviDeviationEvent();
+        // todo 请求id确认是否有这个参数
 //        String requestId = deviationEvent.getRequestId();
+        String requestId = "";
         //导航id
         String routeID = "";
         Long vehicleId = null;
@@ -520,7 +522,7 @@
                 }
                 //TODO 这里的逻辑不太对,收到导航偏航事件之后
                 //构建导航下发请求对象
-//                cloudPushNavigationInfo(requestId, routeID, stringR.getData(), orderType, orderId, xpVehicle.getVehicleVin(), xpVehicle.getXpuId());
+                cloudPushNavigationInfo(requestId, routeID, stringR.getData(), orderType, orderId, xpVehicle.getVehicleVin(), xpVehicle.getXpuId());
             }
 //        }
     }
@@ -885,25 +887,21 @@
                             R<XpCruiseOrder> cruisePoint = xpCruisePlanClient.getCruisePoint(cruisePointDto);
                             if(cruisePoint!=null){
                                 xpCruiseOrderClient.addCruiseOrder(cruisePoint.getData());
+                                RtTask.Builder taskBuilder = RtTask.newBuilder();
+                                //TODO 设置目标地点信息
+                                taskBuilder.setOrderId(newXpCruiseOrder.getId());
+                                taskBuilder.setTaskId("MISSION_"+ IdUtil.fastUUID());
+                                taskBuilder.setTaskType(com.xiaopeng.api.vo.automaticPilot.protobuf.OrderType.ORDER_TYPE_CRUISE);
+                                RtTaskList.Builder taskListBuilder = RtTaskList.newBuilder();
+                                taskListBuilder.addTasks(taskBuilder.build());
 
-
-                                // 下发任务
-                                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);
-
+                                xpuUtil.cloudCreateOrder(taskListBuilder.build(), xpVehicle.getVehicleVin(),sequence1);
                             }
-
                         }
-
                     }
-
                 }
             }
         }else{
diff --git a/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/util/XPUUtil.java b/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/util/XPUUtil.java
index 77cc047..603e7ab 100644
--- a/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/util/XPUUtil.java
+++ b/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/util/XPUUtil.java
@@ -7,8 +7,7 @@
 import com.xiaopeng.api.feignClient.automaticPilot.VmpOpenServiceClient;
 import com.xiaopeng.api.feignClient.automaticPilot.XPUClient;
 import com.xiaopeng.api.vo.automaticPilot.MqttPublishVo;
-import com.xiaopeng.api.vo.automaticPilot.protobuf.RTCmdType;
-import com.xiaopeng.api.vo.automaticPilot.protobuf.RtTaskList;
+import com.xiaopeng.api.vo.automaticPilot.protobuf.*;
 import com.xiaopeng.common.core.utils.StringUtils;
 import com.xiaopeng.common.core.utils.uuid.UUID;
 import lombok.extern.slf4j.Slf4j;
@@ -51,14 +50,14 @@
      */
     //TODO 处理feign调用的异常
     public MqttPublishDto cloudCreateOrder(RtTaskList taskList, String vin, Long sequence) {
-        com.xiaopeng.api.vo.automaticPilot.protobuf.MsgContent.Builder msgContentBuilder = com.xiaopeng.api.vo.automaticPilot.protobuf.MsgContent.newBuilder();
-        com.xiaopeng.api.vo.automaticPilot.protobuf.MsgHeader.Builder headerBuilder = com.xiaopeng.api.vo.automaticPilot.protobuf.MsgHeader.newBuilder();
+        MsgContent.Builder msgContentBuilder = MsgContent.newBuilder();
+        MsgHeader.Builder headerBuilder = MsgHeader.newBuilder();
         headerBuilder.setMsgId(UUID.randomUUID().toString());
         headerBuilder.setTimestamp(System.currentTimeMillis());
         headerBuilder.setCmd(RTCmdType.CLOUD_CREATE_ORDER.getValue());
         headerBuilder.setSequence(sequence);
-        headerBuilder.setType(com.xiaopeng.api.vo.automaticPilot.protobuf.MessageType.MESSAGE_TYPE_REQUEST);
-        headerBuilder.setSource(com.xiaopeng.api.vo.automaticPilot.protobuf.SourceType.CLOUD);
+        headerBuilder.setType(MessageType.MESSAGE_TYPE_REQUEST);
+        headerBuilder.setSource(SourceType.CLOUD);
         msgContentBuilder.setHeader(headerBuilder.build());
 
         msgContentBuilder.setRtTaskList(taskList);
@@ -82,15 +81,15 @@
      * @return
      */
     //TODO 处理feign调用的异常
-    public MqttPublishDto cloudOrderOperation(com.xiaopeng.api.vo.automaticPilot.protobuf.OrderOperation operation, String vin, Long sequence) {
-        com.xiaopeng.api.vo.automaticPilot.protobuf.MsgContent.Builder msgContentBuilder = com.xiaopeng.api.vo.automaticPilot.protobuf.MsgContent.newBuilder();
-        com.xiaopeng.api.vo.automaticPilot.protobuf.MsgHeader.Builder headerBuilder = com.xiaopeng.api.vo.automaticPilot.protobuf.MsgHeader.newBuilder();
+    public MqttPublishDto cloudOrderOperation(OrderOperation operation, String vin, Long sequence) {
+        MsgContent.Builder msgContentBuilder = MsgContent.newBuilder();
+        MsgHeader.Builder headerBuilder = MsgHeader.newBuilder();
         headerBuilder.setMsgId(UUID.randomUUID().toString());
         headerBuilder.setTimestamp(System.currentTimeMillis());
         headerBuilder.setCmd(RTCmdType.CLOUD_ORDER_OPERATION.getValue());
         headerBuilder.setSequence(sequence);
-        headerBuilder.setType(com.xiaopeng.api.vo.automaticPilot.protobuf.MessageType.MESSAGE_TYPE_REQUEST);
-        headerBuilder.setSource(com.xiaopeng.api.vo.automaticPilot.protobuf.SourceType.CLOUD);
+        headerBuilder.setType(MessageType.MESSAGE_TYPE_REQUEST);
+        headerBuilder.setSource(SourceType.CLOUD);
         msgContentBuilder.setHeader(headerBuilder.build());
 
         msgContentBuilder.setOrderOperation(operation);
@@ -116,16 +115,16 @@
      * @param responseMessage
      * @return
      */
-    public MqttPublishDto responseMessage(com.xiaopeng.api.vo.automaticPilot.protobuf.ResponseMessage responseMessage, String vin) {
-        com.xiaopeng.api.vo.automaticPilot.protobuf.MsgContent.Builder msgContentBuilder = com.xiaopeng.api.vo.automaticPilot.protobuf.MsgContent.newBuilder();
-        com.xiaopeng.api.vo.automaticPilot.protobuf.MsgHeader.Builder headerBuilder = com.xiaopeng.api.vo.automaticPilot.protobuf.MsgHeader.newBuilder();
+    public MqttPublishDto responseMessage(ResponseMessage responseMessage, String vin) {
+        MsgContent.Builder msgContentBuilder = MsgContent.newBuilder();
+        MsgHeader.Builder headerBuilder = MsgHeader.newBuilder();
         headerBuilder.setMsgId(UUID.randomUUID().toString());
         headerBuilder.setTimestamp(System.currentTimeMillis());
         headerBuilder.setCmd(RTCmdType.CLOUD_TASK_CONTROL.getValue());
         Snowflake snowflake = IdUtil.getSnowflake(0, 0);
         headerBuilder.setSequence(snowflake.nextId());
-        headerBuilder.setType(com.xiaopeng.api.vo.automaticPilot.protobuf.MessageType.MESSAGE_TYPE_RESPONSE);
-        headerBuilder.setSource(com.xiaopeng.api.vo.automaticPilot.protobuf.SourceType.CLOUD);
+        headerBuilder.setType(MessageType.MESSAGE_TYPE_RESPONSE);
+        headerBuilder.setSource(SourceType.CLOUD);
         msgContentBuilder.setHeader(headerBuilder.build());
         msgContentBuilder.setResponse(responseMessage);
         MqttPublishVo vo = new MqttPublishVo();
@@ -147,15 +146,15 @@
      * @return
      */
     //TODO 处理feign调用的异常
-    public MqttPublishDto cloudPushNavigation(com.xiaopeng.api.vo.automaticPilot.protobuf.RestoreNavigationData navigationData, String xpuId, Long sequence) {
-        com.xiaopeng.api.vo.automaticPilot.protobuf.MsgContent.Builder msgContentBuilder = com.xiaopeng.api.vo.automaticPilot.protobuf.MsgContent.newBuilder();
-        com.xiaopeng.api.vo.automaticPilot.protobuf.MsgHeader.Builder headerBuilder = com.xiaopeng.api.vo.automaticPilot.protobuf.MsgHeader.newBuilder();
+    public MqttPublishDto cloudPushNavigation(RestoreNavigationData navigationData, String xpuId, Long sequence) {
+        MsgContent.Builder msgContentBuilder = MsgContent.newBuilder();
+        MsgHeader.Builder headerBuilder = MsgHeader.newBuilder();
         headerBuilder.setMsgId(UUID.randomUUID().toString());
         headerBuilder.setTimestamp(System.currentTimeMillis());
         headerBuilder.setCmd(RTCmdType.CLOUD_NAVIGATION_RESPONSE.getValue());
         headerBuilder.setSequence(sequence);
-        headerBuilder.setType(com.xiaopeng.api.vo.automaticPilot.protobuf.MessageType.MESSAGE_TYPE_RESPONSE);
-        headerBuilder.setSource(com.xiaopeng.api.vo.automaticPilot.protobuf.SourceType.CLOUD);
+        headerBuilder.setType(MessageType.MESSAGE_TYPE_RESPONSE);
+        headerBuilder.setSource(SourceType.CLOUD);
         msgContentBuilder.setHeader(headerBuilder.build());
 
         msgContentBuilder.setRestoreNavigationData(navigationData);

--
Gitblit v1.7.1