平台权限系功能优化

yun-zuoyi
wei.peng 6 years ago
parent e2a2dd18d8
commit 0aa3a70f10

@ -186,42 +186,21 @@ public interface IPersonnelService {
@ApiOperation(value = "岗位关系检查")
void refreshUpdateMenuRdd(Long menuId);
@ApiOperation(value = "刷新组织冗余")
void refreshOrganizeRdd(Long organizeId);
@ApiOperation(value = "刷新组织冗余")
void refreshUpdateOrganizeRdd(Long organizeId);
@ApiOperation(value = "刷新账号部门")
void refreshRefSysUserDepartment(Long userId, Long[] departmentIds);
@ApiOperation(value = "刷新账号角色")
void refreshRefSysUserRole(Long userId, Long[] roleIds);
@ApiOperation(value = "刷新角色冗余")
void refreshUpdateSysRoleRdd(Long roleId);
@ApiOperation(value = "刷新组织冗余")
void refreshDepartmentRdd(Long departmentId);
@ApiOperation(value = "刷新账号部门")
void refreshUpdateRefSysUserDepartmentRdd(Long departmentId);
@ApiOperation(value = "刷新用户部门")
void refreshUpdateRefSysUserInfoDepartment(Long userInfoId, Long[] departmentIds);
@ApiOperation(value = "刷新用户部门")
void refreshUpdateRefSysUserInfoDepartmentRdd(Long departmentId);
@ApiOperation(value = "刷新岗位冗余")
void refreshPositionRdd(Long positionId);
@ApiOperation(value = "刷新用户岗位")
void refreshRefSysUserInfoPosition(Long userInfoId, Long[] positionIds);
@ApiOperation(value = "刷新用户岗位")
void refreshUpdateRefSysUserInfoPositionRdd(Long positionId);
/**
*
* @return

@ -898,7 +898,6 @@ public class DemoTestingController {
}
}
userInfo.setDepartmentNamesRdd(StringUtils.join(refUserDepartmentNameList));
userInfo.setDepartmentId(department.getId());
userInfo.setDepartmentNameRdd(department.getName());
userInfo.setOrganizeId(department.getOrganizeId());
@ -906,7 +905,6 @@ public class DemoTestingController {
userInfo.setOrganizeCode(department.getOrganizeCode());
userInfo.setPositionId(position.getId());
userInfo.setPositionNameRdd(position.getName());
userInfo.setPositionNamesRdd(StringUtils.join(refUserPositionNameList,","));
userInfo.setName(RandomStringUtils.random(5, TEXT));
userInfo.setUserEmpNo(RandomStringUtils.random(10, true, true));
userInfo.setUserInfoStatus(CommonEnumUtil.USER_INFO_STATUS.INCUMBENT.getValue());
@ -918,7 +916,6 @@ public class DemoTestingController {
user.setUserStatus(CommonEnumUtil.USER_STATUS.ENABLE.getValue());
user.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue());
user.setUserLoginNum(0);
user.setDepartmentNamesRdd(StringUtils.join(refUserDepartmentNameList,","));
user.setDepartmentId(department.getId());
user.setDepartmentNameRdd(department.getName());
user.setUserPhone(RandomStringUtils.random(11, false, true));
@ -1027,8 +1024,8 @@ public class DemoTestingController {
" user_phone, user_status, user_type) VALUES (" +
" "+su.getId()+", '"+su.getCreateDatetime()+"', '"+su.getCreateUser()+"', "+su.getIsDeleted()+", "+su.getIsValid()+"," +
" '"+su.getModifyDatetime()+"', '"+su.getModifyUser()+"', '"+su.getOrganizeCode()+"', " +
" "+su.getDepartmentId()+", '"+su.getDepartmentNameRdd()+"', '"+su.getDepartmentNamesRdd()+"', ''," +
" "+su.getOrganizeId()+", '"+su.getOrganizeNameRdd()+"', null, '"+su.getRoleNamesRdd()+"', '"+su.getUserEmail()+"'," +
" "+su.getDepartmentId()+", '"+su.getDepartmentNameRdd()+"', ''," +
" "+su.getOrganizeId()+", '"+su.getOrganizeNameRdd()+"', null, '"+su.getUserEmail()+"'," +
" '"+su.getUserEmpNo()+"', "+su.getUserInfoId()+", null, '"+su.getUserLoginName()+"', 0, '2637a5c30af69a7bad877fdb65fbd78b'," +
" '"+su.getUserName()+"', '"+su.getUserPhone()+"', 1, 1);");
fileWriter(writer,txt);
@ -1052,9 +1049,9 @@ public class DemoTestingController {
" user_info_status, user_join_date, user_login_last_date_time, user_login_num) VALUES (" +
" "+ui.getId()+", '"+ui.getCreateDatetime()+"', '"+ui.getCreateUser()+"', "+ui.getIsDeleted()+", "+ui.getIsValid()+"," +
" '"+ui.getModifyDatetime()+"', '"+ui.getModifyUser()+"', '"+ui.getOrganizeCode()+"'," +
" "+ui.getDepartmentId()+", '"+ui.getDepartmentNameRdd()+"', '"+ui.getDepartmentNamesRdd()+"'," +
" "+ui.getDepartmentId()+", '"+ui.getDepartmentNameRdd()+"'," +
" '"+ui.getName()+"', "+ui.getOrganizeId()+", '"+ui.getOrganizeNameRdd()+"'," +
" "+ui.getPositionId()+", '"+ui.getPositionNameRdd()+"', '"+ui.getPositionNamesRdd()+"'," +
" "+ui.getPositionId()+", '"+ui.getPositionNameRdd()+"'," +
" '"+ui.getUserEmpNo()+"', "+ui.getUserId()+", 1, '2019-02-26', null , 0);");
fileWriter(writer,txt);
}

@ -1,20 +1,21 @@
package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.*;
import cn.estsh.i3plus.core.api.iservice.busi.ICoreMemTreeService;
import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysDepartmentService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
import cn.estsh.i3plus.pojo.platform.bean.SysDepartment;
import cn.estsh.i3plus.pojo.platform.bean.SysRefUserDepartment;
import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api;
@ -44,15 +45,9 @@ public class SysDepartmentController extends CoreBaseController {
private ISysDepartmentService departmentService;
@Autowired
private ICoreTreeService coreTreeService;
@Autowired
private ICoreMemTreeService memTreeService;
@Autowired
private ISysOrganizeService organizeService;
@Autowired
private IPersonnelService personnelService;
/**
@ -64,9 +59,6 @@ public class SysDepartmentController extends CoreBaseController {
@ApiOperation(value = "添加部门", notes = "返回内容添加部门")
public ResultBean insertSysDepartment(SysDepartment department) {
try {
//登陆用户
SessionUser user = AuthUtil.getSessionUser();
//条件验证
ValidatorBean.beginValid(department)
.notNull("name", department.getName())
@ -74,7 +66,7 @@ public class SysDepartmentController extends CoreBaseController {
.checkNotZero("organizeId",department.getOrganizeId());
//新增初始化
ConvertBean.modelInitialize(department, user);
ConvertBean.modelInitialize(department, AuthUtil.getSessionUser());
department.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode());
if(department.getParentId() == null || department.getParentId() <= 0){
department.setParentId(CommonEnumUtil.PARENT.DEFAULT.getValue());
@ -99,9 +91,6 @@ public class SysDepartmentController extends CoreBaseController {
@ApiOperation(value = "修改部门", notes = "根据部门id修改信息")
public ResultBean updateSysDepartmentById(SysDepartment department) {
try {
//登陆用户
SessionUser user = AuthUtil.getSessionUser();
//条件验证
ValidatorBean.beginValid(department)
.checkNotZero("id", department.getId())
@ -115,7 +104,7 @@ public class SysDepartmentController extends CoreBaseController {
sysDepartment.setDepartmentSort(department.getDepartmentSort());
sysDepartment.setParentId(department.getParentId());
ConvertBean.modelUpdate(department, user);
ConvertBean.modelUpdate(department, AuthUtil.getSessionUser());
if(sysDepartment.getParentId() == null || department.getParentId() <= 0){
sysDepartment.setParentId(CommonEnumUtil.PARENT.DEFAULT.getValue());
sysDepartment.setParentNameRdd("顶级部门");

@ -116,7 +116,8 @@ public class SysMenuController extends CoreBaseController {
.notNull("name", menu.getName());
ConvertBean.modelUpdate(menu, getSessionUser());
menu.setNameZhShortening(StringTool.getAllFirstLetter(menu.getName()));
// 用户自定义输入,方便快速记忆
// menu.setNameZhShortening(StringTool.getAllFirstLetter(menu.getName()));
if (menu.getParentId() == null || menu.getParentId().intValue() == 0) {
menu.setParentId(CommonEnumUtil.PARENT.DEFAULT.getValue());
}

@ -6,6 +6,7 @@ import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysOrganizeService;
import cn.estsh.i3plus.icloud.wms.sdk.IWmsActionGroupCloud;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
@ -21,7 +22,6 @@ import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api;

@ -1,39 +0,0 @@
package cn.estsh.i3plus.core.apiservice.mq;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.platform.bean.SysMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2018-11-15 22:35
* @Modify:
**/
@Component
@RabbitListener(queues = PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE_BAK)
public class MessageLetterQueueReceiverHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(MessageLetterQueueReceiverHandler.class);
@RabbitHandler
public void handleMessage(byte[] message){
LOGGER.info("【MQ-{}】handleMessage(byte[] message) 数据接收成功:{}",PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE_BAK, message);
}
@RabbitHandler
public void handleMessage(String message){
LOGGER.info("【MQ-{}】handleMessage(String message) 数据接收成功:{}",PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE_BAK, message);
}
@RabbitHandler
public void handleMessage(SysMessage message){
LOGGER.info("【MQ-{}】handleMessage(SysMessage message) 数据接收成功:{}",PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE_BAK, message);
}
}

