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/controller/XpTaskController.java |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpTaskController.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpTaskController.java
index 54ca44f..a198707 100644
--- a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpTaskController.java
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpTaskController.java
@@ -56,9 +56,7 @@
 import javax.annotation.Resource;
 import javax.validation.Valid;
 import java.io.UnsupportedEncodingException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -331,16 +329,21 @@
 
         List<XpOperationsUserPositionDTO> up = mongoTemplate.find(q, XpOperationsUserPositionDTO.class);
 
+        Map<Long, Double> disMap = up.stream().collect(Collectors.toMap(XpOperationsUserPositionDTO::getId, XpOperationsUserPositionDTO::getDistance));
         // 查询车队下面面所有人员id和up求交集
         List<Long> data = xpFleetClient.idsByFleetName(query.getFleet()).getData();
 
         List<Long> ids = up.stream().map(XpOperationsUserPositionDTO::getId)
-                .filter(e -> data!=null && !data.isEmpty() &&!data.contains(e))
+                .filter(e -> data == null || data.isEmpty() || data.contains(e))
                 .collect(Collectors.toList());
 
         query.setIds(ids);
         PageInfo<XpOperationsUserWithRoleVO> ret = operationUserClient.listByQueryIds(query).getData();
 
+        // 设置距离,然后排序
+        ret.getRecords().forEach(e -> e.setDis(String.valueOf(disMap.get(e.getId()))));
+        List<XpOperationsUserWithRoleVO> sorted = ret.getRecords().stream().sorted(Comparator.comparing(XpOperationsUserWithRoleVO::getDis)).collect(Collectors.toList());
+        ret.setRecords(sorted);
         return R.ok(ret);
     }
 

--
Gitblit v1.7.1