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 72f66fb..8b9eae5 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 @@ -38,6 +38,9 @@ public interface IPersonnelService { @ApiOperation(value = "查询账号信息") List findSysUserByIds(Long[] ids); + @ApiOperation(value = "查询账号信息") + List querySysUserByUserDetailModelOrIds(UserDetailModel model, List ids); + @ApiOperation(value = "获取用户信息") SysUserInfo getSysUserInfoById(Long id); @@ -65,6 +68,9 @@ public interface IPersonnelService { @ApiOperation(value = "查询账号部门关系") List findSysRefUserDepartmentById(Long userId); + @ApiOperation(value = "查询账号部门关系") + List querySysRefUserDepartmentByUserDetailModel(UserDetailModel model); + @ApiOperation(value = "查询用户部门关系") List findSysRefUserInfoDepartmentById(Long infoId); diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserInfoService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserInfoService.java index ccac749..10d5187 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserInfoService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserInfoService.java @@ -2,6 +2,7 @@ package cn.estsh.i3plus.core.api.iservice.busi; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.model.platform.UserDetailModel; import cn.estsh.i3plus.pojo.platform.bean.*; import io.swagger.annotations.ApiOperation; @@ -121,7 +122,7 @@ public interface ISysUserInfoService { List findRefUserDepartmentByUserId(Long userId); @ApiOperation(value = "关系查询-用户部门",notes = "根据部门或者组织集合查询用户部门关系") - List querySysRefUserDepartment(SysUserInfo userInfo); + List querySysRefUserDepartment(UserDetailModel model); /** * 查询用户岗位关系 @@ -137,9 +138,12 @@ public interface ISysUserInfoService { * @param idList 用户ID 集合 * @return */ - @ApiOperation(value = "查询用户信息-",notes = "根据组织、部门、名称+工号组合查询条件查询用户信息") + @ApiOperation(value = "查询用户信息",notes = "根据组织、部门、名称+工号组合查询条件查询用户信息") List querySysUserInfoList(SysUserInfo info, List idList); + @ApiOperation(value = "查询用户信息",notes = "根据组织、部门、名称+工号组合查询条件查询用户信息") + List querySysUserInfoList(UserDetailModel model, List idList); + /** * 用户唯一校验 用户工号 * @param no 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 0308d2c..3b95f88 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 @@ -26,9 +26,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @Description : @@ -337,6 +335,34 @@ public class PersonnelController extends CoreBaseController { } } + + @GetMapping(value = "/query-ref-department") + @ApiOperation(value = "查询角色的所有角色权限关系", notes = "查询角色的所有角色权限关系") + public ResultBean queryRefDepartment(UserDetailModel model) { + try { + model.setUserDepartmentIdList(new ArrayList(Arrays.asList(new String[]{"1072037153732694016"}))); + + List idList = new ArrayList<>(); + + List refs = personnelService.querySysRefUserDepartmentByUserDetailModel(model); + if(refs != null && refs.size() > 0){ + for (SysRefUserDepartment ref : refs) { + idList.add(ref.getUserId()); + } + } + + 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); + return ResultBean.fail(busExcep); + } catch (Exception e) { + LOGGER.error(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription() + ":{}", e.getMessage(), e); + return ResultBean.fail().setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode()); + } + } + /** * 数据必填校验 * @param model diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java index bd78099..2a5a0b9 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java @@ -10,6 +10,7 @@ import cn.estsh.i3plus.pojo.base.bean.ListPager; 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.model.platform.UserDetailModel; import cn.estsh.i3plus.pojo.platform.bean.*; import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.boot.auth.AuthUtil; @@ -242,18 +243,18 @@ public class SysUserInfoController extends CoreBaseController{ @GetMapping(value = "/query-ref-department") @ApiOperation(value = "查询角色的所有角色权限关系", notes = "查询角色的所有角色权限关系") - public ResultBean queryRefDepartment(SysUserInfo userInfo) { + public ResultBean queryRefDepartment(UserDetailModel model) { try { List idList = new ArrayList<>(); - List refs = sysUserInfoService.querySysRefUserDepartment(userInfo); + List refs = sysUserInfoService.querySysRefUserDepartment(model); if(refs != null && refs.size() > 0){ for (SysRefUserDepartment ref : refs) { idList.add(ref.getUserId()); } } - List result = sysUserInfoService.querySysUserInfoList(userInfo, idList); + List result = sysUserInfoService.querySysUserInfoList(model, idList); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result); } catch (ImppBusiException busExcep) { 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 f11b081..96ff4f2 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.apiservice.util.HqlModelPack; import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; @@ -122,6 +123,14 @@ public class PersonnelServiceService implements IPersonnelService { } @Override + public List querySysUserByUserDetailModelOrIds(UserDetailModel model, List ids) { + LOGGER.debug("平台用户 SysUser model:{} ids:{}", model, ids); + String modeWhere = HqlModelPack.packHqlSysUserByModelOrIds(model, ids); + + return userRDao.findByHqlWhere(modeWhere); + } + + @Override public SysUserInfo getSysUserInfoById(Long id) { return userInfoRDao.getById(id); } @@ -176,6 +185,24 @@ public class PersonnelServiceService implements IPersonnelService { } @Override + public List querySysRefUserDepartmentByUserDetailModel(UserDetailModel model) { + if(model != null){ + StringBuffer userIdWhere = new StringBuffer(); + + if(model.getUserDepartmentIdList() != null){ + HqlPack.getInPack(StringUtils.join(model.getInfoDepartmentIdList(),","),"departmentId", userIdWhere); + } + if(model.getUserOrganizeIdList() != null){ + HqlPack.getInPack( StringUtils.join(model.getUserOrganizeIdList(),","),"organizeId",userIdWhere); + } + + return refUserDepartmentRDao.findByHqlWhere(userIdWhere.toString()); + }else { + return null; + } + } + + @Override public List findSysRefUserInfoDepartmentById(Long infoId) { LOGGER.debug("平台用户部门 SysRefUserInfoDepartment infoId:{}", infoId); return refUserInfoDepartmentRDao.findByProperty("userId",infoId); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java index b9f05e0..07e5183 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java @@ -8,6 +8,7 @@ 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.HqlPack; +import cn.estsh.i3plus.pojo.model.platform.UserDetailModel; import cn.estsh.i3plus.pojo.platform.bean.*; import cn.estsh.i3plus.pojo.platform.repository.*; import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; @@ -270,16 +271,16 @@ public class SysUserInfoService implements ISysUserInfoService { @Override @ApiOperation(value = "关系查询-用户部门",notes = "根据部门或者组织集合查询用户部门关系") - public List querySysRefUserDepartment(SysUserInfo userInfo) { - if(userInfo != null){ + public List querySysRefUserDepartment(UserDetailModel model) { + if(model != null){ StringBuffer userIdWhere = new StringBuffer(); -// if(userInfo.getDepartmentIdList() != null){ -// HqlPack.getInPack(StringUtils.join(userInfo.getDepartmentIdList(),","),"departmentId", userIdWhere); -// } -// if(userInfo.getOrganizeIdList() != null){ -// HqlPack.getInPack( StringUtils.join(userInfo.getOrganizeIdList(),","),"organizeId",userIdWhere); -// } + if(model.getUserDepartmentIdList() != null){ + HqlPack.getInPack(StringUtils.join(model.getInfoDepartmentIdList(),","),"departmentId", userIdWhere); + } + if(model.getUserOrganizeIdList() != null){ + HqlPack.getInPack( StringUtils.join(model.getUserOrganizeIdList(),","),"organizeId",userIdWhere); + } return refUserDepartmentRDao.findByHqlWhere(userIdWhere.toString()); }else { @@ -319,6 +320,11 @@ public class SysUserInfoService implements ISysUserInfoService { } @Override + public List querySysUserInfoList(UserDetailModel model, List idList) { + return null; + } + + @Override @ApiOperation(value = "用户唯一校验 用户工号",notes = "用户唯一校验 用户工号") public boolean checkUserInfoByUserEmpNo(String no, long id) { int count; diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/HqlModelPack.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/HqlModelPack.java new file mode 100644 index 0000000..6995928 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/HqlModelPack.java @@ -0,0 +1,41 @@ +package cn.estsh.i3plus.core.apiservice.util; + +import cn.estsh.i3plus.pojo.base.tool.HqlPack; +import cn.estsh.i3plus.pojo.model.platform.UserDetailModel; +import org.apache.commons.lang3.StringUtils; + +import java.util.List; + +/** + * @Description : + * @Reference : + * @Author : Adair Peng + * @CreateDate : 2018-12-26 19:22 + * @Modify: + **/ +public class HqlModelPack { + + + + /** + * 用户信息 复杂查询拼接 + * @param model + * @return + */ + public static String packHqlSysUserByModelOrIds(UserDetailModel model, List idList){ + StringBuffer result = new StringBuffer(); + + // And + HqlPack.getNumEqualPack(model.getUserStatus(),"userStatus",result); + if(idList != null && idList.size() > 0){ + HqlPack.getInPack(StringUtils.join(idList, ","), "id", result); + } + + // Like + HqlPack.getStringLikerPack(model.getInfoName(),"userName",result); + HqlPack.getStringLikerPack(model.getInfoEmpNo(),"userEmpNo",result); + + return result.toString(); + } + +}