From 11226a99a09fa39437499cec542b682636d2e900 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Tue, 25 May 2021 17:48:29 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=A2=84=E8=A7=88=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/dataset/DataSetTableService.java | 66 +++++++++++-------- .../views/dataset/common/DatasetTableData.vue | 6 ++ frontend/src/views/dataset/data/ViewTable.vue | 6 ++ 3 files changed, 49 insertions(+), 29 deletions(-) diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index 492af2da79..626e177d6d 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -205,6 +205,7 @@ public class DataSetTableService { } public Map getPreviewData(DataSetTableRequest dataSetTableRequest, Integer page, Integer pageSize) throws Exception { + Map 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 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> jsonArray = new ArrayList<>(); if (CollectionUtils.isNotEmpty(data)) { jsonArray = data.stream().map(ele -> { - Map map = new HashMap<>(); + Map 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 map = new HashMap<>(); + if(!map.containsKey("status")){ + map.put("status", "success"); + } map.put("fields", fields); map.put("data", jsonArray); map.put("page", dataSetPreviewPage); diff --git a/frontend/src/views/dataset/common/DatasetTableData.vue b/frontend/src/views/dataset/common/DatasetTableData.vue index 7bdb288c37..60eb58534c 100644 --- a/frontend/src/views/dataset/common/DatasetTableData.vue +++ b/frontend/src/views/dataset/common/DatasetTableData.vue @@ -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) }) } diff --git a/frontend/src/views/dataset/data/ViewTable.vue b/frontend/src/views/dataset/data/ViewTable.vue index 9244ff36a1..94796bed35 100644 --- a/frontend/src/views/dataset/data/ViewTable.vue +++ b/frontend/src/views/dataset/data/ViewTable.vue @@ -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); + } }) } },