| | |
| | | import com.ruoyi.project.system.mapper.SysUserMapper; |
| | | import com.ruoyi.project.system.service.impl.SysUserServiceImpl; |
| | | import com.ruoyi.staff.dto.StaffOnJobDto; |
| | | import com.ruoyi.staff.mapper.StaffContractMapper; |
| | | import com.ruoyi.staff.mapper.StaffLeaveMapper; |
| | | import com.ruoyi.staff.mapper.StaffOnJobMapper; |
| | | import com.ruoyi.staff.pojo.StaffContract; |
| | | import com.ruoyi.staff.pojo.StaffLeave; |
| | | import com.ruoyi.staff.pojo.StaffOnJob; |
| | | import com.ruoyi.staff.mapper.*; |
| | | import com.ruoyi.staff.pojo.*; |
| | | import com.ruoyi.staff.service.IStaffOnJobService; |
| | | import freemarker.template.Configuration; |
| | | import freemarker.template.Template; |
| | |
| | | @Autowired |
| | | private SysUserMapper sysUserMapper; |
| | | |
| | | @Autowired |
| | | private StaffEducationServiceImpl staffEducationService; |
| | | |
| | | @Autowired |
| | | private StaffEducationMapper staffEducationMapper; |
| | | |
| | | @Autowired |
| | | private StaffWorkExperienceMapper staffWorkExperienceMapper; |
| | | |
| | | @Autowired |
| | | private StaffWorkExperienceServiceImpl staffWorkExperienceServiceImpl; |
| | | |
| | | @Autowired |
| | | private StaffEmergencyContactMapper staffEmergencyContactMapper; |
| | | |
| | | @Autowired |
| | | private StaffEmergencyContactServiceImpl staffEmergencyContactServiceImpl; |
| | | |
| | | |
| | | //在职员工台账分页查询 |
| | | @Override |
| | |
| | | sysUser1.setNickName(staffOnJobPrams.getStaffName()); |
| | | String s = SecurityUtils.encryptPassword("123456"); |
| | | sysUser1.setPassword(s); |
| | | if(staffOnJobPrams.getSysPostId() != null){ |
| | | Long[] posts = new Long[]{staffOnJobPrams.getSysPostId().longValue()}; |
| | | sysUser1.setPostIds(posts); |
| | | } |
| | | sysUser1.setRoleIds(new Long[]{staffOnJobPrams.getRoleId()}); |
| | | sysUser1.setDeptIds(new Long[]{staffOnJobPrams.getSysDeptId()}); |
| | | sysUser1.setStatus("0"); |
| | | sysUserService.insertUser(sysUser1); |
| | | } |
| | | // 绑定子表数据 |
| | | bingingStaffOnJobExtra(staffOnJobPrams.getId(),staffOnJobPrams); |
| | | // 创建合同记录 |
| | | StaffContract staffContract = new StaffContract(); |
| | | staffContract.setStaffOnJobId(staffOnJobPrams.getId()); |
| | |
| | | staffContractMapper.updateById(contract); |
| | | } |
| | | |
| | | // 删除所有子表数据 |
| | | delStaffOnJobExtra(Arrays.asList(id)); |
| | | // 绑定子表数据 |
| | | bingingStaffOnJobExtra(id,staffOnJobParams); |
| | | // 更新员工数据 |
| | | staffOnJobParams.setContractExpireTime(staffOnJobParams.getContractEndTime()); |
| | | return staffOnJobMapper.updateById(staffOnJobParams); |
| | | } |
| | | |
| | | /** |
| | | * 绑定员工子表数据 |
| | | * @param staffOnJobPrams |
| | | * @param id |
| | | */ |
| | | public void bingingStaffOnJobExtra(Long id,StaffOnJob staffOnJobPrams) { |
| | | // 新增教育经历 |
| | | if(CollectionUtils.isNotEmpty(staffOnJobPrams.getStaffEducationList())){ |
| | | staffOnJobPrams.getStaffEducationList().stream() |
| | | .filter(Objects::nonNull) // 过滤null对象,避免空指针 |
| | | .forEach(staff -> staff.setStaffOnJobId(id)); // 赋值 |
| | | staffEducationService.saveBatch(staffOnJobPrams.getStaffEducationList()); |
| | | } |
| | | // 新增工作经历 |
| | | if(CollectionUtils.isNotEmpty(staffOnJobPrams.getStaffWorkExperienceList())){ |
| | | staffOnJobPrams.getStaffWorkExperienceList().stream() |
| | | .filter(Objects::nonNull) // 过滤null对象,避免空指针 |
| | | .forEach(staff -> staff.setStaffOnJobId(id)); // 赋值 |
| | | staffWorkExperienceServiceImpl.saveBatch(staffOnJobPrams.getStaffWorkExperienceList()); |
| | | } |
| | | // 新增紧急联系人 |
| | | if(CollectionUtils.isNotEmpty(staffOnJobPrams.getStaffEmergencyContactList())){ |
| | | staffOnJobPrams.getStaffEmergencyContactList().stream() |
| | | .filter(Objects::nonNull) // 过滤null对象,避免空指针 |
| | | .forEach(staff -> staff.setStaffOnJobId(id)); // 赋值 |
| | | staffEmergencyContactServiceImpl.saveBatch(staffOnJobPrams.getStaffEmergencyContactList()); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 通过员工id删除教育经历,工作经历,紧急联系人 |
| | | * @param ids |
| | | * @return |
| | | */ |
| | | public void delStaffOnJobExtra(List<Long> ids) { |
| | | // 删除教育经历 |
| | | staffEducationService.remove(Wrappers.<StaffEducation>lambdaQuery().in(StaffEducation::getStaffOnJobId,ids)); |
| | | // 删除工作经历 |
| | | staffWorkExperienceServiceImpl.remove(Wrappers.<StaffWorkExperience>lambdaQuery().in(StaffWorkExperience::getStaffOnJobId,ids)); |
| | | // 删除紧急联系人 |
| | | staffEmergencyContactServiceImpl.remove(Wrappers.<StaffEmergencyContact>lambdaQuery().in(StaffEmergencyContact::getStaffOnJobId,ids)); |
| | | } |
| | | |
| | | //删除入职 |
| | |
| | | Long[] longs = sysUsers.stream().map(SysUser::getUserId).toArray(Long[]::new); |
| | | sysUserService.deleteUserByIds(longs); |
| | | } |
| | | // 删除子表数据 |
| | | delStaffOnJobExtra(ids.stream().map(Integer::longValue).collect(Collectors.toList())); |
| | | |
| | | // 删除合同数据 |
| | | return staffContractMapper.delete(Wrappers.<StaffContract>lambdaQuery().in(StaffContract::getStaffOnJobId, ids)); |
| | |
| | | staffOnJobDto.setContractStartTime(contract.getContractStartTime()); |
| | | staffOnJobDto.setContractEndTime(contract.getContractEndTime()); |
| | | } |
| | | // 获取子表数据 |
| | | staffOnJobDto.setStaffEducationList(staffEducationMapper.selectList(Wrappers.<StaffEducation>lambdaQuery() |
| | | .eq(StaffEducation::getStaffOnJobId, staffOnJob.getId()))); |
| | | staffOnJobDto.setStaffWorkExperienceList(staffWorkExperienceMapper.selectList(Wrappers.<StaffWorkExperience>lambdaQuery() |
| | | .eq(StaffWorkExperience::getStaffOnJobId, staffOnJob.getId()))); |
| | | staffOnJobDto.setStaffEmergencyContactList(staffEmergencyContactMapper.selectList(Wrappers.<StaffEmergencyContact>lambdaQuery() |
| | | .eq(StaffEmergencyContact::getStaffOnJobId, staffOnJob.getId()))); |
| | | return staffOnJobDto; |
| | | } |
| | | |