From 47b3380b661bfde1d451cf1f2df34353e4ab6e1f Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期日, 26 四月 2026 10:15:57 +0800
Subject: [PATCH] 完善部分遗漏功能

---
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java |   24 ++++++++++++++++++++++++
 1 files changed, 24 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 e54939f..b2d7b4f 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
@@ -190,6 +190,9 @@
     @Resource
     private BluetoothUnlockClient bluetoothUnlockClient;
 
+    @Resource
+    private XpTradingStrategyClient tradingStrategyClient;
+
     @Value("${robotaxi.appId:xp_robotaxi_api}")
     private String appid;
 
@@ -2000,8 +2003,29 @@
                 sendRoute(appUserId.toString(), orderId, "ORDER_NAVIGATION_END_DATA", xpVehicle.getVehicleVin());
                 // 删除定时任务job
                 QuartzManager.removeJob((OrderCancelJob.name + xpOrder.getId()).toUpperCase(), TimeJobType.ORDER_CANCEL);
+                //乘客已上车,重新倒计时不开始行程取消订单
+                XpPoint xpPoint1 = xpPointClient.queryById(xpOrder.getStartPointId()).getData();
+                XpTradingStrategy tradingStrategy = tradingStrategyClient.getTradingStrategyByCityCode(xpPoint1.getCityCode()).getData();
+                if(null != tradingStrategy){
+                    Map<String, ? extends Object> cancelJobMaps1 =
+                            new ImmutableMap.Builder<String, Long>().
+                                    put("id", xpOrder.getId())
+                                    .build();
+                    QuartzManager.addJob(
+                            OrderCancelJob.class,
+                            (OrderCancelJob.name + xpOrder.getId()).toUpperCase(),
+                            TimeJobType.ORDER_CANCEL,
+                            DateUtils.localDateTimeToDate(LocalDateTime.now().plusMinutes(tradingStrategy.getBdNotBoardedTime())),
+                            cancelJobMaps1
+                    );
+                }
+
+                // 车辆到达上车点时间
+                xpOrder.setArrivalTime(LocalDateTime.now());
                 break;
             case 6:
+                // 删除定时任务job
+                QuartzManager.removeJob((OrderCancelJob.name + xpOrder.getId()).toUpperCase(), TimeJobType.ORDER_CANCEL);
                 // 行程开始时间
                 xpOrder.setTripBegin(LocalDateTime.now());
                 //添加预估到达时间

--
Gitblit v1.7.1