From 406ae5451ecde0b4b40a9ecfee07f2171fda80bc Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 15 四月 2026 15:04:07 +0800
Subject: [PATCH] Merge branch '1.0' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi into 1.0
---
xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java | 55 ++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 40 insertions(+), 15 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 5f7f1c3..e5685b7 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
@@ -498,7 +498,13 @@
log.info("车辆故障,车辆状态修改0 {}", vehicle.getPlateNumber());
}
}else {
- //正常订单
+ //正常订单 车辆故障
+ /*
+ 1.将订单信息车辆的 查询出来 设置故障状态
+ 2.解除用户和车的关系
+ 3.如果是 接驾中的车需要重新派车
+ 4.如果是行驶中的车需要将订单结束 计算金额
+ */
XpOrder xpOrder = xpOrderClient.queryOrderById(Long.parseLong(orderId)).getData();
vehicle = xpVehicleClient.queryById(xpOrder.getVehicleId()).getData();
if (vehicle != null) {
@@ -517,18 +523,33 @@
cancelTaxiPassengerVo.setAppId(appid);
userVehicleClient.cancelTaxiPassenger(cancelTaxiPassengerVo);
}
- // TODO 重新派单
- ReassignOrderDTO reassignOrderDTO = new ReassignOrderDTO();
- reassignOrderDTO.setUid(xpOrder.getAppUserId().toString());
- reassignOrderDTO.setOrderNo(xpOrder.getOrderNumber());
- reassignOrderDTO.setCount(10);
- RealtimePose pose = systemRuntimeStatus.getPose();
- Wgs naviPose = pose.getNaviPose();
- Double latitude = naviPose.getLatitude();
- Double longitude = naviPose.getLongitude();
- reassignOrderDTO.setLongitude(longitude);
- reassignOrderDTO.setLatitude(latitude);
- reassignOrderClient.reassignOrder(reassignOrderDTO);
+ //status 状态 0=已取消,1=待接单,2=待出发,3=接驾中,4=待客上车,5=乘客已上车,6=服务中,7=待客下车,8=待付款,9=待评价,10=已完成
+ List<Integer> notDrive = new ArrayList<Integer>(){{ //未行驶的情况下订单故障状态点
+ add(OrderStatusEnum.READY_DEPART.getCode());add(OrderStatusEnum.PICK_UP.getCode());
+ add(OrderStatusEnum.PICK_UP_GUESTS.getCode());add(OrderStatusEnum.PASSENGER_BOARDED.getCode());
+ }};
+
+ if(xpOrder.getStatus().equals(OrderStatusEnum.IN_SERVICE.getCode())
+ || xpOrder.getStatus().equals(OrderStatusEnum.SEE_OFF_GUESTS.getCode()) ){ //6=服务中 7=待客下车 在行驶中 修改订单-已完成 需要处理订单金额
+ //单独写个修改订单的方法。
+// ff
+ xpOrderClient.carAbnormalUpdateOrderStatus(Long.parseLong(orderId));
+
+ }else if(notDrive.contains(xpOrder.getStatus())){//在接驾中 车辆出现故障 重新派单
+
+ // TODO 重新派单
+ ReassignOrderDTO reassignOrderDTO = new ReassignOrderDTO();
+ reassignOrderDTO.setUid(xpOrder.getAppUserId().toString());
+ reassignOrderDTO.setOrderNo(xpOrder.getOrderNumber());
+ reassignOrderDTO.setCount(10);
+ RealtimePose pose = systemRuntimeStatus.getPose();
+ Wgs naviPose = pose.getNaviPose();
+ Double latitude = naviPose.getLatitude();
+ Double longitude = naviPose.getLongitude();
+ reassignOrderDTO.setLongitude(longitude);
+ reassignOrderDTO.setLatitude(latitude);
+ reassignOrderClient.reassignOrder(reassignOrderDTO);
+ }
}
//添加车辆异常任务和发送消息
xpTaskClient.saveVehicleAccidentError(vehicle.getId());
@@ -1284,8 +1305,12 @@
if(xpOrder.getStatus() == 0 || xpOrder.getStatus() >= 8){
return;
}
- if(xpOrder.getStatus() > 5 && xpOrder.getStatus() < 8){
- //行程中取消订单,按照行程结束处理
+
+ List<Integer> xczqx = new ArrayList<Integer>(){{
+ add(OrderStatusEnum.IN_SERVICE.getCode());//服务中
+ add(OrderStatusEnum.SEE_OFF_GUESTS.getCode());//SEE_OFF_GUESTS
+ }};
+ if(xczqx.contains(xpOrder.getStatus())){//行程中取消订单,按照行程结束处理
buildPushOrderStatus(cmd, orderId, OrderStatusEnum.SEE_OFF_GUESTS, sequence);
xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.SEE_OFF_GUESTS.getCode());
redisService.setCacheObject("ORDER_STATUS:" + orderId, OrderStatusEnum.SEE_OFF_GUESTS.getCode(), 24L, TimeUnit.HOURS);
--
Gitblit v1.7.1