11 changed files with 594 additions and 60 deletions
@ -0,0 +1,46 @@ |
|||
package com.zdxt.enforcementcode.domain.bean; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* 深i企用户 |
|||
*/ |
|||
public class UserSearchDto implements Serializable { |
|||
|
|||
/** |
|||
* 登录账号 |
|||
*/ |
|||
private String loginName; |
|||
/** |
|||
* 手机号码 |
|||
*/ |
|||
private String phone; |
|||
/** |
|||
* 用户类型 |
|||
*/ |
|||
private Integer userSource; |
|||
|
|||
public String getLoginName() { |
|||
return loginName; |
|||
} |
|||
|
|||
public void setLoginName(String loginName) { |
|||
this.loginName = loginName; |
|||
} |
|||
|
|||
public String getPhone() { |
|||
return phone; |
|||
} |
|||
|
|||
public void setPhone(String phone) { |
|||
this.phone = phone; |
|||
} |
|||
|
|||
public Integer getUserSource() { |
|||
return userSource; |
|||
} |
|||
|
|||
public void setUserSource(Integer userSource) { |
|||
this.userSource = userSource; |
|||
} |
|||
} |
|||
@ -0,0 +1,101 @@ |
|||
package com.zdxt.enforcementcode.quartz.job; |
|||
|
|||
import com.zdxt.enforcementcode.domain.bo.SrzDeptBo; |
|||
import com.zdxt.enforcementcode.domain.vo.SrzDeptVo; |
|||
import com.zdxt.enforcementcode.service.ISrzDeptService; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.dromara.common.core.utils.StringUtils; |
|||
import org.dromara.system.domain.bo.SysDeptBo; |
|||
import org.dromara.system.domain.vo.SysDeptVo; |
|||
import org.dromara.system.service.ISysDeptService; |
|||
import org.slf4j.Logger; |
|||
import org.slf4j.LoggerFactory; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.beans.factory.annotation.Value; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
import java.util.HashMap; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* 同步部门信息 |
|||
*/ |
|||
@Slf4j |
|||
@Component |
|||
@RequiredArgsConstructor |
|||
public class SynDeptInfoJob { |
|||
|
|||
@Value("${srnwg.secretKey}") |
|||
private String secretKey; |
|||
|
|||
@Autowired private ISrzDeptService iSrzDeptService; |
|||
@Autowired private ISysDeptService sysDeptService; |
|||
|
|||
public static Map<String,String> params = new HashMap<>(); |
|||
|
|||
private static final Logger log = LoggerFactory.getLogger(SynDeptInfoJob.class); |
|||
|
|||
|
|||
public void run(){ |
|||
this.deptInfo(); |
|||
} |
|||
|
|||
/** 同步部门数据 */ |
|||
public void deptInfo(){ |
|||
log.info("====================> 市认证原始表 -> 业务表 同步开始"); |
|||
int insertNum = 0; |
|||
int updateNum = 0; |
|||
int rowNom_srz = 0; |
|||
try { |
|||
// 做个死循环, 一直到查寻不到数据了再break
|
|||
while (true) { |
|||
SrzDeptBo bo = new SrzDeptBo(); |
|||
bo.setNeedUpdate(0L); |
|||
List<SrzDeptVo> srzDeptList = iSrzDeptService.queryList(bo); |
|||
// 如果查出结果为空 或 长度为0 则跳出循环
|
|||
if (srzDeptList == null || srzDeptList.isEmpty() || srzDeptList.size() == 0) break; |
|||
|
|||
// 开始同步更新数据到用户表
|
|||
for(SrzDeptVo srzDept : srzDeptList){ |
|||
log.info("====> 获取数据: {}", srzDept.getName()); |
|||
SysDeptBo sysDeptBo = new SysDeptBo(); |
|||
// 机构ID organizationId
|
|||
sysDeptBo.setDeptId(srzDept.getOrganizationid()); |
|||
// 机构父节点 parentId
|
|||
sysDeptBo.setParentId(srzDept.getParentid()); |
|||
sysDeptBo.setOrganizationParentId(srzDept.getParentid()); |
|||
// 机构名称 name
|
|||
sysDeptBo.setDeptName(srzDept.getName()); |
|||
|
|||
|
|||
//限制唯一部门id
|
|||
String organizationId = srzDept.getOrganizationid(); |
|||
if(StringUtils.isNotEmpty(organizationId)){ |
|||
SysDeptVo uniqueDept = sysDeptService.selectDeptById(organizationId); |
|||
if (null != uniqueDept && uniqueDept.getDeptId() != null) { |
|||
// 更新数据库
|
|||
sysDeptBo.setDeptId(uniqueDept.getDeptId()); |
|||
log.info("====> 更新数据: {}: {}", uniqueDept.getDeptId(), uniqueDept.getDeptName()); |
|||
int rowNum = sysDeptService.updateDept(sysDeptBo); |
|||
updateNum += rowNum; |
|||
} else { |
|||
// 插入数据库
|
|||
log.info("====> 新增数据: {}: {}", sysDeptBo.getDeptId(), sysDeptBo.getDeptName()); |
|||
int rowNum = sysDeptService.insertDept(sysDeptBo); |
|||
insertNum += rowNum; |
|||
} |
|||
srzDept.setNeedUpdate(1L); |
|||
int srz_num = iSrzDeptService.update(srzDept); |
|||
rowNom_srz += srz_num; |
|||
} |
|||
} |
|||
} |
|||
log.info("新增部门数量 : {} / 更新用户数量 : {} / 更新原始表数 : {}", insertNum, updateNum, rowNom_srz); |
|||
} catch (Exception e) { |
|||
System.out.println(e); |
|||
e.printStackTrace(); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,154 @@ |
|||
package com.zdxt.enforcementcode.quartz.job; |
|||
|
|||
import com.zdxt.enforcementcode.common.util.IdCardCryptoUtil; |
|||
import com.zdxt.enforcementcode.domain.bean.UserSearchDto; |
|||
import com.zdxt.enforcementcode.domain.bo.SrzUserBo; |
|||
import com.zdxt.enforcementcode.domain.vo.SrzUserVo; |
|||
import com.zdxt.enforcementcode.service.ISrzUserService; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.dromara.common.core.utils.StringUtils; |
|||
import org.dromara.system.domain.bo.SysUserBo; |
|||
import org.dromara.system.domain.vo.SysUserVo; |
|||
import org.dromara.system.service.ISysDictDataService; |
|||
import org.dromara.system.service.ISysUserService; |
|||
import org.dromara.system.service.impl.SysUserServiceImpl; |
|||
import org.slf4j.Logger; |
|||
import org.slf4j.LoggerFactory; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.beans.factory.annotation.Value; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
import java.util.HashMap; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* 同步用户信息定时任务 |
|||
*/ |
|||
@Slf4j |
|||
@Component |
|||
@RequiredArgsConstructor |
|||
public class SynUserInfoJob { |
|||
|
|||
@Value("${srnwg.secretKey}") |
|||
private String secretKey; |
|||
|
|||
@Autowired |
|||
private ISrzUserService iSrzUserService; |
|||
|
|||
@Autowired |
|||
private ISysDictDataService sysDictDataService; |
|||
|
|||
@Autowired |
|||
private ISysUserService sysUserService; |
|||
|
|||
public static Map<String,String> params = new HashMap<>(); |
|||
|
|||
private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class); |
|||
|
|||
public void run(){ |
|||
this.userInfo(); |
|||
} |
|||
|
|||
/** 同步用户数据 */ |
|||
public void userInfo(){ |
|||
log.info("====================> 市认证原始表 -> 业务表 同步开始"); |
|||
int insertNum = 0; |
|||
int updateNum = 0; |
|||
int rowNom_srz = 0; |
|||
try { |
|||
// 做个死循环, 一直到查寻不到数据了再break
|
|||
while (true) { |
|||
SrzUserBo srzUserBo = new SrzUserBo(); |
|||
srzUserBo.setNeedUpdate(0L); |
|||
List<SrzUserVo> srzUserList = iSrzUserService.queryList(srzUserBo); |
|||
// 如果查出结果为空 或 长度为0 则跳出循环
|
|||
if (srzUserList == null || srzUserList.isEmpty() || srzUserList.size() == 0) break; |
|||
|
|||
// 开始同步更新数据到用户表
|
|||
for(SrzUserVo srzUser : srzUserList){ |
|||
log.info("====> 获取数据: {}", srzUser.getUsername()); |
|||
SysUserBo sysUserBo = new SysUserBo(); |
|||
sysUserBo.setSex(srzUser.getGendercode()); |
|||
sysUserBo.setDeptId(srzUser.getOrganizationid()); |
|||
sysUserBo.setOrganizationId(srzUser.getOrganizationid()); |
|||
sysUserBo.setStrUserId(srzUser.getUserid()); |
|||
sysUserBo.setSrzUserid(srzUser.getSrzuserid()); |
|||
sysUserBo.setFullname(srzUser.getFullname()); |
|||
sysUserBo.setUserName(srzUser.getFullname()); |
|||
sysUserBo.setTaskId(srzUser.getTaskid()); |
|||
sysUserBo.setSystemId(srzUser.getSystemid()); |
|||
sysUserBo.setLoginName(srzUser.getUsername()); |
|||
sysUserBo.setEffectOn(srzUser.getEffecton()); |
|||
sysUserBo.setIsDisabled(srzUser.getIsdisabled()); |
|||
sysUserBo.setIsDeleted(srzUser.getIsdeleted()); |
|||
sysUserBo.setCreateAt(srzUser.getCreateat()); |
|||
sysUserBo.setUpdateAt(srzUser.getUpdateat()); |
|||
sysUserBo.setGuid(srzUser.getGuid()); |
|||
//用户类型 0 系统用户
|
|||
sysUserBo.setUserSource(0); |
|||
//手机号加密
|
|||
String mobileNumber = ""; |
|||
try { |
|||
mobileNumber = IdCardCryptoUtil.symmetricEncryptIdCard(secretKey, srzUser.getMobilenumber()); |
|||
} catch (Exception e) { |
|||
System.out.println(e.getMessage()); |
|||
mobileNumber = ""; |
|||
} |
|||
sysUserBo.setMobileNumber(mobileNumber); |
|||
sysUserBo.setPhonenumber(mobileNumber); |
|||
sysUserBo.setEmail(srzUser.getEmail()); |
|||
sysUserBo.setCertificateTypeId(srzUser.getCertificatetypeid()); |
|||
sysUserBo.setCertificateTypeIdCode(srzUser.getCertificatetypeidcode()); |
|||
|
|||
//证件号加密
|
|||
String certificateNumber = ""; |
|||
try { |
|||
certificateNumber = IdCardCryptoUtil.symmetricEncryptIdCard(secretKey, srzUser.getCertificatenumber()); |
|||
} catch (Exception e) { |
|||
certificateNumber = ""; |
|||
} |
|||
|
|||
sysUserBo.setCertificateNumber(certificateNumber); |
|||
sysUserBo.setIsMappingPerson(srzUser.getIsmappingperson()); |
|||
sysUserBo.randomSalt(); |
|||
//新增用户默认不删除标记
|
|||
sysUserBo.setDelFlag("0"); |
|||
|
|||
//限制只通过用户信息的username来判断,避免登录出现问题
|
|||
String userName = srzUser.getUsername(); |
|||
if(StringUtils.isNotEmpty(userName)){ |
|||
UserSearchDto userSearchDto = new UserSearchDto(); |
|||
userSearchDto.setUserSource(0); |
|||
SysUserVo uniqueUser = sysUserService.selectUserByLoginName(userName); |
|||
if (null != uniqueUser && uniqueUser.getUserId() != null) { |
|||
// 更新数据库
|
|||
sysUserBo.setUserId(uniqueUser.getUserId()); |
|||
if (StringUtils.isEmpty(sysUserBo.getLawCertificateNum())) { |
|||
sysUserBo.setLawCertificateNum(uniqueUser.getLawCertificateNum()); |
|||
} |
|||
|
|||
log.info("====> 更新数据: {}", srzUser.getUsername()); |
|||
int rowNum = sysUserService.updateUser(sysUserBo); |
|||
updateNum += rowNum; |
|||
} else { |
|||
// 插入数据库
|
|||
log.info("====> 新增数据: {}", srzUser.getUsername()); |
|||
int rowNum = sysUserService.insertUser(sysUserBo); |
|||
insertNum += rowNum; |
|||
} |
|||
srzUser.setNeedUpdate(1L); |
|||
int srz_num = iSrzUserService.update(srzUser); |
|||
rowNom_srz += srz_num; |
|||
} |
|||
} |
|||
} |
|||
log.info("新增用户数量 : {} / 更新用户数量 : {} / 更新原始表数 : {}", insertNum, updateNum, rowNom_srz); |
|||
} catch (Exception e) { |
|||
System.out.println(e); |
|||
e.printStackTrace(); |
|||
} |
|||
} |
|||
|
|||
} |
|||
Loading…
Reference in new issue