forked from github/dataease
fix: 预览数据错误
This commit is contained in:
parent
bf8c1a9882
commit
11226a99a0
@ -205,6 +205,7 @@ public class DataSetTableService {
|
||||
}
|
||||
|
||||
public Map<String, Object> getPreviewData(DataSetTableRequest dataSetTableRequest, Integer page, Integer pageSize) throws Exception {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
DatasetTableField datasetTableField = DatasetTableField.builder().build();
|
||||
datasetTableField.setTableId(dataSetTableRequest.getId());
|
||||
datasetTableField.setChecked(Boolean.TRUE);
|
||||
@ -266,33 +267,38 @@ public class DataSetTableService {
|
||||
} else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "excel")) {
|
||||
List<DatasetTableTaskLog> datasetTableTaskLogs = dataSetTableTaskLogService.getByTableId(datasetTable.getId());
|
||||
if (CollectionUtils.isEmpty(datasetTableTaskLogs)) {
|
||||
throw new Exception("no records");
|
||||
}
|
||||
if (datasetTableTaskLogs.get(0).getStatus().equalsIgnoreCase(JobStatus.Underway.name())) {
|
||||
throw new Exception(Translator.get("i18n_processing_data"));
|
||||
}
|
||||
if (datasetTableTaskLogs.get(0).getStatus().equalsIgnoreCase(JobStatus.Error.name())) {
|
||||
throw new Exception("Failed to extract data: " + datasetTableTaskLogs.get(0).getInfo());
|
||||
}
|
||||
Datasource ds = (Datasource) CommonBeanFactory.getBean("DorisDatasource");
|
||||
JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class);
|
||||
DatasourceRequest datasourceRequest = new DatasourceRequest();
|
||||
datasourceRequest.setDatasource(ds);
|
||||
String table = DorisTableUtils.dorisName(dataSetTableRequest.getId());
|
||||
QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType());
|
||||
datasourceRequest.setQuery(qp.createQuerySQLWithPage(table, fields, page, pageSize, realSize));
|
||||
try {
|
||||
data.addAll(jdbcProvider.getData(datasourceRequest));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
map.put("status", "warnning");
|
||||
map.put("msg", Translator.get("i18n_processing_data"));
|
||||
dataSetPreviewPage.setTotal(0);
|
||||
}else if (datasetTableTaskLogs.get(0).getStatus().equalsIgnoreCase(JobStatus.Underway.name())) {
|
||||
map.put("status", "warnning");
|
||||
map.put("msg", Translator.get("i18n_processing_data"));
|
||||
dataSetPreviewPage.setTotal(0);
|
||||
}else if (datasetTableTaskLogs.get(0).getStatus().equalsIgnoreCase(JobStatus.Error.name())) {
|
||||
map.put("status", "error");
|
||||
map.put("msg", "Failed to extract data: " + datasetTableTaskLogs.get(0).getInfo());
|
||||
dataSetPreviewPage.setTotal(0);
|
||||
}else {
|
||||
Datasource ds = (Datasource) CommonBeanFactory.getBean("DorisDatasource");
|
||||
JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class);
|
||||
DatasourceRequest datasourceRequest = new DatasourceRequest();
|
||||
datasourceRequest.setDatasource(ds);
|
||||
String table = DorisTableUtils.dorisName(dataSetTableRequest.getId());
|
||||
QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType());
|
||||
datasourceRequest.setQuery(qp.createQuerySQLWithPage(table, fields, page, pageSize, realSize));
|
||||
try {
|
||||
data.addAll(jdbcProvider.getData(datasourceRequest));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
try {
|
||||
datasourceRequest.setQuery(qp.createQueryCountSQL(table));
|
||||
dataSetPreviewPage.setTotal(Integer.valueOf(jdbcProvider.getData(datasourceRequest).get(0)[0]));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
datasourceRequest.setQuery(qp.createQueryCountSQL(table));
|
||||
dataSetPreviewPage.setTotal(Integer.valueOf(jdbcProvider.getData(datasourceRequest).get(0)[0]));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "custom")) {
|
||||
Datasource ds = (Datasource) CommonBeanFactory.getBean("DorisDatasource");
|
||||
JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class);
|
||||
@ -318,15 +324,17 @@ public class DataSetTableService {
|
||||
List<Map<String, Object>> jsonArray = new ArrayList<>();
|
||||
if (CollectionUtils.isNotEmpty(data)) {
|
||||
jsonArray = data.stream().map(ele -> {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
Map<String, Object> tmpMap = new HashMap<>();
|
||||
for (int i = 0; i < ele.length; i++) {
|
||||
map.put(fieldArray[i], ele[i]);
|
||||
tmpMap.put(fieldArray[i], ele[i]);
|
||||
}
|
||||
return map;
|
||||
return tmpMap;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
if(!map.containsKey("status")){
|
||||
map.put("status", "success");
|
||||
}
|
||||
map.put("fields", fields);
|
||||
map.put("data", jsonArray);
|
||||
map.put("page", dataSetPreviewPage);
|
||||
|
@ -62,6 +62,12 @@ export default {
|
||||
this.fields = response.data.fields
|
||||
this.data = response.data.data
|
||||
const datas = this.data
|
||||
if(response.data.status === 'warnning'){
|
||||
this.$warning(response.data.msg, 3000);
|
||||
}
|
||||
if(response.data.status === 'error'){
|
||||
this.$error(response.data.msg, 3000);
|
||||
}
|
||||
this.$refs.plxTable.reloadData(datas)
|
||||
})
|
||||
}
|
||||
|
@ -108,6 +108,12 @@ export default {
|
||||
this.fields = response.data.fields
|
||||
this.data = response.data.data
|
||||
this.page = response.data.page
|
||||
if(response.data.status === 'warnning'){
|
||||
this.$warning(response.data.msg, 3000);
|
||||
}
|
||||
if(response.data.status === 'error'){
|
||||
this.$error(response.data.msg, 3000);
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user