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)
public boolean executeJsonArray(JSONArray jsonArray) {
if(jsonArray == null){
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);
try{
if(jsonArray == null){
return false;
}
// 统一用户管理
UserDO userDO = userRepository.getByPhoneAndIdCard(rzUserRecordE.getPhoneNumber(), rzUserRecordE.getIdCardNumber());
if(userDO != null){
userDO.setRzFlag(UserRZFlagEnum.YES.getCode());
userDO.setEmploymentFlag(UserEmploymentFlagEnum.INFO_CHANGE.getCode());
UserE userE = new UserE();
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());
userChangeRecordGateway.add(userChangeRecordE);
}else {
// todo 创建新用户
UserE userE = new UserE();
CorpInfoDO corpInfo = corpInfoRepository.getCorpInfoByCorpName("冬泳分公司账号");
userE.initFromRZ(corpInfo.getId(), rzUserRecordE);
userE.setUserId(UuidUtil.get32UUID());
userGateway.add(userE);
List<RzUserRecordE> rzUserRecordEList = new ArrayList<>();
for (Object o : jsonArray) {
JSONObject json = new JSONObject(o);
RzUserRecordE rzUserRecordE = new RzUserRecordE();
rzUserRecordE.initFromRZ(json);
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);
}
// 统一用户管理
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.setDeptName(rzUserRecordE.getDeptName());
this.setDeptCode(rzUserRecordE.getDeptCode());
this.setPositionName(rzUserRecordE.getPositionName());
this.setPhoneNumber(rzUserRecordE.getPhoneNumber());
this.setIdCardNumber(rzUserRecordE.getIdCardNumber());
this.setCorporationName(rzUserRecordE.getCorporationName());

View File

@ -1,5 +1,8 @@
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 io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -37,6 +40,7 @@ public class RzUserRecordE extends BaseE {
private String deptName;
//部门编码
private String deptCode;
private String positionName;
//手机号
private String phoneNumber;
//身份证号
@ -49,5 +53,32 @@ public class RzUserRecordE extends BaseE {
private String corporationCode;
//企业名称
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.setChangeTime(new Date());
// todo 企业id, 部门id, 岗位信息等对应关系
this.setCorpinfoIdBefore(null);
this.setCorpinfoNameBefore(corpinfoName);
this.setDepartmentIdBefore(null);
this.setDepartmentNameBefore(departmentName);
this.setPostIdBefore(null);
this.setPostNameBefore(null);
this.setPostNameBefore(userE.getPostName());
// corpinfoName == null是新增的时候, != null是修改
if(corpinfoName == null){
this.setUserStatusBefore(null);
@ -106,7 +107,7 @@ public class UserChangeRecordE extends BaseE {
this.setDepartmentIdAfter(null);
this.setDepartmentNameAfter(rzUserRecordE.getDeptName());
this.setPostIdAfter(null);
this.setPostNameAfter(null);
this.setPostNameAfter(rzUserRecordE.getPositionName());
this.setUserStatusAfter(UserEmploymentFlagEnum.getByDesc(rzUserRecordE.getEmployeeStatus()).getCode());
this.setStatus(UserChangeRecordStatusEnum.APPROVED.getCode());

View File

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

View File

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