From 96a020a65509f807ac3d27872f903e22f2218165 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期五, 31 七月 2026 16:54:43 +0800
Subject: [PATCH] 员工新增修改问题解决
---
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java | 66 +++++++++++++++++++++++++++++----
1 files changed, 58 insertions(+), 8 deletions(-)
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java
index 72fadf6..58632cf 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java
@@ -113,24 +113,24 @@
employeeMapper.insert(employee);
Long employeeId = employee.getId();
// 7. 鍚屾娣诲姞鏁欒偛缁忓巻
- if (CollUtil.isNotEmpty(createReqVO.getEducationList())) {
- createReqVO.getEducationList().forEach(educationVO -> {
+ if (CollUtil.isNotEmpty(createReqVO.getEducations())) {
+ createReqVO.getEducations().forEach(educationVO -> {
HrmEmployeeEducationDO education = BeanUtils.toBean(educationVO, HrmEmployeeEducationDO.class);
education.setEmployeeId(employeeId);
educationMapper.insert(education);
});
}
// 8. 鍚屾娣诲姞宸ヤ綔缁忓巻
- if (CollUtil.isNotEmpty(createReqVO.getWorkHistoryList())) {
- createReqVO.getWorkHistoryList().forEach(workHistoryVO -> {
+ if (CollUtil.isNotEmpty(createReqVO.getWorkHistories())) {
+ createReqVO.getWorkHistories().forEach(workHistoryVO -> {
HrmEmployeeWorkHistoryDO workHistory = BeanUtils.toBean(workHistoryVO, HrmEmployeeWorkHistoryDO.class);
workHistory.setEmployeeId(employeeId);
workHistoryMapper.insert(workHistory);
});
}
// 9. 鍚屾娣诲姞绱ф�ヨ仈绯讳汉
- if (CollUtil.isNotEmpty(createReqVO.getEmergencyContactList())) {
- createReqVO.getEmergencyContactList().forEach(emergencyContactVO -> {
+ if (CollUtil.isNotEmpty(createReqVO.getEmergencyContacts())) {
+ createReqVO.getEmergencyContacts().forEach(emergencyContactVO -> {
HrmEmployeeEmergencyContactDO emergencyContact = BeanUtils.toBean(emergencyContactVO, HrmEmployeeEmergencyContactDO.class);
emergencyContact.setEmployeeId(employeeId);
emergencyContactMapper.insert(emergencyContact);
@@ -148,6 +148,7 @@
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public void updateEmployee(HrmEmployeeSaveReqVO updateReqVO) {
// 鏍¢獙瀛樺湪
HrmEmployeeDO employee = validateEmployeeExists(updateReqVO.getId());
@@ -160,20 +161,69 @@
&& employeeMapper.selectByPhone(updateReqVO.getPhone()) != null) {
throw exception(EMPLOYEE_PHONE_EXISTS);
}
- // 鏇存柊
+ // 鏇存柊鍛樺伐涓昏〃
HrmEmployeeDO updateObj = BeanUtils.toBean(updateReqVO, HrmEmployeeDO.class);
// roleIds 瀛樺偍涓� JSON
if (CollUtil.isNotEmpty(updateReqVO.getRoleIds())) {
updateObj.setRoleIds(JSONUtil.toJsonStr(updateReqVO.getRoleIds()));
}
employeeMapper.updateById(updateObj);
+ Long employeeId = updateReqVO.getId();
+
+ // 鍚屾鏁欒偛缁忓巻
+ syncEducationList(employeeId, updateReqVO.getEducations());
+ // 鍚屾宸ヤ綔缁忓巻
+ syncWorkHistoryList(employeeId, updateReqVO.getWorkHistories());
+ // 鍚屾绱ф�ヨ仈绯讳汉
+ syncEmergencyContactList(employeeId, updateReqVO.getEmergencyContacts());
+ }
+
+ private void syncEducationList(Long employeeId, List<HrmEmployeeEducationSaveReqVO> newList) {
+ educationMapper.deleteByEmployeeId(employeeId);
+ if (CollUtil.isNotEmpty(newList)) {
+ newList.forEach(vo -> {
+ HrmEmployeeEducationDO education = BeanUtils.toBean(vo, HrmEmployeeEducationDO.class);
+ education.setId(null);
+ education.setEmployeeId(employeeId);
+ educationMapper.insert(education);
+ });
+ }
+ }
+
+ private void syncWorkHistoryList(Long employeeId, List<HrmEmployeeWorkHistorySaveReqVO> newList) {
+ workHistoryMapper.deleteByEmployeeId(employeeId);
+ if (CollUtil.isNotEmpty(newList)) {
+ newList.forEach(vo -> {
+ HrmEmployeeWorkHistoryDO workHistory = BeanUtils.toBean(vo, HrmEmployeeWorkHistoryDO.class);
+ workHistory.setId(null);
+ workHistory.setEmployeeId(employeeId);
+ workHistoryMapper.insert(workHistory);
+ });
+ }
+ }
+
+ private void syncEmergencyContactList(Long employeeId, List<HrmEmployeeEmergencyContactSaveReqVO> newList) {
+ emergencyContactMapper.deleteByEmployeeId(employeeId);
+ if (CollUtil.isNotEmpty(newList)) {
+ newList.forEach(vo -> {
+ HrmEmployeeEmergencyContactDO emergencyContact = BeanUtils.toBean(vo, HrmEmployeeEmergencyContactDO.class);
+ emergencyContact.setId(null);
+ emergencyContact.setEmployeeId(employeeId);
+ emergencyContactMapper.insert(emergencyContact);
+ });
+ }
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public void deleteEmployee(Long id) {
// 鏍¢獙瀛樺湪
validateEmployeeExists(id);
- // 鍒犻櫎
+ // 绾ц仈鍒犻櫎瀛愯〃
+ educationMapper.deleteByEmployeeId(id);
+ workHistoryMapper.deleteByEmployeeId(id);
+ emergencyContactMapper.deleteByEmployeeId(id);
+ // 鍒犻櫎鍛樺伐
employeeMapper.deleteById(id);
}
--
Gitblit v1.9.3