提交 11226a99 authored 作者: taojinlong's avatar taojinlong

fix: 预览数据错误

上级 bf8c1a98
...@@ -205,6 +205,7 @@ public class DataSetTableService { ...@@ -205,6 +205,7 @@ public class DataSetTableService {
} }
public Map<String, Object> getPreviewData(DataSetTableRequest dataSetTableRequest, Integer page, Integer pageSize) throws Exception { 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 datasetTableField = DatasetTableField.builder().build();
datasetTableField.setTableId(dataSetTableRequest.getId()); datasetTableField.setTableId(dataSetTableRequest.getId());
datasetTableField.setChecked(Boolean.TRUE); datasetTableField.setChecked(Boolean.TRUE);
...@@ -266,33 +267,38 @@ public class DataSetTableService { ...@@ -266,33 +267,38 @@ public class DataSetTableService {
} else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "excel")) { } else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "excel")) {
List<DatasetTableTaskLog> datasetTableTaskLogs = dataSetTableTaskLogService.getByTableId(datasetTable.getId()); List<DatasetTableTaskLog> datasetTableTaskLogs = dataSetTableTaskLogService.getByTableId(datasetTable.getId());
if (CollectionUtils.isEmpty(datasetTableTaskLogs)) { if (CollectionUtils.isEmpty(datasetTableTaskLogs)) {
throw new Exception("no records"); map.put("status", "warnning");
} map.put("msg", Translator.get("i18n_processing_data"));
if (datasetTableTaskLogs.get(0).getStatus().equalsIgnoreCase(JobStatus.Underway.name())) { dataSetPreviewPage.setTotal(0);
throw new Exception(Translator.get("i18n_processing_data")); }else if (datasetTableTaskLogs.get(0).getStatus().equalsIgnoreCase(JobStatus.Underway.name())) {
} map.put("status", "warnning");
if (datasetTableTaskLogs.get(0).getStatus().equalsIgnoreCase(JobStatus.Error.name())) { map.put("msg", Translator.get("i18n_processing_data"));
throw new Exception("Failed to extract data: " + datasetTableTaskLogs.get(0).getInfo()); dataSetPreviewPage.setTotal(0);
} }else if (datasetTableTaskLogs.get(0).getStatus().equalsIgnoreCase(JobStatus.Error.name())) {
Datasource ds = (Datasource) CommonBeanFactory.getBean("DorisDatasource"); map.put("status", "error");
JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); map.put("msg", "Failed to extract data: " + datasetTableTaskLogs.get(0).getInfo());
DatasourceRequest datasourceRequest = new DatasourceRequest(); dataSetPreviewPage.setTotal(0);
datasourceRequest.setDatasource(ds); }else {
String table = DorisTableUtils.dorisName(dataSetTableRequest.getId()); Datasource ds = (Datasource) CommonBeanFactory.getBean("DorisDatasource");
QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class);
datasourceRequest.setQuery(qp.createQuerySQLWithPage(table, fields, page, pageSize, realSize)); DatasourceRequest datasourceRequest = new DatasourceRequest();
try { datasourceRequest.setDatasource(ds);
data.addAll(jdbcProvider.getData(datasourceRequest)); String table = DorisTableUtils.dorisName(dataSetTableRequest.getId());
} catch (Exception e) { QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType());
e.printStackTrace(); 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")) { } else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "custom")) {
Datasource ds = (Datasource) CommonBeanFactory.getBean("DorisDatasource"); Datasource ds = (Datasource) CommonBeanFactory.getBean("DorisDatasource");
JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class);
...@@ -318,15 +324,17 @@ public class DataSetTableService { ...@@ -318,15 +324,17 @@ public class DataSetTableService {
List<Map<String, Object>> jsonArray = new ArrayList<>(); List<Map<String, Object>> jsonArray = new ArrayList<>();
if (CollectionUtils.isNotEmpty(data)) { if (CollectionUtils.isNotEmpty(data)) {
jsonArray = data.stream().map(ele -> { 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++) { 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()); }).collect(Collectors.toList());
} }
Map<String, Object> map = new HashMap<>(); if(!map.containsKey("status")){
map.put("status", "success");
}
map.put("fields", fields); map.put("fields", fields);
map.put("data", jsonArray); map.put("data", jsonArray);
map.put("page", dataSetPreviewPage); map.put("page", dataSetPreviewPage);
......
...@@ -62,6 +62,12 @@ export default { ...@@ -62,6 +62,12 @@ export default {
this.fields = response.data.fields this.fields = response.data.fields
this.data = response.data.data this.data = response.data.data
const datas = this.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) this.$refs.plxTable.reloadData(datas)
}) })
} }
......
...@@ -108,6 +108,12 @@ export default { ...@@ -108,6 +108,12 @@ export default {
this.fields = response.data.fields this.fields = response.data.fields
this.data = response.data.data this.data = response.data.data
this.page = response.data.page 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);
}
}) })
} }
}, },
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论