1、修复bug:员工入驻机构/被机构邀请通过后,添加对应机构账号无法登录问题

2、修复bug:员工新入驻机构添加账号时,如果已在其他机构入驻,则复用对应平台账号数据未生效
3、新增:员工变更账号密码时,其它业务平台统一修改此员工密码
This commit is contained in:
1378012178@qq.com 2025-10-21 11:25:05 +08:00
parent 9f533843d4
commit 96ea2254d5
2 changed files with 42 additions and 45 deletions

View File

@ -78,25 +78,22 @@ public class EmployeesMQListener {
//审批通过判断是否需要通知业务系统初始化登录账户需要初始化则直接通知不需要初始化则需要从已存在的业务系统中获取账号信息并将账号信息通知给此审批的业务系统
if ("2".equals(dto.getAuditStatus())) {
//需要初始化直接通知审批业务系统进行初始化
SysUserMQDto sysUserMQDto = new SysUserMQDto();
sysUserMQDto.setEmployeeId(dto.getEmployeeId());
sysUserMQDto.setIzInit("1");
sysUserMQDto.setIzInitPassword("1");
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);
//不需要更新其他业务平台密码
sysUserMQDto.setIzInitPassword("0");
} 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());
@ -106,21 +103,19 @@ public class EmployeesMQListener {
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);
//发送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);
}
}
}
//审批通过 初始化账号密码
rabbitMQUtil.sendToExchange("hldy.employees", dto.getOrgCode() + ".employees.initsysuser", sysUserMQDto);
}
}
@ -188,25 +183,22 @@ public class EmployeesMQListener {
exchange = @Exchange(name = "hldy.employees", type = ExchangeTypes.DIRECT),
key = "hldy.employeesorg.howtoinitsysuser"), errorHandler = "employeesMQErrorHandler")
public void handleHowToInitSysuser(SysUserMQDto dto) {
//原账号冻结也需要初始化
SysUserMQDto sysUserMQDto = new SysUserMQDto();
sysUserMQDto.setEmployeeId(dto.getEmployeeId());
sysUserMQDto.setIzInit("1");
sysUserMQDto.setIzInitPassword("1");//需要更新其他业务平台密码
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);
//不需要更新其他业务平台密码
sysUserMQDto.setIzInitPassword("0");
} 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);
//最近登录时间大于30天
} else {
UpdateWrapper<EmployeesOrg> uwOrg = new UpdateWrapper<>();
uwOrg.eq("employees_id", dto.getEmployeeId());
@ -217,21 +209,17 @@ public class EmployeesMQListener {
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);
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);
}
}
}
rabbitMQUtil.sendToExchange("hldy.employees", dto.getOrgCode() + ".employees.initsysuser", sysUserMQDto);
}

View File

@ -3,6 +3,7 @@ package com.nu.modules.wechat.employess.api;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.collect.Maps;
import com.nu.dto.EmployeesApplyMQDto;
import com.nu.dto.SysUserMQDto;
import com.nu.entity.EmployeesApplyEntity;
import com.nu.modules.EmployessInfo.api.EmployeesOrgLocalApi;
import com.nu.entity.EmployeesOrgApiEntity;
@ -144,6 +145,14 @@ public class EmployessApplyApi {
mqdto.setOpeTime(dto.getOpeTime());
rabbitMQUtil.sendToExchange("hldy.employees", dto.getOrgCode() + ".employees.invitedConfirm", mqdto);
//需要初始化直接通知审批业务系统进行初始化
// if ("2".equals(dto.getStatus())) {
// SysUserMQDto sysUserMQDto = new SysUserMQDto();
// sysUserMQDto.setEmployeeId(dto.getEmployeeId());
// sysUserMQDto.setIzInit("1");
// sysUserMQDto.setIzInitPassword("1");
// rabbitMQUtil.sendToExchange("hldy.employees", dto.getOrgCode() + ".employees.initsysuser", sysUserMQDto);
// }
return Result.ok();
}