From 7a78cb97f96eea330dff3b222eff8d6dafc5e28a Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期四, 12 二月 2026 23:26:27 +0800
Subject: [PATCH] fix(task-order): 修复推单逻辑中的空指针异常问题

---
 xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/mango/VehiclePositionService.java |   43 +++++++++++++++++++++----------------------
 1 files changed, 21 insertions(+), 22 deletions(-)

diff --git a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/mango/VehiclePositionService.java b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/mango/VehiclePositionService.java
index 2f5f86a..652694e 100644
--- a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/mango/VehiclePositionService.java
+++ b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/mango/VehiclePositionService.java
@@ -14,10 +14,10 @@
 
 @Service
 public class VehiclePositionService {
-    
+
     @Resource
     private MongoTemplate mongoTemplate;
-    
+
     /**
      * 查询附近指定距离内且状态正常的车辆
      * @param longitude 经度
@@ -28,27 +28,26 @@
     public List<VehiclePosition> findAvailableVehiclesNearby(double longitude,
                                                              double latitude,
                                                              double distanceInMeters,int num) {
-        // 创建查询点
-        Point referencePoint = new Point(longitude, latitude);
-        
-        // 设置最大距离(MongoDB使用公里或米,这里转换为公里)
-        distanceInMeters = distanceInMeters / 1000;
+        try {
+            // 创建查询点
+            Point referencePoint = new Point(longitude, latitude);
 
-        // 构建查询条件
-        Query query = new Query();
-        query.addCriteria(Criteria.where("point")
-                .near(referencePoint)
-                .maxDistance(distanceInMeters));
-        query.addCriteria(Criteria.where("status").is(1)); // 运营中
-        query.addCriteria(Criteria.where("state").is(0));  // 空闲中
-        
-        // 可以添加排序,按距离排序
-         query.with(Sort.by(Sort.Direction.ASC, "point"));
-        
-//        // 可以限制返回数量
-//         query.limit(num);
-        
-        return mongoTemplate.find(query, VehiclePosition.class);
+            // 构建查询条件
+            Query query = new Query();
+
+            // 地理位置查询
+            query.addCriteria(Criteria.where("point")
+                    .near(referencePoint)
+                    .maxDistance(distanceInMeters));
+
+            query.with(Sort.by(Sort.Direction.ASC, "point"));
+
+            return mongoTemplate.find(query, VehiclePosition.class);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+
+        return null;
     }
 
 

--
Gitblit v1.7.1