From 9af5090f5d4597fbcfdf53a71189175892d29109 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期四, 05 三月 2026 17:44:35 +0800
Subject: [PATCH] yys 人力资源-员工台账模块优化
---
src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java | 91 +++++++++++++++++++++++++++++++++++++++++----
1 files changed, 83 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java b/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
index 02253f5..8336f90 100644
--- a/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
+++ b/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
@@ -16,12 +16,8 @@
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;
@@ -64,6 +60,24 @@
@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
@@ -94,13 +108,17 @@
sysUser1.setNickName(staffOnJobPrams.getStaffName());
String s = SecurityUtils.encryptPassword("123456");
sysUser1.setPassword(s);
- Long[] posts = new Long[]{staffOnJobPrams.getSysPostId().longValue()};
- sysUser1.setPostIds(posts);
+ 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());
@@ -132,9 +150,57 @@
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));
}
//鍒犻櫎鍏ヨ亴
@@ -156,6 +222,8 @@
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));
@@ -213,6 +281,13 @@
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;
}
--
Gitblit v1.9.3