public boolean saveEmployeeBasicInformation(Map<String,Object> map) {
log.info("map================"+map);
if(Func.isNotEmpty(map)){
EmployeeBasicInformation employee = JSONObject.parseObject(JSONObject.toJSONString(map), EmployeeBasicInformation.class);
log.info("employee============="+employee);
boolean isUpdate=false;
if(!Func.isEmpty(employee.getId())){
isUpdate=true;
}
AllEmployeeBasicInformation original=employeeBasicInformationMapper.getOneAllEmployeeInfo(employee.getId(),AuthUtil.getTenantId());//通过id获取原有数据
saveOrUpdate(employee);
//将信息保存到用户数据表
User user = JSONObject.parseObject(JSONObject.toJSONString(map), User.class);
user.setId(employee.getId());
user.setCreateDept(employee.getCreateDept());
user.setCreateTime(employee.getCreateTime());
user.setUpdateUser(employee.getUpdateUser());
user.setUpdateTime(employee.getUpdateTime());
user.setStatus(employee.getStatus());
user.setIsDeleted(employee.getIsDeleted());
user.setPassword(DigestUtil.encrypt(EmployeeConstant.default_password));
log.info("将信息保存到用户数据表user============"+user);
userClient.saveUser(user);
if(isUpdate){
log.info("通过id获取原有数据original======="+original);
userClient.updateUser(user);
if(Func.isNotEmpty(original)&&Func.isNotEmpty(map)){
saveRecordMsg(original,map);
}
}
}
return true;
}
/**
* 获取修改记录信息,保存修改记录信息
* @return
*/
@Transactional(rollbackFor = Exception.class)
public void saveRecordMsg(AllEmployeeBasicInformation original,Map<String,Object>map){
String updateTime= new SimpleDateFormat("yyyy-MM-dd HH:mm:SSS").format(new Date());
String ids=original.getId().toString();
log.info("保存修改记录信息ids==========="+ids);
String operationName=map.get("operationName").toString();
String personName=original.getRealName();
List<EmployeeBasicInformationUpdateRecord> recordList=new ArrayList<EmployeeBasicInformationUpdateRecord>();
String[] nameList= EmployeeConstant.EMPLOYEE_INFO.split(",");//属性名称对应的中文名称
//将实体类转换成map
Map<String,Object>mapOriginal=JSONObject.parseObject(JSONObject.toJSONString(original),Map.class);//原内容
for(String name:nameList){
EmployeeBasicInformationUpdateRecord record=new EmployeeBasicInformationUpdateRecord();
//修改之前的数据
if(Func.isNotEmpty(mapOriginal)&& Func.isNotEmpty(map.get(name.split(":")[0]))){
record.setUpdateItem(name.split(":")[1]);//变更项目
record.setUpdateTime(updateTime);//修改时间
record.setOriginalContent(String.valueOf(mapOriginal.get(name.split(":")[0])));//原内容
record.setUpdateContent(String.valueOf(map.get(name.split(":")[0])));//修改内容
record.setAfterUpdateContent(String.valueOf(map.get(name.split(":")[0])));//修改后的内容
record.setUpdatePeople(operationName);//修改人名称
record.setId(ids);//用户id
record.setTenantId(AuthUtil.getTenantId());//租户id
record.setPersonName(personName);
//将信息插入记录表
updateRecordServiceImpl.save(record);
}
}
}
package org.springblade.constant;
public interface EmployeeConstant {
String EMPLOYEE_INFO="idCardNumber:身份证号码,entryDate:入职日期,entryMonths:入职月数,becomeFullMemberDate:转正日期,department:入职部门名称,groups:组别," +
"groupCode:组编号,position:职位,function:职能(角色),positionRank:职级名称,positionRankCode:职级编号,isMarry:婚否,contractStartDate:合同开始日期," +
"contractEndDate:合同结束日期,profession:专业,educationBackground:学历,politicsStatus:政治面貌,schoolOfGraduation:毕业院校,censusRegisterAddress:户籍地址," +
"registeredResidenceType:户口类型,temporaryAddress:暂住地址,emergencyContact:紧急联系人,emergencyContactPhone:紧急联系人电话,workingState:在职状态0在职1离职," +
"realName:员工姓名,phone:手机,birthday:生日,termContract:合同年限,contractType:合同类型,remark:备注";
String default_password="123456";
}