From fba97bff3162fc486877efd5624010113fb4334b Mon Sep 17 00:00:00 2001 From: SondonYong Date: Sat, 6 Dec 2025 11:12:32 +0800 Subject: [PATCH] =?UTF-8?q?dev:=E8=87=AA=E6=B5=8B=E6=A8=A1=E6=8B=9F?= =?UTF-8?q?=E4=BA=BA=E8=B5=84=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../info/command/RzUserRecordAddExe.java | 164 +++++++++--------- .../basic/info/domain/model/RzUserE.java | 1 + .../info/domain/model/RzUserRecordE.java | 31 ++++ .../info/domain/model/UserChangeRecordE.java | 5 +- .../zcloud/basic/info/domain/model/UserE.java | 5 +- .../dataobject/RzUserRecordDO.java | 1 + 6 files changed, 123 insertions(+), 84 deletions(-) diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/RzUserRecordAddExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/RzUserRecordAddExe.java index 892805b..fab7c9e 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/RzUserRecordAddExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/RzUserRecordAddExe.java @@ -67,94 +67,98 @@ public class RzUserRecordAddExe { @Transactional(rollbackFor = Exception.class) public boolean executeJsonArray(JSONArray jsonArray) { - - if(jsonArray == null){ - return false; - } - - List 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 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; } - } diff --git a/web-domain/src/main/java/com/zcloud/basic/info/domain/model/RzUserE.java b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/RzUserE.java index 335eebe..6931c0a 100644 --- a/web-domain/src/main/java/com/zcloud/basic/info/domain/model/RzUserE.java +++ b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/RzUserE.java @@ -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()); diff --git a/web-domain/src/main/java/com/zcloud/basic/info/domain/model/RzUserRecordE.java b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/RzUserRecordE.java index 3a88d27..6b78aa7 100644 --- a/web-domain/src/main/java/com/zcloud/basic/info/domain/model/RzUserRecordE.java +++ b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/RzUserRecordE.java @@ -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")); + } + } diff --git a/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserChangeRecordE.java b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserChangeRecordE.java index 05a9d92..1e7f34a 100644 --- a/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserChangeRecordE.java +++ b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserChangeRecordE.java @@ -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()); diff --git a/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserE.java b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserE.java index e428e2c..35ae225 100644 --- a/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserE.java +++ b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/UserE.java @@ -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()); } diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/RzUserRecordDO.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/RzUserRecordDO.java index 301bb30..60889e8 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/RzUserRecordDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/RzUserRecordDO.java @@ -52,6 +52,7 @@ public class RzUserRecordDO extends BaseDO { //部门编码 @ApiModelProperty(value = "部门编码") private String deptCode; + private String positionName; //手机号 @ApiModelProperty(value = "手机号") private String phoneNumber;