tuqin
6 小时以前 89071e0c09188d75c3d537f82204ae19713ac7fe
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/employee/HrmEmployeeController.java
@@ -115,10 +115,12 @@
        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
@@ -143,9 +145,16 @@
                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 并填充角色名称
@@ -195,7 +204,7 @@
        // 输出示例数据,方便使用者参考
        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("中共党员")
@@ -213,4 +222,22 @@
        return success(employeeService.importEmployeeList(list, importReqVO));
    }
    @PutMapping("/regular")
    @Operation(summary = "员工转正", description = "仅『劳动合同』员工可转正;劳务合同不转正。转正只改状态+转正日期,不含调岗")
    @Parameter(name = "id", description = "员工ID", required = true)
    @PreAuthorize("@ss.hasPermission('hrm:employee:update')")
    public CommonResult<Boolean> regularizeEmployee(@RequestParam("id") Long id) {
        employeeService.regularizeEmployee(id);
        return success(true);
    }
    @GetMapping("/regularize-reminders")
    @Operation(summary = "获得待转正提醒列表", description = "试用中、且当前为劳动合同、试用期在 days 天内到期的员工")
    @PreAuthorize("@ss.hasPermission('hrm:employee:query')")
    public CommonResult<List<HrmEmployeeRespVO>> getRegularizeReminders(
            @RequestParam(value = "days", required = false, defaultValue = "7") Integer days) {
        List<HrmEmployeeDO> list = employeeService.getRegularizeReminderList(days);
        return success(BeanUtils.toBean(list, HrmEmployeeRespVO.class));
    }
}