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