From 3c88eb9bd41ea647663995fc0f3e62778f8434a0 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 24 四月 2026 17:37:18 +0800
Subject: [PATCH] [fix] 可改派人员设置距离,排序
---
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java
index d4084d7..46a2b14 100644
--- a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java
@@ -1409,10 +1409,10 @@
Long fleetId = xpFleetVehicleClient.getFleetIdByVehicleId(vehicle.getId()).getData();
List<Long> roleIds = taskRuleRole.stream().map(XpTaskRuleRole::getRoleId).collect(Collectors.toList());
- List<Long> ids = xpFleetOperationsClient.getOperationsIdsByFleetId(fleetId).getData();//TODO 空指针
+ List<Long> ids = xpFleetOperationsClient.getOperationsIdsByFleetId(fleetId).getData();
String belongUserIds = xpOperationUserClient.getXpOperationsRoleByRoleIds(roleIds).getData().stream()
.map(XpOperationsRole::getOperationsUserId)
- .filter(ids::contains)
+ .filter(e -> ids == null || ids.isEmpty() || ids.contains(e))
.filter(id -> !excludedUserIds.contains(id.toString()))
.map(String::valueOf).collect(Collectors.joining(","));
@@ -1569,7 +1569,10 @@
// 让mongo根据[id in ids]返回距离排序的users
// List<XpOperationsUserPositionDTO> users = mongoTemplate.find(new Query(Criteria.where("_id").in(ids)), XpOperationsUserPositionDTO.class);
- List<XpOperationsUserPositionDTO> XpOperationsUserPositionDTOs = repository.findWithDistance(new Point(vehiclePosition.getPoint().getX(), vehiclePosition.getPoint().getY()), 1000, ids);
+ List<XpOperationsUserPositionDTO> XpOperationsUserPositionDTOs = mongoTemplate.find(
+ new Query(Criteria.where("_id").in(ids).and("location").nearSphere(new GeoJsonPoint(vehiclePosition.getPoint().getX(), vehiclePosition.getPoint().getY())).maxDistance(1000 / 6378137.0)),
+ XpOperationsUserPositionDTO.class
+ );
boolean skipBusy = false;//TODO 获取系统配置,是否开启跳过忙碌
--
Gitblit v1.7.1