From 9adef3dd7723930d44f72713c3cf28e50b002055 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期三, 01 四月 2026 15:45:19 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi

---
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java |   28 ++++++++++++++++++++++++++--
 1 files changed, 26 insertions(+), 2 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 e645156..d2d3593 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
@@ -59,6 +59,7 @@
 import com.xiaopeng.common.core.constant.Constants;
 import com.xiaopeng.common.core.constant.HttpStatus;
 import com.xiaopeng.common.core.domain.R;
+import com.xiaopeng.common.core.enums.CancelOrderSceneEnum;
 import com.xiaopeng.common.core.enums.OrderStatusEnum;
 import com.xiaopeng.common.core.enums.PushMessageTypeEnum;
 import com.xiaopeng.common.core.exception.ServiceException;
@@ -962,11 +963,14 @@
 
                     // 6.1.1 取消原订单指令
                     PushOrderDto cancelDto = new PushOrderDto();
+                    cancelDto.setTaskId(IdUtil.getSnowflakeNextIdStr());
                     cancelDto.setOrderId(order.getId().toString());
                     cancelDto.setVin(oldVehicle.getVehicleVin());
                     cancelDto.setOperation_type(OrderOperationType.CLOUD_CANCEL_ORDER);
+                    cancelDto.setCancelScene(CancelOrderSceneEnum.REASSIGN_OLD_VEHICLE.getCode());
                     orderMissionClient.cancelOrder(cancelDto);
-                    log.info("已取消原车辆订单指令,订单ID: {}, VIN: {}", orderId, oldVehicle.getVehicleVin());
+                    log.info("已取消原车辆订单指令,订单ID: {}, VIN: {}, taskId: {}, cancelScene: {}",
+                            orderId, oldVehicle.getVehicleVin(), cancelDto.getTaskId(), cancelDto.getCancelScene());
 
                     // 6.1.2 解绑乘客与原车辆关系
                     if (Objects.nonNull(order.getAppUserId())) {
@@ -1673,6 +1677,7 @@
                         new ImmutableMap.Builder<String, String>()
                                 .put("id", xpOrder.getId().toString())
                                 .put("appid", appid)
+                                .put("orderType", OrderType.USER_ORDER)
                                 .build();
                 QuartzManager.addJob(
                         EndTripJob.class,
@@ -1688,6 +1693,7 @@
                         new ImmutableMap.Builder<String, String>()
                                 .put("id", xpOrder.getId().toString())
                                 .put("appid", appid)
+                                .put("orderType", OrderType.USER_ORDER)
                                 .build();
                 QuartzManager.addJob(
                         AddCruiseMissionJob.class,
@@ -3025,7 +3031,25 @@
 
                 xpTestOrder.setStartTestPointId(null);
                 xpTestOrderService.updateById(xpTestOrder);
-                redisService.setCacheObject("ORDER_STATUS:" + xpTestOrder.getId(), 2, 24L, TimeUnit.HOURS);
+                redisService.setCacheObject("TEST_ORDER_STATUS:" + xpTestOrder.getId(), 2, 24L, TimeUnit.HOURS);
+            }
+        }
+        if (OrderType.TEST_CRUISE_ORDER.equals(orderType)) {
+            XpTestOrder xpTestOrder = xpTestOrderService.getById(orderId);
+            //订单为待接单状态
+            if (xpTestOrder.getStatus() < 4) {
+                xpTestOrder.setAcceptanceTime(LocalDateTime.now());
+                R<XpVehicle> byVehicleVin = xpVehicleClient.findByVehicleVin(dto.getXpVehicleVin());
+                XpVehicle vehicle = null;
+                if (byVehicleVin.getCode() == 200) {
+                    vehicle = byVehicleVin.getData();
+                    xpTestOrder.setVehicleId(vehicle.getId());
+                    xpTestOrder.setFleetId(vehicle.getFleetId());
+                }
+                xpTestOrder.setStatus(6);
+                xpTestOrder.setStartTestPointId(null);
+                xpTestOrderService.updateById(xpTestOrder);
+                redisService.setCacheObject("TEST_ORDER_STATUS:" + xpTestOrder.getId(), 6, 24L, TimeUnit.HOURS);
             }
         }
     }

--
Gitblit v1.7.1