From da8952ac6187e77a2f30a28e22d6265ebfbf6e78 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期四, 12 二月 2026 16:12:06 +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 |   33 ++++++++++++++++++++++++++++++---
 1 files changed, 30 insertions(+), 3 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 38852b7..beba603 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
@@ -18,6 +18,7 @@
 import com.xiaopeng.api.dto.vehicleConvoy.BaseVehicleUserDto;
 import com.xiaopeng.api.feignClient.account.XpAppUserClient;
 import com.xiaopeng.api.feignClient.account.XpAppUserCouponClient;
+import com.xiaopeng.api.feignClient.operation.XpSystemSettingClient;
 import com.xiaopeng.api.feignClient.vehicleConvoy.UserVehicleClient;
 import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetClient;
 import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetVehicleClient;
@@ -47,6 +48,7 @@
 import com.xiaopeng.common.redis.service.RedisService;
 import com.xiaopeng.common.security.utils.SecurityUtils;
 import com.xiaopeng.order.constant.I18nKeyConstant;
+import com.xiaopeng.order.job.jobs.EndTripJob;
 import com.xiaopeng.order.mapper.XpOrderMapper;
 import com.xiaopeng.order.model.dto.XpOrderCommentDto;
 import com.xiaopeng.order.model.dto.XpOrderPayDto;
@@ -104,6 +106,7 @@
     private final IXpOrderReassignService xpOrderReassignService;
     private final RedisService redisService;
     private final XpPricingClient xpPricingClient;
+    private final XpSystemSettingClient xpSystemSettingClient;
 
     @Override
     public OrderStatisticsDTO getOrderStatistics(StatisticsQueryDTO query) {
@@ -782,8 +785,8 @@
         xpOrder.setStatus(status);
         switch (status) {
             case 4:
-                // 添加定时任务job
-                Map<String, ? extends Object> maps =
+                // 添加取消订单定时任务job
+                Map<String, ? extends Object> cancelJobMaps =
                         new ImmutableMap.Builder<String, Long>().
                                 put("id", xpOrder.getId())
                                 .build();
@@ -792,12 +795,28 @@
                         (OrderCancelJob.name + xpOrder.getId()).toUpperCase(),
                         TimeJobType.ORDER_CANCEL,
                         DateUtils.localDateTimeToDate(LocalDateTime.now().plusMinutes(5)),
-                        maps
+                        cancelJobMaps
                 );
                 break;
             case 5:
                 // 删除定时任务job
                 QuartzManager.removeJob((OrderCancelJob.name + xpOrder.getId()).toUpperCase(), TimeJobType.ORDER_CANCEL);
+                break;
+            case 7:
+                // 查询自动结束行程时间
+                Integer arriveTime = xpSystemSettingClient.getOrderFinishTime().getData();
+                // 添加自动结束行程定时任务job
+                Map<String, ? extends Object> endTripJobMaps =
+                        new ImmutableMap.Builder<String, Long>().
+                                put("id", xpOrder.getId())
+                                .build();
+                QuartzManager.addJob(
+                        EndTripJob.class,
+                        (EndTripJob.name + xpOrder.getId()).toUpperCase(),
+                        TimeJobType.END_TRIP,
+                        DateUtils.localDateTimeToDate(LocalDateTime.now().plusMinutes(arriveTime)),
+                        endTripJobMaps
+                );
                 break;
         }
         baseMapper.updateById(xpOrder);
@@ -925,6 +944,14 @@
         return true;
     }
 
+
+    @Override
+    public XpVehicle queryVehicleByOrderId(Long orderId, String uid) {
+        XpOrder xpOrder = this.getById(orderId);
+        XpVehicle xpVehicle = xpVehicleClient.queryById(xpOrder.getVehicleId()).getData();
+        return xpVehicle;
+    }
+
     /**
      * 获取订单数量
      * @param dto

--
Gitblit v1.7.1