From dd4941e649206288444397839ca36c85ebd44748 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 21 四月 2026 15:17:32 +0800
Subject: [PATCH] 合并代码

---
 xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 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 f45d6ba..f7979bc 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
@@ -1573,6 +1573,23 @@
         return cancelContext;
     }
 
+
+    /**
+     * 当前 cancelOrder 指令是按 taskId 记录取消上下文。
+     * 改派旧车取消回调优先读取该上下文,避免依赖订单当前车/状态造成竞态误判。
+     */
+    private JSONObject getCancelOrderContext(String taskId) {
+        if (StringUtils.isEmpty(taskId)) {
+            return null;
+        }
+        Object cacheObject = redisService.getCacheObject(CANCEL_ORDER_CONTEXT_PREFIX + taskId);
+        if (cacheObject == null) {
+            return null;
+        }
+        return JSON.parseObject(cacheObject.toString());
+    }
+
+
     private String resolveReassignCancelResponseVin(String orderId, JSONObject cancelContext) {
         if (cancelContext == null) {
             return null;

--
Gitblit v1.7.1