mirror of https://gitee.com/xiaonuobase/snowy
【更新】查询上级主管兼任该机构或该职位的人也会被包含、解决分页下拉框组件无法分页问题
parent
824800683a
commit
d1e6fd8575
|
@ -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) => {
|
||||
|
|
|
@ -74,7 +74,7 @@ public interface SysUserApi {
|
|||
void grantRole(String userId, List<String> roleIdList);
|
||||
|
||||
/**
|
||||
* 根据组织id集合获取组织下用户id集合
|
||||
* 根据组织id集合获取组织下用户id集合(含兼职该机构的人)
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/6/6 11:40
|
||||
|
@ -82,7 +82,7 @@ public interface SysUserApi {
|
|||
List<String> getUserIdListByOrgIdList(List<String> orgIdList);
|
||||
|
||||
/**
|
||||
* 根据职位id集合获取职位下用户id集合
|
||||
* 根据职位id集合获取职位下用户id集合(含兼职该职位的人)
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/6/6 11:44
|
||||
|
@ -90,7 +90,7 @@ public interface SysUserApi {
|
|||
List<String> getUserIdListByPositionIdList(List<String> 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<String> userIdList, String userId, String orgId, String supervisorLevel);
|
||||
|
||||
/**
|
||||
* 根据用户id和组织id和职位id和终点主管层级获取上级主管id集合
|
||||
* 根据用户id和组织id和终点主管层级获取上级主管id集合
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/6/6 14:50
|
||||
|
|
|
@ -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)) {
|
||||
// 存在多个相同兼职职位,后者覆盖前者
|
||||
|
|
Loading…
Reference in New Issue