@ -4,6 +4,7 @@ import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService;
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.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
@ -21,7 +22,6 @@ import cn.estsh.i3plus.pojo.platform.repository.*;
import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import cn.estsh.impp.framework.boot.util.ImppRedis;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
@ -685,15 +685,7 @@ public class PersonnelServiceService implements IPersonnelService {
.setErrorSolution("请先删除子集信息在操作")
.build();
}
// long refPositionCount = refUserPositionRDao.findByPropertyCount("positionId",positionId);
// if (refPositionCount >= 1) {
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
// .setErrorDetail("存在用户关系引用信息无法删除!")
// .setErrorSolution("请先删除用户关系信息再操作")
// .build();
// }
List<SysUserInfo> userInfoList = userInfoRDao.findByProperty("departmentId", departmentId);
if (userInfoList != null && userInfoList.size() >= 1) {
throw ImppExceptionBuilder.newInstance()
@ -893,45 +885,6 @@ public class PersonnelServiceService implements IPersonnelService {
}
@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
public void refreshRefSysUserDepartment(Long userId, Long[] departmentIds) {
LOGGER.info("账号部门信息 SysUser userInfoId:{} departmentIds:{}",userId,departmentIds);
@ -948,7 +901,6 @@ public class PersonnelServiceService implements IPersonnelService {
if(departmentList != null && departmentList.size() >0){
List<SysRefUserDepartment> list = new ArrayList<>();
List<String> nameList = new ArrayList<>();
SysRefUserDepartment ref = null;
for (SysDepartment department : departmentList) {
ref = new SysRefUserDepartment();
@ -963,11 +915,8 @@ public class PersonnelServiceService implements IPersonnelService {
ref.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue());
list.add(ref);
nameList.add(department.getName());
}
user.setDepartmentNamesRdd(String.join(",",nameList));
refUserDepartmentRDao.saveAll(list);
userRDao.save(user);
@ -976,22 +925,6 @@ public class PersonnelServiceService implements IPersonnelService {
}
}
}
@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()});
}
}
}
@Override
public void refreshRefSysUserRole(Long userId, Long[] roleIds) {
LOGGER.info("账号角色关系信息 RefSysUserRole userId:{} roleIds:{} ", userId,roleIds);
@ -1007,10 +940,8 @@ public class PersonnelServiceService implements IPersonnelService {
if(null != list && list.size() > 0){
// 新增用户角色关系
List<SysRefUserRole> refUserRoles = new ArrayList<>();
List<String> roleNameList = new ArrayList<>();
SysRefUserRole refUserRole = null;
for (SysRole role : list) {
roleNameList.add(role.getName());
// 用户角色关系创建
refUserRole = new SysRefUserRole();
refUserRole.setRoleId(role.getId());
@ -1022,93 +953,14 @@ public class PersonnelServiceService implements IPersonnelService {
refUserRole.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode());
refUserRoles.add(refUserRole);
}
refUserRoleRDao.saveAll(refUserRoles);
// 角色名称冗余
user.setRoleNamesRdd(String.join(",", roleNameList));
refUserRoleRDao.saveAll(refUserRoles);
userRDao.save(user);
}
}
}
@Override
public void refreshUpdateSysRoleRdd(Long roleId) {
LOGGER.info("角色信息 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 refreshUpdateRefSysUserInfoDepartment(Long userInfoId, Long[] departmentIds) {
LOGGER.info("用户部门关系信息 SysUser userInfoId:{} departmentIds:{}",userInfoId,departmentIds);
@ -1125,7 +977,6 @@ public class PersonnelServiceService implements IPersonnelService {
if(departmentList != null && departmentList.size() >0){
List<SysRefUserInfoDepartment> list = new ArrayList<>();
List<String> nameList = new ArrayList<>();
SysRefUserInfoDepartment ref = null;
for (SysDepartment department : departmentList) {
ref = new SysRefUserInfoDepartment();
@ -1140,12 +991,8 @@ public class PersonnelServiceService implements IPersonnelService {
ref.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue());
list.add(ref);
nameList.add(department.getName());
}
info.setDepartmentNamesRdd(String.join(",",nameList));
refUserInfoDepartmentRDao.saveAll(list);
userInfoRDao.save(info);
@ -1155,7 +1002,7 @@ public class PersonnelServiceService implements IPersonnelService {
}else {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorCode(cn.estsh.impp.framework.boot.exception.ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("用户信息不存在")
.setErrorSolution("请重新操作")
.build();
@ -1163,13 +1010,13 @@ public class PersonnelServiceService implements IPersonnelService {
}
@Override
public void refreshUpdateRefSysUserInfoDepartmentRdd(Long departmentId) {
LOGGER.info("部门信息 SysInfoDepartment departmentId:{} ",departmentId);
public void refreshUpdateRefSysUserDepartmentRdd(Long departmentId) {
LOGGER.info("部门信息 SysDepartment departmentId:{} ",departmentId);
if(departmentId != null){
SysDepartment department = departmentRDao.getById(departmentId);
if(department != null){
// 更新账号组织关系冗余信息
refUserInfoDepartmentRDao.updateByProperties(
refUserDepartmentRDao.updateByProperties(
new String[]{"departmentId"},
new Object[]{department.getId()},
new String[]{"departmentNameRdd","organizeId","organizeNameRdd"},
@ -1177,7 +1024,7 @@ public class PersonnelServiceService implements IPersonnelService {
);
// 更新账号组织冗余信息
userInfoRDao.updateByProperties(
userRDao.updateByProperties(
new String[]{"departmentId"},
new Object[]{department.getId()},
new String[]{"departmentNameRdd","organizeId","organizeNameRdd"},
@ -1185,11 +1032,11 @@ public class PersonnelServiceService implements IPersonnelService {
);
// 账号组织关系集合
List<SysRefUserInfoDepartment> refs = refUserInfoDepartmentRDao.findByProperty("departmentId", department.getId());
List<SysRefUserDepartment> refs = refUserDepartmentRDao.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());
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++) {
@ -1204,22 +1051,7 @@ public class PersonnelServiceService implements IPersonnelService {
}
}
@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
@Override
public void refreshRefSysUserInfoPosition(Long userInfoId, Long[] positionIds) {
LOGGER.info("用户岗位关系信息 RefSysUserInfoPosition userInfoId:{} positionIds:{} userName:{}",userInfoId,positionIds);
@ -1235,7 +1067,6 @@ public class PersonnelServiceService implements IPersonnelService {
if(positionList != null && positionList.size() >0){
List<SysRefUserPosition> list = new ArrayList<>();
List<String> nameList = new ArrayList<>();
SysRefUserPosition ref = null;
for (SysPosition position : positionList) {
ref = new SysRefUserPosition();
@ -1247,12 +1078,8 @@ public class PersonnelServiceService implements IPersonnelService {
ref.setIsDeleted(CommonEnumUtil.IS_DEAL.NO.getValue());
ref.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue());
list.add(ref);
nameList.add(position.getName());
}
userInfo.setPositionNamesRdd(String.join(",",nameList));
refUserPositionRDao.saveAll(list);
userInfoRDao.save(userInfo);
@ -1270,48 +1097,6 @@ public class PersonnelServiceService implements IPersonnelService {
}
@Override
public void refreshUpdateRefSysUserInfoPositionRdd(Long positionId) {
LOGGER.info("岗位信息 SysPosition positionId:{} ",positionId);
if(positionId != null){
SysPosition position = positionRDao.getById(positionId);
if(position != null){
// 更新用户岗位关系冗余信息
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;
}
}
}
}
}
@Override
public SysOrganize getSysOrganizeByCode(String code) {
return organizeRDao.getByProperty("organizeCode", code);
}

@ -10,8 +10,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.platform.bean.SysDepartment;
import cn.estsh.i3plus.pojo.platform.bean.SysOrganize;
import cn.estsh.i3plus.pojo.platform.repository.SysDepartmentRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysOrganizeRepository;
import cn.estsh.i3plus.pojo.platform.repository.*;
import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
@ -48,6 +47,18 @@ public class SysDepartmentService implements ISysDepartmentService {
@Autowired
private IPersonnelService personnelService;
@Autowired
private SysRefUserDepartmentRepository refUserDepartmentRDao;
@Autowired
private SysUserRepository userRDao;
@Autowired
private SysRefUserInfoDepartmentRepository refUserInfoDepartmentRDao;
@Autowired
private SysUserInfoRepository userInfoRDao;
@Override
@ApiOperation(value = "新增部门信息")
public SysDepartment insertSysDepartment(SysDepartment department) {
@ -167,10 +178,33 @@ public class SysDepartmentService implements ISysDepartmentService {
// 新增部门
LOGGER.info("部门信息 DEPARTMENT department:{}", department);
departmentRDao.update(department);
// 修改冗余信息
personnelService.refreshDepartmentRdd(department.getId());
personnelService.refreshUpdateRefSysUserDepartmentRdd(department.getId());
personnelService.refreshUpdateRefSysUserInfoDepartmentRdd(department.getId());
departmentRDao.updateByProperties(new String[]{"parentId"}, new Object[]{department.getId()},
new String[]{"parentNameRdd"}, new Object[]{department.getName()});
// 更新账号组织关系冗余信息
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()});
// 更新用户组织关系冗余信息
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()}
);
}
@Override

@ -2,20 +2,19 @@ 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.ISysOrganizeService;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.common.PagerHelper;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
import cn.estsh.i3plus.pojo.platform.bean.SysOrganize;
import cn.estsh.i3plus.pojo.platform.bean.SysRefUserDepartment;
import cn.estsh.i3plus.pojo.platform.repository.SysOrganizeRepository;
import cn.estsh.i3plus.pojo.platform.repository.*;
import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
@ -24,9 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Description :
@ -49,6 +46,21 @@ public class SysOrganizeService implements ISysOrganizeService {
@Autowired
private IPersonnelService personnelService;
@Autowired
private SysDepartmentRepository departmentRDao;
@Autowired
private SysRefUserDepartmentRepository refUserDepartmentRDao;
@Autowired
private SysUserRepository userRDao;
@Autowired
private SysRefUserInfoDepartmentRepository refUserInfoDepartmentRDao;
@Autowired
private SysUserInfoRepository userInfoRDao;
@Override
@ApiOperation(value = "更新组织", notes = "传入持久化组织对象,进行更新")
public void updateSysOrganize(SysOrganize organize) {
@ -81,9 +93,32 @@ public class SysOrganizeService implements ISysOrganizeService {
// 更新数据
organizeRDao.update(organize);
// 修改冗余信息
personnelService.refreshOrganizeRdd(organize.getId());
personnelService.refreshUpdateOrganizeRdd(organize.getId());
// 修改组织冗余信息
organizeRDao.updateByProperties(new String[]{"parentId"}, new Object[]{organize.getId()},
new String[]{"parentNameRdd"}, new Object[]{organize.getName()});
// 更新部门组织信息
departmentRDao.updateByProperties(new String[]{"organizeId"}, new Object[]{organize.getId()},
new String[]{"organizeNameRdd"}, new Object[]{organize.getName()});
// 更新账号组织关系冗余信息
refUserDepartmentRDao.updateByProperties(new String[]{"organizeId"}, new Object[]{organize.getId()},
new String[]{"organizeNameRdd"},
new Object[]{organize.getName()}
);
// 更新账号组织冗余信息
userRDao.updateByProperties(new String[]{"organizeId"}, new Object[]{organize.getId()},
new String[]{"organizeNameRdd"}, new Object[]{organize.getName()});
// 更新用户组织关系冗余信息
refUserInfoDepartmentRDao.updateByProperties(new String[]{"organizeId"}, new Object[]{organize.getId()},
new String[]{"organizeNameRdd"}, new Object[]{organize.getName()});
// 更新用户组织冗余信息
userInfoRDao.updateByProperties(new String[]{"organizeId"}, new Object[]{organize.getId()},
new String[]{"organizeNameRdd"}, new Object[]{organize.getName()});
}
@Override
@ -112,7 +147,7 @@ public class SysOrganizeService implements ISysOrganizeService {
// 检查引用关系
personnelService.checkSysOrganizeRef(id);
// 删除数据
organizeRDao.deleteWeaklyById(id, AuthUtil.getSessionUser().getUserName());
organizeRDao.deleteById(id);
}
@Override
@ -131,7 +166,8 @@ public class SysOrganizeService implements ISysOrganizeService {
for (Long id : ids) {
personnelService.checkSysOrganizeRef(id);
}
organizeRDao.deleteWeaklyByIds(ids, AuthUtil.getSessionUser().getUserName());
organizeRDao.deleteByIds(ids);
}
}

@ -7,8 +7,11 @@ import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.common.PagerHelper;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.platform.bean.SysPosition;
import cn.estsh.i3plus.pojo.platform.repository.SysPositionRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysRefUserPositionRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysUserInfoRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysUserRepository;
import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
@ -45,6 +48,13 @@ public class SysPositionService implements ISysPositionService {
@Autowired
private IPersonnelService personnelService;
@Autowired
private SysRefUserPositionRepository refUserPositionRDao;
@Autowired
private SysUserInfoRepository userInfoRDao;
@Override
@ApiOperation(value = "新增岗位信息")
public SysPosition insertSysPosition(SysPosition position) {
@ -110,8 +120,16 @@ public class SysPositionService implements ISysPositionService {
LOGGER.info("岗位信息 POSITION position:{}", position);
positionRDao.update(position);
// 更新冗余信息
personnelService.refreshPositionRdd(position.getId());
personnelService.refreshUpdateRefSysUserInfoPositionRdd(position.getId());
positionRDao.updateByProperties(new String[]{"parentId"}, new Object[]{position.getId()},
new String[]{"parentNameRdd"}, new Object[]{position.getName()});
// 更新用户岗位关系冗余信息
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()});
}
@Override
@ -131,11 +149,11 @@ public class SysPositionService implements ISysPositionService {
for (Long id : ids) {
personnelService.checkSysPositionRef(id);
}
positionRDao.deleteByIds(ids);
for (Long id : ids) {
personnelService.refreshUpdateRefSysUserInfoPositionRdd(id);
}
// 删除岗位信息
positionRDao.deleteByIds(ids);
// 删除用户岗位关系
refUserPositionRDao.deleteByPropertyIn("positionId",ids);
}
@Override

@ -12,6 +12,7 @@ import cn.estsh.i3plus.pojo.base.tool.HqlPack;
import cn.estsh.i3plus.pojo.platform.bean.*;
import cn.estsh.i3plus.pojo.platform.repository.SysMenuRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysRefRoleMenuRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysRefUserRoleRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysRoleRepository;
import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
@ -52,13 +53,22 @@ public class SysRoleService implements ISysRoleService {
@Autowired
private IUserPermissionDao userPermissionDao;
@Autowired
private SysRefUserRoleRepository refUserRoleRDao;
@Override
@ApiOperation(value = "更新角色信息",notes = "更新角色信息")
public void updateSysRole(SysRole sysRole) {
LOGGER.info("系统角色 SYS_ROLE :{}", sysRole);
// 更新角色信息
roleRDao.update(sysRole);
// 更新冗余信息
personnelService.refreshUpdateSysRoleRdd(sysRole.getId());
// 更新账号角色关系冗余信息
refUserRoleRDao.updateByProperties(new String[]{"roleId"}, new Object[]{sysRole.getId()},
new String[]{"roleNameRdd"}, new Object[]{sysRole.getName()});
// 更新角色
refRoleMenuRDao.updateByProperties(new String[]{"roleId"}, new Object[]{sysRole.getId()},
new String[]{"roleNameRdd"}, new Object[]{sysRole.getName()});
}
@Override

@ -102,7 +102,6 @@ public class SysUserInfoService implements ISysUserInfoService {
if(departmentList != null && departmentList.size() >0){
List<SysRefUserDepartment> list = new ArrayList<>();
List<String> nameList = new ArrayList<>();
SysRefUserDepartment ref = null;
for (SysDepartment department : departmentList) {
ref = new SysRefUserDepartment();
@ -115,12 +114,8 @@ public class SysUserInfoService implements ISysUserInfoService {
ref.setCreateUser(userName);
ref.setCreateDatetime(TimeTool.getNowTime(true));
list.add(ref);
nameList.add(department.getName());
}
userInfo.setDepartmentNamesRdd(String.join(",",nameList));
refUserDepartmentRDao.saveAll(list);
sysUserInfoRDao.save(userInfo);
@ -154,7 +149,6 @@ public class SysUserInfoService implements ISysUserInfoService {
if(positionList != null && positionList.size() >0){
List<SysRefUserPosition> list = new ArrayList<>();
List<String> nameList = new ArrayList<>();
SysRefUserPosition ref = null;
for (SysPosition position : positionList) {
ref = new SysRefUserPosition();
@ -165,12 +159,8 @@ public class SysUserInfoService implements ISysUserInfoService {
ref.setCreateUser(userName);
ref.setCreateDatetime(TimeTool.getNowTime(true));
list.add(ref);
nameList.add(position.getName());
}
userInfo.setPositionNamesRdd(String.join(",",nameList));
refUserPositionRDao.saveAll(list);
sysUserInfoRDao.save(userInfo);

Loading…
Cancel
Save