dev:自测模拟人资数据接口

main
SondonYong 2025-12-06 11:12:32 +08:00
parent 8b830100a0
commit fba97bff31
6 changed files with 123 additions and 84 deletions

View File

@ -67,94 +67,98 @@ public class RzUserRecordAddExe {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean executeJsonArray(JSONArray jsonArray) { public boolean executeJsonArray(JSONArray jsonArray) {
try{
if(jsonArray == null){ if(jsonArray == null){
return false; return false;
}
List<RzUserRecordE> rzUserRecordEList = new ArrayList<>();
for (Object o : jsonArray) {
JSONObject json = new JSONObject(o);
RzUserRecordE rzUserRecordE = new RzUserRecordE();
rzUserRecordE.setEmployeeName(json.getStr("employee_name"));
rzUserRecordE.setEmployeeGender(json.getStr("employee_gender"));
rzUserRecordE.setEmployeeAge(json.getStr("employee_age"));
rzUserRecordE.setEntryTime(json.getStr("entry_time"));
rzUserRecordE.setEmployeeStatus(json.getStr("employee_status"));
rzUserRecordE.setJobName(json.getStr("job_name"));
rzUserRecordE.setJobLevel(json.getStr("job_level"));
rzUserRecordE.setDeptName(json.getStr("dept_name"));
rzUserRecordE.setDeptCode(json.getStr("dept_code"));
rzUserRecordE.setPhoneNumber(json.getStr("phone_number"));
rzUserRecordE.setIdCardNumber(json.getStr("id_card_number"));
rzUserRecordE.setEmployeeImagesCode(json.getStr("employee_images_code"));
rzUserRecordE.setCorporationCode(json.getStr("corporation_code"));
rzUserRecordE.setCorporationName(json.getStr("corporation_name"));
rzUserRecordEList.add(rzUserRecordE);
/**
* ,
* ,
* ,
*
* , , :
* 2-
* ,
*
*
*/
// 人资
RzUserDO rzUserDO = rzUserRepository.getByPhoneAndIdCardNumber(rzUserRecordE.getPhoneNumber(), rzUserRecordE.getIdCardNumber());
if(rzUserDO == null){
RzUserE rzUserE = new RzUserE();
rzUserE.initByRzUserRecord(rzUserRecordE);
rzUserGateway.add(rzUserE);
}else {
RzUserE rzUserE = new RzUserE();
rzUserE.initByRzUserRecord(rzUserRecordE);
rzUserE.setId(rzUserDO.getId());
rzUserGateway.update(rzUserE);
} }
// 统一用户管理 List<RzUserRecordE> rzUserRecordEList = new ArrayList<>();
UserDO userDO = userRepository.getByPhoneAndIdCard(rzUserRecordE.getPhoneNumber(), rzUserRecordE.getIdCardNumber()); for (Object o : jsonArray) {
if(userDO != null){ JSONObject json = new JSONObject(o);
userDO.setRzFlag(UserRZFlagEnum.YES.getCode()); RzUserRecordE rzUserRecordE = new RzUserRecordE();
userDO.setEmploymentFlag(UserEmploymentFlagEnum.INFO_CHANGE.getCode()); rzUserRecordE.initFromRZ(json);
UserE userE = new UserE(); rzUserRecordEList.add(rzUserRecordE);
BeanUtils.copyProperties(userDO, userE);
userGateway.update(userE); /**
// 查询企业名称和部门名称 * ,
CorpInfoDO corpInfoDO = corpInfoRepository.getById(userE.getCorpinfoId()); * ,
DepartmentDO departmentDO = departmentRepository.getById(userE.getDepartmentId()); * ,
// 变更记录表 *
UserChangeRecordE userChangeRecordE = new UserChangeRecordE(); * , , :
userChangeRecordE.initUserAddFromRZ(userE, rzUserRecordE, userE.getId(), corpInfoDO.getCorpName(), departmentDO.getName()); * 2-
userChangeRecordGateway.add(userChangeRecordE); * ,
}else { *
// todo 创建新用户 *
UserE userE = new UserE(); */
CorpInfoDO corpInfo = corpInfoRepository.getCorpInfoByCorpName("冬泳分公司账号"); // 人资
userE.initFromRZ(corpInfo.getId(), rzUserRecordE); RzUserDO rzUserDO = rzUserRepository.getByPhoneAndIdCardNumber(rzUserRecordE.getPhoneNumber(), rzUserRecordE.getIdCardNumber());
userE.setUserId(UuidUtil.get32UUID()); if(rzUserDO == null){
userGateway.add(userE); RzUserE rzUserE = new RzUserE();
rzUserE.initByRzUserRecord(rzUserRecordE);
rzUserGateway.add(rzUserE);
}else {
RzUserE rzUserE = new RzUserE();
rzUserE.initByRzUserRecord(rzUserRecordE);
rzUserE.setId(rzUserDO.getId());
rzUserGateway.update(rzUserE);
}
// 统一用户管理
UserDO userDO = userRepository.getByPhoneAndIdCard(rzUserRecordE.getPhoneNumber(), rzUserRecordE.getIdCardNumber());
if(userDO != null){
userDO.setRzFlag(UserRZFlagEnum.YES.getCode());
UserE userE = new UserE();
BeanUtils.copyProperties(userDO, userE);
// 位置不可变
userE.setEmploymentFlag(UserEmploymentFlagEnum.INFO_CHANGE.getCode());
userGateway.update(userE);
// 查询企业名称和部门名称
CorpInfoDO corpInfoDO = corpInfoRepository.getById(userE.getCorpinfoId());
DepartmentDO departmentDO = departmentRepository.getById(userE.getDepartmentId());
// 变更记录表
UserChangeRecordE userChangeRecordE = new UserChangeRecordE();
// 变更之前的老状态, 不然变更记录之前的状态就是2-信息变更中了
userE.setEmploymentFlag(userDO.getEmploymentFlag());
userChangeRecordE.initUserAddFromRZ(userE, rzUserRecordE, userE.getId(), corpInfoDO.getCorpName(), departmentDO.getName());
userChangeRecordGateway.add(userChangeRecordE);
}else {
// todo 创建新用户 暂时放在一个分公司下, 等公司和部门对应关系有了再改
UserE userE = new UserE();
CorpInfoDO corpInfo = corpInfoRepository.getCorpInfoByCorpName("冬泳分公司账号");
Long roleId = userRepository.getDefaultRoleId();
if (roleId == null){
throw new BizException("未创建默认通用角色,请联系管理员");
}
userE.initFromRZ(corpInfo.getId(), roleId, rzUserRecordE);
userE.setUserId(UuidUtil.get32UUID());
userE.setMainCorpFlag(0);
userGateway.add(userE);
// 变更记录表
UserChangeRecordE userChangeRecordE = new UserChangeRecordE();
userE.setPostName(null);
userChangeRecordE.initUserAddFromRZ(userE, rzUserRecordE, userE.getId(), null, null);
userChangeRecordGateway.add(userChangeRecordE);
}
// 变更记录表
UserChangeRecordE userChangeRecordE = new UserChangeRecordE();
userChangeRecordE.initUserAddFromRZ(userE, rzUserRecordE, userE.getId(), null, null);
userChangeRecordGateway.add(userChangeRecordE);
} }
if(CollUtil.isNotEmpty(rzUserRecordEList)){
rzUserRecordRepository.addBatch(BeanUtil.copyToList(rzUserRecordEList, RzUserRecordDO.class));
}
return true;
}catch (Exception e){
// 发生错误, 记录发送过来的数据
RzUserRecordE recordE = new RzUserRecordE();
recordE.setEmployeeImages(jsonArray.toString());
recordE.setRemarks(e.getMessage());
rzUserRecordGateway.add(recordE);
throw new BizException(e.getMessage());
} }
if(CollUtil.isNotEmpty(rzUserRecordEList)){
rzUserRecordRepository.addBatch(BeanUtil.copyToList(rzUserRecordEList, RzUserRecordDO.class));
}
return true;
} }
} }

