| | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void deleteEmployee(Long id) { |
| | | // 校验存在 |
| | | validateEmployeeExists(id); |
| | | HrmEmployeeDO employee = validateEmployeeExists(id); |
| | | // 级联删除子表 |
| | | educationMapper.deleteByEmployeeId(id); |
| | | workHistoryMapper.deleteByEmployeeId(id); |
| | | emergencyContactMapper.deleteByEmployeeId(id); |
| | | // 删除员工 |
| | | employeeMapper.deleteById(id); |
| | | // 同步删除关联的系统用户,避免手机号(登录账号)被残留的孤儿账号占用 |
| | | if (employee.getUserId() != null) { |
| | | adminUserApi.deleteUser(employee.getUserId()); |
| | | } |
| | | } |
| | | |
| | | private HrmEmployeeDO validateEmployeeExists(Long id) { |
| | |
| | | |
| | | @Override |
| | | public PageResult<HrmEmployeeDO> getEmployeePage(HrmEmployeePageReqVO pageReqVO) { |
| | | if (pageReqVO.getDeptId() != null) { |
| | | // 选中部门时,连带查询其所有子部门的员工(含自身) |
| | | List<DeptRespDTO> childDepts = deptApi.getChildDeptList(pageReqVO.getDeptId()); |
| | | Set<Long> deptIds = new LinkedHashSet<>(); |
| | | deptIds.add(pageReqVO.getDeptId()); |
| | | if (CollUtil.isNotEmpty(childDepts)) { |
| | | childDepts.forEach(dept -> deptIds.add(dept.getId())); |
| | | } |
| | | return employeeMapper.selectPageByDeptIds(pageReqVO, deptIds); |
| | | } |
| | | return employeeMapper.selectPage(pageReqVO); |
| | | } |
| | | |