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