Compare commits
2 Commits
e89935a148
...
b98901dd35
| Author | SHA1 | Date |
|---|---|---|
|
|
b98901dd35 | |
|
|
e094a3321d |
|
|
@ -274,4 +274,13 @@ public class NuEmployeesAdvisoryInfo implements Serializable {
|
|||
//信息修改状态 空:没提交过修改 1修改申请中 2通过 3驳回*/
|
||||
@TableField(exist = false)
|
||||
private String modifyState;
|
||||
|
||||
private String lastLoginOrg;//最近一次登录机构编码
|
||||
|
||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private java.util.Date lastLoginTime;//最近上一次登录时间
|
||||
|
||||
private String izInit;//是否需要员工初始化 0否 1是
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|||
import com.google.common.collect.Maps;
|
||||
import com.nu.dto.EmployeesApplyMQDto;
|
||||
import com.nu.dto.EmployeesStatusMQDto;
|
||||
import com.nu.dto.SysUserMQDto;
|
||||
import com.nu.entity.WxNoticeEntity;
|
||||
import com.nu.enums.WxClientType;
|
||||
import com.nu.modules.employees.entity.EmployeesOrg;
|
||||
|
|
@ -26,6 +27,7 @@ import org.springframework.beans.BeanUtils;
|
|||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
|
@ -45,7 +47,7 @@ public class EmployeesMQListener {
|
|||
private ISysBaseAPI sysBaseAPI;
|
||||
|
||||
/**
|
||||
* 员工-机构关系状态调整
|
||||
* 员工-机构关系状态调整,并判断是否初始化账号
|
||||
* 只修改审核状态、审核备注
|
||||
*
|
||||
* @param dto
|
||||
|
|
@ -72,8 +74,166 @@ public class EmployeesMQListener {
|
|||
uw.eq("org_code", dto.getOrgCode());
|
||||
uw.eq("iz_history", "1");
|
||||
employeesOrgService.update(employeesOrg, uw);
|
||||
|
||||
//审批通过,判断是否需要通知业务系统初始化登录账户。需要初始化则直接通知;不需要初始化则需要从已存在的业务系统中获取账号信息,并将账号信息通知给此审批的业务系统
|
||||
if ("2".equals(dto.getAuditStatus())) {
|
||||
NuEmployeesAdvisoryInfo employeesAd = employeesAdvisoryInfoService.getById(dto.getEmployeeId());
|
||||
if(employeesAd.getIzInit().equals("1")){
|
||||
//需要初始化,直接通知审批业务系统进行初始化
|
||||
SysUserMQDto sysUserMQDto = new SysUserMQDto();
|
||||
sysUserMQDto.setEmployeeId(dto.getEmployeeId());
|
||||
sysUserMQDto.setIzInit("1");
|
||||
sysUserMQDto.setIzInitPassword("0");//不需要更新其他业务平台密码
|
||||
rabbitMQUtil.sendToExchange("hldy.employees", dto.getOrgCode() + ".employees.initsysuser", sysUserMQDto);
|
||||
}else{
|
||||
long diffInMillis = Math.abs((new Date()).getTime() - employeesAd.getLastLoginTime().getTime());
|
||||
// 30天的毫秒数(近似值)
|
||||
long oneMonthInMillis = 30L * 24 * 60 * 60 * 1000;
|
||||
if(diffInMillis > oneMonthInMillis){
|
||||
//最近登录时间大于30天,也需要初始化
|
||||
SysUserMQDto sysUserMQDto = new SysUserMQDto();
|
||||
sysUserMQDto.setEmployeeId(dto.getEmployeeId());
|
||||
sysUserMQDto.setIzInit("1");
|
||||
sysUserMQDto.setIzInitPassword("1");//需要更新其他业务平台密码
|
||||
rabbitMQUtil.sendToExchange("hldy.employees", dto.getOrgCode() + ".employees.initsysuser", sysUserMQDto);
|
||||
}else{
|
||||
UpdateWrapper<EmployeesOrg> uwOrg = new UpdateWrapper<>();
|
||||
uwOrg.eq("employees_id", dto.getEmployeeId());
|
||||
uwOrg.eq("status", "2");//审批通过
|
||||
uwOrg.eq("iz_history", "1");//非历史
|
||||
uwOrg.eq("iz_freeze", "0");//未冻结
|
||||
uwOrg.eq("org_code", employeesAd.getLastLoginOrg());//机构
|
||||
EmployeesOrg empOrg = employeesOrgService.getOne(uwOrg);
|
||||
if(empOrg!=null){
|
||||
//不需要初始化,发送MQ从原业务系统获取账号信息,MQ收到账号信息后再通知给审批业务系统
|
||||
SysUserMQDto sysUserMQDto = new SysUserMQDto();
|
||||
sysUserMQDto.setEmployeeId(dto.getEmployeeId());
|
||||
sysUserMQDto.setTargetOrgCode(dto.getOrgCode());
|
||||
rabbitMQUtil.sendToExchange("hldy.employees", employeesAd.getLastLoginOrg() + ".employees.sysuser.info", sysUserMQDto);
|
||||
}else{
|
||||
//原账号冻结,也需要初始化
|
||||
SysUserMQDto sysUserMQDto = new SysUserMQDto();
|
||||
sysUserMQDto.setEmployeeId(dto.getEmployeeId());
|
||||
sysUserMQDto.setIzInit("1");
|
||||
sysUserMQDto.setIzInitPassword("1");//需要更新其他业务平台密码
|
||||
rabbitMQUtil.sendToExchange("hldy.employees", dto.getOrgCode() + ".employees.initsysuser", sysUserMQDto);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改员工账户最近一次登录信息
|
||||
*
|
||||
* @param dto
|
||||
*/
|
||||
@RabbitListener(bindings = @QueueBinding(value = @Queue(name = "hldy.employeesorg.lastlogin", durable = "true"),
|
||||
exchange = @Exchange(name = "hldy.employees", type = ExchangeTypes.DIRECT),
|
||||
key = "hldy.employeesorg.lastlogin"), errorHandler = "employeesMQErrorHandler")
|
||||
public void handleEmpLastLogin(SysUserMQDto dto) {
|
||||
NuEmployeesAdvisoryInfo employeesAd = new NuEmployeesAdvisoryInfo();
|
||||
employeesAd.setId(dto.getEmployeeId());
|
||||
employeesAd.setIzInit("0");
|
||||
employeesAd.setLastLoginOrg(dto.getOrgCode());
|
||||
employeesAd.setLastLoginTime(new Date());
|
||||
employeesAdvisoryInfoService.updateById(employeesAd);
|
||||
}
|
||||
|
||||
/**
|
||||
* 员工账户密码同步
|
||||
*
|
||||
* @param dto
|
||||
*/
|
||||
@RabbitListener(bindings = @QueueBinding(value = @Queue(name = "hldy.employeesorg.sysuser.sync", durable = "true"),
|
||||
exchange = @Exchange(name = "hldy.employees", type = ExchangeTypes.DIRECT),
|
||||
key = "hldy.employeesorg.sysuser.sync"), errorHandler = "employeesMQErrorHandler")
|
||||
public void handleSysuserPwd(SysUserMQDto dto) {
|
||||
UpdateWrapper<EmployeesOrg> uw = new UpdateWrapper<>();
|
||||
uw.eq("employees_id", dto.getEmployeeId());
|
||||
uw.eq("status", "2");//审批通过
|
||||
uw.eq("iz_history", "1");//非历史
|
||||
uw.eq("iz_freeze", "0");//未冻结
|
||||
List<EmployeesOrg> list = employeesOrgService.list(uw);
|
||||
if(list.size()>0){
|
||||
for(int i=0;i<list.size();i++){
|
||||
EmployeesOrg entity = list.get(i);
|
||||
rabbitMQUtil.sendToExchange("hldy.employees", entity.getOrgCode() + ".employees.sysuser.pwd.sync", dto);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 员工账户信息同步到目标机构
|
||||
*
|
||||
* @param dto
|
||||
*/
|
||||
@RabbitListener(bindings = @QueueBinding(value = @Queue(name = "hldy.employeesorg.sysuser.info", durable = "true"),
|
||||
exchange = @Exchange(name = "hldy.employees", type = ExchangeTypes.DIRECT),
|
||||
key = "hldy.employeesorg.sysuser.info"), errorHandler = "employeesMQErrorHandler")
|
||||
public void handleSysuserInfo(SysUserMQDto dto) {
|
||||
dto.setIzInit("0");
|
||||
dto.setIzInitPassword("0");//需要更新其他业务平台密码
|
||||
rabbitMQUtil.sendToExchange("hldy.employees", dto.getTargetOrgCode() + ".employees.initsysuser", dto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断业务如何创建登录账号
|
||||
* 只修改审核状态、审核备注
|
||||
*
|
||||
* @param dto
|
||||
*/
|
||||
@RabbitListener(bindings = @QueueBinding(value = @Queue(name = "hldy.employeesorg.howtoinitsysuser", durable = "true"),
|
||||
exchange = @Exchange(name = "hldy.employees", type = ExchangeTypes.DIRECT),
|
||||
key = "hldy.employeesorg.howtoinitsysuser"), errorHandler = "employeesMQErrorHandler")
|
||||
public void handleHowToInitSysuser(SysUserMQDto dto) {
|
||||
NuEmployeesAdvisoryInfo employeesAd = employeesAdvisoryInfoService.getById(dto.getEmployeeId());
|
||||
if(employeesAd.getIzInit().equals("1")){
|
||||
//需要初始化,直接通知审批业务系统进行初始化
|
||||
SysUserMQDto sysUserMQDto = new SysUserMQDto();
|
||||
sysUserMQDto.setEmployeeId(dto.getEmployeeId());
|
||||
sysUserMQDto.setIzInit("1");
|
||||
sysUserMQDto.setIzInitPassword("0");//不需要更新其他业务平台密码
|
||||
rabbitMQUtil.sendToExchange("hldy.employees", dto.getOrgCode() + ".employees.initsysuser", sysUserMQDto);
|
||||
}else{
|
||||
long diffInMillis = Math.abs((new Date()).getTime() - employeesAd.getLastLoginTime().getTime());
|
||||
// 30天的毫秒数(近似值)
|
||||
long oneMonthInMillis = 30L * 24 * 60 * 60 * 1000;
|
||||
if(diffInMillis > oneMonthInMillis){
|
||||
//最近登录时间大于30天,也需要初始化
|
||||
SysUserMQDto sysUserMQDto = new SysUserMQDto();
|
||||
sysUserMQDto.setEmployeeId(dto.getEmployeeId());
|
||||
sysUserMQDto.setIzInit("1");
|
||||
sysUserMQDto.setIzInitPassword("1");//需要更新其他业务平台密码
|
||||
rabbitMQUtil.sendToExchange("hldy.employees", dto.getOrgCode() + ".employees.initsysuser", sysUserMQDto);
|
||||
}else{
|
||||
UpdateWrapper<EmployeesOrg> uwOrg = new UpdateWrapper<>();
|
||||
uwOrg.eq("employees_id", dto.getEmployeeId());
|
||||
uwOrg.eq("status", "2");//审批通过
|
||||
uwOrg.eq("iz_history", "1");//非历史
|
||||
uwOrg.eq("iz_freeze", "0");//未冻结
|
||||
uwOrg.eq("org_code", employeesAd.getLastLoginOrg());//机构
|
||||
EmployeesOrg empOrg = employeesOrgService.getOne(uwOrg);
|
||||
if(empOrg!=null){
|
||||
//不需要初始化,发送MQ从原业务系统获取账号信息,MQ收到账号信息后再通知给审批业务系统
|
||||
SysUserMQDto sysUserMQDto = new SysUserMQDto();
|
||||
sysUserMQDto.setEmployeeId(dto.getEmployeeId());
|
||||
sysUserMQDto.setTargetOrgCode(dto.getOrgCode());
|
||||
rabbitMQUtil.sendToExchange("hldy.employees", employeesAd.getLastLoginOrg() + ".employees.sysuser.info", sysUserMQDto);
|
||||
}else{
|
||||
//原账号冻结,也需要初始化
|
||||
SysUserMQDto sysUserMQDto = new SysUserMQDto();
|
||||
sysUserMQDto.setEmployeeId(dto.getEmployeeId());
|
||||
sysUserMQDto.setIzInit("1");
|
||||
sysUserMQDto.setIzInitPassword("1");//需要更新其他业务平台密码
|
||||
rabbitMQUtil.sendToExchange("hldy.employees", dto.getOrgCode() + ".employees.initsysuser", sysUserMQDto);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 员工-机构关系状态调整
|
||||
* 只修改在线状态
|
||||
|
|
|
|||
|
|
@ -0,0 +1,107 @@
|
|||
package com.nu.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户表
|
||||
* </p>
|
||||
*
|
||||
* @Author scott
|
||||
* @since 2018-12-20
|
||||
*/
|
||||
@Data
|
||||
public class SysUserMQDto implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 员工Id
|
||||
*/
|
||||
private String employeeId;
|
||||
|
||||
/**
|
||||
* 登录账号
|
||||
*/
|
||||
private String username;
|
||||
|
||||
/**
|
||||
* 真实姓名
|
||||
*/
|
||||
private String realname;
|
||||
|
||||
/**
|
||||
* 密码
|
||||
*/
|
||||
private String password;
|
||||
|
||||
/**
|
||||
* md5密码盐
|
||||
*/
|
||||
private String salt;
|
||||
|
||||
/**
|
||||
* 头像
|
||||
*/
|
||||
private String avatar;
|
||||
|
||||
/**
|
||||
* 生日
|
||||
*/
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private Date birthday;
|
||||
|
||||
/**
|
||||
* 性别(1:男 2:女)
|
||||
*/
|
||||
private Integer sex;
|
||||
|
||||
/**
|
||||
* 电子邮件
|
||||
*/
|
||||
private String email;
|
||||
|
||||
/**
|
||||
* 电话
|
||||
*/
|
||||
private String phone;
|
||||
|
||||
/**
|
||||
* 结构编码
|
||||
*/
|
||||
private String orgCode;
|
||||
|
||||
/**
|
||||
* 目的结构编码
|
||||
*/
|
||||
private String targetOrgCode;
|
||||
|
||||
/**
|
||||
* 状态(1:正常 2:冻结 )
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 删除状态(0,正常,1已删除)
|
||||
*/
|
||||
private Integer delFlag;
|
||||
|
||||
/**
|
||||
* 是否需要初始化(0,否,1是)
|
||||
*/
|
||||
private String izInit;
|
||||
|
||||
/**
|
||||
* 是否需要初始化密码(0,否,1是)
|
||||
*/
|
||||
private String izInitPassword;
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue