From b92a2bf0fdb56b51066c2d484f8880d1b05941de Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期六, 18 四月 2026 17:33:04 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/1.0' into 1.0

---
 xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/service/KafkaConsumerService.java |   38 +++++++++++++++++++++++++-------------
 1 files changed, 25 insertions(+), 13 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 b2aab45..66730cb 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
@@ -6,9 +6,7 @@
 import com.google.protobuf.InvalidProtocolBufferException;
 import com.google.protobuf.util.JsonFormat;
 import com.xiaopeng.api.dto.automaticPilot.MqttPublishDto;
-import com.xiaopeng.api.dto.automaticPilot.PushOrderDto;
 import com.xiaopeng.api.dto.automaticPilot.VehicleEventDTO;
-import com.xiaopeng.api.dto.map.HistoryPointDto;
 import com.xiaopeng.api.dto.map.OrderRouteAndFareDto;
 import com.xiaopeng.api.dto.operation.CruisePointDto;
 import com.xiaopeng.api.dto.operation.LonLatDto;
@@ -50,7 +48,6 @@
 import com.xiaopeng.common.redis.service.RedisService;
 import lombok.extern.slf4j.Slf4j;
 import org.redisson.api.RLock;
-import org.redisson.api.RTopic;
 import org.redisson.api.RedissonClient;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.geo.Point;
@@ -63,9 +60,10 @@
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.math.BigDecimal;
 import java.util.*;
-import java.util.concurrent.*;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
 
 
 /**
@@ -556,12 +554,12 @@
                     reassignOrderDTO.setUid(xpOrder.getAppUserId().toString());
                     reassignOrderDTO.setOrderNo(xpOrder.getOrderNumber());
                     reassignOrderDTO.setCount(10);
-                    RealtimePose pose = systemRuntimeStatus.getPose();
-                    Wgs naviPose = pose.getNaviPose();
-                    Double latitude = naviPose.getLatitude();
-                    Double longitude = naviPose.getLongitude();
-                    reassignOrderDTO.setLongitude(longitude);
-                    reassignOrderDTO.setLatitude(latitude);
+//                    RealtimePose pose = systemRuntimeStatus.getPose();
+//                    Wgs naviPose = pose.getNaviPose();
+//                    Double latitude = naviPose.getLatitude();
+//                    Double longitude = naviPose.getLongitude();
+                    reassignOrderDTO.setLongitude(xpOrder.getStartLon());
+                    reassignOrderDTO.setLatitude(xpOrder.getStartLat());
                     reassignOrderClient.reassignOrder(reassignOrderDTO);
                 }
             }
@@ -1343,8 +1341,22 @@
                                 buildPushOrderStatus(cmd, orderId, OrderStatusEnum.SEE_OFF_GUESTS, sequence);
                                 xpOrderClient.updateOrderStatus(Long.parseLong(orderId), OrderStatusEnum.SEE_OFF_GUESTS.getCode(), true);
                                 redisService.setCacheObject("ORDER_STATUS:" + orderId, OrderStatusEnum.SEE_OFF_GUESTS.getCode(), 24L, TimeUnit.HOURS);
-                                // todo 判断当前订单的车辆是否有连环派单,然后判断是都还满足连环派单的条件,不满足则需要重新派单
-
+                                // 判断当前订单的车辆是否有连环派单,然后判断是都还满足连环派单的条件,不满足则需要重新派单
+                                Long nextOrderId = redisService.getCacheObject(CacheConstants.nextOrder(orderId));
+                                if(null != nextOrderId){
+                                    XpOrder nextOrder = xpOrderClient.queryOrderById(nextOrderId).getData();
+                                    if(null != nextOrder && nextOrder.getStatus() == OrderStatusEnum.PICK_UP.getCode()){
+                                        redisService.setCacheObject(CacheConstants.nextOrder(orderId),null);
+                                        ReassignOrderDTO reassignOrderDTO = new ReassignOrderDTO();
+                                        reassignOrderDTO.setUid(xpOrder.getAppUserId().toString());
+                                        reassignOrderDTO.setOrderNo(xpOrder.getOrderNumber());
+                                        reassignOrderDTO.setCount(10);
+                                        reassignOrderDTO.setLongitude(xpOrder.getStartLon());
+                                        reassignOrderDTO.setLatitude(xpOrder.getStartLon());
+                                        reassignOrderClient.reassignOrder(reassignOrderDTO);
+                                    }
+                                }
+                                redisService.getCacheObject("ORDER_CONNECT_ORDER:" + orderId);
 
                             }else{
                                 buildPushOrderStatus(cmd, orderId, OrderStatusEnum.CANCELED, sequence);

--
Gitblit v1.7.1