liujie
2026-04-24 1f40487e7d4adbfd5d1928decff818d42e92ec19
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpCruiseCheckInRecordServiceImpl.java
@@ -40,27 +40,32 @@
    public PageInfo<XpCruiseCheckInRecordVO> pageList(XpCruiseCheckInRecordQuery query) {
        PageInfo<XpCruiseCheckInRecordVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
        List<XpCruiseCheckInRecordVO> list = xpCruiseCheckInRecordMapper.selectCruiseCheckInRecordList(pageInfo, query);
        List<Long> ids = list.stream().map(XpCruiseCheckInRecordVO::getOperationsUserId).collect(Collectors.toList());
        List<XpOperationsUser> xpOperationsUsers = xpOperationsUserClient.listByIds(ids).getData();
        Map<Long, XpOperationsUser> userMap = xpOperationsUsers.stream().collect(Collectors.toMap(XpOperationsUser::getId, Function.identity()));
        list = list.stream().map(record -> {
                    XpOperationsUser user = userMap.get(record.getOperationsUserId());
                    if (user == null) return null;
                    record.setOperationsUserId(user.getId());
                    record.setOperationsUserName(user.getNickName());
                    record.setPhoneNumber(user.getPhoneNumber());
                    if (StringUtils.isNotBlank(query.getOperationsUserName()) && !record.getOperationsUserName().contains(query.getOperationsUserName())) {
                        return null;
                    }
                    if (StringUtils.isNotBlank(query.getPhoneNumber()) && !record.getPhoneNumber().contains(query.getPhoneNumber())) {
                        return null;
                    }
                    return record;
                })
                .filter(Objects::nonNull)
                .collect(Collectors.toList());
        for (XpCruiseCheckInRecordVO xpCruiseCheckInRecordVO : list) {
            XpOperationsUser user = userMap.get(xpCruiseCheckInRecordVO.getOperationsUserId());
            if (user == null) continue;
            xpCruiseCheckInRecordVO.setOperationsUserId(user.getId());
            xpCruiseCheckInRecordVO.setOperationsUserName(user.getNickName());
            xpCruiseCheckInRecordVO.setPhoneNumber(user.getPhoneNumber());
        }
        list.removeIf(vo -> {
            if (StringUtils.isNotBlank(query.getOperationsUserName()) && !vo.getOperationsUserName().contains(query.getOperationsUserName())) {
                return true;
            }
            return StringUtils.isNotBlank(query.getPhoneNumber()) && !vo.getPhoneNumber().contains(query.getPhoneNumber());
        });
        pageInfo.setRecords(list);
        return pageInfo;
@@ -83,7 +88,9 @@
            vo.setOperationsUserId(user.getId());
            vo.setOperationsUserName(user.getNickName());
            vo.setPhoneNumber(user.getPhoneNumber());
            vo.setFleetName(profile.getFleet().getFleetName());
            if (profile.getFleet() != null) {
                vo.setFleetName(profile.getFleet().getFleetName());
            }
            vo.setRole(profile.getRoles().stream().map(XpOperationsUserProfileVO.RoleInfoVO::getRoleName).collect(Collectors.joining(",")));
        }
        return vo;
@@ -95,11 +102,11 @@
        if (CollectionUtils.isEmpty(vos) || vos.size() < 7) {
            String date = vos.get(vos.size() - 1).getDate();
            LocalDate endDate = LocalDate.parse(date);
            LocalDate startDate = endDate.minusDays(6);
            LocalDate startDate = endDate.minusDays(vos.size() + 1);
            for (int i = 7 - vos.size(); i > 0; i--) {
                XpCruiseCheckInStatisticsVO v = new XpCruiseCheckInStatisticsVO();
                v.setDate(startDate.toString());
                startDate = startDate.plusDays(1);
                startDate = startDate.minusDays(1);
                vos.add(0, v);
            }
        }
@@ -110,27 +117,30 @@
    @Override
    public List<XpCruiseCheckInRecordVO> all(XpCruiseCheckInRecordQuery query) {
        List<XpCruiseCheckInRecordVO> list = xpCruiseCheckInRecordMapper.selectCruiseCheckInRecordList(query);
        List<XpCruiseCheckInRecordVO> list = xpCruiseCheckInRecordMapper.exportList(query);
        List<Long> ids = list.stream().map(XpCruiseCheckInRecordVO::getOperationsUserId).collect(Collectors.toList());
        List<XpOperationsUser> xpOperationsUsers = xpOperationsUserClient.listByIds(ids).getData();
        Map<Long, XpOperationsUser> userMap = xpOperationsUsers.stream().collect(Collectors.toMap(XpOperationsUser::getId, Function.identity()));
        list = list.stream().map(record -> {
                    XpOperationsUser user = userMap.get(record.getOperationsUserId());
                    if (user == null) return null;
                    record.setOperationsUserId(user.getId());
                    record.setOperationsUserName(user.getNickName());
                    record.setPhoneNumber(user.getPhoneNumber());
                    if (StringUtils.isNotBlank(query.getOperationsUserName()) && !record.getOperationsUserName().contains(query.getOperationsUserName())) {
                        return null;
                    }
                    if (StringUtils.isNotBlank(query.getPhoneNumber()) && !record.getPhoneNumber().contains(query.getPhoneNumber())) {
                        return null;
                    }
                    return record;
                })
                .filter(Objects::nonNull)
                .collect(Collectors.toList());
        for (XpCruiseCheckInRecordVO xpCruiseCheckInRecordVO : list) {
            XpOperationsUser user = userMap.get(xpCruiseCheckInRecordVO.getOperationsUserId());
            if (user == null) continue;
            xpCruiseCheckInRecordVO.setOperationsUserId(user.getId());
            xpCruiseCheckInRecordVO.setOperationsUserName(user.getNickName());
            xpCruiseCheckInRecordVO.setPhoneNumber(user.getPhoneNumber());
        }
        list.removeIf(vo -> {
            if (StringUtils.isNotBlank(query.getOperationsUserName()) && !vo.getOperationsUserName().contains(query.getOperationsUserName())) {
                return true;
            }
            return StringUtils.isNotBlank(query.getPhoneNumber()) && !vo.getPhoneNumber().contains(query.getPhoneNumber());
        });
        return list;
    }