From d1e6fd857598b96bc5512368748ede4bbb4d204d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BF=9E=E5=AE=9D=E5=B1=B1?= <1253070437@qq.com> Date: Tue, 13 Aug 2024 00:20:21 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=9B=B4=E6=96=B0=E3=80=91=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E4=B8=8A=E7=BA=A7=E4=B8=BB=E7=AE=A1=E5=85=BC=E4=BB=BB?= =?UTF-8?q?=E8=AF=A5=E6=9C=BA=E6=9E=84=E6=88=96=E8=AF=A5=E8=81=8C=E4=BD=8D?= =?UTF-8?q?=E7=9A=84=E4=BA=BA=E4=B9=9F=E4=BC=9A=E8=A2=AB=E5=8C=85=E5=90=AB?= =?UTF-8?q?=E3=80=81=E8=A7=A3=E5=86=B3=E5=88=86=E9=A1=B5=E4=B8=8B=E6=8B=89?= =?UTF-8?q?=E6=A1=86=E7=BB=84=E4=BB=B6=E6=97=A0=E6=B3=95=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/XnPageSelect/index.vue | 2 ++ .../java/vip/xiaonuo/sys/api/SysUserApi.java | 8 ++++---- .../user/provider/SysUserApiProvider.java | 17 +++++++++++------ 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/snowy-admin-web/src/components/XnPageSelect/index.vue b/snowy-admin-web/src/components/XnPageSelect/index.vue index 8c4eb645..0a047107 100644 --- a/snowy-admin-web/src/components/XnPageSelect/index.vue +++ b/snowy-admin-web/src/components/XnPageSelect/index.vue @@ -72,6 +72,8 @@ initParams.value = { ...initParams.value, ...param, size: props.pageSize } // 加载API spinning.value = true + // 重置当前页 + initParams.value.current = 1 props .pageFunction(initParams.value) .then((data) => { diff --git a/snowy-plugin-api/snowy-plugin-sys-api/src/main/java/vip/xiaonuo/sys/api/SysUserApi.java b/snowy-plugin-api/snowy-plugin-sys-api/src/main/java/vip/xiaonuo/sys/api/SysUserApi.java index b78ca187..58bb582e 100644 --- a/snowy-plugin-api/snowy-plugin-sys-api/src/main/java/vip/xiaonuo/sys/api/SysUserApi.java +++ b/snowy-plugin-api/snowy-plugin-sys-api/src/main/java/vip/xiaonuo/sys/api/SysUserApi.java @@ -74,7 +74,7 @@ public interface SysUserApi { void grantRole(String userId, List roleIdList); /** - * 根据组织id集合获取组织下用户id集合 + * 根据组织id集合获取组织下用户id集合(含兼职该机构的人) * * @author xuyuxiang * @date 2022/6/6 11:40 @@ -82,7 +82,7 @@ public interface SysUserApi { List getUserIdListByOrgIdList(List orgIdList); /** - * 根据职位id集合获取职位下用户id集合 + * 根据职位id集合获取职位下用户id集合(含兼职该职位的人) * * @author xuyuxiang * @date 2022/6/6 11:44 @@ -90,7 +90,7 @@ public interface SysUserApi { List getUserIdListByPositionIdList(List positionIdList); /** - * 根据用户id和组织id和职位id和主管层级获取上级主管id + * 根据用户id和组织id和主管层级获取上级主管id * * @author xuyuxiang * @date 2022/6/6 14:50 @@ -98,7 +98,7 @@ public interface SysUserApi { JSONObject getSupervisorIdBySupervisorLevel(List userIdList, String userId, String orgId, String supervisorLevel); /** - * 根据用户id和组织id和职位id和终点主管层级获取上级主管id集合 + * 根据用户id和组织id和终点主管层级获取上级主管id集合 * * @author xuyuxiang * @date 2022/6/6 14:50 diff --git a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/provider/SysUserApiProvider.java b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/provider/SysUserApiProvider.java index 88071001..94be2e4a 100644 --- a/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/provider/SysUserApiProvider.java +++ b/snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/provider/SysUserApiProvider.java @@ -94,8 +94,11 @@ public class SysUserApiProvider implements SysUserApi { @Override public List getUserIdListByOrgIdList(List orgIdList) { if(ObjectUtil.isNotEmpty(orgIdList)) { - return sysUserService.list(new LambdaQueryWrapper().in(SysUser::getOrgId, orgIdList)).stream() - .map(SysUser::getId).collect(Collectors.toList()); + String orConditionSql = orgIdList.stream().map(orgId -> "POSITION_JSON LIKE '%" + orgId + "%'") + .collect(Collectors.joining(" OR ")); + return sysUserService.list(new LambdaQueryWrapper().in(SysUser::getOrgId, orgIdList) + .or(q-> q.apply(orConditionSql))).stream().map(SysUser::getId).collect(Collectors.toList()); + } return CollectionUtil.newArrayList(); } @@ -103,8 +106,10 @@ public class SysUserApiProvider implements SysUserApi { @Override public List getUserIdListByPositionIdList(List positionIdList) { if(ObjectUtil.isNotEmpty(positionIdList)) { - return sysUserService.list(new LambdaQueryWrapper().in(SysUser::getPositionId, positionIdList)).stream() - .map(SysUser::getId).collect(Collectors.toList()); + String orConditionSql = positionIdList.stream().map(positionId -> "POSITION_JSON LIKE '%" + positionId + "%'") + .collect(Collectors.joining(" OR ")); + return sysUserService.list(new LambdaQueryWrapper().in(SysUser::getPositionId, positionIdList) + .or(q-> q.apply(orConditionSql))).stream().map(SysUser::getId).collect(Collectors.toList()); } return CollectionUtil.newArrayList(); } @@ -124,13 +129,13 @@ public class SysUserApiProvider implements SysUserApi { } } } - // 再查兼职职位主管 + // 再查兼职职位主管,需排除userOrgId的兼职主管 if(ObjectUtil.isEmpty(result.get())) { if(ObjectUtil.isNotEmpty(positionJson)) { JSONUtil.parseArray(positionJson).forEach(object -> { JSONObject jsonObject = JSONUtil.parseObj(object); String partTimeOrgId = jsonObject.getStr("orgId"); - if(ObjectUtil.isNotEmpty(partTimeOrgId) && orgId.equals(partTimeOrgId)) { + if(ObjectUtil.isNotEmpty(partTimeOrgId) && !partTimeOrgId.equals(userOrgId) && orgId.equals(partTimeOrgId)) { String partTimDirectorId = jsonObject.getStr("directorId"); if(ObjectUtil.isNotEmpty(partTimDirectorId)) { // 存在多个相同兼职职位,后者覆盖前者