暂时没有找到解决方案:
1.查菜单时递归查询/oracle树查询,暂时不能满足
解决方案(遍历拼接多个or orgId in(’’)条件):
private void getDepOrgIdIn(QMedDepInfo qMedDepInfo, JPAQuery<DictAuditDto> jpaQuery, List<String> orgIdList) {
SysUserDto currentSysUser = JwtUtil.getCurrentSysUser();
if (CommonUtils.isEmpty(orgIdList))
orgIdList = currentSysUser.getOrgIdList();
// jpaQuery.where(qMedDepInfo.id.orgId.in(orgIdList));
int psize = 1000;
if (orgIdList.size() > psize) {
int size = (orgIdList.size() / psize);
int yu = orgIdList.size() % psize;
size = (yu == 0) ? size : ++size;
String[] notIn = new String[] { "111" };
BooleanExpression in = qMedDepInfo.id.orgId.notIn(notIn);
for (int i = 0; i < size; i++) {
// 获取1000条,拼接in条件
int start = i * psize;
int end = i * psize + psize;
if (yu != 0 && i == size - 1) {
end = i * psize + yu;
}
List<String> newList = orgIdList.subList(start, end);
in = in.or(qMedDepInfo.id.orgId.in(newList));
}
jpaQuery.where(in);
} else {
jpaQuery.where(qMedDepInfo.id.orgId.in(orgIdList));
}
}