|
|
|
@ -1,6 +1,7 @@
|
|
|
|
|
package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
|
|
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService;
|
|
|
|
|
import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService;
|
|
|
|
|
import cn.estsh.i3plus.core.apiservice.util.HqlModelPack;
|
|
|
|
|
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.bean.ListPager;
|
|
|
|
@ -71,6 +72,15 @@ public class PersonnelServiceService implements IPersonnelService {
|
|
|
|
|
@Autowired
|
|
|
|
|
private SysPositionRepository positionRDao;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private SysMenuRepository menuRDao;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private SysRefRoleMenuRepository refRoleMenuRDao;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private ISysRoleService roleService;
|
|
|
|
|
|
|
|
|
|
@Resource(name="redisCore")
|
|
|
|
|
protected ImppRedis redisCore;
|
|
|
|
|
|
|
|
|
@ -496,8 +506,89 @@ public class PersonnelServiceService implements IPersonnelService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void refreshRefSysUserOrganizeRdd(Long organizeIds) {
|
|
|
|
|
public void refreshMenuRdd(Long menuId) {
|
|
|
|
|
LOGGER.info("系统功能 SysMenu menuId:{} ",menuId);
|
|
|
|
|
if(menuId != null){
|
|
|
|
|
SysMenu menu = menuRDao.getById(menuId);
|
|
|
|
|
if(menu != null){
|
|
|
|
|
menuRDao.updateByProperties(
|
|
|
|
|
new String[]{"parentId"},
|
|
|
|
|
new Object[]{menu.getId()},
|
|
|
|
|
new String[]{"parentNameRdd"},
|
|
|
|
|
new Object[]{menu.getName()});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void refreshUpdateMenuRdd(Long menuId) {
|
|
|
|
|
LOGGER.info("系统功能 SysMenu menuId:{} ",menuId);
|
|
|
|
|
if(menuId != null){
|
|
|
|
|
SysMenu menu = menuRDao.getById(menuId);
|
|
|
|
|
if(menu != null){
|
|
|
|
|
refRoleMenuRDao.updateByProperties(
|
|
|
|
|
new String[]{"menuId"},
|
|
|
|
|
new Object[]{menu.getId()},
|
|
|
|
|
new String[]{"menuNameRdd"},
|
|
|
|
|
new Object[]{menu.getName()});
|
|
|
|
|
|
|
|
|
|
// 更新角色权限关系
|
|
|
|
|
List<SysRefRoleMenu> refs = refRoleMenuRDao.findByProperty("menuId", menu.getId());
|
|
|
|
|
if(refs != null && refs.size() >0){
|
|
|
|
|
Long[] idArray = null;
|
|
|
|
|
for (SysRefRoleMenu ref : refs) {
|
|
|
|
|
List<SysRefRoleMenu> userRefList = refRoleMenuRDao.findByProperty("roleId", ref.getRoleId());
|
|
|
|
|
if(userRefList != null && userRefList.size() > 0){
|
|
|
|
|
idArray = new Long[userRefList.size()];
|
|
|
|
|
for (int i = 0; i < userRefList.size(); i++) {
|
|
|
|
|
idArray[i] = userRefList.get(i).getMenuId();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
roleService.refreshSysRoleRef(ref.getRoleId(),idArray,null);
|
|
|
|
|
idArray = null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void refreshOrganizeRdd(Long organizeId) {
|
|
|
|
|
LOGGER.info("组织信息 SysOrganize organizeId:{} ",organizeId);
|
|
|
|
|
if(organizeId != null){
|
|
|
|
|
SysOrganize organize = organizeRDao.getById(organizeId);
|
|
|
|
|
if(organize != null){
|
|
|
|
|
organizeRDao.updateByProperties(
|
|
|
|
|
new String[]{"parentId"},
|
|
|
|
|
new Object[]{organize.getId()},
|
|
|
|
|
new String[]{"parentNameRdd"},
|
|
|
|
|
new Object[]{organize.getName()});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void refreshUpdateOrganizeRdd(Long organizeId) {
|
|
|
|
|
LOGGER.info("组织信息 SysOrganize organizeId:{} ",organizeId);
|
|
|
|
|
if(organizeId != null){
|
|
|
|
|
SysOrganize organize = organizeRDao.getById(organizeId);
|
|
|
|
|
if(organize != null){
|
|
|
|
|
departmentRDao.updateByProperties(
|
|
|
|
|
new String[]{"organizeId"},
|
|
|
|
|
new Object[]{organize.getId()},
|
|
|
|
|
new String[]{"organizeNameRdd"},
|
|
|
|
|
new Object[]{organize.getName()});
|
|
|
|
|
|
|
|
|
|
// 更新用户、账号 组织冗余信息
|
|
|
|
|
List<SysDepartment> departmentList = departmentRDao.findByProperty("organizeId", organize.getId());
|
|
|
|
|
if(departmentList != null && departmentList.size() >0 ){
|
|
|
|
|
for (SysDepartment department : departmentList) {
|
|
|
|
|
refreshUpdateRefSysUserDepartmentRdd(department.getId());
|
|
|
|
|
refreshUpdateRefSysUserInfoDepartmentRdd(department.getId());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@ -540,13 +631,21 @@ public class PersonnelServiceService implements IPersonnelService {
|
|
|
|
|
LOGGER.info("账号部门信息 SysUserInfo RefUserDepartmentRDao Insert Size :{}",list.size());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}else {
|
|
|
|
|
throw ImppExceptionBuilder.newInstance()
|
|
|
|
|
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
|
|
|
|
|
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
|
|
|
|
|
.setErrorDetail("用户信息不存在")
|
|
|
|
|
.setErrorSolution("请重新操作")
|
|
|
|
|
.build();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void refreshDepartmentRdd(Long departmentId) {
|
|
|
|
|
LOGGER.info("部门信息 SysDepartment departmentId:{} ",departmentId);
|
|
|
|
|
if(departmentId != null){
|
|
|
|
|
SysDepartment department = departmentRDao.getById(departmentId);
|
|
|
|
|
if(department != null){
|
|
|
|
|
departmentRDao.updateByProperties(
|
|
|
|
|
new String[]{"parentId"},
|
|
|
|
|
new Object[]{department.getId()},
|
|
|
|
|
new String[]{"parentNameRdd"},
|
|
|
|
|
new Object[]{department.getName()});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -589,12 +688,83 @@ public class PersonnelServiceService implements IPersonnelService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void refreshRefSysUserDepartmentRdd(Long departmentId) {
|
|
|
|
|
public void refreshUpdateSysRoleRdd(Long roleId) {
|
|
|
|
|
LOGGER.debug("角色信息 RefSysUserRole roleId:{}", roleId);
|
|
|
|
|
if(roleId != null){
|
|
|
|
|
SysRole role = roleRDao.getById(roleId);
|
|
|
|
|
if(role != null){
|
|
|
|
|
// 更新账号角色关系冗余信息
|
|
|
|
|
refUserRoleRDao.updateByProperties(
|
|
|
|
|
new String[]{"roleId"},
|
|
|
|
|
new Object[]{role.getId()},
|
|
|
|
|
new String[]{"roleNameRdd"},
|
|
|
|
|
new Object[]{role.getName()}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// 账号组织关系集合
|
|
|
|
|
List<SysRefUserRole> refs = refUserRoleRDao.findByProperty("roleId", role.getId());
|
|
|
|
|
if(refs != null && refs.size() >0){
|
|
|
|
|
Long[] idArray = null;
|
|
|
|
|
for (SysRefUserRole ref : refs) {
|
|
|
|
|
List<SysRefUserRole> userRefList = refUserRoleRDao.findByProperty("userId", ref.getUserId());
|
|
|
|
|
if(userRefList != null && userRefList.size() > 0){
|
|
|
|
|
idArray = new Long[userRefList.size()];
|
|
|
|
|
for (int i = 0; i < userRefList.size(); i++) {
|
|
|
|
|
idArray[i] = userRefList.get(i).getRoleId();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
refreshRefSysUserRole(ref.getUserId(),idArray);
|
|
|
|
|
idArray = null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void refreshUpdateRefSysUserDepartmentRdd(Long departmentId) {
|
|
|
|
|
LOGGER.info("部门信息 SysDepartment departmentId:{} ",departmentId);
|
|
|
|
|
if(departmentId != null){
|
|
|
|
|
SysDepartment department = departmentRDao.getById(departmentId);
|
|
|
|
|
if(department != null){
|
|
|
|
|
// 更新账号组织关系冗余信息
|
|
|
|
|
refUserDepartmentRDao.updateByProperties(
|
|
|
|
|
new String[]{"departmentId"},
|
|
|
|
|
new Object[]{department.getId()},
|
|
|
|
|
new String[]{"departmentNameRdd","organizeId","organizeNameRdd"},
|
|
|
|
|
new Object[]{department.getName(),department.getOrganizeId(),department.getOrganizeNameRdd()}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// 更新账号组织冗余信息
|
|
|
|
|
userRDao.updateByProperties(
|
|
|
|
|
new String[]{"departmentId"},
|
|
|
|
|
new Object[]{department.getId()},
|
|
|
|
|
new String[]{"departmentNameRdd","organizeId","organizeNameRdd"},
|
|
|
|
|
new Object[]{department.getName(),department.getOrganizeId(),department.getOrganizeNameRdd()}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// 账号组织关系集合
|
|
|
|
|
List<SysRefUserDepartment> refs = refUserDepartmentRDao.findByProperty("departmentId", department.getId());
|
|
|
|
|
if(refs != null && refs.size() >0){
|
|
|
|
|
Long[] idArray = null;
|
|
|
|
|
for (SysRefUserDepartment ref : refs) {
|
|
|
|
|
List<SysRefUserDepartment> userRefList = refUserDepartmentRDao.findByProperty("userId", ref.getUserId());
|
|
|
|
|
if(userRefList != null && userRefList.size() > 0){
|
|
|
|
|
idArray = new Long[userRefList.size()];
|
|
|
|
|
for (int i = 0; i < userRefList.size(); i++) {
|
|
|
|
|
idArray[i] = userRefList.get(i).getDepartmentId();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
refreshRefSysUserDepartment(ref.getUserId(),idArray);
|
|
|
|
|
idArray = null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void refreshRefSysUserInfoDepartment(Long userInfoId, Long[] departmentIds) {
|
|
|
|
|
public void refreshUpdateRefSysUserInfoDepartment(Long userInfoId, Long[] departmentIds) {
|
|
|
|
|
LOGGER.info("用户部门关系信息 SysUser userInfoId:{} departmentIds:{}",userInfoId,departmentIds);
|
|
|
|
|
|
|
|
|
|
SysUserInfo info = userInfoRDao.getById(userInfoId);
|
|
|
|
@ -644,8 +814,60 @@ public class PersonnelServiceService implements IPersonnelService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void refreshRefSysUserInfoDepartmentRdd(Long departmentId) {
|
|
|
|
|
public void refreshUpdateRefSysUserInfoDepartmentRdd(Long departmentId) {
|
|
|
|
|
LOGGER.info("部门信息 SysInfoDepartment departmentId:{} ",departmentId);
|
|
|
|
|
if(departmentId != null){
|
|
|
|
|
SysDepartment department = departmentRDao.getById(departmentId);
|
|
|
|
|
if(department != null){
|
|
|
|
|
// 更新账号组织关系冗余信息
|
|
|
|
|
refUserInfoDepartmentRDao.updateByProperties(
|
|
|
|
|
new String[]{"departmentId"},
|
|
|
|
|
new Object[]{department.getId()},
|
|
|
|
|
new String[]{"departmentNameRdd","organizeId","organizeNameRdd"},
|
|
|
|
|
new Object[]{department.getName(),department.getOrganizeId(),department.getOrganizeNameRdd()}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// 更新账号组织冗余信息
|
|
|
|
|
userInfoRDao.updateByProperties(
|
|
|
|
|
new String[]{"departmentId"},
|
|
|
|
|
new Object[]{department.getId()},
|
|
|
|
|
new String[]{"departmentNameRdd","organizeId","organizeNameRdd"},
|
|
|
|
|
new Object[]{department.getName(),department.getOrganizeId(),department.getOrganizeNameRdd()}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// 账号组织关系集合
|
|
|
|
|
List<SysRefUserInfoDepartment> refs = refUserInfoDepartmentRDao.findByProperty("departmentId", department.getId());
|
|
|
|
|
if(refs != null && refs.size() >0){
|
|
|
|
|
Long[] idArray = null;
|
|
|
|
|
for (SysRefUserInfoDepartment ref : refs) {
|
|
|
|
|
List<SysRefUserInfoDepartment> userRefList = refUserInfoDepartmentRDao.findByProperty("userId", ref.getUserId());
|
|
|
|
|
if(userRefList != null && userRefList.size() > 0){
|
|
|
|
|
idArray = new Long[userRefList.size()];
|
|
|
|
|
for (int i = 0; i < userRefList.size(); i++) {
|
|
|
|
|
idArray[i] = userRefList.get(i).getDepartmentId();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
refreshRefSysUserDepartment(ref.getUserId(),idArray);
|
|
|
|
|
idArray = null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void refreshPositionRdd(Long positionId) {
|
|
|
|
|
LOGGER.info("岗位信息 SysPosition positionId:{} ",positionId);
|
|
|
|
|
if(positionId != null){
|
|
|
|
|
SysPosition position = positionRDao.getById(positionId);
|
|
|
|
|
if(position != null){
|
|
|
|
|
positionRDao.updateByProperties(
|
|
|
|
|
new String[]{"parentId"},
|
|
|
|
|
new Object[]{position.getId()},
|
|
|
|
|
new String[]{"parentNameRdd"},
|
|
|
|
|
new Object[]{position.getName()});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@ -696,52 +918,43 @@ public class PersonnelServiceService implements IPersonnelService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void refreshRefSysUserInfoPositionRdd(Long positionId) {
|
|
|
|
|
List<Long> result = new ArrayList<>(); // 需要更新的用户ID 集合
|
|
|
|
|
|
|
|
|
|
// 更新关系表中数据
|
|
|
|
|
public void refreshUpdateRefSysUserInfoPositionRdd(Long positionId) {
|
|
|
|
|
LOGGER.info("岗位信息 SysPosition positionId:{} ",positionId);
|
|
|
|
|
if(positionId != null){
|
|
|
|
|
SysPosition position = positionRDao.getById(positionId);
|
|
|
|
|
if(position != null){
|
|
|
|
|
List<SysRefUserPosition> list = refUserPositionRDao.findByProperty("positionId", position.getId());
|
|
|
|
|
if(list != null && list.size() > 0){
|
|
|
|
|
|
|
|
|
|
// 更新关系表中的冗余信息
|
|
|
|
|
refUserPositionRDao.updateByProperties(
|
|
|
|
|
"positionId",position.getId(),
|
|
|
|
|
"positionNameRdd", position.getName());
|
|
|
|
|
|
|
|
|
|
// 更新父节点冗余信息
|
|
|
|
|
positionRDao.updateByProperties("parentId",position.getId(),
|
|
|
|
|
"parentNameRdd",position.getName());
|
|
|
|
|
|
|
|
|
|
for (SysRefUserPosition ref : list) {
|
|
|
|
|
result.add(ref.getUserId());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 删除关系表中数据
|
|
|
|
|
refUserPositionRDao.deleteByProperty("positionId", positionId);
|
|
|
|
|
|
|
|
|
|
// 获取需要更新的用户
|
|
|
|
|
StringBuffer strWhere = new StringBuffer();
|
|
|
|
|
List<String> nameList = null;
|
|
|
|
|
HqlPack.getInPack(StringUtils.join(result, ","), "userId", strWhere);
|
|
|
|
|
List<SysUserInfo> infoList = userInfoRDao.findByHqlWhere(strWhere.toString());
|
|
|
|
|
|
|
|
|
|
// 更新用户的冗余信息
|
|
|
|
|
if(infoList != null && infoList.size() > 0){
|
|
|
|
|
for (SysUserInfo info : infoList) {
|
|
|
|
|
List<SysRefUserPosition> list = refUserPositionRDao.findByProperty("userId", info.getId());
|
|
|
|
|
if (list != null) {
|
|
|
|
|
for (SysRefUserPosition ref : list) {
|
|
|
|
|
nameList.add(ref.getPositionNameRdd());
|
|
|
|
|
// 更新用户岗位关系冗余信息
|
|
|
|
|
refUserPositionRDao.updateByProperties(
|
|
|
|
|
new String[]{"positionId"},
|
|
|
|
|
new Object[]{position.getId()},
|
|
|
|
|
new String[]{"positionNameRdd"},
|
|
|
|
|
new Object[]{position.getName()}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// 更新用户主岗位冗余信息
|
|
|
|
|
userInfoRDao.updateByProperties(
|
|
|
|
|
new String[]{"positionId"},
|
|
|
|
|
new Object[]{position.getId()},
|
|
|
|
|
new String[]{"positionNameRdd"},
|
|
|
|
|
new Object[]{position.getName()}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// 用户用户岗位关系集合
|
|
|
|
|
List<SysRefUserPosition> refs = refUserPositionRDao.findByProperty("positionId", position.getId());
|
|
|
|
|
if(refs != null && refs.size() >0){
|
|
|
|
|
Long[] positionIdArray = null;
|
|
|
|
|
for (SysRefUserPosition ref : refs) {
|
|
|
|
|
List<SysRefUserPosition> userRefList = refUserPositionRDao.findByProperty("userId", ref.getUserId());
|
|
|
|
|
if(userRefList != null && userRefList.size() > 0){
|
|
|
|
|
positionIdArray = new Long[userRefList.size()];
|
|
|
|
|
for (int i = 0; i < userRefList.size(); i++) {
|
|
|
|
|
positionIdArray[i] = userRefList.get(i).getPositionId();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
refreshRefSysUserInfoPosition(ref.getUserId(),positionIdArray);
|
|
|
|
|
positionIdArray = null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
info.setPositionNamesRdd(StringUtils.join(nameList, ","));
|
|
|
|
|
userInfoRDao.save(info);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|