xiaoyi
6 天以前 481d8165f26fc7e37f0e87f6444ac0340bb563a3
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/employee/HrmEmployeeController.java
@@ -17,7 +17,10 @@
import cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeeSaveReqVO;
import cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeeSimpleRespVO;
import cn.iocoder.yudao.module.hrm.dal.dataobject.employee.HrmEmployeeDO;
import cn.iocoder.yudao.module.hrm.enums.HrmEmploymentTypeEnum;
import cn.iocoder.yudao.module.hrm.service.employee.HrmEmployeeService;
import cn.iocoder.yudao.module.mes.api.cal.MesCalTeamApi;
import cn.iocoder.yudao.module.mes.api.cal.dto.MesCalTeamRespDTO;
import cn.iocoder.yudao.module.system.api.dept.DeptApi;
import cn.iocoder.yudao.module.system.api.dept.PostApi;
import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
@@ -56,6 +59,8 @@
    private PostApi postApi;
    @Resource
    private RoleApi roleApi;
    @Resource
    private MesCalTeamApi mesCalTeamApi;
    @PostMapping("/create")
    @Operation(summary = "创建员工")
@@ -84,14 +89,12 @@
    @GetMapping("/get")
    @Operation(summary = "获得员工详情")
    @Parameter(name = "id", description = "员工ID", required = true)
    @PreAuthorize("@ss.hasPermission('hrm:employee:query')")
    public CommonResult<HrmEmployeeRespVO> getEmployee(@RequestParam("id") Long id) {
        return success(employeeService.getEmployeeDetail(id));
    }
    @GetMapping("/page")
    @Operation(summary = "获得员工分页")
    @PreAuthorize("@ss.hasPermission('hrm:employee:query')")
    public CommonResult<PageResult<HrmEmployeeRespVO>> getEmployeePage(@Valid HrmEmployeePageReqVO pageReqVO) {
        PageResult<HrmEmployeeDO> pageResult = employeeService.getEmployeePage(pageReqVO);
        // 转换为 VO
@@ -121,7 +124,16 @@
                .collect(Collectors.toSet());
        Map<Long, PostRespDTO> postMap = CollUtil.isEmpty(postIds) ? Collections.emptyMap() : postApi.getPostMap(postIds);
        // 3. 收集所有角色ID
        // 3. 批量获取班组信息(所属班组)
        Set<Long> teamIds = employeeList.stream()
                .map(HrmEmployeeDO::getTeamId)
                .filter(Objects::nonNull)
                .collect(Collectors.toSet());
        Map<Long, String> teamNameMap = CollUtil.isEmpty(teamIds) ? Collections.emptyMap() : mesCalTeamApi
                .getTeamList(teamIds).stream()
                .collect(Collectors.toMap(MesCalTeamRespDTO::getId, MesCalTeamRespDTO::getName, (v1, v2) -> v1));
        // 4. 收集所有角色ID
        Set<Long> allRoleIds = new HashSet<>();
        for (HrmEmployeeDO employee : employeeList) {
            if (StrUtil.isNotBlank(employee.getRoleIds())) {
@@ -146,6 +158,16 @@
            // 填充岗位名称
            if (employee.getPostId() != null && postMap.containsKey(employee.getPostId())) {
                respVO.setPostName(postMap.get(employee.getPostId()).getName());
            }
            // 填充用工性质名称
            if (employee.getEmploymentType() != null) {
                respVO.setEmploymentTypeName(HrmEmploymentTypeEnum.getNameByType(employee.getEmploymentType()));
            }
            // 填充所属班组名称
            if (employee.getTeamId() != null && teamNameMap.containsKey(employee.getTeamId())) {
                respVO.setTeamName(teamNameMap.get(employee.getTeamId()));
            }
            // 解析 roleIds 并填充角色名称
@@ -213,4 +235,4 @@
        return success(employeeService.importEmployeeList(list, importReqVO));
    }
}
}