View File

@ -64,6 +64,7 @@ public class RzUserE extends BaseE {
this.setJobLevel(rzUserRecordE.getJobLevel()); this.setJobLevel(rzUserRecordE.getJobLevel());
this.setDeptName(rzUserRecordE.getDeptName()); this.setDeptName(rzUserRecordE.getDeptName());
this.setDeptCode(rzUserRecordE.getDeptCode()); this.setDeptCode(rzUserRecordE.getDeptCode());
this.setPositionName(rzUserRecordE.getPositionName());
this.setPhoneNumber(rzUserRecordE.getPhoneNumber()); this.setPhoneNumber(rzUserRecordE.getPhoneNumber());
this.setIdCardNumber(rzUserRecordE.getIdCardNumber()); this.setIdCardNumber(rzUserRecordE.getIdCardNumber());
this.setCorporationName(rzUserRecordE.getCorporationName()); this.setCorporationName(rzUserRecordE.getCorporationName());

View File

@ -1,5 +1,8 @@
package com.zcloud.basic.info.domain.model; package com.zcloud.basic.info.domain.model;
import cn.hutool.json.JSONObject;
import com.alibaba.cloud.commons.lang.StringUtils;
import com.alibaba.cola.exception.BizException;
import com.jjb.saas.framework.domain.model.BaseE; import com.jjb.saas.framework.domain.model.BaseE;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -37,6 +40,7 @@ public class RzUserRecordE extends BaseE {
private String deptName; private String deptName;
//部门编码 //部门编码
private String deptCode; private String deptCode;
private String positionName;
//手机号 //手机号
private String phoneNumber; private String phoneNumber;
//身份证号 //身份证号
@ -49,5 +53,32 @@ public class RzUserRecordE extends BaseE {
private String corporationCode; private String corporationCode;
//企业名称 //企业名称
private String corporationName; private String corporationName;
public void initFromRZ(JSONObject json){
if(StringUtils.isEmpty(json.getStr("phone_number"))){
throw new BizException("数据错误,手机号不能为空。");
}
if(StringUtils.isEmpty(json.getStr("id_card_number"))){
throw new BizException("数据错误,身份证号不能为空。");
}
this.setEmployeeName(json.getStr("employee_name"));
this.setEmployeeGender(json.getStr("employee_gender"));
this.setEmployeeAge(json.getStr("employee_age"));
this.setEntryTime(json.getStr("entry_time"));
this.setEmployeeStatus(json.getStr("employee_status"));
this.setJobName(json.getStr("job_name"));
this.setJobLevel(json.getStr("job_level"));
this.setDeptName(json.getStr("dept_name"));
this.setDeptCode(json.getStr("dept_code"));
this.setPositionName(json.getStr("position_name"));
this.setPhoneNumber(json.getStr("phone_number"));
this.setIdCardNumber(json.getStr("id_card_number"));
this.setEmployeeImagesCode(json.getStr("employee_images_code"));
this.setCorporationCode(json.getStr("corporation_code"));
this.setCorporationName(json.getStr("corporation_name"));
}
} }

View File

@ -87,12 +87,13 @@ public class UserChangeRecordE extends BaseE {
this.setUserId(userId); this.setUserId(userId);
this.setChangeTime(new Date()); this.setChangeTime(new Date());
// todo 企业id, 部门id, 岗位信息等对应关系
this.setCorpinfoIdBefore(null); this.setCorpinfoIdBefore(null);
this.setCorpinfoNameBefore(corpinfoName); this.setCorpinfoNameBefore(corpinfoName);
this.setDepartmentIdBefore(null); this.setDepartmentIdBefore(null);
this.setDepartmentNameBefore(departmentName); this.setDepartmentNameBefore(departmentName);
this.setPostIdBefore(null); this.setPostIdBefore(null);
this.setPostNameBefore(null); this.setPostNameBefore(userE.getPostName());
// corpinfoName == null是新增的时候, != null是修改 // corpinfoName == null是新增的时候, != null是修改
if(corpinfoName == null){ if(corpinfoName == null){
this.setUserStatusBefore(null); this.setUserStatusBefore(null);
@ -106,7 +107,7 @@ public class UserChangeRecordE extends BaseE {
this.setDepartmentIdAfter(null); this.setDepartmentIdAfter(null);
this.setDepartmentNameAfter(rzUserRecordE.getDeptName()); this.setDepartmentNameAfter(rzUserRecordE.getDeptName());
this.setPostIdAfter(null); this.setPostIdAfter(null);
this.setPostNameAfter(null); this.setPostNameAfter(rzUserRecordE.getPositionName());
this.setUserStatusAfter(UserEmploymentFlagEnum.getByDesc(rzUserRecordE.getEmployeeStatus()).getCode()); this.setUserStatusAfter(UserEmploymentFlagEnum.getByDesc(rzUserRecordE.getEmployeeStatus()).getCode());
this.setStatus(UserChangeRecordStatusEnum.APPROVED.getCode()); this.setStatus(UserChangeRecordStatusEnum.APPROVED.getCode());

View File

@ -166,13 +166,14 @@ public class UserE extends BaseE {
userE.setPassword(defaultPassword); userE.setPassword(defaultPassword);
} }
public void initFromRZ(Long corpinfoId, RzUserRecordE rzUserRecordE){ public void initFromRZ(Long corpinfoId, Long roleId, RzUserRecordE rzUserRecordE){
this.setCorpinfoId(corpinfoId); this.setCorpinfoId(corpinfoId);
this.setDepartmentId(corpinfoId); this.setDepartmentId(corpinfoId);
this.setName(rzUserRecordE.getEmployeeName()); this.setName(rzUserRecordE.getEmployeeName());
this.setPhone(rzUserRecordE.getPhoneNumber()); this.setPhone(rzUserRecordE.getPhoneNumber());
this.setUsername(rzUserRecordE.getPhoneNumber()); this.setUsername(rzUserRecordE.getPhoneNumber());
this.setRoleId(1994326788804837377L); this.setRoleId(roleId);
this.setPostName(rzUserRecordE.getPositionName());
this.setUserIdCard(rzUserRecordE.getIdCardNumber()); this.setUserIdCard(rzUserRecordE.getIdCardNumber());
} }

View File

@ -52,6 +52,7 @@ public class RzUserRecordDO extends BaseDO {
//部门编码 //部门编码
@ApiModelProperty(value = "部门编码") @ApiModelProperty(value = "部门编码")
private String deptCode; private String deptCode;
private String positionName;
//手机号 //手机号
@ApiModelProperty(value = "手机号") @ApiModelProperty(value = "手机号")
private String phoneNumber; private String phoneNumber;