From ad0f3c5321e4f1ba6388c8ada1462b978c25674d Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 12 五月 2026 21:10:36 +0800
Subject: [PATCH] 修改bug
---
xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java | 193 ++++++++++++++++++++++++------------------------
1 files changed, 96 insertions(+), 97 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 13418e9..403e0a1 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
@@ -572,10 +572,6 @@
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(xpOrder.getStartLon());
reassignOrderDTO.setLatitude(xpOrder.getStartLat());
reassignOrderClient.reassignOrder(reassignOrderDTO);
@@ -1192,7 +1188,7 @@
testOrderClient.updateOrderStatus(Long.parseLong(orderId.substring(4)), OrderStatusEnum.READY_DEPART.getCode());
}else{
buildPushOrderStatus(cmd, orderId, OrderStatusEnum.READY_DEPART, sequence);
- xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.READY_DEPART.getCode(), false);
+ xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.READY_DEPART.getCode());
}
}
break;
@@ -1207,7 +1203,7 @@
testOrderClient.updateOrderStatus(Long.parseLong(orderId.substring(4)), OrderStatusEnum.PICK_UP.getCode());
}else{
buildPushOrderStatus(cmd, orderId, OrderStatusEnum.PICK_UP, sequence);
- xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.PICK_UP.getCode(), false);
+ xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.PICK_UP.getCode());
}
}
break;
@@ -1222,7 +1218,7 @@
testOrderClient.updateOrderStatus(Long.parseLong(orderId.substring(4)), OrderStatusEnum.PICK_UP_GUESTS.getCode());
}else{
buildPushOrderStatus(cmd, orderId, OrderStatusEnum.PICK_UP_GUESTS, sequence);
- xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.PICK_UP_GUESTS.getCode(), false);
+ xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.PICK_UP_GUESTS.getCode());
}
}
break;
@@ -1233,7 +1229,7 @@
testOrderClient.updateOrderStatus(Long.parseLong(orderId.substring(4)), OrderStatusEnum.PASSENGER_BOARDED.getCode());
}else{
buildPushOrderStatus(cmd, orderId, OrderStatusEnum.PASSENGER_BOARDED, sequence);
- xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.PASSENGER_BOARDED.getCode(), false);
+ xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.PASSENGER_BOARDED.getCode());
}
}
break;
@@ -1244,7 +1240,7 @@
testOrderClient.updateOrderStatus(Long.parseLong(orderId.substring(4)), OrderStatusEnum.IN_SERVICE.getCode());
}else{
buildPushOrderStatus(cmd, orderId, OrderStatusEnum.IN_SERVICE, sequence);
- xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.IN_SERVICE.getCode(), false);
+ xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.IN_SERVICE.getCode());
}
}
break;
@@ -1259,7 +1255,7 @@
testOrderClient.updateOrderStatus(Long.parseLong(orderId.substring(4)), OrderStatusEnum.SEE_OFF_GUESTS.getCode());
}else{
buildPushOrderStatus(cmd, orderId, OrderStatusEnum.SEE_OFF_GUESTS, sequence);
- xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.SEE_OFF_GUESTS.getCode(), false);
+ xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.SEE_OFF_GUESTS.getCode());
}
}
break;
@@ -1322,74 +1318,75 @@
}
return;
}
- if(orderId.contains("TEST")){
- //判断订单状态,已经取消的不作处理
- Object cacheObject = redisService.getCacheObject("TEST_ORDER_STATUS:" + orderId.substring(4));
- if(null != cacheObject){
- int order_status = Integer.parseInt(cacheObject.toString());
- if(0 == order_status){
- return;
- }
- }
- XpTestOrder testOrder = testOrderClient.queryOrderById(Long.valueOf(orderId.substring(4))).getData();
- if(testOrder.getStatus() == 0 || testOrder.getStatus() >= 8){
- return;
- }
- //行程中取消订单,按照行程结束处理
- if(testOrder.getStatus() > 5 && testOrder.getStatus() < 8){
- testOrderClient.updateOrderStatus(Long.parseLong(orderId.substring(4)), OrderStatusEnum.SEE_OFF_GUESTS.getCode());
- redisService.setCacheObject("TEST_ORDER_STATUS:" + orderId.substring(4), OrderStatusEnum.SEE_OFF_GUESTS.getCode(), 24L, TimeUnit.HOURS);
- }else{
- testOrderClient.updateOrderStatus(Long.parseLong(orderId.substring(4)), OrderStatusEnum.CANCELED.getCode());
- redisService.setCacheObject("TEST_ORDER_STATUS:" + orderId.substring(4), OrderStatusEnum.CANCELED.getCode(), 24L, TimeUnit.HOURS);
- }
- }else{
- //判断订单状态,已经取消的不作处理
- Object cacheObject = redisService.getCacheObject("ORDER_STATUS:" + orderId);
- if(null != cacheObject){
- int order_status = Integer.parseInt(cacheObject.toString());
- if(0 == order_status){
- return;
- }
- }
- XpOrder xpOrder = xpOrderClient.queryOrderById(Long.parseLong(orderId)).getData();
- if(xpOrder.getStatus() == 0 || xpOrder.getStatus() >= 8){
- return;
- }
-
- 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(), true);
- redisService.setCacheObject("ORDER_STATUS:" + orderId, OrderStatusEnum.SEE_OFF_GUESTS.getCode(), 24L, TimeUnit.HOURS);
- // 判断当前订单的车辆是否有连环派单,然后判断是都还满足连环派单的条件,不满足则需要重新派单
- String json = redisService.getCacheObject(CacheConstants.nextOrder(orderId));
- if (StringUtils.isNotEmpty(json)){
- JSONObject jsonObject = JSON.parseObject(json);
- Long nextOrderId = jsonObject.getLong("orderId");
- XpOrder nextOrder = xpOrderClient.queryOrderById(nextOrderId).getData();
- if(null != nextOrder && nextOrder.getStatus() == OrderStatusEnum.PICK_UP.getCode()){
- redisService.setCacheObject(CacheConstants.nextOrder(orderId),null);
- ReassignOrderDTO reassignOrderDTO = new ReassignOrderDTO();
- reassignOrderDTO.setUid(xpOrder.getAppUserId().toString());
- reassignOrderDTO.setOrderNo(xpOrder.getOrderNumber());
- reassignOrderDTO.setCount(10);
- reassignOrderDTO.setLongitude(xpOrder.getStartLon());
- reassignOrderDTO.setLatitude(xpOrder.getStartLon());
- reassignOrderClient.reassignOrder(reassignOrderDTO);
- }
- }
- redisService.getCacheObject("ORDER_CONNECT_ORDER:" + orderId);
-
- }else{
- buildPushOrderStatus(cmd, orderId, OrderStatusEnum.CANCELED, sequence);
- xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.CANCELED.getCode(), true);
- redisService.setCacheObject("ORDER_STATUS:" + orderId, OrderStatusEnum.CANCELED.getCode(), 24L, TimeUnit.HOURS);
- }
- }
+ // 这部分不做处理,已经移到靠边停车报文处理中了
+// if(orderId.contains("TEST")){
+// //判断订单状态,已经取消的不作处理
+// Object cacheObject = redisService.getCacheObject("TEST_ORDER_STATUS:" + orderId.substring(4));
+// if(null != cacheObject){
+// int order_status = Integer.parseInt(cacheObject.toString());
+// if(0 == order_status){
+// return;
+// }
+// }
+// XpTestOrder testOrder = testOrderClient.queryOrderById(Long.valueOf(orderId.substring(4))).getData();
+// if(testOrder.getStatus() == 0 || testOrder.getStatus() >= 8){
+// return;
+// }
+// //行程中取消订单,按照行程结束处理
+// if(testOrder.getStatus() > 5 && testOrder.getStatus() < 8){
+// testOrderClient.updateOrderStatus(Long.parseLong(orderId.substring(4)), OrderStatusEnum.SEE_OFF_GUESTS.getCode());
+// redisService.setCacheObject("TEST_ORDER_STATUS:" + orderId.substring(4), OrderStatusEnum.SEE_OFF_GUESTS.getCode(), 24L, TimeUnit.HOURS);
+// }else{
+// testOrderClient.updateOrderStatus(Long.parseLong(orderId.substring(4)), OrderStatusEnum.CANCELED.getCode());
+// redisService.setCacheObject("TEST_ORDER_STATUS:" + orderId.substring(4), OrderStatusEnum.CANCELED.getCode(), 24L, TimeUnit.HOURS);
+// }
+// }else{
+// //判断订单状态,已经取消的不作处理
+// Object cacheObject = redisService.getCacheObject("ORDER_STATUS:" + orderId);
+// if(null != cacheObject){
+// int order_status = Integer.parseInt(cacheObject.toString());
+// if(0 == order_status){
+// return;
+// }
+// }
+// XpOrder xpOrder = xpOrderClient.queryOrderById(Long.parseLong(orderId)).getData();
+// if(xpOrder.getStatus() == 0 || xpOrder.getStatus() >= 8){
+// return;
+// }
+//
+// 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);
+// // 判断当前订单的车辆是否有连环派单,然后判断是都还满足连环派单的条件,不满足则需要重新派单
+// String json = redisService.getCacheObject(CacheConstants.nextOrder(orderId));
+// if (StringUtils.isNotEmpty(json)){
+// JSONObject jsonObject = JSON.parseObject(json);
+// Long nextOrderId = jsonObject.getLong("orderId");
+// XpOrder nextOrder = xpOrderClient.queryOrderById(nextOrderId).getData();
+// if(null != nextOrder && nextOrder.getStatus() == OrderStatusEnum.PICK_UP.getCode()){
+// redisService.setCacheObject(CacheConstants.nextOrder(orderId),null);
+// ReassignOrderDTO reassignOrderDTO = new ReassignOrderDTO();
+// reassignOrderDTO.setUid(xpOrder.getAppUserId().toString());
+// reassignOrderDTO.setOrderNo(xpOrder.getOrderNumber());
+// reassignOrderDTO.setCount(10);
+// reassignOrderDTO.setLongitude(xpOrder.getStartLon());
+// reassignOrderDTO.setLatitude(xpOrder.getStartLon());
+// reassignOrderClient.reassignOrder(reassignOrderDTO);
+// }
+// }
+// redisService.getCacheObject("ORDER_CONNECT_ORDER:" + orderId);
+//
+// }else{
+// buildPushOrderStatus(cmd, orderId, OrderStatusEnum.CANCELED, sequence);
+// xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.CANCELED.getCode());
+// redisService.setCacheObject("ORDER_STATUS:" + orderId, OrderStatusEnum.CANCELED.getCode(), 24L, TimeUnit.HOURS);
+// }
+// }
}
break;
case ORDER_ARRIVED_AT_CRUISE_DESTINATION:
@@ -1688,31 +1685,33 @@
//靠边停车处理逻辑
public void pulloverStatusEvent(MsgContent msgContent){
- // todo 等对接完成数据结构后再实现相关功能
//开始处理消息对应的业务逻辑
- NavigationRequest naviRequest = msgContent.getNavigationRequest();
- String requestId = naviRequest.getRequestId();
- String orderId = naviRequest.getOrderId();
- String taskId = naviRequest.getTaskId();
- OrderPhase orderPhase = naviRequest.getOrderPhase();
+ PullOverInfo pulloverInfo = msgContent.getPulloverInfo();
+ String orderId = pulloverInfo.getOrderId();
+ String taskId = pulloverInfo.getTaskId();
+ PullOverStatus pullOverStatus = pulloverInfo.getPullOverStatus();
log.info("订单ID:{}", orderId);
log.info("任务ID:{}", taskId);
//获取系统异常订单超时配置,创建定时任务取消订单
if(!orderId.contains("XU")){
- XpSystemSetting xpSystemSetting = systemSettingClient.getSystemSettingOne().getData();
- Map<String, ? extends Object> jobMaps =
- new ImmutableMap.Builder<String, String>()
- .put("id", orderId)
- .put("orderType", orderId.contains("TEST") ? OrderType.TEST_ORDER : OrderType.USER_ORDER)
- .build();
- QuartzManager.addJob(
- OrderExceptionJob.class,
- (OrderExceptionJob.name + orderId).toUpperCase(),
- TimeJobType.ERROR_ORDER_CANCEL,
- DateUtils.localDateTimeToDate(LocalDateTime.now().plusMinutes(xpSystemSetting.getOrderExceptionalTimeout())),
- jobMaps
- );
+ //靠边停车完成后,创建定时任务处理后续业务逻辑
+ if(pullOverStatus.getNumber() == PullOverStatus.PULL_OVER_COMPLETED.getNumber()){
+ XpSystemSetting xpSystemSetting = systemSettingClient.getSystemSettingOne().getData();
+ Map<String, ? extends Object> jobMaps =
+ new ImmutableMap.Builder<String, String>()
+ .put("id", orderId)
+ .put("orderType", orderId.contains("TEST") ? OrderType.TEST_ORDER : OrderType.USER_ORDER)
+ .build();
+ QuartzManager.addJob(
+ OrderExceptionJob.class,
+ (OrderExceptionJob.name + orderId).toUpperCase(),
+ TimeJobType.ERROR_ORDER_CANCEL,
+ DateUtils.localDateTimeToDate(LocalDateTime.now().plusMinutes(xpSystemSetting.getOrderExceptionalTimeout())),
+ jobMaps
+ );
+ }
+
}
}
--
Gitblit v1.7.1