【更新】查询上级主管兼任该机构或该职位的人也会被包含、解决分页下拉框组件无法分页问题

pull/229/MERGE
俞宝山 2024-08-13 00:20:21 +08:00
parent 824800683a
commit d1e6fd8575
3 changed files with 17 additions and 10 deletions

View File

@ -72,6 +72,8 @@
initParams.value = { ...initParams.value, ...param, size: props.pageSize } initParams.value = { ...initParams.value, ...param, size: props.pageSize }
// API // API
spinning.value = true spinning.value = true
//
initParams.value.current = 1
props props
.pageFunction(initParams.value) .pageFunction(initParams.value)
.then((data) => { .then((data) => {

View File

@ -74,7 +74,7 @@ public interface SysUserApi {
void grantRole(String userId, List<String> roleIdList); void grantRole(String userId, List<String> roleIdList);
/** /**
* idid * idid
* *
* @author xuyuxiang * @author xuyuxiang
* @date 2022/6/6 11:40 * @date 2022/6/6 11:40
@ -82,7 +82,7 @@ public interface SysUserApi {
List<String> getUserIdListByOrgIdList(List<String> orgIdList); List<String> getUserIdListByOrgIdList(List<String> orgIdList);
/** /**
* idid * idid
* *
* @author xuyuxiang * @author xuyuxiang
* @date 2022/6/6 11:44 * @date 2022/6/6 11:44
@ -90,7 +90,7 @@ public interface SysUserApi {
List<String> getUserIdListByPositionIdList(List<String> positionIdList); List<String> getUserIdListByPositionIdList(List<String> positionIdList);
/** /**
* idididid * ididid
* *
* @author xuyuxiang * @author xuyuxiang
* @date 2022/6/6 14:50 * @date 2022/6/6 14:50
@ -98,7 +98,7 @@ public interface SysUserApi {
JSONObject getSupervisorIdBySupervisorLevel(List<String> userIdList, String userId, String orgId, String supervisorLevel); JSONObject getSupervisorIdBySupervisorLevel(List<String> userIdList, String userId, String orgId, String supervisorLevel);
/** /**
* idididid * ididid
* *
* @author xuyuxiang * @author xuyuxiang
* @date 2022/6/6 14:50 * @date 2022/6/6 14:50

View File

@ -94,8 +94,11 @@ public class SysUserApiProvider implements SysUserApi {
@Override @Override
public List<String> getUserIdListByOrgIdList(List<String> orgIdList) { public List<String> getUserIdListByOrgIdList(List<String> orgIdList) {
if(ObjectUtil.isNotEmpty(orgIdList)) { if(ObjectUtil.isNotEmpty(orgIdList)) {
return sysUserService.list(new LambdaQueryWrapper<SysUser>().in(SysUser::getOrgId, orgIdList)).stream() String orConditionSql = orgIdList.stream().map(orgId -> "POSITION_JSON LIKE '%" + orgId + "%'")
.map(SysUser::getId).collect(Collectors.toList()); .collect(Collectors.joining(" OR "));
return sysUserService.list(new LambdaQueryWrapper<SysUser>().in(SysUser::getOrgId, orgIdList)
.or(q-> q.apply(orConditionSql))).stream().map(SysUser::getId).collect(Collectors.toList());
} }
return CollectionUtil.newArrayList(); return CollectionUtil.newArrayList();
} }
@ -103,8 +106,10 @@ public class SysUserApiProvider implements SysUserApi {
@Override @Override
public List<String> getUserIdListByPositionIdList(List<String> positionIdList) { public List<String> getUserIdListByPositionIdList(List<String> positionIdList) {
if(ObjectUtil.isNotEmpty(positionIdList)) { if(ObjectUtil.isNotEmpty(positionIdList)) {
return sysUserService.list(new LambdaQueryWrapper<SysUser>().in(SysUser::getPositionId, positionIdList)).stream() String orConditionSql = positionIdList.stream().map(positionId -> "POSITION_JSON LIKE '%" + positionId + "%'")
.map(SysUser::getId).collect(Collectors.toList()); .collect(Collectors.joining(" OR "));
return sysUserService.list(new LambdaQueryWrapper<SysUser>().in(SysUser::getPositionId, positionIdList)
.or(q-> q.apply(orConditionSql))).stream().map(SysUser::getId).collect(Collectors.toList());
} }
return CollectionUtil.newArrayList(); return CollectionUtil.newArrayList();
} }
@ -124,13 +129,13 @@ public class SysUserApiProvider implements SysUserApi {
} }
} }
} }
// 再查兼职职位主管 // 再查兼职职位主管需排除userOrgId的兼职主管
if(ObjectUtil.isEmpty(result.get())) { if(ObjectUtil.isEmpty(result.get())) {
if(ObjectUtil.isNotEmpty(positionJson)) { if(ObjectUtil.isNotEmpty(positionJson)) {
JSONUtil.parseArray(positionJson).forEach(object -> { JSONUtil.parseArray(positionJson).forEach(object -> {
JSONObject jsonObject = JSONUtil.parseObj(object); JSONObject jsonObject = JSONUtil.parseObj(object);
String partTimeOrgId = jsonObject.getStr("orgId"); 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"); String partTimDirectorId = jsonObject.getStr("directorId");
if(ObjectUtil.isNotEmpty(partTimDirectorId)) { if(ObjectUtil.isNotEmpty(partTimDirectorId)) {
// 存在多个相同兼职职位,后者覆盖前者 // 存在多个相同兼职职位,后者覆盖前者