From d35bdeda248e2632558e7591900a848bd8162dd5 Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期四, 12 三月 2026 19:29:55 +0800
Subject: [PATCH] bugfix

---
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java |    8 +++++++-
 1 files changed, 7 insertions(+), 1 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 0f80441..738d3e1 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
@@ -209,6 +209,7 @@
         xpTask.setTaskUrgencyLevel(dto.getTaskUrgencyLevel());
         xpTask.setTaskDescription(dto.getTaskDescription());
         xpTask.setTaskImage(dto.getTaskImage());
+        xpTask.setVehicleId(dto.getId());
         XpVehicle vehicle = xpVehicleClient.queryById(xpTask.getVehicleId()).getData();
 //        if (vehicle!=null){
 //            VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(vehicle.getVehicleVin())), VehiclePosition.class);
@@ -236,7 +237,12 @@
         List<Long> roleIds = list.stream().map(XpTaskRuleRole::getRoleId).collect(Collectors.toList());
         R<List<XpOperationsRole>> xpOperationsRoleResult = xpOperationUserClient.getXpOperationsRoleByRoleIds(roleIds);
         if (CollUtil.isNotEmpty(xpOperationsRoleResult.getData())) {
-            List<Long> userIds = xpOperationsRoleResult.getData().stream().map(XpOperationsRole::getOperationsUserId).distinct().collect(Collectors.toList());
+            Long fleetId = xpFleetVehicleClient.getFleetIdByVehicleId(vehicle.getId()).getData();
+            List<Long> ids = xpFleetOperationsClient.getOperationsIdsByFleetId(fleetId).getData();
+            // 根据配置的事故处理角色和事故车辆所属车队人员,确定最终的任务分配人列表(取交集)
+            List<Long> userIds = xpOperationsRoleResult.getData().stream().filter(x -> ids.contains(x.getOperationsUserId()))
+                    .map(XpOperationsRole::getOperationsUserId)
+                    .distinct().collect(Collectors.toList());
             xpTask.setHandleUserId(StringUtils.join(userIds, ","));
         }
         // 根据事故处理限时配置设置任务截止时间

--
Gitblit v1.7.1