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

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 }
// API
spinning.value = true
//
initParams.value.current = 1
props
.pageFunction(initParams.value)
.then((data) => {

View File

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

View File

@ -94,8 +94,11 @@ public class SysUserApiProvider implements SysUserApi {
@Override
public List<String> getUserIdListByOrgIdList(List<String> orgIdList) {
if(ObjectUtil.isNotEmpty(orgIdList)) {
return sysUserService.list(new LambdaQueryWrapper<SysUser>().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<SysUser>().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<String> getUserIdListByPositionIdList(List<String> positionIdList) {
if(ObjectUtil.isNotEmpty(positionIdList)) {
return sysUserService.list(new LambdaQueryWrapper<SysUser>().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<SysUser>().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)) {
// 存在多个相同兼职职位,后者覆盖前者