| | |
| | | Map<Long, DeptRespDTO> deptMap = CollUtil.isEmpty(deptIds) ? Collections.emptyMap() : deptApi.getDeptMap(deptIds); |
| | | |
| | | // 2. 批量获取岗位信息 |
| | | Set<Long> postIds = employeeList.stream() |
| | | .map(HrmEmployeeDO::getPostId) |
| | | .filter(Objects::nonNull) |
| | | .collect(Collectors.toSet()); |
| | | Set<Long> postIds = new HashSet<>(); |
| | | for (HrmEmployeeDO employee : employeeList) { |
| | | if (StrUtil.isNotBlank(employee.getPostIds())) { |
| | | postIds.addAll(JSONUtil.toList(employee.getPostIds(), Long.class)); |
| | | } |
| | | } |
| | | Map<Long, PostRespDTO> postMap = CollUtil.isEmpty(postIds) ? Collections.emptyMap() : postApi.getPostMap(postIds); |
| | | |
| | | // 3. 收集所有角色ID |
| | |
| | | respVO.setDeptName(deptMap.get(employee.getDeptId()).getName()); |
| | | } |
| | | |
| | | // 填充岗位名称 |
| | | if (employee.getPostId() != null && postMap.containsKey(employee.getPostId())) { |
| | | respVO.setPostName(postMap.get(employee.getPostId()).getName()); |
| | | // 填充岗位信息 |
| | | if (StrUtil.isNotBlank(employee.getPostIds())) { |
| | | List<Long> employeePostIds = JSONUtil.toList(employee.getPostIds(), Long.class); |
| | | respVO.setPostIds(employeePostIds); |
| | | if (CollUtil.isNotEmpty(employeePostIds)) { |
| | | respVO.setPostNames(employeePostIds.stream() |
| | | .filter(postMap::containsKey) |
| | | .map(id -> postMap.get(id).getName()) |
| | | .collect(Collectors.joining(","))); |
| | | } |
| | | } |
| | | |
| | | // 解析 roleIds 并填充角色名称 |
| | |
| | | // 输出示例数据,方便使用者参考 |
| | | List<HrmEmployeeImportExcelVO> list = Arrays.asList( |
| | | HrmEmployeeImportExcelVO.builder().name("张三").gender(1).phone("13800138000") |
| | | .deptName("研发部").postName("部门经理").roleNames("普通管理员") |
| | | .deptName("研发部").postName("部门经理,项目经理").roleNames("普通管理员") |
| | | .hireDate(LocalDate.of(2020, 3, 1)).employeeStatus(1) |
| | | .idCard("320102199001150011").birthday(LocalDate.of(1990, 1, 15)) |
| | | .nation("汉族").marriageStatus("已婚").age(36).education("本科").politicalStatus("中共党员") |