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)) { // 存在多个相同兼职职位,后者覆盖前者