fix: 下拉过滤器选项先排序去重再取1000条

This commit is contained in:
fit2cloud-chenyw 2023-12-27 18:05:36 +08:00
parent 2ed9d7832a
commit 017dcffe67

View File

@ -153,7 +153,7 @@ public class DirectFieldService implements DataSetFieldService {
DatasourceRequest datasourceRequest = new DatasourceRequest();
Provider datasourceProvider = null;
String createSQL = null;
Long calcLimit = needMapping ? null : 1000L;
Long calcLimit = needMapping ? null : 100000L;
if (datasetTable.getMode() == 0) {// 直连
if (StringUtils.isEmpty(datasetTable.getDataSourceId())) return null;
Datasource ds = datasourceService.get(datasetTable.getDataSourceId());
@ -185,7 +185,8 @@ public class DirectFieldService implements DataSetFieldService {
String sql = (String) dataSetTableService.getUnionSQLDatasource(dt, ds).get("sql");
createSQL = qp.createQuerySQLAsTmp(sql, permissionFields, !needSort, customFilter, rowPermissionsTree, deSortFields, calcLimit, keyword);
}
datasourceRequest.setQuery(needMapping ? createSQL : qp.createSQLPreview(createSQL, null));
// datasourceRequest.setQuery(needMapping ? createSQL : qp.createSQLPreview(createSQL, null));
datasourceRequest.setQuery(createSQL);
} else if (datasetTable.getMode() == 1) {// 抽取
// 连接doris构建doris数据源查询
@ -220,7 +221,7 @@ public class DirectFieldService implements DataSetFieldService {
assert datasourceProvider != null;
List<String[]> rows = datasourceProvider.getData(datasourceRequest);
if (!needMapping) {
return rows.stream().map(row -> row[0]).distinct().collect(Collectors.toList());
return rows.stream().map(row -> row[0]).distinct().limit(1000L).collect(Collectors.toList());
}
Set<String> pkSet = new HashSet<>();
if (CollectionUtils.isNotEmpty(rows) && existExtSortField && originSize > 0) {