From 8500b3177e47e88f18d6fb20611f6113f6ecec74 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 18 四月 2026 10:08:46 +0800
Subject: [PATCH] 增加异常订单结束后的对接客服工单

---
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java |   20 ++++++++++++++------
 1 files changed, 14 insertions(+), 6 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 4945338..835c4f9 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
@@ -72,10 +72,7 @@
 import com.xiaopeng.order.dto.MileageDto;
 import com.xiaopeng.order.job.base.QuartzManager;
 import com.xiaopeng.order.job.base.TimeJobType;
-import com.xiaopeng.order.job.jobs.AddCruiseMissionJob;
-import com.xiaopeng.order.job.jobs.EndTripJob;
-import com.xiaopeng.order.job.jobs.OrderCancelJob;
-import com.xiaopeng.order.job.jobs.PushChainReactionOrderJob;
+import com.xiaopeng.order.job.jobs.*;
 import com.xiaopeng.order.mangodb.model.OrderTrajectory;
 import com.xiaopeng.order.mangodb.service.OrderTrajectoryService;
 import com.xiaopeng.order.mapper.XpCruiseOrderMapper;
@@ -1788,7 +1785,7 @@
     }
 
     @Override
-    public R<String> updateOrderStatus(Long orderId, Integer status) {
+    public R<String> updateOrderStatus(Long orderId, Integer status, Boolean orderException) {
         XpOrder xpOrder = this.getById(orderId);
         if (Objects.isNull(xpOrder)) {
             return R.fail("订单不存在");
@@ -1897,7 +1894,6 @@
                     });
                 }
 
-                //创建定时结束订单和等待结束后下发巡游单的定时任务
                 Integer arriveTime = xpSystemSettingClient.getOrderFinishTime().getData();
                 // 添加自动结束行程定时任务job
                 Map<String, ? extends Object> endTripJobMaps =
@@ -1925,6 +1921,18 @@
                                 .put("orderType", OrderType.USER_ORDER)
                                 .build();
 
+                //如果是异常订单,需要定时创建客服工单
+                if(orderException){
+                    XpSystemSetting xpSystemSetting = xpSystemSettingClient.getSystemSettingOne().getData();
+                    QuartzManager.addJob(
+                            OrderExceptionJob.class,
+                            (OrderExceptionJob.name + xpOrder.getId()).toUpperCase(),
+                            TimeJobType.ADD_CRUISE_MISSION,
+                            DateUtils.localDateTimeToDate(LocalDateTime.now().plusMinutes(xpSystemSetting.getOrderExceptionalTimeout())),
+                            jobMaps
+                    );
+                }
+
                 //判断是否有连环单
                 Long id = redisService.getCacheObject(CacheConstants.nextOrder(xpOrder.getId().toString()));
                 if(id != null){

--
Gitblit v1.7.1