From d8830e175308996814e1d51535050481b5faf9db Mon Sep 17 00:00:00 2001 From: junjie Date: Fri, 11 Jun 2021 17:11:13 +0800 Subject: [PATCH] =?UTF-8?q?feat(fix):=E5=88=A0=E9=99=A4=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=9B=86=EF=BC=8C=E8=87=AA=E5=AE=9A=E4=B9=89=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=9B=86=E6=8A=A5=E9=94=99=EF=BC=9B=E6=B7=BB=E5=8A=A0=E8=A7=86?= =?UTF-8?q?=E5=9B=BE=E6=95=B0=E6=8D=AE=E9=A2=84=E8=A7=88=E6=BB=9A=E5=8A=A8?= =?UTF-8?q?=E6=9D=A1=E4=BC=98=E5=8C=96=EF=BC=9B=E5=85=B3=E8=81=94=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=A1=A8=E5=90=8D=E4=BC=98=E5=8C=96=EF=BC=9B=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E8=A7=86=E5=9B=BE=EF=BC=8C=E4=B8=8D=E6=B8=85=E7=A9=BA?= =?UTF-8?q?=E7=BB=B4=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/chart/ChartViewService.java | 3 +- .../service/dataset/DataSetTableService.java | 76 +++++++++++-------- .../resources/i18n/messages_en_US.properties | 3 +- .../resources/i18n/messages_zh_CN.properties | 1 + .../resources/i18n/messages_zh_TW.properties | 3 +- frontend/src/views/chart/view/ChartEdit.vue | 3 - .../views/dataset/common/DatasetTableData.vue | 2 + frontend/src/views/dataset/data/UnionView.vue | 9 ++- 8 files changed, 59 insertions(+), 41 deletions(-) diff --git a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java index f05d8c6894..020157435f 100644 --- a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -100,7 +100,8 @@ public class ChartViewService { customFilter.forEach(ele -> ele.setField(dataSetTableFieldsService.get(ele.getFieldId()))); if (StringUtils.equalsIgnoreCase("text", view.getType()) || StringUtils.equalsIgnoreCase("gauge", view.getType())) { - if (CollectionUtils.isEmpty(xAxis) && CollectionUtils.isEmpty(yAxis)) { + xAxis = new ArrayList<>(); + if (CollectionUtils.isEmpty(yAxis)) { ChartViewDTO dto = new ChartViewDTO(); BeanUtils.copyBean(dto, view); return dto; 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 2659965af7..ab18067c74 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -427,45 +427,49 @@ public class DataSetTableService { String sql = getCustomSQL(dataTableInfoDTO, list); // 使用输入的sql先预执行一次,并拿到所有字段 datasourceRequest.setQuery(sql); - List previewFields = jdbcProvider.fetchResultField(datasourceRequest); - QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); - datasourceRequest.setQuery(qp.createSQLPreview(sql, previewFields.get(0).getFieldName())); - Map result = jdbcProvider.fetchResultAndField(datasourceRequest); - List data = result.get("dataList"); - List fields = result.get("fieldList"); - String[] fieldArray = fields.stream().map(TableFiled::getFieldName).toArray(String[]::new); + Map res = new HashMap<>(); + try { + List previewFields = jdbcProvider.fetchResultField(datasourceRequest); - List> jsonArray = new ArrayList<>(); - if (CollectionUtils.isNotEmpty(data)) { - jsonArray = data.stream().map(ele -> { - Map map = new HashMap<>(); - for (int i = 0; i < ele.length; i++) { - map.put(fieldArray[i], ele[i]); - } - return map; - }).collect(Collectors.toList()); - } + QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); + datasourceRequest.setQuery(qp.createSQLPreview(sql, previewFields.get(0).getFieldName())); + Map result = jdbcProvider.fetchResultAndField(datasourceRequest); + List data = result.get("dataList"); + List fields = result.get("fieldList"); + String[] fieldArray = fields.stream().map(TableFiled::getFieldName).toArray(String[]::new); - // 获取每个字段在当前de数据库中的name,作为sql查询后的remarks返回前端展示 - List checkedFieldList = new ArrayList<>(); - dataTableInfoDTO.getList().forEach(ele -> { - checkedFieldList.addAll(dataSetTableFieldsService.getListByIds(ele.getCheckedFields())); - }); - for (DatasetTableField datasetTableField : checkedFieldList) { - for (TableFiled tableFiled : fields) { - if (StringUtils.equalsIgnoreCase(tableFiled.getFieldName(), DorisTableUtils.dorisFieldName(datasetTableField.getTableId() + "_" + datasetTableField.getDataeaseName()))) { - tableFiled.setRemarks(datasetTableField.getName()); - break; + List> jsonArray = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(data)) { + jsonArray = data.stream().map(ele -> { + Map map = new HashMap<>(); + for (int i = 0; i < ele.length; i++) { + map.put(fieldArray[i], ele[i]); + } + return map; + }).collect(Collectors.toList()); + } + + // 获取每个字段在当前de数据库中的name,作为sql查询后的remarks返回前端展示 + List checkedFieldList = new ArrayList<>(); + dataTableInfoDTO.getList().forEach(ele -> { + checkedFieldList.addAll(dataSetTableFieldsService.getListByIds(ele.getCheckedFields())); + }); + for (DatasetTableField datasetTableField : checkedFieldList) { + for (TableFiled tableFiled : fields) { + if (StringUtils.equalsIgnoreCase(tableFiled.getFieldName(), DorisTableUtils.dorisFieldName(datasetTableField.getTableId() + "_" + datasetTableField.getDataeaseName()))) { + tableFiled.setRemarks(datasetTableField.getName()); + break; + } } } + + res.put("fields", fields); + res.put("data", jsonArray); + return res; + } catch (Exception e) { + return res; } - - Map map = new HashMap<>(); - map.put("fields", fields); - map.put("data", jsonArray); - - return map; } // 自助数据集从doris里预览数据 @@ -503,8 +507,14 @@ public class DataSetTableService { } } } + if (StringUtils.isEmpty(f)) { + throw new RuntimeException(Translator.get("i18n_custom_ds_delete")); + } return MessageFormat.format("SELECT {0} FROM {1}", f, DorisTableUtils.dorisName(first.getTableId())) + join.toString(); } else { + if (StringUtils.isEmpty(StringUtils.join(customInfo.get(DorisTableUtils.dorisName(first.getTableId())), ","))) { + throw new RuntimeException(Translator.get("i18n_custom_ds_delete")); + } return MessageFormat.format("SELECT {0} FROM {1}", StringUtils.join(customInfo.get(DorisTableUtils.dorisName(first.getTableId())), ","), DorisTableUtils.dorisName(first.getTableId())); } } diff --git a/backend/src/main/resources/i18n/messages_en_US.properties b/backend/src/main/resources/i18n/messages_en_US.properties index 6104b1f290..30e941a221 100644 --- a/backend/src/main/resources/i18n/messages_en_US.properties +++ b/backend/src/main/resources/i18n/messages_en_US.properties @@ -253,4 +253,5 @@ i18n_datasource_delete=Data source is delete i18n_dataset_delete=Data set is delete i18n_chart_delete=Chart is delete i18n_not_exec_add_sync=There is no completed synchronization task. Incremental synchronization cannot be performed -i18n_excel_header_empty=Excel first row can not empty \ No newline at end of file +i18n_excel_header_empty=Excel first row can not empty +i18n_custom_ds_delete=Custom dataset union data is deleted,can not display \ No newline at end of file diff --git a/backend/src/main/resources/i18n/messages_zh_CN.properties b/backend/src/main/resources/i18n/messages_zh_CN.properties index b84e2e707f..4b0fd4d364 100644 --- a/backend/src/main/resources/i18n/messages_zh_CN.properties +++ b/backend/src/main/resources/i18n/messages_zh_CN.properties @@ -254,3 +254,4 @@ i18n_dataset_delete=当前用到的数据集已被删除 i18n_chart_delete=当前用到的视图已被删除 i18n_not_exec_add_sync=没有已完成的同步任务,无法进行增量同步 i18n_excel_header_empty=Excel第一行为空 +i18n_custom_ds_delete=自定义数据集所关联数据被删除,无法正常显示 diff --git a/backend/src/main/resources/i18n/messages_zh_TW.properties b/backend/src/main/resources/i18n/messages_zh_TW.properties index c3f19a9647..d8f81a16a3 100644 --- a/backend/src/main/resources/i18n/messages_zh_TW.properties +++ b/backend/src/main/resources/i18n/messages_zh_TW.properties @@ -255,4 +255,5 @@ i18n_datasource_delete=當前用到的數據源已被刪除 i18n_dataset_delete=當前用到的數據集已被刪除 i18n_chart_delete=當前用到的視圖已被刪除 i18n_not_exec_add_sync=沒有已經完成的同步任務,無法進行增量同步 -i18n_excel_header_empty=Excel第一行為空 \ No newline at end of file +i18n_excel_header_empty=Excel第一行為空 +i18n_custom_ds_delete=自定義數據集所關聯數據被刪除,無法正常顯示 \ No newline at end of file diff --git a/frontend/src/views/chart/view/ChartEdit.vue b/frontend/src/views/chart/view/ChartEdit.vue index c920d9fd63..c5eff85948 100644 --- a/frontend/src/views/chart/view/ChartEdit.vue +++ b/frontend/src/views/chart/view/ChartEdit.vue @@ -529,9 +529,6 @@ export default { view.yaxis.splice(1, view.yaxis.length) } } - if (view.type.startsWith('text') || view.type.startsWith('gauge')) { - view.xaxis = [] - } if (view.type === 'line' && trigger === 'chart') { view.customAttr.size.lineArea = false } diff --git a/frontend/src/views/dataset/common/DatasetTableData.vue b/frontend/src/views/dataset/common/DatasetTableData.vue index e94c1ee1b0..08527b46e8 100644 --- a/frontend/src/views/dataset/common/DatasetTableData.vue +++ b/frontend/src/views/dataset/common/DatasetTableData.vue @@ -2,6 +2,7 @@ {{ table.name }} -

{{ table.name }}

+

{{ table.name }}

- {{ targetTable.name || $t('dataset.pls_slc_union_table') }} + +

{{ targetTable.name || $t('dataset.pls_slc_union_table') }}

+
@@ -282,6 +284,9 @@ export default {