暫時沒有找到解決方案:
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);
jpaQuery.where(in);
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);
jpaQuery.where(in.or(qMedDepInfo.id.orgId.in(newList)));
}
} else {
jpaQuery.where(qMedDepInfo.id.orgId.in(orgIdList));
}
}