From 100f2d185dd0dabcfb2e7a0cd81aef840324238d Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 20 三月 2026 17:56:57 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi

---
 xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java |   34 ++++++++++++++++++++++++++++++++--
 1 files changed, 32 insertions(+), 2 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 782f226..621e44f 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
@@ -31,9 +31,11 @@
 import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
 import com.xiaopeng.api.vo.automaticPilot.protobuf.*;
 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.util.XPUUtil;
 import com.xiaopeng.common.core.constant.CacheConstants;
+import com.xiaopeng.common.core.constant.Constants;
 import com.xiaopeng.common.core.domain.R;
 import com.xiaopeng.common.core.enums.OrderStatusEnum;
 import com.xiaopeng.common.core.enums.PushMessageTypeEnum;
@@ -53,6 +55,8 @@
 
 import javax.annotation.Resource;
 import java.util.*;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 
 
@@ -363,6 +367,16 @@
 //            dto.setDistance(rtTripInfo.getRemaining_distance().intValue());
 //            dto.setDirection();
                 xpPushMessageClient.pushOrderRoute(dto);
+
+                //存储历史轨迹
+                OrderTrajectoryVo orderTrajectory = new OrderTrajectoryVo();
+                orderTrajectory.setOrderId(orderId);
+                orderTrajectory.setLocation(longitude + "," + latitude);
+                orderTrajectory.setDirection(dto.getDirection());
+                orderTrajectory.setSpeed(0D);
+                orderTrajectory.setLocatetime(System.currentTimeMillis());
+                orderTrajectory.setCreateTime(new Date());
+                xpOrderClient.saveVehicleLocation(orderTrajectory);
             }
         }
     }
@@ -960,8 +974,24 @@
             dto.setAppUserId(appUserId + "");
             dto.setMessage(message);
             R<String> stringR = xpPushMessageClient.sendStatus(dto);
-            if (R.isError(stringR)) {
-                log.error("推送消息失败:{}", stringR.getMsg());
+
+            //推送失败,重试3次
+            if(stringR.getCode() != Constants.SUCCESS){
+                ThreadPoolExecutor executor = new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>());
+                executor.execute(() -> {
+                    for (int i = 0; i < 3; i++) {
+                        R<String> stringR1 = xpPushMessageClient.sendStatus(dto);
+                        if(stringR1.getCode() == Constants.SUCCESS){
+                            break;
+                        }
+                        try {
+                            Thread.sleep(1000);
+                        } catch (InterruptedException e) {
+                            throw new RuntimeException(e);
+                        }
+                        log.info("推送订单状态消息失败:{} {} {}", stringR1.getMsg(), JSON.toJSONString(dto), xpOrder.getOrderNumber());
+                    }
+                });
             }
 
         }

--
Gitblit v1.7.1