feat(human-user): 添加人资名称映射功能支持企业部门岗位名称转换
parent
3981062463
commit
4152945a59
|
|
@ -0,0 +1,79 @@
|
|||
package com.zcloud.human.user.command;
|
||||
|
||||
import com.alibaba.cloud.commons.lang.StringUtils;
|
||||
import com.zcloud.human.user.domain.gateway.HumanCorpNameMappingGateway;
|
||||
import com.zcloud.human.user.domain.gateway.HumanDeptNameMappingGateway;
|
||||
import com.zcloud.human.user.domain.gateway.HumanPostNameMappingGateway;
|
||||
import com.zcloud.human.user.domain.model.HumanCorpNameMappingE;
|
||||
import com.zcloud.human.user.domain.model.HumanDeptNameMappingE;
|
||||
import com.zcloud.human.user.domain.model.HumanPostNameMappingE;
|
||||
import com.zcloud.human.user.dto.HumanSyncNameResolveCmd;
|
||||
import com.zcloud.human.user.dto.clientobject.HumanSyncNameResolveCO;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* 人资名称映射解析执行器
|
||||
*/
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class HumanSyncNameResolveExe {
|
||||
|
||||
private final HumanCorpNameMappingGateway humanCorpNameMappingGateway;
|
||||
private final HumanDeptNameMappingGateway humanDeptNameMappingGateway;
|
||||
private final HumanPostNameMappingGateway humanPostNameMappingGateway;
|
||||
|
||||
public HumanSyncNameResolveCO execute(HumanSyncNameResolveCmd cmd) {
|
||||
HumanSyncNameResolveCO result = new HumanSyncNameResolveCO();
|
||||
String thirdCorpName = normalizeName(cmd.getThirdCorpName());
|
||||
String thirdDeptName = normalizeName(cmd.getThirdDeptName());
|
||||
String thirdPostName = normalizeName(cmd.getThirdPostName());
|
||||
|
||||
result.setRealCorpName(resolveCorpName(thirdCorpName));
|
||||
result.setRealDeptName(resolveDeptName(thirdCorpName, thirdDeptName));
|
||||
result.setRealPostName(resolvePostName(thirdCorpName, thirdDeptName, thirdPostName));
|
||||
return result;
|
||||
}
|
||||
|
||||
private String resolveCorpName(String thirdCorpName) {
|
||||
if (StringUtils.isEmpty(thirdCorpName)) {
|
||||
return null;
|
||||
}
|
||||
HumanCorpNameMappingE mapping = humanCorpNameMappingGateway.getByThirdCorpName(thirdCorpName);
|
||||
if (mapping == null || StringUtils.isEmpty(mapping.getRealCorpName())) {
|
||||
return thirdCorpName;
|
||||
}
|
||||
return normalizeName(mapping.getRealCorpName());
|
||||
}
|
||||
|
||||
private String resolveDeptName(String thirdCorpName, String thirdDeptName) {
|
||||
if (StringUtils.isEmpty(thirdDeptName)) {
|
||||
return null;
|
||||
}
|
||||
HumanDeptNameMappingE mapping = humanDeptNameMappingGateway.getByThirdCorpNameAndThirdDeptName(thirdCorpName, thirdDeptName);
|
||||
if (mapping == null || StringUtils.isEmpty(mapping.getRealDeptName())) {
|
||||
return thirdDeptName;
|
||||
}
|
||||
return normalizeName(mapping.getRealDeptName());
|
||||
}
|
||||
|
||||
private String resolvePostName(String thirdCorpName, String thirdDeptName, String thirdPostName) {
|
||||
if (StringUtils.isEmpty(thirdPostName)) {
|
||||
return null;
|
||||
}
|
||||
HumanPostNameMappingE mapping = humanPostNameMappingGateway.getByThirdNames(thirdCorpName, thirdDeptName, thirdPostName);
|
||||
if (mapping == null || StringUtils.isEmpty(mapping.getRealPostName())) {
|
||||
return thirdPostName;
|
||||
}
|
||||
return normalizeName(mapping.getRealPostName());
|
||||
}
|
||||
|
||||
private String normalizeName(String value) {
|
||||
if (StringUtils.isEmpty(value)) {
|
||||
return null;
|
||||
}
|
||||
return value.replace("\t", "").trim();
|
||||
}
|
||||
}
|
||||
|
|
@ -31,6 +31,8 @@ import com.zcloud.gbscommon.zclouduser.request.ZcloudUserInfoQry;
|
|||
import com.zcloud.gbscommon.zclouduser.request.ZcloudUserUpdateCmd;
|
||||
import com.zcloud.gbscommon.zclouduser.response.ZcloudUserCo;
|
||||
import com.zcloud.human.user.config.HumanResourcesConfig;
|
||||
import com.zcloud.human.user.dto.HumanSyncNameResolveCmd;
|
||||
import com.zcloud.human.user.dto.clientobject.HumanSyncNameResolveCO;
|
||||
import com.zcloud.human.user.domain.enums.UserEmploymentFlagEnum;
|
||||
import com.zcloud.human.user.domain.gateway.HumanUserGateway;
|
||||
import com.zcloud.human.user.domain.gateway.HumanUserRecordGateway;
|
||||
|
|
@ -142,6 +144,7 @@ public class HumanUserSyncExe {
|
|||
|
||||
private final HumanUserRecordGateway humanUserRecordGateway;
|
||||
private final HumanResourcesConfig humanResourcesConfig;
|
||||
private final HumanSyncNameResolveExe humanSyncNameResolveExe;
|
||||
|
||||
private final JSONConfig jsonConfig = JSONConfig.create().setIgnoreNullValue(true);
|
||||
|
||||
|
|
@ -1105,26 +1108,36 @@ public class HumanUserSyncExe {
|
|||
continue;
|
||||
}
|
||||
|
||||
Long corpId = getTargetCorpId(corporationName);
|
||||
String deptName = normalizeLookupName(jsonObject.getStr("dept_name"));
|
||||
String postName = resolvePostName(jsonObject);
|
||||
HumanSyncNameResolveCmd resolveCmd = new HumanSyncNameResolveCmd();
|
||||
resolveCmd.setThirdCorpName(corporationName);
|
||||
resolveCmd.setThirdDeptName(deptName);
|
||||
resolveCmd.setThirdPostName(postName);
|
||||
HumanSyncNameResolveCO resolveCO = humanSyncNameResolveExe.execute(resolveCmd);
|
||||
String realCorpName = normalizeLookupName(resolveCO.getRealCorpName());
|
||||
String realDeptName = normalizeLookupName(resolveCO.getRealDeptName());
|
||||
String realPostName = normalizeLookupName(resolveCO.getRealPostName());
|
||||
|
||||
Long corpId = getTargetCorpId(realCorpName);
|
||||
if (corpId == null) {
|
||||
log.info("未找到目标企业:{},跳过同步", corporationName);
|
||||
log.info("未找到目标企业,跳过同步,三方企业名={},映射企业名={},原始数据={}", corporationName, realCorpName, jsonObject);
|
||||
skipCount++;
|
||||
continue;
|
||||
}
|
||||
Map<String, Long> deptNameIdMap = corpId == null ? Collections.emptyMap() : getTargetCorpDeptNameIdMap(corpId);
|
||||
String deptName = jsonObject.getStr("dept_name");
|
||||
Long deptId = StringUtils.isEmpty(deptName) || deptNameIdMap == null ? null : deptNameIdMap.get(deptName);
|
||||
Long deptId = StringUtils.isEmpty(realDeptName) || deptNameIdMap == null ? null : deptNameIdMap.get(realDeptName);
|
||||
if (deptId == null) {
|
||||
log.info("未找到目标部门:{},跳过同步", deptName);
|
||||
log.info("未找到目标部门,跳过同步,三方企业名={},三方部门名={},映射部门名={},corpId={},原始数据={}",
|
||||
corporationName, deptName, realDeptName, corpId, jsonObject);
|
||||
skipCount++;
|
||||
continue;
|
||||
}
|
||||
String postName = resolvePostName(jsonObject);
|
||||
Map<String, Long> postNameIdMap = getDeptPostNameIdMap(corpId, deptId);
|
||||
Long postId = postNameIdMap.get(normalizeLookupName(postName));
|
||||
Long postId = postNameIdMap.get(realPostName);
|
||||
if (corpId == null || deptId == null || postId == null) {
|
||||
log.info("跳过用户状态同步:企业、部门或岗位未匹配,身份证号={},corpId={},deptId={},postName={},postId={},原始数据={}",
|
||||
idCardNumber, corpId, deptId, postName, postId, jsonObject);
|
||||
log.info("跳过用户状态同步:企业、部门或岗位未匹配,身份证号={},三方企业名={},三方部门名={},三方岗位名={},映射企业名={},映射部门名={},映射岗位名={},corpId={},deptId={},postId={},原始数据={}",
|
||||
idCardNumber, corporationName, deptName, postName, realCorpName, realDeptName, realPostName, corpId, deptId, postId, jsonObject);
|
||||
skipCount++;
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,25 @@
|
|||
package com.zcloud.human.user.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 人资名称映射解析入参
|
||||
*/
|
||||
@Data
|
||||
public class HumanSyncNameResolveCmd {
|
||||
|
||||
/**
|
||||
* 三方企业名称
|
||||
*/
|
||||
private String thirdCorpName;
|
||||
|
||||
/**
|
||||
* 三方部门名称
|
||||
*/
|
||||
private String thirdDeptName;
|
||||
|
||||
/**
|
||||
* 三方岗位名称
|
||||
*/
|
||||
private String thirdPostName;
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
package com.zcloud.human.user.dto.clientobject;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 人资名称映射解析结果
|
||||
*/
|
||||
@Data
|
||||
public class HumanSyncNameResolveCO {
|
||||
|
||||
/**
|
||||
* 真实企业名称
|
||||
*/
|
||||
private String realCorpName;
|
||||
|
||||
/**
|
||||
* 真实部门名称
|
||||
*/
|
||||
private String realDeptName;
|
||||
|
||||
/**
|
||||
* 真实岗位名称
|
||||
*/
|
||||
private String realPostName;
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
package com.zcloud.human.user.domain.gateway;
|
||||
|
||||
import com.zcloud.human.user.domain.model.HumanCorpNameMappingE;
|
||||
|
||||
/**
|
||||
* 人资企业名称关联网关
|
||||
*/
|
||||
public interface HumanCorpNameMappingGateway {
|
||||
|
||||
/**
|
||||
* 根据三方企业名称查询关联关系
|
||||
*/
|
||||
HumanCorpNameMappingE getByThirdCorpName(String thirdCorpName);
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
package com.zcloud.human.user.domain.gateway;
|
||||
|
||||
import com.zcloud.human.user.domain.model.HumanDeptNameMappingE;
|
||||
|
||||
/**
|
||||
* 人资部门名称关联网关
|
||||
*/
|
||||
public interface HumanDeptNameMappingGateway {
|
||||
|
||||
/**
|
||||
* 根据三方企业名称和部门名称查询关联关系
|
||||
*/
|
||||
HumanDeptNameMappingE getByThirdCorpNameAndThirdDeptName(String thirdCorpName, String thirdDeptName);
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
package com.zcloud.human.user.domain.gateway;
|
||||
|
||||
import com.zcloud.human.user.domain.model.HumanPostNameMappingE;
|
||||
|
||||
/**
|
||||
* 人资岗位名称关联网关
|
||||
*/
|
||||
public interface HumanPostNameMappingGateway {
|
||||
|
||||
/**
|
||||
* 根据三方企业、部门、岗位名称查询关联关系
|
||||
*/
|
||||
HumanPostNameMappingE getByThirdNames(String thirdCorpName, String thirdDeptName, String thirdPostName);
|
||||
}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
package com.zcloud.human.user.domain.model;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 人资企业名称关联实体
|
||||
*/
|
||||
@Data
|
||||
public class HumanCorpNameMappingE {
|
||||
private Long id;
|
||||
private String mappingId;
|
||||
private String thirdCorpName;
|
||||
private String realCorpName;
|
||||
private String remark;
|
||||
private Integer version;
|
||||
private Long createId;
|
||||
private String createName;
|
||||
private LocalDateTime createTime;
|
||||
private Long updateId;
|
||||
private String updateName;
|
||||
private LocalDateTime updateTime;
|
||||
private String deleteEnum;
|
||||
private Long tenantId;
|
||||
private Long orgId;
|
||||
private String env;
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
package com.zcloud.human.user.domain.model;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 人资部门名称关联实体
|
||||
*/
|
||||
@Data
|
||||
public class HumanDeptNameMappingE {
|
||||
private Long id;
|
||||
private String mappingId;
|
||||
private String thirdCorpName;
|
||||
private String thirdDeptName;
|
||||
private String realCorpName;
|
||||
private String realDeptName;
|
||||
private String remark;
|
||||
private Integer version;
|
||||
private Long createId;
|
||||
private String createName;
|
||||
private LocalDateTime createTime;
|
||||
private Long updateId;
|
||||
private String updateName;
|
||||
private LocalDateTime updateTime;
|
||||
private String deleteEnum;
|
||||
private Long tenantId;
|
||||
private Long orgId;
|
||||
private String env;
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
package com.zcloud.human.user.domain.model;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 人资岗位名称关联实体
|
||||
*/
|
||||
@Data
|
||||
public class HumanPostNameMappingE {
|
||||
private Long id;
|
||||
private String mappingId;
|
||||
private String thirdCorpName;
|
||||
private String thirdDeptName;
|
||||
private String thirdPostName;
|
||||
private String realCorpName;
|
||||
private String realDeptName;
|
||||
private String realPostName;
|
||||
private String remark;
|
||||
private Integer version;
|
||||
private Long createId;
|
||||
private String createName;
|
||||
private LocalDateTime createTime;
|
||||
private Long updateId;
|
||||
private String updateName;
|
||||
private LocalDateTime updateTime;
|
||||
private String deleteEnum;
|
||||
private Long tenantId;
|
||||
private Long orgId;
|
||||
private String env;
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
package com.zcloud.human.user.gatewayimpl;
|
||||
|
||||
import com.zcloud.human.user.domain.gateway.HumanCorpNameMappingGateway;
|
||||
import com.zcloud.human.user.domain.model.HumanCorpNameMappingE;
|
||||
import com.zcloud.human.user.persistence.dataobject.HumanCorpNameMappingDO;
|
||||
import com.zcloud.human.user.persistence.repository.HumanCorpNameMappingRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 人资企业名称关联网关实现
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class HumanCorpNameMappingGatewayImpl implements HumanCorpNameMappingGateway {
|
||||
|
||||
private final HumanCorpNameMappingRepository humanCorpNameMappingRepository;
|
||||
|
||||
@Override
|
||||
public HumanCorpNameMappingE getByThirdCorpName(String thirdCorpName) {
|
||||
return convertToE(humanCorpNameMappingRepository.getByThirdCorpName(thirdCorpName));
|
||||
}
|
||||
|
||||
private HumanCorpNameMappingE convertToE(HumanCorpNameMappingDO dataObject) {
|
||||
if (dataObject == null) {
|
||||
return null;
|
||||
}
|
||||
HumanCorpNameMappingE entity = new HumanCorpNameMappingE();
|
||||
BeanUtils.copyProperties(dataObject, entity);
|
||||
return entity;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
package com.zcloud.human.user.gatewayimpl;
|
||||
|
||||
import com.zcloud.human.user.domain.gateway.HumanDeptNameMappingGateway;
|
||||
import com.zcloud.human.user.domain.model.HumanDeptNameMappingE;
|
||||
import com.zcloud.human.user.persistence.dataobject.HumanDeptNameMappingDO;
|
||||
import com.zcloud.human.user.persistence.repository.HumanDeptNameMappingRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 人资部门名称关联网关实现
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class HumanDeptNameMappingGatewayImpl implements HumanDeptNameMappingGateway {
|
||||
|
||||
private final HumanDeptNameMappingRepository humanDeptNameMappingRepository;
|
||||
|
||||
@Override
|
||||
public HumanDeptNameMappingE getByThirdCorpNameAndThirdDeptName(String thirdCorpName, String thirdDeptName) {
|
||||
return convertToE(humanDeptNameMappingRepository.getByThirdCorpNameAndThirdDeptName(thirdCorpName, thirdDeptName));
|
||||
}
|
||||
|
||||
private HumanDeptNameMappingE convertToE(HumanDeptNameMappingDO dataObject) {
|
||||
if (dataObject == null) {
|
||||
return null;
|
||||
}
|
||||
HumanDeptNameMappingE entity = new HumanDeptNameMappingE();
|
||||
BeanUtils.copyProperties(dataObject, entity);
|
||||
return entity;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
package com.zcloud.human.user.gatewayimpl;
|
||||
|
||||
import com.zcloud.human.user.domain.gateway.HumanPostNameMappingGateway;
|
||||
import com.zcloud.human.user.domain.model.HumanPostNameMappingE;
|
||||
import com.zcloud.human.user.persistence.dataobject.HumanPostNameMappingDO;
|
||||
import com.zcloud.human.user.persistence.repository.HumanPostNameMappingRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 人资岗位名称关联网关实现
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class HumanPostNameMappingGatewayImpl implements HumanPostNameMappingGateway {
|
||||
|
||||
private final HumanPostNameMappingRepository humanPostNameMappingRepository;
|
||||
|
||||
@Override
|
||||
public HumanPostNameMappingE getByThirdNames(String thirdCorpName, String thirdDeptName, String thirdPostName) {
|
||||
return convertToE(humanPostNameMappingRepository.getByThirdNames(thirdCorpName, thirdDeptName, thirdPostName));
|
||||
}
|
||||
|
||||
private HumanPostNameMappingE convertToE(HumanPostNameMappingDO dataObject) {
|
||||
if (dataObject == null) {
|
||||
return null;
|
||||
}
|
||||
HumanPostNameMappingE entity = new HumanPostNameMappingE();
|
||||
BeanUtils.copyProperties(dataObject, entity);
|
||||
return entity;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
package com.zcloud.human.user.persistence.dataobject;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 人资企业名称关联数据对象
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@TableName("human_corp_name_mapping")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class HumanCorpNameMappingDO extends BaseDO {
|
||||
private Long id;
|
||||
private String mappingId;
|
||||
private String thirdCorpName;
|
||||
private String realCorpName;
|
||||
private String remark;
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
package com.zcloud.human.user.persistence.dataobject;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 人资部门名称关联数据对象
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@TableName("human_dept_name_mapping")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class HumanDeptNameMappingDO extends BaseDO {
|
||||
private Long id;
|
||||
private String mappingId;
|
||||
private String thirdCorpName;
|
||||
private String thirdDeptName;
|
||||
private String realCorpName;
|
||||
private String realDeptName;
|
||||
private String remark;
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
package com.zcloud.human.user.persistence.dataobject;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 人资岗位名称关联数据对象
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@TableName("human_post_name_mapping")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class HumanPostNameMappingDO extends BaseDO {
|
||||
private Long id;
|
||||
private String mappingId;
|
||||
private String thirdCorpName;
|
||||
private String thirdDeptName;
|
||||
private String thirdPostName;
|
||||
private String realCorpName;
|
||||
private String realDeptName;
|
||||
private String realPostName;
|
||||
private String remark;
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package com.zcloud.human.user.persistence.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zcloud.human.user.persistence.dataobject.HumanCorpNameMappingDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 人资企业名称关联Mapper
|
||||
*/
|
||||
@Mapper
|
||||
public interface HumanCorpNameMappingMapper extends BaseMapper<HumanCorpNameMappingDO> {
|
||||
|
||||
HumanCorpNameMappingDO getByThirdCorpName(@Param("thirdCorpName") String thirdCorpName);
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
package com.zcloud.human.user.persistence.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zcloud.human.user.persistence.dataobject.HumanDeptNameMappingDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 人资部门名称关联Mapper
|
||||
*/
|
||||
@Mapper
|
||||
public interface HumanDeptNameMappingMapper extends BaseMapper<HumanDeptNameMappingDO> {
|
||||
|
||||
HumanDeptNameMappingDO getByThirdCorpNameAndThirdDeptName(@Param("thirdCorpName") String thirdCorpName,
|
||||
@Param("thirdDeptName") String thirdDeptName);
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
package com.zcloud.human.user.persistence.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zcloud.human.user.persistence.dataobject.HumanPostNameMappingDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 人资岗位名称关联Mapper
|
||||
*/
|
||||
@Mapper
|
||||
public interface HumanPostNameMappingMapper extends BaseMapper<HumanPostNameMappingDO> {
|
||||
|
||||
HumanPostNameMappingDO getByThirdNames(@Param("thirdCorpName") String thirdCorpName,
|
||||
@Param("thirdDeptName") String thirdDeptName,
|
||||
@Param("thirdPostName") String thirdPostName);
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.zcloud.human.user.persistence.repository;
|
||||
|
||||
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
||||
import com.zcloud.human.user.persistence.dataobject.HumanCorpNameMappingDO;
|
||||
|
||||
/**
|
||||
* 人资企业名称关联Repository
|
||||
*/
|
||||
public interface HumanCorpNameMappingRepository extends BaseRepository<HumanCorpNameMappingDO> {
|
||||
|
||||
HumanCorpNameMappingDO getByThirdCorpName(String thirdCorpName);
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.zcloud.human.user.persistence.repository;
|
||||
|
||||
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
||||
import com.zcloud.human.user.persistence.dataobject.HumanDeptNameMappingDO;
|
||||
|
||||
/**
|
||||
* 人资部门名称关联Repository
|
||||
*/
|
||||
public interface HumanDeptNameMappingRepository extends BaseRepository<HumanDeptNameMappingDO> {
|
||||
|
||||
HumanDeptNameMappingDO getByThirdCorpNameAndThirdDeptName(String thirdCorpName, String thirdDeptName);
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.zcloud.human.user.persistence.repository;
|
||||
|
||||
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
||||
import com.zcloud.human.user.persistence.dataobject.HumanPostNameMappingDO;
|
||||
|
||||
/**
|
||||
* 人资岗位名称关联Repository
|
||||
*/
|
||||
public interface HumanPostNameMappingRepository extends BaseRepository<HumanPostNameMappingDO> {
|
||||
|
||||
HumanPostNameMappingDO getByThirdNames(String thirdCorpName, String thirdDeptName, String thirdPostName);
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package com.zcloud.human.user.persistence.repository.impl;
|
||||
|
||||
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
|
||||
import com.zcloud.human.user.persistence.dataobject.HumanCorpNameMappingDO;
|
||||
import com.zcloud.human.user.persistence.mapper.HumanCorpNameMappingMapper;
|
||||
import com.zcloud.human.user.persistence.repository.HumanCorpNameMappingRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 人资企业名称关联Repository实现
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class HumanCorpNameMappingRepositoryImpl extends BaseRepositoryImpl<HumanCorpNameMappingMapper, HumanCorpNameMappingDO> implements HumanCorpNameMappingRepository {
|
||||
|
||||
private final HumanCorpNameMappingMapper humanCorpNameMappingMapper;
|
||||
|
||||
@Override
|
||||
public HumanCorpNameMappingDO getByThirdCorpName(String thirdCorpName) {
|
||||
return humanCorpNameMappingMapper.getByThirdCorpName(thirdCorpName);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package com.zcloud.human.user.persistence.repository.impl;
|
||||
|
||||
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
|
||||
import com.zcloud.human.user.persistence.dataobject.HumanDeptNameMappingDO;
|
||||
import com.zcloud.human.user.persistence.mapper.HumanDeptNameMappingMapper;
|
||||
import com.zcloud.human.user.persistence.repository.HumanDeptNameMappingRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 人资部门名称关联Repository实现
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class HumanDeptNameMappingRepositoryImpl extends BaseRepositoryImpl<HumanDeptNameMappingMapper, HumanDeptNameMappingDO> implements HumanDeptNameMappingRepository {
|
||||
|
||||
private final HumanDeptNameMappingMapper humanDeptNameMappingMapper;
|
||||
|
||||
@Override
|
||||
public HumanDeptNameMappingDO getByThirdCorpNameAndThirdDeptName(String thirdCorpName, String thirdDeptName) {
|
||||
return humanDeptNameMappingMapper.getByThirdCorpNameAndThirdDeptName(thirdCorpName, thirdDeptName);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package com.zcloud.human.user.persistence.repository.impl;
|
||||
|
||||
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
|
||||
import com.zcloud.human.user.persistence.dataobject.HumanPostNameMappingDO;
|
||||
import com.zcloud.human.user.persistence.mapper.HumanPostNameMappingMapper;
|
||||
import com.zcloud.human.user.persistence.repository.HumanPostNameMappingRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 人资岗位名称关联Repository实现
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class HumanPostNameMappingRepositoryImpl extends BaseRepositoryImpl<HumanPostNameMappingMapper, HumanPostNameMappingDO> implements HumanPostNameMappingRepository {
|
||||
|
||||
private final HumanPostNameMappingMapper humanPostNameMappingMapper;
|
||||
|
||||
@Override
|
||||
public HumanPostNameMappingDO getByThirdNames(String thirdCorpName, String thirdDeptName, String thirdPostName) {
|
||||
return humanPostNameMappingMapper.getByThirdNames(thirdCorpName, thirdDeptName, thirdPostName);
|
||||
}
|
||||
}
|
||||
|
|
@ -100,3 +100,74 @@ CREATE TABLE `human_resource_corp` (
|
|||
KEY `idx_human_resource_corp_dept_code` (`dept_code`) USING BTREE,
|
||||
KEY `idx_human_resource_corp_corporation_code` (`corporation_code`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='人资企业部门本地缓存表';
|
||||
|
||||
CREATE TABLE `human_corp_name_mapping` (
|
||||
`id` bigint NOT NULL COMMENT '主键',
|
||||
`mapping_id` varchar(35) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '业务主键id',
|
||||
`third_corp_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '三方企业名称',
|
||||
`real_corp_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '统一用户真实企业名称',
|
||||
`remark` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '备注',
|
||||
`version` int DEFAULT NULL COMMENT '乐观锁',
|
||||
`create_id` bigint DEFAULT NULL COMMENT '创建人',
|
||||
`create_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人姓名',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`update_id` bigint DEFAULT NULL COMMENT '更新人',
|
||||
`update_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '修改人名称',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
`delete_enum` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '是否删除',
|
||||
`tenant_id` bigint DEFAULT NULL COMMENT '租户id',
|
||||
`org_id` bigint DEFAULT NULL COMMENT '机构id',
|
||||
`env` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '环境',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE KEY `uk_human_corp_name_mapping_third_corp_name` (`third_corp_name`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='人资企业名称映射表';
|
||||
|
||||
|
||||
CREATE TABLE `human_dept_name_mapping` (
|
||||
`id` bigint NOT NULL COMMENT '主键',
|
||||
`mapping_id` varchar(35) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '业务主键id',
|
||||
`third_corp_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '三方企业名称',
|
||||
`third_dept_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '三方部门名称',
|
||||
`real_corp_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '统一用户真实企业名称',
|
||||
`real_dept_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '统一用户真实部门名称',
|
||||
`remark` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '备注',
|
||||
`version` int DEFAULT NULL COMMENT '乐观锁',
|
||||
`create_id` bigint DEFAULT NULL COMMENT '创建人',
|
||||
`create_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人姓名',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`update_id` bigint DEFAULT NULL COMMENT '更新人',
|
||||
`update_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '修改人名称',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
`delete_enum` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '是否删除',
|
||||
`tenant_id` bigint DEFAULT NULL COMMENT '租户id',
|
||||
`org_id` bigint DEFAULT NULL COMMENT '机构id',
|
||||
`env` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '环境',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE KEY `uk_human_dept_name_mapping_third_names` (`third_corp_name`,`third_dept_name`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='人资部门名称映射表';
|
||||
|
||||
|
||||
CREATE TABLE `human_post_name_mapping` (
|
||||
`id` bigint NOT NULL COMMENT '主键',
|
||||
`mapping_id` varchar(35) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '业务主键id',
|
||||
`third_corp_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '三方企业名称',
|
||||
`third_dept_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '三方部门名称',
|
||||
`third_post_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '三方岗位名称',
|
||||
`real_corp_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '统一用户真实企业名称',
|
||||
`real_dept_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '统一用户真实部门名称',
|
||||
`real_post_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '统一用户真实岗位名称',
|
||||
`remark` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '备注',
|
||||
`version` int DEFAULT NULL COMMENT '乐观锁',
|
||||
`create_id` bigint DEFAULT NULL COMMENT '创建人',
|
||||
`create_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人姓名',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`update_id` bigint DEFAULT NULL COMMENT '更新人',
|
||||
`update_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '修改人名称',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
`delete_enum` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '是否删除',
|
||||
`tenant_id` bigint DEFAULT NULL COMMENT '租户id',
|
||||
`org_id` bigint DEFAULT NULL COMMENT '机构id',
|
||||
`env` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '环境',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE KEY `uk_human_post_name_mapping_third_names` (`third_corp_name`,`third_dept_name`,`third_post_name`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='人资岗位名称映射表';
|
||||
|
|
|
|||
|
|
@ -0,0 +1,39 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.zcloud.human.user.persistence.mapper.HumanCorpNameMappingMapper">
|
||||
|
||||
<resultMap id="BaseResultMap" type="com.zcloud.human.user.persistence.dataobject.HumanCorpNameMappingDO">
|
||||
<id column="id" property="id"/>
|
||||
<result column="mapping_id" property="mappingId"/>
|
||||
<result column="third_corp_name" property="thirdCorpName"/>
|
||||
<result column="real_corp_name" property="realCorpName"/>
|
||||
<result column="remark" property="remark"/>
|
||||
<result column="version" property="version"/>
|
||||
<result column="create_id" property="createId"/>
|
||||
<result column="create_name" property="createName"/>
|
||||
<result column="create_time" property="createTime"/>
|
||||
<result column="update_id" property="updateId"/>
|
||||
<result column="update_name" property="updateName"/>
|
||||
<result column="update_time" property="updateTime"/>
|
||||
<result column="delete_enum" property="deleteEnum"/>
|
||||
<result column="tenant_id" property="tenantId"/>
|
||||
<result column="org_id" property="orgId"/>
|
||||
<result column="env" property="env"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
id, mapping_id, third_corp_name, real_corp_name, remark, version,
|
||||
create_id, create_name, create_time, update_id, update_name, update_time,
|
||||
delete_enum, tenant_id, org_id, env
|
||||
</sql>
|
||||
|
||||
<select id="getByThirdCorpName" resultMap="BaseResultMap">
|
||||
SELECT <include refid="Base_Column_List"/>
|
||||
FROM human_corp_name_mapping
|
||||
WHERE third_corp_name = #{thirdCorpName}
|
||||
AND (delete_enum IS NULL OR delete_enum != 'Y')
|
||||
ORDER BY update_time DESC, id DESC
|
||||
LIMIT 1
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.zcloud.human.user.persistence.mapper.HumanDeptNameMappingMapper">
|
||||
|
||||
<resultMap id="BaseResultMap" type="com.zcloud.human.user.persistence.dataobject.HumanDeptNameMappingDO">
|
||||
<id column="id" property="id"/>
|
||||
<result column="mapping_id" property="mappingId"/>
|
||||
<result column="third_corp_name" property="thirdCorpName"/>
|
||||
<result column="third_dept_name" property="thirdDeptName"/>
|
||||
<result column="real_corp_name" property="realCorpName"/>
|
||||
<result column="real_dept_name" property="realDeptName"/>
|
||||
<result column="remark" property="remark"/>
|
||||
<result column="version" property="version"/>
|
||||
<result column="create_id" property="createId"/>
|
||||
<result column="create_name" property="createName"/>
|
||||
<result column="create_time" property="createTime"/>
|
||||
<result column="update_id" property="updateId"/>
|
||||
<result column="update_name" property="updateName"/>
|
||||
<result column="update_time" property="updateTime"/>
|
||||
<result column="delete_enum" property="deleteEnum"/>
|
||||
<result column="tenant_id" property="tenantId"/>
|
||||
<result column="org_id" property="orgId"/>
|
||||
<result column="env" property="env"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
id, mapping_id, third_corp_name, third_dept_name, real_corp_name, real_dept_name, remark, version,
|
||||
create_id, create_name, create_time, update_id, update_name, update_time,
|
||||
delete_enum, tenant_id, org_id, env
|
||||
</sql>
|
||||
|
||||
<select id="getByThirdCorpNameAndThirdDeptName" resultMap="BaseResultMap">
|
||||
SELECT <include refid="Base_Column_List"/>
|
||||
FROM human_dept_name_mapping
|
||||
WHERE third_corp_name = #{thirdCorpName}
|
||||
AND third_dept_name = #{thirdDeptName}
|
||||
AND (delete_enum IS NULL OR delete_enum != 'Y')
|
||||
ORDER BY update_time DESC, id DESC
|
||||
LIMIT 1
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.zcloud.human.user.persistence.mapper.HumanPostNameMappingMapper">
|
||||
|
||||
<resultMap id="BaseResultMap" type="com.zcloud.human.user.persistence.dataobject.HumanPostNameMappingDO">
|
||||
<id column="id" property="id"/>
|
||||
<result column="mapping_id" property="mappingId"/>
|
||||
<result column="third_corp_name" property="thirdCorpName"/>
|
||||
<result column="third_dept_name" property="thirdDeptName"/>
|
||||
<result column="third_post_name" property="thirdPostName"/>
|
||||
<result column="real_corp_name" property="realCorpName"/>
|
||||
<result column="real_dept_name" property="realDeptName"/>
|
||||
<result column="real_post_name" property="realPostName"/>
|
||||
<result column="remark" property="remark"/>
|
||||
<result column="version" property="version"/>
|
||||
<result column="create_id" property="createId"/>
|
||||
<result column="create_name" property="createName"/>
|
||||
<result column="create_time" property="createTime"/>
|
||||
<result column="update_id" property="updateId"/>
|
||||
<result column="update_name" property="updateName"/>
|
||||
<result column="update_time" property="updateTime"/>
|
||||
<result column="delete_enum" property="deleteEnum"/>
|
||||
<result column="tenant_id" property="tenantId"/>
|
||||
<result column="org_id" property="orgId"/>
|
||||
<result column="env" property="env"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
id, mapping_id, third_corp_name, third_dept_name, third_post_name,
|
||||
real_corp_name, real_dept_name, real_post_name, remark, version,
|
||||
create_id, create_name, create_time, update_id, update_name, update_time,
|
||||
delete_enum, tenant_id, org_id, env
|
||||
</sql>
|
||||
|
||||
<select id="getByThirdNames" resultMap="BaseResultMap">
|
||||
SELECT <include refid="Base_Column_List"/>
|
||||
FROM human_post_name_mapping
|
||||
WHERE third_corp_name = #{thirdCorpName}
|
||||
AND third_dept_name = #{thirdDeptName}
|
||||
AND third_post_name = #{thirdPostName}
|
||||
AND (delete_enum IS NULL OR delete_enum != 'Y')
|
||||
ORDER BY update_time DESC, id DESC
|
||||
LIMIT 1
|
||||
</select>
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue