From e4282457d992fd59acdaf0de9f150105a7015b9c Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 21 四月 2026 14:38:46 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi into 1.0

---
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java |   23 +++++++++++++++++++++++
 1 files changed, 23 insertions(+), 0 deletions(-)

diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
index 7d0b959..154beb7 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -135,6 +135,9 @@
 @RequiredArgsConstructor(onConstructor_ = @Lazy)
 public class XpOrderServiceImpl extends ServiceImpl<XpOrderMapper, XpOrder> implements IXpOrderService {
 
+    private static final String REASSIGN_CANCEL_CONTEXT_PREFIX = "REASSIGN_CANCEL_CONTEXT:";
+    private static final long REASSIGN_CANCEL_CONTEXT_TTL_MINUTES = 5L;
+
     private final UserResourcesClient userResourcesClient;
     private final XpPointClient xpPointClient;
     private final XpVehicleClient xpVehicleClient;
@@ -611,6 +614,8 @@
         vo.setEndAddress(order.getEndAddress());
         vo.setOrderMoney(order.getOrderMoney());
         vo.setStatus(order.getStatus());
+        vo.setStartPointName(order.getStartPointName());
+        vo.setEndPointName(order.getEndPointName());
 
         // 用户信息
         if (Objects.nonNull(order.getAppUserId()) && userInfoMap != null && userInfoMap.containsKey(order.getAppUserId().toString())) {
@@ -1005,6 +1010,8 @@
                     cancelDto.setOperation_type(OrderOperationType.CLOUD_CANCEL_ORDER);
                     cancelDto.setCancelScene(CancelOrderSceneEnum.REASSIGN_OLD_VEHICLE.getCode());
                     orderMissionClient.cancelOrder(cancelDto);
+                    cacheReassignCancelContext(orderId, oldVehicleId, newVehicleId,
+                            oldVehicle.getVehicleVin(), currentStatus);
                     log.info("已取消原车辆订单指令,订单ID: {}, VIN: {}, taskId: {}, cancelScene: {}",
                             orderId, oldVehicle.getVehicleVin(), cancelDto.getTaskId(), cancelDto.getCancelScene());
 
@@ -1151,6 +1158,22 @@
 
     }
 
+    private void cacheReassignCancelContext(Long orderId, Long oldVehicleId, Long newVehicleId,
+                                            String oldVehicleVin, Integer preReassignStatus) {
+        JSONObject context = new JSONObject();
+        context.put("orderId", orderId);
+        context.put("oldVehicleId", oldVehicleId);
+        context.put("newVehicleId", newVehicleId);
+        context.put("oldVehicleVin", oldVehicleVin);
+        context.put("cancelScene", CancelOrderSceneEnum.REASSIGN_OLD_VEHICLE.getCode());
+        context.put("operationTime", System.currentTimeMillis());
+        context.put("preReassignStatus", preReassignStatus);
+        redisService.setCacheObject(REASSIGN_CANCEL_CONTEXT_PREFIX + orderId, context.toJSONString(),
+                REASSIGN_CANCEL_CONTEXT_TTL_MINUTES, TimeUnit.MINUTES);
+        log.info("记录改派取消上下文成功,orderId: {}, oldVehicleId: {}, newVehicleId: {}, preReassignStatus: {}",
+                orderId, oldVehicleId, newVehicleId, preReassignStatus);
+    }
+
     /**
      * 为原车辆创建返程巡游订单
      * <p>

--
Gitblit v1.7.1