From 274422a2d5cbb8f4518c29cc1748a805f8d9a00b Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 30 四月 2026 08:54:15 +0800
Subject: [PATCH] 修改bug和补充功能

---
 xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 insertions(+), 0 deletions(-)

diff --git a/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java b/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java
index 252f36f..ab2644f 100644
--- a/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java
+++ b/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java
@@ -3,6 +3,7 @@
 import cn.hutool.core.lang.Snowflake;
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
+import com.google.common.collect.ImmutableMap;
 import com.google.protobuf.InvalidProtocolBufferException;
 import com.google.protobuf.util.JsonFormat;
 import com.xiaopeng.api.dto.automaticPilot.MqttPublishDto;
@@ -20,12 +21,14 @@
 import com.xiaopeng.api.feignClient.map.XpMapClient;
 import com.xiaopeng.api.feignClient.operation.ReassignOrderClient;
 import com.xiaopeng.api.feignClient.operation.XpCruisePlanClient;
+import com.xiaopeng.api.feignClient.operation.XpSystemSettingClient;
 import com.xiaopeng.api.feignClient.order.XpCruiseOrderClient;
 import com.xiaopeng.api.feignClient.order.XpOrderClient;
 import com.xiaopeng.api.feignClient.order.XpTestOrderClient;
 import com.xiaopeng.api.feignClient.pushMessage.XpPushMessageClient;
 import com.xiaopeng.api.feignClient.vehicleConvoy.UserVehicleClient;
 import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient;
+import com.xiaopeng.api.model.operation.XpSystemSetting;
 import com.xiaopeng.api.model.order.XpCruiseOrder;
 import com.xiaopeng.api.model.order.XpOrder;
 import com.xiaopeng.api.model.order.XpTestOrder;
@@ -36,6 +39,9 @@
 import com.xiaopeng.api.vo.operation.RouteVo;
 import com.xiaopeng.api.vo.order.OrderTrajectoryVo;
 import com.xiaopeng.api.vo.vehicleConvoy.CancelTaxiPassengerVo;
+import com.xiaopeng.automaticPilot.job.base.QuartzManager;
+import com.xiaopeng.automaticPilot.job.base.TimeJobType;
+import com.xiaopeng.automaticPilot.job.jobs.OrderExceptionJob;
 import com.xiaopeng.automaticPilot.util.XPUUtil;
 import com.xiaopeng.common.core.constant.CacheConstants;
 import com.xiaopeng.common.core.constant.Constants;
@@ -43,6 +49,7 @@
 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.utils.DateUtils;
 import com.xiaopeng.common.core.utils.StringUtils;
 import com.xiaopeng.common.core.utils.uuid.UUID;
 import com.xiaopeng.common.redis.service.RedisService;
@@ -60,6 +67,7 @@
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.time.LocalDateTime;
 import java.util.*;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.ThreadPoolExecutor;
@@ -134,6 +142,9 @@
 
     @Resource
     private RedissonClient redissonClient;
+
+    @Resource
+    private XpSystemSettingClient systemSettingClient;
 
     private static final JsonFormat.Printer jsonPrinter = JsonFormat.printer()
             .printingEnumsAsInts()
@@ -1672,5 +1683,23 @@
         OrderPhase orderPhase = naviRequest.getOrderPhase();
         log.info("订单ID:{}", orderId);
         log.info("任务ID:{}", taskId);
+
+        //获取系统异常订单超时配置,创建定时任务取消订单
+        if(!orderId.contains("XU")){
+            XpSystemSetting xpSystemSetting = systemSettingClient.getSystemSettingOne().getData();
+            Map<String, ? extends Object> jobMaps =
+                    new ImmutableMap.Builder<String, String>()
+                            .put("id", orderId)
+                            .put("orderType", orderId.contains("TEST") ? OrderType.TEST_ORDER : OrderType.USER_ORDER)
+                            .build();
+            QuartzManager.addJob(
+                    OrderExceptionJob.class,
+                    (OrderExceptionJob.name + orderId).toUpperCase(),
+                    TimeJobType.ERROR_ORDER_CANCEL,
+                    DateUtils.localDateTimeToDate(LocalDateTime.now().plusMinutes(xpSystemSetting.getOrderExceptionalTimeout())),
+                    jobMaps
+            );
+        }
+
     }
 }

--
Gitblit v1.7.1