puzhibing
2026-04-18 ac30fe67a235e0e269cf12f6fcc9f8583d4baa1f
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java
@@ -65,6 +65,7 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.geo.Point;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.geo.GeoJsonPoint;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
@@ -1383,7 +1384,7 @@
            throw new ServiceException("未配置车辆事故任务分配规则");
        }
        List<Long> excludedUserIds = Optional.ofNullable(task.getExcluded()).orElse(new ArrayList<>());
        excludedUserIds.add(Long.valueOf(task.getHandleUserId()));
        excludedUserIds.addAll(Arrays.asList(task.getHandleUserId().split(",")).stream().map(Long::parseLong).collect(Collectors.toList()));
        task.setExcluded(excludedUserIds);
        Long fleetId = xpFleetVehicleClient.getFleetIdByVehicleId(vehicle.getId()).getData();
        List<Long> roleIds = taskRuleRole.stream().map(XpTaskRuleRole::getRoleId).collect(Collectors.toList());
@@ -1393,7 +1394,9 @@
                .filter(ids::contains)
                .filter(id -> !excludedUserIds.contains(id))
                .map(String::valueOf).collect(Collectors.joining(","));
        VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(vehicle.getVehicleVin())), VehiclePosition.class);
//        VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(vehicle.getVehicleVin())), VehiclePosition.class);
        VehiclePosition vehiclePosition = new VehiclePosition();
        vehiclePosition.setPoint(new GeoJsonPoint(103.12615621, 30.264561));
        String handlerUser = chooseNearestAvailableOperationsUser(belongUserIds, vehiclePosition);
        task.setHandleUserId(handlerUser);
        if(handlerUser == null) {
@@ -1401,12 +1404,9 @@
            noticeAdministrator(task);
        }
        updateById(task);
        // 存储事故处理日志
        XpTaskHandleDetail xpTaskHandleDetail = new XpTaskHandleDetail();
        xpTaskHandleDetail.setTaskId(task.getId());
        xpTaskHandleDetail.setResponsibleDescription(msg);
        xpTaskHandleDetailMapper.insert(xpTaskHandleDetail);
        sendAccidentNotificationAsync(task, vehicle.getPlateNumber(), taskRule.getProcessingTimeLimit());
        if(StringUtils.isNotBlank(task.getHandleUserId())){
            sendAccidentNotificationAsync(task, vehicle.getPlateNumber(), taskRule.getProcessingTimeLimit());
        }
    }