diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/IPersonnelService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/IPersonnelService.java index e2b8a15..41ce6cc 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/IPersonnelService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/IPersonnelService.java @@ -101,8 +101,17 @@ public interface IPersonnelService { @ApiOperation(value = "岗位关系检查") void checkSysPositionRef(Long positionId); + @ApiOperation(value = "岗位关系检查") + void refreshMenuRdd(Long menuId); + + @ApiOperation(value = "岗位关系检查") + void refreshUpdateMenuRdd(Long menuId); + + @ApiOperation(value = "刷新组织冗余") + void refreshOrganizeRdd(Long organizeId); + @ApiOperation(value = "刷新组织冗余") - void refreshRefSysUserOrganizeRdd(Long organizeIds); + void refreshUpdateOrganizeRdd(Long organizeId); @ApiOperation(value = "刷新账号部门") void refreshRefSysUserDepartment(Long userId, Long[] departmentIds); @@ -110,18 +119,28 @@ public interface IPersonnelService { @ApiOperation(value = "刷新账号角色") void refreshRefSysUserRole(Long userId, Long[] roleIds); + @ApiOperation(value = "刷新角色冗余") + void refreshUpdateSysRoleRdd(Long roleId); + + @ApiOperation(value = "刷新组织冗余") + void refreshDepartmentRdd(Long departmentId); + @ApiOperation(value = "刷新账号部门") - void refreshRefSysUserDepartmentRdd(Long departmentId); + void refreshUpdateRefSysUserDepartmentRdd(Long departmentId); @ApiOperation(value = "刷新用户部门") - void refreshRefSysUserInfoDepartment(Long userInfoId, Long[] departmentIds); + void refreshUpdateRefSysUserInfoDepartment(Long userInfoId, Long[] departmentIds); + @ApiOperation(value = "刷新用户部门") - void refreshRefSysUserInfoDepartmentRdd(Long departmentId); + void refreshUpdateRefSysUserInfoDepartmentRdd(Long departmentId); + + @ApiOperation(value = "刷新岗位冗余") + void refreshPositionRdd(Long positionId); @ApiOperation(value = "刷新用户岗位") void refreshRefSysUserInfoPosition(Long userInfoId, Long[] positionIds); @ApiOperation(value = "刷新用户岗位") - void refreshRefSysUserInfoPositionRdd(Long positionId); + void refreshUpdateRefSysUserInfoPositionRdd(Long positionId); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/PersonnelController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/PersonnelController.java index ca5f2cd..b014475 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/PersonnelController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/PersonnelController.java @@ -415,7 +415,6 @@ public class PersonnelController extends CoreBaseController { } List result = personnelService.querySysUserByUserDetailModelOrIds(model, idList); - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result); } catch (ImppBusiException busExcep) { LOGGER.error(busExcep.getErrorMsg() + ":{}", busExcep.getErrorDetail(), busExcep); @@ -531,7 +530,7 @@ public class PersonnelController extends CoreBaseController { if(info != null){ // 刷新用户 部门关系 - personnelService.refreshRefSysUserInfoDepartment(info.getId(),StringTool.getArrayLong(model.getInfoDepartmentIdList())); + personnelService.refreshUpdateRefSysUserInfoDepartment(info.getId(),StringTool.getArrayLong(model.getInfoDepartmentIdList())); // 刷新用户 岗位关系 personnelService.refreshRefSysUserInfoPosition(info.getId(),StringTool.getArrayLong(model.getInfoPositionIdList())); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java index e2534b4..3788cee 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java @@ -99,6 +99,7 @@ public class SysMenuController extends CoreBaseController { LOGGER.error(busExcep.getErrorMsg() + ":{}", busExcep.getErrorDetail(), busExcep); return ResultBean.fail(busExcep).build(); } catch (Exception e) { + LOGGER.error(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription() + ":{}",e.getMessage(),e); return ResultBean.fail(e.getMessage()).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode()); } } @@ -126,9 +127,7 @@ public class SysMenuController extends CoreBaseController { public ResultBean findAll() { try { List list = sysMenuService.findSysMenuAll(); - return ResultBean.success("操作成功") - .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) - .setResultList(list); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(list); } catch (ImppBusiException busExcep) { LOGGER.error(busExcep.getErrorMsg() + ":{}", busExcep.getErrorDetail(), busExcep); return ResultBean.fail(busExcep); @@ -144,8 +143,7 @@ public class SysMenuController extends CoreBaseController { try{ ListPager listPager = sysMenuService.querySysMenu(menu, pager); - return ResultBean.success("操作成功").setListPager(listPager) - .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + return ResultBean.success("操作成功").setListPager(listPager).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); }catch(ImppBusiException busExcep){ LOGGER.error(busExcep.getErrorMsg() + ":{}",busExcep.getErrorDetail(),busExcep); return ResultBean.fail(busExcep); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemLoginService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemLoginService.java index b661388..ab4e0a0 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemLoginService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemLoginService.java @@ -123,7 +123,10 @@ public class SystemLoginService implements ISystemLoginService { * @return */ public SysUser getUserLoginInfo(String loginName,String pwd) { - SysUser user = sysUserRDao.getByProperty("userLoginName",loginName); + SysUser user = sysUserRDao.getByProperty( + new String[]{"userLoginName","isValid"}, + new Object[]{loginName,CommonEnumUtil.IS_VAILD.VAILD.getValue()} + ); if(user == null){ //用户不存在 throw new CredentialsException("用户不存在"); }else { diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeService.java index 4b56eea..b93ad5c 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeService.java @@ -294,7 +294,9 @@ public class CoreTreeService implements ICoreTreeService { @ApiOperation(value = "封装菜单树",notes = "封装当前菜单树") public void findSysMenuChildrenTreePack(SysMenu parent, int step) { ++step; - List childList = menuRDao.findByProperty("parentId", parent.getId()); + List childList = menuRDao.findByProperty( + new String[]{"parentId","menuStatus"}, + new Object[]{parent.getId(),CommonEnumUtil.DATA_STATUS.ENABLE.getValue()}); if (childList.size() > 0) { //说明有子集 for (SysMenu child : childList) { diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java index 21a4f45..96df3fb 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java @@ -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 refs = refRoleMenuRDao.findByProperty("menuId", menu.getId()); + if(refs != null && refs.size() >0){ + Long[] idArray = null; + for (SysRefRoleMenu ref : refs) { + List 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 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 refs = refUserRoleRDao.findByProperty("roleId", role.getId()); + if(refs != null && refs.size() >0){ + Long[] idArray = null; + for (SysRefUserRole ref : refs) { + List 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 refs = refUserDepartmentRDao.findByProperty("departmentId", department.getId()); + if(refs != null && refs.size() >0){ + Long[] idArray = null; + for (SysRefUserDepartment ref : refs) { + List 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 refs = refUserInfoDepartmentRDao.findByProperty("departmentId", department.getId()); + if(refs != null && refs.size() >0){ + Long[] idArray = null; + for (SysRefUserInfoDepartment ref : refs) { + List 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 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 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 nameList = null; - HqlPack.getInPack(StringUtils.join(result, ","), "userId", strWhere); - List infoList = userInfoRDao.findByHqlWhere(strWhere.toString()); - - // 更新用户的冗余信息 - if(infoList != null && infoList.size() > 0){ - for (SysUserInfo info : infoList) { - List 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 refs = refUserPositionRDao.findByProperty("positionId", position.getId()); + if(refs != null && refs.size() >0){ + Long[] positionIdArray = null; + for (SysRefUserPosition ref : refs) { + List 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); } } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDepartmentService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDepartmentService.java index cd51851..5a86ac2 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDepartmentService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDepartmentService.java @@ -1,5 +1,6 @@ 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.ISysDepartmentService; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; @@ -42,6 +43,9 @@ public class SysDepartmentService implements ISysDepartmentService { @Autowired private CoreTreeService coreTreeService; + @Autowired + private IPersonnelService personnelService; + @Override @ApiOperation(value = "新增部门信息") public SysDepartment insertSysDepartment(SysDepartment department) { @@ -156,10 +160,9 @@ public class SysDepartmentService implements ISysDepartmentService { LOGGER.info("部门信息 DEPARTMENT department:{}",department); departmentRDao.update(department); // 修改冗余信息 - departmentRDao.updateByProperties("parentId",department.getId(), - new String[]{"parentNameRdd", "organizeId", "organizeNameRdd"}, - new Object[]{department.getName(), department.getOrganizeId(), department.getOrganizeNameRdd()}); - + personnelService.refreshDepartmentRdd(department.getId()); + personnelService.refreshUpdateRefSysUserDepartmentRdd(department.getId()); + personnelService.refreshUpdateRefSysUserInfoDepartmentRdd(department.getId()); } @Override diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMenuService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMenuService.java index be34b81..58d6a84 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMenuService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMenuService.java @@ -1,5 +1,6 @@ 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.ISysMenuService; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; @@ -44,38 +45,44 @@ public class SysMenuService implements ISysMenuService { @Autowired private SysRefRoleMenuRepository refRoleMenuRDao; + @Autowired + private IPersonnelService personnelService; + @Override @ApiOperation(value = "更新菜单信息") - public void updateSysMenu(SysMenu sysMenu) { - LOGGER.info("系统功能 SYS_MENU :{}", sysMenu); + public void updateSysMenu(SysMenu menu) { + LOGGER.info("系统功能 SYS_MENU :{}", menu); // 唯一校验 CODE 相同 ID 不同 则视为相同 - List list = sysMenuRDao.findByProperty("menuCode", sysMenu.getMenuCode()); - if(null != list && list.size() > 0){ - for (SysMenu menu : list) { - if(!menu.getId().equals(sysMenu.getId())){ - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) - .setErrorCode(ImppExceptionEnum.IO_EXCEPTION.getCode()) - .setErrorDetail("权限代码已存在") - .setErrorSolution("请重新输入权限代码") - .build(); - } - } + StringBuffer countWhere = new StringBuffer(); + + HqlPack.getStringEqualPack( menu.getMenuCode(),"menuCode",countWhere); + HqlPack.getNumNOEqualPack(menu.getId().toString(),"id",countWhere); + + + int count = sysMenuRDao.findByHqlWhereCount(countWhere.toString()); + if(count > 0){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.IO_EXCEPTION.getCode()) + .setErrorDetail("权限代码已存在") + .setErrorSolution("请重新输入权限代码") + .build(); } // 父节点检查 - coreTreeService.doValidatorSysMenuParentId(sysMenu); + coreTreeService.doValidatorSysMenuParentId(menu); - if (sysMenu.getParentId() != null && sysMenu.getParentId() > 0) { - SysMenu parent = sysMenuRDao.getById(sysMenu.getParentId()); + if (menu.getParentId() != null && menu.getParentId() > 0) { + SysMenu parent = sysMenuRDao.getById(menu.getParentId()); ValidatorBean.checkNotNull(parent,"上级权限信息不存在"); - sysMenu.setParentNameRdd(parent.getName()); + menu.setParentNameRdd(parent.getName()); } - sysMenuRDao.update(sysMenu); - sysMenuRDao.updateByProperties("parentId",sysMenu.getId(), - "parentNameRdd",sysMenu.getName()); + sysMenuRDao.update(menu); + // 更新冗余信息 + personnelService.refreshMenuRdd(menu.getId()); + personnelService.refreshUpdateMenuRdd(menu.getId()); } @Override @@ -172,7 +179,7 @@ public class SysMenuService implements ISysMenuService { @ApiOperation(value = "查询菜单信息",notes = "查询所有菜单信息") public List findSysMenuAll() { LOGGER.info("系统功能 SYS_MENU find All"); - return sysMenuRDao.findAll(); + return sysMenuRDao.findByProperty(new String[]{"menuStatus"},new Object[]{CommonEnumUtil.DATA_STATUS.ENABLE.getValue()}); } @Override diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrganizeService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrganizeService.java index cf490e1..13e9628 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrganizeService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrganizeService.java @@ -1,5 +1,6 @@ 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.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; @@ -38,6 +39,9 @@ public class SysOrganizeService implements ISysOrganizeService { @Autowired private CoreTreeService coreTreeService; + @Autowired + private IPersonnelService personnelService; + @Override @ApiOperation(value = "更新组织",notes = "传入持久化组织对象,进行更新") public void updateSysOrganize(SysOrganize organize) { @@ -71,8 +75,8 @@ public class SysOrganizeService implements ISysOrganizeService { // 更新数据 organizeRDao.update(organize); // 修改冗余信息 - organizeRDao.updateByProperties("parentId",organize.getId(), - "parentNameRdd",organize.getName()); + personnelService.refreshOrganizeRdd(organize.getId()); + personnelService.refreshUpdateOrganizeRdd(organize.getId()); } @Override diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysPositionService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysPositionService.java index 410a985..915f8f0 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysPositionService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysPositionService.java @@ -108,8 +108,9 @@ public class SysPositionService implements ISysPositionService { // 修改岗位信息 LOGGER.info("岗位信息 POSITION position:{}", position); positionRDao.update(position); - // 修改冗余信息 -// personnelService.refreshRefSysUserInfoPositionRdd(position.getId()); + // 更新冗余信息 + personnelService.refreshPositionRdd(position.getId()); + personnelService.refreshUpdateRefSysUserInfoPositionRdd(position.getId()); } @Override @@ -119,7 +120,6 @@ public class SysPositionService implements ISysPositionService { personnelService.checkSysPositionRef(id); positionRDao.deleteById(id); - personnelService.refreshRefSysUserInfoPositionRdd(id); } @Override @@ -133,7 +133,7 @@ public class SysPositionService implements ISysPositionService { positionRDao.deleteByIds(ids); for (Long id : ids) { - personnelService.refreshRefSysUserInfoPositionRdd(id); + personnelService.refreshUpdateRefSysUserInfoPositionRdd(id); } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java index 387744d..1473a86 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java @@ -1,5 +1,6 @@ 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.platform.common.convert.ConvertBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; @@ -48,11 +49,16 @@ public class SysRoleService implements ISysRoleService { @Autowired private SysRefRoleMenuRepository refRoleMenuRDao; + @Autowired + private IPersonnelService personnelService; + @Override @ApiOperation(value = "更新角色信息",notes = "更新角色信息") public void updateSysRole(SysRole sysRole) { LOGGER.info("系统角色 SYS_ROLE :{}", sysRole); sysRoleRDao.update(sysRole); + // 更新冗余信息 + personnelService.refreshUpdateSysRoleRdd(sysRole.getId()); } @Override @@ -157,7 +163,7 @@ public class SysRoleService implements ISysRoleService { ref.setMenuId(menu.getId()); ref.setMenuTypeRdd(menu.getMenuType()); - ConvertBean.serviceModelInitialize(ref,userName); +// ConvertBean.serviceModelInitialize(ref,userName); refs.add(ref); } @@ -181,7 +187,7 @@ public class SysRoleService implements ISysRoleService { role.setMenuNumber(featuresListRdd.size()); role.setMenuNamesRdd(String.join(",",featuresListRdd)); - ConvertBean.serviceModelUpdate(role,userName); +// ConvertBean.serviceModelUpdate(role,userName); } refRoleMenuRDao.saveAll(refs); @@ -210,7 +216,7 @@ public class SysRoleService implements ISysRoleService { @ApiOperation(value = "查信角色信息",notes = "查询所有角色信息") public List findSysRoleAll() { LOGGER.info("系统角色 SYS_ROLE find All"); - return sysRoleRDao.findAll(); + return sysRoleRDao.findByProperty(new String[]{"roleStatus"},new Object[]{CommonEnumUtil.DATA_STATUS.ENABLE.getValue()}); } @Override diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java index fe3046e..3a3dcc2 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java @@ -500,8 +500,58 @@ public class SysUserService implements ISysUserService { } /** + * 账号数据排序 + * 创建时间 角色升序 + * 序号倒叙 + 编号升序 菜单 + * 创建时间 组织升序 + * 创建时间 部门升序 + * @param user + */ + public void packSysUserSort(SysUser user){ + if(user != null){ + // 创建时间升序 + if(user.getRoleList() != null){ + user.getRoleList().sort(Comparator.comparing(SysRole::getCreateDatetime)); + } + + if(user.getMenuList() != null){ + user.getMenuList().sort(Comparator.comparing(SysMenu::getMenuSort).reversed() // 倒序 + .thenComparing(SysMenu::getMenuCode)); //升序 + } + + if(user.getOrganizeList() != null){ + user.getOrganizeList().sort(Comparator.comparing(SysOrganize::getCreateDatetime)); + } + + if(user.getDepartmentList() != null){ + user.getDepartmentList().sort(Comparator.comparing(SysDepartment::getCreateDatetime)); + } + } + } + + /** + * 用户数据排序 + * 岗位创建时间 升序 + * 部门创建时间 升序 + * 组织创建时间 升序 + * @param info + */ + public void packSysUserInfoSort(SysUserInfo info){ + if(info != null){ + if(info.getPositionList() != null){ + info.getPositionList().sort(Comparator.comparing(SysPosition::getCreateDatetime)); + } + if(info.getDepartmentList() != null){ + info.getDepartmentList().sort(Comparator.comparing(SysDepartment::getCreateDatetime)); + } + if(info.getOrganizeList() != null){ + info.getOrganizeList().sort(Comparator.comparing(SysOrganize::getCreateDatetime)); + } + } + } + + /** * 封装用户角色信息 - * @param sessionUser * @param user * @return */ @@ -521,7 +571,6 @@ public class SysUserService implements ISysUserService { /** * 封装用户 菜单信息 - * @param sessionUser * @param user * @return */