From f572d49e6f1c20394bbb26d123cd565d70012633 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 14 三月 2026 22:57:00 +0800
Subject: [PATCH] 优化并发判断地图导航点位是否有效
---
xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java | 70 +++++++++++++++++-----------------
1 files changed, 35 insertions(+), 35 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 b647791..aa2c412 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
@@ -793,8 +793,10 @@
break;
case ORDER_RECEIVED:
//收到订单
- buildPushOrderStatus(orderId, OrderStatusEnum.READY_DEPART, sequence);
- xpOrderClient.updateOrderStatus(Long.parseLong(orderId.contains("XU") ? orderId.substring(2) : orderId), OrderStatusEnum.READY_DEPART.getCode());
+ if(!orderId.contains("XU")){
+ buildPushOrderStatus(orderId, OrderStatusEnum.READY_DEPART, sequence);
+ xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.READY_DEPART.getCode());
+ }
break;
case ORDER_STARTED:
//开始执行订单
@@ -802,8 +804,10 @@
break;
case ORDER_EN_ROUTE_TO_PICKUP:
//前往上车点
- buildPushOrderStatus(orderId, OrderStatusEnum.PICK_UP, sequence);
- xpOrderClient.updateOrderStatus(Long.parseLong(orderId.contains("XU") ? orderId.substring(2) : orderId), OrderStatusEnum.PICK_UP.getCode());
+ if(!orderId.contains("XU")){
+ buildPushOrderStatus(orderId, OrderStatusEnum.PICK_UP, sequence);
+ xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.PICK_UP.getCode());
+ }
break;
case ORDER_ARRIVED_AT_PICKUP:
//到达上车点
@@ -811,49 +815,41 @@
break;
case ORDER_WAITING_FOR_PICKUP:
//等待乘客上车
- buildPushOrderStatus(orderId, OrderStatusEnum.PICK_UP_GUESTS, sequence);
- xpOrderClient.updateOrderStatus(Long.parseLong(orderId.contains("XU") ? orderId.substring(2) : orderId), OrderStatusEnum.PICK_UP_GUESTS.getCode());
+ if(!orderId.contains("XU")){
+ buildPushOrderStatus(orderId, OrderStatusEnum.PICK_UP_GUESTS, sequence);
+ xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.PICK_UP_GUESTS.getCode());
+ }
break;
case ORDER_PASSENGER_ONBOARD:
//乘客已上车
- buildPushOrderStatus(orderId, OrderStatusEnum.PASSENGER_BOARDED, sequence);
- xpOrderClient.updateOrderStatus(Long.parseLong(orderId.contains("XU") ? orderId.substring(2) : orderId), OrderStatusEnum.PASSENGER_BOARDED.getCode());
+ if(!orderId.contains("XU")){
+ buildPushOrderStatus(orderId, OrderStatusEnum.PASSENGER_BOARDED, sequence);
+ xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.PASSENGER_BOARDED.getCode());
+ }
break;
case ORDER_EN_ROUTE_TO_DESTINATION:
//前往目的地
- buildPushOrderStatus(orderId, OrderStatusEnum.IN_SERVICE, sequence);
- xpOrderClient.updateOrderStatus(Long.parseLong(orderId.contains("XU") ? orderId.substring(2) : orderId), OrderStatusEnum.IN_SERVICE.getCode());
+ if(!orderId.contains("XU")){
+ buildPushOrderStatus(orderId, OrderStatusEnum.IN_SERVICE, sequence);
+ xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.IN_SERVICE.getCode());
+ }
break;
case ORDER_ARRIVED_AT_DESTINATION:
//到达目的地
log.info("到达目的地,不做任何处理:{}", orderId);
break;
case ORDER_WAITING_FOR_DROPOFF:
- //等待乘客下车
- buildPushOrderStatus(orderId, OrderStatusEnum.SEE_OFF_GUESTS, sequence);
- xpOrderClient.updateOrderStatus(Long.parseLong(orderId.contains("XU") ? orderId.substring(2) : orderId), OrderStatusEnum.SEE_OFF_GUESTS.getCode());
+ //等待乘客下车,开始倒计时发下巡游单
+ if(!orderId.contains("XU")){
+ buildPushOrderStatus(orderId, OrderStatusEnum.SEE_OFF_GUESTS, sequence);
+ xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.SEE_OFF_GUESTS.getCode());
+ }
break;
case ORDER_DROPOFF_COMPLETED:
//下车完成
- buildPushOrderStatus(orderId, OrderStatusEnum.APPROVAL_REJECTION, sequence);
- xpOrderClient.updateOrderStatus(Long.parseLong(orderId.contains("XU") ? orderId.substring(2) : orderId), OrderStatusEnum.APPROVAL_REJECTION.getCode());
- // 下发巡游任务
- R<XpOrder> xpOrderR = xpOrderClient.queryOrderById(Long.parseLong(orderId));
- if(xpOrderR.getCode()==200){
- XpOrder orderData = xpOrderR.getData();
- Long vehicleId =orderData.getVehicleId();
- R<XpVehicle> xpVehicleR = xpVehicleClient.queryById(vehicleId);
- if(xpVehicleR.getData()!=null){
- XpVehicle xpVehicle = xpVehicleR.getData();
- //订单结束,在添加导航数据之前先将车辆状态修改为空闲
- xpVehicleClient.updateVehicleStatus(new UpdateVehicleStateDto(xpVehicle.getVehicleVin(), 0));
- xpVehicle = xpVehicleClient.queryById(vehicleId).getData();
-
- AddCruiseMissionDto addCruiseMissionDto = new AddCruiseMissionDto();
- addCruiseMissionDto.setOrder(orderData);
- addCruiseMissionDto.setVehicle(xpVehicle);
- xpCruiseOrderClient.addCruiseMission(addCruiseMissionDto);
- }
+ if(!orderId.contains("XU")){
+ buildPushOrderStatus(orderId, OrderStatusEnum.APPROVAL_REJECTION, sequence);
+ xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.APPROVAL_REJECTION.getCode());
}
break;
case ORDER_COMPLETED:
@@ -862,12 +858,16 @@
break;
case ORDER_CANCELLED:
//已取消
- buildPushOrderStatus(orderId, OrderStatusEnum.CANCELED, sequence);
- xpOrderClient.updateOrderStatus(Long.parseLong(orderId.contains("XU") ? orderId.substring(2) : orderId), OrderStatusEnum.CANCELED.getCode());
+ if(!orderId.contains("XU")){
+ buildPushOrderStatus(orderId, OrderStatusEnum.CANCELED, sequence);
+ xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.CANCELED.getCode());
+ }
break;
case ORDER_ARRIVED_AT_CRUISE_DESTINATION:
//到达巡游终点
- buildPushOrderStatus(orderId, OrderStatusEnum.COMPLETED, sequence);
+ if(orderId.contains("XU")){
+ buildPushOrderStatus(orderId, OrderStatusEnum.COMPLETED, sequence);
+ }
break;
case ORDER_PAUSED:
//订单暂停
--
Gitblit v1.7.1