| | |
| | | // 1. 批量获取关联数据 |
| | | Map<Long, MesDvMeteringDO> meteringMap = meteringService.getMeteringMap( |
| | | convertSet(list, MesDvMeteringCheckDO::getMeteringId)); |
| | | Map<Long, AdminUserRespDTO> userMap = CollUtil.isNotEmpty(convertSet(list, MesDvMeteringCheckDO::getCheckUserId)) |
| | | ? adminUserApi.getUserMap(convertSet(list, MesDvMeteringCheckDO::getCheckUserId)) : Collections.emptyMap(); |
| | | var legacyUserIds = list.stream() |
| | | .filter(check -> cn.hutool.core.util.StrUtil.isBlank(check.getCheckUserName())) |
| | | .map(MesDvMeteringCheckDO::getCheckUserId).filter(java.util.Objects::nonNull) |
| | | .collect(java.util.stream.Collectors.toSet()); |
| | | Map<Long, AdminUserRespDTO> userMap = legacyUserIds.isEmpty() |
| | | ? Collections.emptyMap() : adminUserApi.getUserMap(legacyUserIds); |
| | | // 2. 拼接 VO |
| | | return BeanUtils.toBean(list, MesDvMeteringCheckRespVO.class, vo -> { |
| | | MapUtils.findAndThen(meteringMap, vo.getMeteringId(), |
| | | metering -> vo.setMeteringCode(metering.getCode()).setMeteringName(metering.getName())); |
| | | MapUtils.findAndThen(userMap, vo.getCheckUserId(), |
| | | user -> vo.setCheckUserNickname(user.getNickname())); |
| | | if (cn.hutool.core.util.StrUtil.isBlank(vo.getCheckUserName())) { |
| | | MapUtils.findAndThen(userMap, vo.getCheckUserId(), |
| | | user -> vo.setCheckUserName(user.getNickname())); |
| | | } |
| | | vo.setCheckUserNickname(vo.getCheckUserName()); |
| | | }); |
| | | } |
| | | |