|
@@ -244,8 +244,65 @@ public class EmployeeInfoServiceImpl implements EmployeeInfoService {
|
|
}
|
|
}
|
|
updateReqVO.setPosition(post.getName());
|
|
updateReqVO.setPosition(post.getName());
|
|
}
|
|
}
|
|
- if (updateReqVO.getRemainingAnnualLeave() == null && updateReqVO.getUsedAnnualLeave() == null) {
|
|
|
|
- updateReqVO.setRemainingAnnualLeave(updateReqVO.getBaseAnnualLeave().subtract(employeeInfoDO.getUsedAnnualLeave()));
|
|
|
|
|
|
+ EmployeeInfoDO updateObj = BeanUtils.toBean(updateReqVO, EmployeeInfoDO.class);
|
|
|
|
+ return infoMapper.updateById(updateObj);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ @TenantIgnore
|
|
|
|
+ public Integer updateEmpInfo(EmployeeInfoSaveReqVO updateReqVO) {
|
|
|
|
+ // 校验存在
|
|
|
|
+ validateInfoExists(updateReqVO.getId());
|
|
|
|
+ EmployeeInfoDO employeeInfoDO = this.getInfo(updateReqVO.getId());
|
|
|
|
+ if (employeeInfoDO == null) {
|
|
|
|
+ throw exception(EMPLOYEE_INFO_NOT_EXISTS);
|
|
|
|
+ }
|
|
|
|
+ // 获取用户信息和租户ID
|
|
|
|
+ LoginUser user = SecurityFrameworkUtils.getLoginUser();
|
|
|
|
+ Long tenantId = user != null && user.getTenantId() != null ? user.getTenantId() : 0L;
|
|
|
|
+
|
|
|
|
+ // 假设 employeeInfoDO 和 updateReqVO 已经被正确定义和初始化
|
|
|
|
+ String newPhone = updateReqVO.getPhone();
|
|
|
|
+ String currentPhone = employeeInfoDO.getPhone();
|
|
|
|
+ // 部门
|
|
|
|
+ if (updateReqVO.getDeptId() != null) {
|
|
|
|
+ DeptDO dept = deptService.getDept(updateReqVO.getDeptId());
|
|
|
|
+ if (dept != null && StringUtils.isNotBlank(dept.getName())) {
|
|
|
|
+ updateReqVO.setDeptName(dept.getName());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // 检查新电话号码是否为空
|
|
|
|
+ if (newPhone == null || newPhone.isEmpty()) {
|
|
|
|
+ throw exception(EMPLOYEE_INFO_PHONE_NOT_NULL);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 如果新电话号码不为空,且与当前电话号码不同,则进行判重检查
|
|
|
|
+ if (!newPhone.equals(currentPhone)) {
|
|
|
|
+ // 手机号+租户判重
|
|
|
|
+ EmployeeInfoQueryReqVO reqVO = new EmployeeInfoQueryReqVO();
|
|
|
|
+ reqVO.setPhone(newPhone);
|
|
|
|
+ reqVO.setTenantId(tenantId);
|
|
|
|
+ EmployeeInfoDO infoDO = this.getInfo(reqVO);
|
|
|
|
+ if (infoDO != null) {
|
|
|
|
+ // 如果找到了相同的电话号码和租户ID,则抛出异常
|
|
|
|
+ throw exception(EMPLOYEE_INFO_PHONE_EXISTS);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ EmployeeInfoHistorySaveReqVO historySaveReqVO = BeanUtils.toBean(employeeInfoDO, EmployeeInfoHistorySaveReqVO.class);
|
|
|
|
+ historySaveReqVO.setEmployeeId(employeeInfoDO.getId());
|
|
|
|
+ historySaveReqVO.setId(null);
|
|
|
|
+ employeeInfoHistoryService.createInfoHistory(historySaveReqVO);// 插入历史数据
|
|
|
|
+ // 更新
|
|
|
|
+ if(updateReqVO.getPostId() != null) {
|
|
|
|
+ PostDO post = postService.getPost(updateReqVO.getPostId());
|
|
|
|
+ if (post == null) {
|
|
|
|
+ throw exception(POST_NOT_FOUND);
|
|
|
|
+ }
|
|
|
|
+ updateReqVO.setPosition(post.getName());
|
|
|
|
+ }
|
|
|
|
+ if (updateReqVO.getBaseAnnualLeave() != null && updateReqVO.getUsedAnnualLeave() != null) {
|
|
|
|
+ updateReqVO.setRemainingAnnualLeave(updateReqVO.getBaseAnnualLeave().subtract(updateReqVO.getUsedAnnualLeave()));
|
|
}
|
|
}
|
|
EmployeeInfoDO updateObj = BeanUtils.toBean(updateReqVO, EmployeeInfoDO.class);
|
|
EmployeeInfoDO updateObj = BeanUtils.toBean(updateReqVO, EmployeeInfoDO.class);
|
|
return infoMapper.updateById(updateObj);
|
|
return infoMapper.updateById(updateObj);
|