fix: oracle 分页错误

This commit is contained in:
taojinlong 2024-07-10 17:07:40 +08:00
parent db0b9dbdf6
commit 254dfe603d

View File

@ -435,9 +435,7 @@ public class OracleQueryProvider extends QueryProvider {
xAxis.add(chartViewFieldDTO); xAxis.add(chartViewFieldDTO);
List<ChartFieldCustomFilterDTO> fieldCustomFilter = new ArrayList<>(); List<ChartFieldCustomFilterDTO> fieldCustomFilter = new ArrayList<>();
// for (ChartFieldCustomFilterDTO chartFieldCustomFilterDTO : OrgFieldCustomFilter) {
// fieldCustomFilter.add(chartFieldCustomFilterDTO);
// }
ChartFieldCustomFilterDTO chartFieldCustomFilterDTO = new ChartFieldCustomFilterDTO(); ChartFieldCustomFilterDTO chartFieldCustomFilterDTO = new ChartFieldCustomFilterDTO();
DatasetTableField datasetTableField = new DatasetTableField(); DatasetTableField datasetTableField = new DatasetTableField();
datasetTableField.setOriginName("ROWNUM"); datasetTableField.setOriginName("ROWNUM");
@ -463,7 +461,6 @@ public class OracleQueryProvider extends QueryProvider {
} else { } else {
if (pageInfo.getGoPage() != null && pageInfo.getPageSize() != null) { if (pageInfo.getGoPage() != null && pageInfo.getPageSize() != null) {
System.out.println("SELECT * FROM (" + sqlFix(originalTableInfo("(" + sqlFix(table) + ")", xAxis, OrgFieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view, fieldCustomFilter)) + ") DE_RESULT_TMP " + " WHERE DE_ROWNUM > " + (pageInfo.getGoPage() - 1) * pageInfo.getPageSize());
return "SELECT * FROM (" + sqlFix(originalTableInfo("(" + sqlFix(table) + ")", xAxis, OrgFieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view, fieldCustomFilter)) + ") DE_RESULT_TMP " + " WHERE DE_ROWNUM > " + (pageInfo.getGoPage() - 1) * pageInfo.getPageSize(); return "SELECT * FROM (" + sqlFix(originalTableInfo("(" + sqlFix(table) + ")", xAxis, OrgFieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view, fieldCustomFilter)) + ") DE_RESULT_TMP " + " WHERE DE_ROWNUM > " + (pageInfo.getGoPage() - 1) * pageInfo.getPageSize();
} else { } else {
return "SELECT * FROM (" + sqlFix(originalTableInfo("(" + sqlFix(table) + ")", xAxis, OrgFieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view, fieldCustomFilter)) + ") DE_RESULT_TMP "; return "SELECT * FROM (" + sqlFix(originalTableInfo("(" + sqlFix(table) + ")", xAxis, OrgFieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view, fieldCustomFilter)) + ") DE_RESULT_TMP ";
@ -525,10 +522,12 @@ public class OracleQueryProvider extends QueryProvider {
List<SQLObj> fields = new ArrayList<>(); List<SQLObj> fields = new ArrayList<>();
fields.addAll(xFields); fields.addAll(xFields);
List<String> wheres = new ArrayList<>(); List<String> wheres = new ArrayList<>();
List<String> pageWheres = new ArrayList<>();
if (customWheres != null) wheres.add(customWheres); if (customWheres != null) wheres.add(customWheres);
if (extWheres != null) wheres.add(extWheres); if (extWheres != null) wheres.add(extWheres);
if (whereTrees != null) wheres.add(whereTrees); if (whereTrees != null) wheres.add(whereTrees);
if (oldWhere != null) wheres.add(oldWhere); if (oldWhere != null) pageWheres.add(oldWhere);
List<SQLObj> groups = new ArrayList<>(); List<SQLObj> groups = new ArrayList<>();
groups.addAll(xFields); groups.addAll(xFields);
// 外层再次套sql // 外层再次套sql
@ -539,6 +538,7 @@ public class OracleQueryProvider extends QueryProvider {
ST st_sql = stg.getInstanceOf("previewSql"); ST st_sql = stg.getInstanceOf("previewSql");
st_sql.add("isGroup", false); st_sql.add("isGroup", false);
if (CollectionUtils.isNotEmpty(xFields)) st_sql.add("groups", xFields); if (CollectionUtils.isNotEmpty(xFields)) st_sql.add("groups", xFields);
if (CollectionUtils.isNotEmpty(wheres)) st_sql.add("filters", wheres);
if (CollectionUtils.isNotEmpty(orders)) st_sql.add("orders", orders); if (CollectionUtils.isNotEmpty(orders)) st_sql.add("orders", orders);
if (ObjectUtils.isNotEmpty(tableObj)) st_sql.add("table", tableObj); if (ObjectUtils.isNotEmpty(tableObj)) st_sql.add("table", tableObj);
String sql = st_sql.render(); String sql = st_sql.render();
@ -571,7 +571,7 @@ public class OracleQueryProvider extends QueryProvider {
.tableName(String.format(OracleConstants.BRACKETS, sql)) .tableName(String.format(OracleConstants.BRACKETS, sql))
.tableAlias(String.format(TABLE_ALIAS_PREFIX, 2)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 2))
.build(); .build();
if (CollectionUtils.isNotEmpty(wheres)) st2.add("filters", wheres); if (CollectionUtils.isNotEmpty(pageWheres)) st2.add("filters", pageWheres);
if (ObjectUtils.isNotEmpty(tableSQL)) st2.add("table", tableSQL2); if (ObjectUtils.isNotEmpty(tableSQL)) st2.add("table", tableSQL2);
return st2.render(); return st2.render();