From 71d2d3557012509c69442dfdc5398685423d4f86 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期六, 18 四月 2026 15:50:23 +0800
Subject: [PATCH] [fix] 取消订单情况的连环派单 [feat] 周围车辆点位查询

---
 xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/ActiveOrderServiceImpl.java |   31 +++++++++++++++++++++++++------
 1 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/ActiveOrderServiceImpl.java b/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/ActiveOrderServiceImpl.java
index 1d44bac..cce5b7b 100644
--- a/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/ActiveOrderServiceImpl.java
+++ b/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/ActiveOrderServiceImpl.java
@@ -2,18 +2,23 @@
 
 
 import com.alibaba.fastjson2.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.xiaopeng.api.dto.operation.ReassignOrderDTO;
 import com.xiaopeng.api.dto.order.OrderChangeDto;
 import com.xiaopeng.api.feignClient.map.XpMapClient;
+import com.xiaopeng.api.feignClient.operation.ReassignOrderClient;
 import com.xiaopeng.api.feignClient.operation.XpPointClient;
 import com.xiaopeng.api.feignClient.operation.XpSystemSettingClient;
 import com.xiaopeng.api.feignClient.order.XpOrderClient;
-import com.xiaopeng.api.model.operation.*;
+import com.xiaopeng.api.model.operation.XpElectronicFence;
+import com.xiaopeng.api.model.operation.XpElectronicFenceArea;
+import com.xiaopeng.api.model.operation.XpPoint;
+import com.xiaopeng.api.model.operation.XpSystemSetting;
 import com.xiaopeng.api.model.order.XpOrder;
 import com.xiaopeng.api.vo.operation.RouteOptionVo;
 import com.xiaopeng.api.vo.operation.RouteVo;
 import com.xiaopeng.common.core.constant.CacheConstants;
 import com.xiaopeng.common.core.domain.R;
+import com.xiaopeng.common.core.enums.OrderStatusEnum;
 import com.xiaopeng.common.core.exception.ServiceException;
 import com.xiaopeng.common.redis.service.RedisService;
 import com.xiaopeng.itinerary.constant.I18nKeyConstant;
@@ -32,7 +37,7 @@
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
-import java.util.*;
+import java.util.StringJoiner;
 import java.util.concurrent.TimeUnit;
 
 
@@ -183,10 +188,24 @@
         xpOrder.setQueueName(key);
         xpOrderClient.updateOrder(xpOrder);
 
-        // todo 判断当前订单的车辆是否有连环派单,然后判断是都还满足连环派单的条件,不满足则需要重新派单
-
+        // 判断当前订单的车辆是否有连环派单,然后判断是都还满足连环派单的条件,不满足则需要重新派单
+        Long nextOrderId = redisService.getCacheObject(CacheConstants.nextOrder(order.getId().toString()));
+        if(null != nextOrderId){
+            XpOrder nextOrder = xpOrderClient.queryOrderById(nextOrderId).getData();
+            if(null != nextOrder && nextOrder.getStatus() == OrderStatusEnum.PICK_UP.getCode()){
+                redisService.setCacheObject(CacheConstants.nextOrder(order.getId().toString()),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);
+            }
+        }
     }
-
+    @Resource
+    private ReassignOrderClient reassignOrderClient;
     /**
      * 获取距离和时间
      * @param uid

--
Gitblit v1.7.1