From ac0fec61b2147126dd12e672175e26b17a2a6897 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 06 三月 2026 17:07:08 +0800
Subject: [PATCH] 修改bug
---
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpCruiseOrderServiceImpl.java | 15 ++++++++++++++-
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java | 19 ++++++++++++++++---
xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java | 14 +++++++++++---
3 files changed, 41 insertions(+), 7 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 b111ff7..3780fb2 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
@@ -143,9 +143,17 @@
SnowFlake snowFlake = new SnowFlake(0, 0);
snowFlake.withStartTimestamp(1420041600000L);
long sequence = snowFlake.nextId();
- xpuUtil.cloudOrderOperation(operationBuilder.build(), dto.getVin(), sequence);
- redisService.setCacheObject(String.valueOf(sequence), "cancelOrder_" + dto.getOrderId() + "_" + dto.getVin(), 30l, TimeUnit.MINUTES);
- return R.ok(true);
+ MqttPublishDto mqttPublishDto = xpuUtil.cloudOrderOperation(operationBuilder.build(), dto.getVin(), sequence);
+
+ if (mqttPublishDto.getCode() == 200) {
+ if(!dto.getOrderId().contains("XU")){
+ // 正常订单处理
+ redisService.setCacheObject(String.valueOf(sequence), "cancelOrder_" + dto.getOrderId() + "_" + dto.getVin(), 30l, TimeUnit.MINUTES);
+ }
+ return R.ok(true);
+ }
+
+ return R.ok(false);
}
diff --git a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java
index bf7424f..ce7dc72 100644
--- a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java
+++ b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java
@@ -784,7 +784,11 @@
continue;
}
// 关闭巡游单子
- xpCruiseOrderClient.updateCruiseOrder(vehiclePosition.getVehicleVin());
+ R<String> stringR = xpCruiseOrderClient.updateCruiseOrder(vehiclePosition.getVehicleVin());
+ if(stringR ==null || stringR.getData()==null){
+ log.info("关闭巡游单子失败");
+ continue;
+ }
// 下发命令
PushOrderDto pushOrderDto = new PushOrderDto();
@@ -830,7 +834,12 @@
continue;
}
// 关闭巡游单子
- xpCruiseOrderClient.updateCruiseOrder(vehicleId1.getVehicleVin());
+ R<String> stringR = xpCruiseOrderClient.updateCruiseOrder(vehicleId1.getVehicleVin());
+ if(stringR ==null || stringR.getData()==null){
+ log.info("关闭巡游单子失败");
+ continue;
+ }
+
PushOrderDto pushOrderDto = new PushOrderDto();
pushOrderDto.setVin(vehiclePosition.getVin());
@@ -910,7 +919,11 @@
continue;
}
// 关闭巡游单子
- xpCruiseOrderClient.updateCruiseOrder(vehicleId1.getVehicleVin());
+ R<String> stringR = xpCruiseOrderClient.updateCruiseOrder(vehicleId1.getVehicleVin());
+ if(stringR ==null || stringR.getData()==null){
+ log.info("关闭巡游单子失败");
+ continue;
+ }
PushOrderDto pushOrderDto = new PushOrderDto();
pushOrderDto.setVin(vehiclePosition.getVin());
diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpCruiseOrderServiceImpl.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpCruiseOrderServiceImpl.java
index ab89fcf..bd63f6b 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpCruiseOrderServiceImpl.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpCruiseOrderServiceImpl.java
@@ -118,7 +118,7 @@
private final XpVehicleClient xpVehicleClient;
private final XpFleetVehicleClient xpFleetVehicleClient;
private final XpFleetClient xpFleetClient;
-
+ private final OrderMissionClient orderMissionClient;
/**
* 关闭当前巡游单子
* @param vin
@@ -131,6 +131,19 @@
xpCruiseOrder.setStatus(2);
this.update(xpCruiseOrder, wrapper);
// todo 给XPU下发订单取消报文,如果取消不成功需要重试。两次不成功,则需要换车
+ PushOrderDto pushOrderDto = new PushOrderDto();
+ pushOrderDto.setVin(vin);
+ pushOrderDto.setOrderId(xpCruiseOrder.getId());
+ pushOrderDto.setOperation_type(OrderOperationType.VEHICLE_CANCEL_ORDER);
+ R<Boolean> booleanR = orderMissionClient.cancelOrder(pushOrderDto);
+ if(booleanR==null || !booleanR.getData()){
+ log.error("下发失败重试一次");
+ R<Boolean> booleanR1 = orderMissionClient.cancelOrder(pushOrderDto);
+ if(booleanR1==null || !booleanR1.getData()){
+ log.error("换车");
+ return null;
+ }
+ }
return xpCruiseOrder.getId();
}
--
Gitblit v1.7.1