From 3e8568079cd604dd900dec6224b5e9333b4ab4f0 Mon Sep 17 00:00:00 2001 From: junjie Date: Mon, 24 Jan 2022 12:05:31 +0800 Subject: [PATCH 1/5] =?UTF-8?q?fix:=20=E7=9F=A9=E5=BD=A2=E6=A0=91=E5=9B=BE?= =?UTF-8?q?=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/views/chart/view/ChartEdit.vue | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/frontend/src/views/chart/view/ChartEdit.vue b/frontend/src/views/chart/view/ChartEdit.vue index 4dd3c6b274..b6ad408146 100644 --- a/frontend/src/views/chart/view/ChartEdit.vue +++ b/frontend/src/views/chart/view/ChartEdit.vue @@ -551,19 +551,23 @@ + + Date: Mon, 24 Jan 2022 13:19:12 +0800 Subject: [PATCH 2/5] =?UTF-8?q?refactor:=20=E8=A7=86=E5=9B=BE=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E5=AD=97=E6=AE=B5=E5=80=BC=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/lang/en.js | 3 ++- frontend/src/lang/tw.js | 3 ++- frontend/src/lang/zh.js | 3 ++- frontend/src/views/chart/view/ChartEdit.vue | 18 ++++++++++++++++++ 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js index 4673500421..8c28a159ab 100644 --- a/frontend/src/lang/en.js +++ b/frontend/src/lang/en.js @@ -1014,7 +1014,8 @@ export default { enum_exp: 'Enum', pls_slc: 'Please Select', filter_exp: 'Filter Value', - filter_type: 'Filter Type' + filter_type: 'Filter Type', + filter_value_can_not_str: 'Value type can not input string' }, dataset: { sheet_warn: 'There are multiple sheet pages, and the first one is extracted by default', diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js index 818a3abd64..387db945a4 100644 --- a/frontend/src/lang/tw.js +++ b/frontend/src/lang/tw.js @@ -1014,7 +1014,8 @@ export default { enum_exp: '字段枚舉值', pls_slc: '請選擇', filter_exp: '過濾值', - filter_type: '過濾方式' + filter_type: '過濾方式', + filter_value_can_not_str: '數值類型字段過濾值不能包含文本' }, dataset: { sheet_warn: '有多個 Sheet 頁,默認抽取第一個', diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js index a181fb4c20..7f39521431 100644 --- a/frontend/src/lang/zh.js +++ b/frontend/src/lang/zh.js @@ -1016,7 +1016,8 @@ export default { enum_exp: '字段枚举值', pls_slc: '请选择', filter_exp: '过滤值', - filter_type: '过滤方式' + filter_type: '过滤方式', + filter_value_can_not_str: '数值类型字段过滤值不能包含文本' }, dataset: { sheet_warn: '有多个 Sheet 页,默认抽取第一个', diff --git a/frontend/src/views/chart/view/ChartEdit.vue b/frontend/src/views/chart/view/ChartEdit.vue index b6ad408146..272f006aeb 100644 --- a/frontend/src/views/chart/view/ChartEdit.vue +++ b/frontend/src/views/chart/view/ChartEdit.vue @@ -1638,6 +1638,14 @@ export default { }) return } + if (parseFloat(f.value).toString() === 'NaN') { + this.$message({ + message: this.$t('chart.filter_value_can_not_str'), + type: 'error', + showClose: true + }) + return + } } if (this.quotaItem.filterType === 'quota') { this.view.yaxis[this.quotaItem.index].filter = this.quotaItem.filter @@ -1686,6 +1694,16 @@ export default { }) return } + if (this.filterItem.deType === 2 || this.filterItem.deType === 3) { + if (parseFloat(f.value).toString() === 'NaN') { + this.$message({ + message: this.$t('chart.filter_value_can_not_str'), + type: 'error', + showClose: true + }) + return + } + } } } From a628698a840e9b2a6d373cd68da0ac7910bdc74b Mon Sep 17 00:00:00 2001 From: junjie Date: Mon, 24 Jan 2022 13:21:05 +0800 Subject: [PATCH 3/5] =?UTF-8?q?refactor:=20=E6=95=B0=E6=8D=AE=E9=9B=86?= =?UTF-8?q?=E6=8A=A5=E9=94=99=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/dataset/DataSetTableService.java | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 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 bda4d34201..e0f8c59f54 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -155,7 +155,7 @@ public class DataSetTableService { saveExcelTableField(sheetTable.getId(), excelSheetDataList.get(0).getFields(), true); datasetIdList.add(sheetTable.getId()); } - datasetIdList.forEach(datasetId ->{ + datasetIdList.forEach(datasetId -> { commonThreadPool.addTask(() -> extractDataService.extractExcelData(datasetId, "all_scope", "初始导入", null, datasetIdList)); }); } else { @@ -182,7 +182,7 @@ public class DataSetTableService { saveExcelTableField(sheetTable.getId(), sheet.getFields(), true); datasetIdList.add(sheetTable.getId()); } - datasetIdList.forEach(datasetId ->{ + datasetIdList.forEach(datasetId -> { commonThreadPool.addTask(() -> extractDataService.extractExcelData(datasetId, "all_scope", "初始导入", null, datasetIdList)); }); @@ -510,7 +510,7 @@ public class DataSetTableService { data.addAll(datasourceProvider.getData(datasourceRequest)); } catch (Exception e) { logger.error(e.getMessage()); - DEException.throwException(Translator.get("i18n_ds_error")); + DEException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); } try { @@ -519,7 +519,7 @@ public class DataSetTableService { dataSetPreviewPage.setTotal(datasourceProvider.getData(datasourceRequest).size()); } catch (Exception e) { logger.error(e.getMessage()); - DEException.throwException(Translator.get("i18n_ds_error")); + DEException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); } } else { // check doris table @@ -538,14 +538,14 @@ public class DataSetTableService { data.addAll(jdbcProvider.getData(datasourceRequest)); } catch (Exception e) { logger.error(e.getMessage()); - DEException.throwException(Translator.get("i18n_ds_error")); + DEException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); } try { datasourceRequest.setQuery(qp.createQueryTableWithLimit(table, fields, Integer.valueOf(dataSetTableRequest.getRow()), false, ds, customFilter)); dataSetPreviewPage.setTotal(jdbcProvider.getData(datasourceRequest).size()); } catch (Exception e) { logger.error(e.getMessage()); - DEException.throwException(Translator.get("i18n_ds_error")); + DEException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); } } @@ -576,7 +576,7 @@ public class DataSetTableService { data.addAll(datasourceProvider.getData(datasourceRequest)); } catch (Exception e) { logger.error(e.getMessage()); - DEException.throwException(Translator.get("i18n_ds_error")); + DEException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); } try { datasourceRequest.setPageable(false); @@ -584,7 +584,7 @@ public class DataSetTableService { dataSetPreviewPage.setTotal(datasourceProvider.getData(datasourceRequest).size()); } catch (Exception e) { logger.error(e.getMessage()); - DEException.throwException(Translator.get("i18n_ds_error")); + DEException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); } } else { // check doris table @@ -603,14 +603,14 @@ public class DataSetTableService { data.addAll(jdbcProvider.getData(datasourceRequest)); } catch (Exception e) { logger.error(e.getMessage()); - DEException.throwException(Translator.get("i18n_ds_error")); + DEException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); } try { datasourceRequest.setQuery(qp.createQueryTableWithLimit(table, fields, Integer.valueOf(dataSetTableRequest.getRow()), false, ds, customFilter)); dataSetPreviewPage.setTotal(jdbcProvider.getData(datasourceRequest).size()); } catch (Exception e) { logger.error(e.getMessage()); - DEException.throwException(Translator.get("i18n_ds_error")); + DEException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); } } } else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "excel")) { @@ -630,14 +630,14 @@ public class DataSetTableService { data.addAll(jdbcProvider.getData(datasourceRequest)); } catch (Exception e) { logger.error(e.getMessage()); - DEException.throwException(Translator.get("i18n_ds_error")); + DEException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); } try { datasourceRequest.setQuery(qp.createQueryTableWithLimit(table, fields, Integer.valueOf(dataSetTableRequest.getRow()), false, ds, customFilter)); dataSetPreviewPage.setTotal(jdbcProvider.getData(datasourceRequest).size()); } catch (Exception e) { logger.error(e.getMessage()); - DEException.throwException(Translator.get("i18n_ds_error")); + DEException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); } } else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "custom")) { if (datasetTable.getMode() == 0) { @@ -657,7 +657,7 @@ public class DataSetTableService { sql = getCustomSQLDatasource(dt, list, ds); } catch (Exception e) { logger.error(e.getMessage()); - DEException.throwException(Translator.get("i18n_ds_error")); + DEException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); } QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); datasourceRequest.setQuery(qp.createQuerySQLWithPage(sql, fields, page, pageSize, realSize, false, customFilter)); @@ -672,7 +672,7 @@ public class DataSetTableService { data.addAll(datasourceProvider.getData(datasourceRequest)); } catch (Exception e) { logger.error(e.getMessage()); - DEException.throwException(Translator.get("i18n_ds_error")); + DEException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); } try { datasourceRequest.setPageable(false); @@ -680,7 +680,7 @@ public class DataSetTableService { dataSetPreviewPage.setTotal(datasourceProvider.getData(datasourceRequest).size()); } catch (Exception e) { logger.error(e.getMessage()); - DEException.throwException(Translator.get("i18n_ds_error")); + DEException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); } } else { Datasource ds = (Datasource) CommonBeanFactory.getBean("DorisDatasource"); @@ -695,7 +695,7 @@ public class DataSetTableService { data.addAll(jdbcProvider.getData(datasourceRequest)); } catch (Exception e) { logger.error(e.getMessage()); - DEException.throwException(Translator.get("i18n_ds_error")); + DEException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); } try { @@ -703,7 +703,7 @@ public class DataSetTableService { dataSetPreviewPage.setTotal(jdbcProvider.getData(datasourceRequest).size()); } catch (Exception e) { logger.error(e.getMessage()); - DEException.throwException(Translator.get("i18n_ds_error")); + DEException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); } } } else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "union")) { @@ -723,7 +723,7 @@ public class DataSetTableService { sql = (String) getUnionSQLDatasource(dt, ds).get("sql"); } catch (Exception e) { logger.error(e.getMessage()); - DEException.throwException(Translator.get("i18n_ds_error")); + DEException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); } QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); datasourceRequest.setQuery(qp.createQuerySQLWithPage(sql, fields, page, pageSize, realSize, false, customFilter)); @@ -738,7 +738,7 @@ public class DataSetTableService { data.addAll(datasourceProvider.getData(datasourceRequest)); } catch (Exception e) { logger.error(e.getMessage()); - DEException.throwException(Translator.get("i18n_ds_error")); + DEException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); } try { datasourceRequest.setPageable(false); @@ -746,7 +746,7 @@ public class DataSetTableService { dataSetPreviewPage.setTotal(datasourceProvider.getData(datasourceRequest).size()); } catch (Exception e) { logger.error(e.getMessage()); - DEException.throwException(Translator.get("i18n_ds_error")); + DEException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); } } else { Datasource ds = (Datasource) CommonBeanFactory.getBean("DorisDatasource"); @@ -761,7 +761,7 @@ public class DataSetTableService { data.addAll(jdbcProvider.getData(datasourceRequest)); } catch (Exception e) { logger.error(e.getMessage()); - DEException.throwException(Translator.get("i18n_ds_error")); + DEException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); } try { @@ -769,7 +769,7 @@ public class DataSetTableService { dataSetPreviewPage.setTotal(jdbcProvider.getData(datasourceRequest).size()); } catch (Exception e) { logger.error(e.getMessage()); - DEException.throwException(Translator.get("i18n_ds_error")); + DEException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); } } } From 3c11c3084a63e88d30edf14b760569c2fc36d0e9 Mon Sep 17 00:00:00 2001 From: junjie Date: Mon, 24 Jan 2022 16:00:47 +0800 Subject: [PATCH 4/5] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0s2=E4=BE=9D?= =?UTF-8?q?=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/package.json b/frontend/package.json index d316ff7558..6911332d59 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -14,6 +14,7 @@ }, "dependencies": { "@antv/g2plot": "^2.3.32", + "@antv/s2": "^1.6.0", "@riophae/vue-treeselect": "0.4.0", "@tinymce/tinymce-vue": "^3.2.8", "axios": "^0.21.1", From 73101b5182bef9963943f9242d0e3bd091d30603 Mon Sep 17 00:00:00 2001 From: junjie Date: Mon, 24 Jan 2022 16:14:34 +0800 Subject: [PATCH 5/5] =?UTF-8?q?fix:=20=E5=88=9B=E5=BB=BA=E8=A7=86=E5=9B=BE?= =?UTF-8?q?=E5=8F=AF=E8=83=BDdeadlock?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/service/chart/ChartViewService.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 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 5955ad4322..fde832bd72 100644 --- a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -75,13 +75,14 @@ public class ChartViewService { checkName(chartView); long timestamp = System.currentTimeMillis(); chartView.setUpdateTime(timestamp); - int i = chartViewMapper.updateByPrimaryKeySelective(chartView); - if (i == 0) { + if (ObjectUtils.isEmpty(chartView.getId())) { chartView.setId(UUID.randomUUID().toString()); chartView.setCreateBy(AuthUtils.getUser().getUsername()); chartView.setCreateTime(timestamp); chartView.setUpdateTime(timestamp); chartViewMapper.insertSelective(chartView); + } else { + chartViewMapper.updateByPrimaryKeySelective(chartView); } Optional.ofNullable(chartView.getId()).ifPresent(id -> { CacheUtils.remove(JdbcConstants.VIEW_CACHE_KEY, id); @@ -216,8 +217,10 @@ public class ChartViewService { if (ObjectUtils.isEmpty(view)) { throw new RuntimeException(Translator.get("i18n_chart_delete")); } - List xAxis = new Gson().fromJson(view.getXAxis(), new TypeToken>() {}.getType()); - List yAxis = new Gson().fromJson(view.getYAxis(), new TypeToken>() {}.getType()); + List xAxis = new Gson().fromJson(view.getXAxis(), new TypeToken>() { + }.getType()); + List yAxis = new Gson().fromJson(view.getYAxis(), new TypeToken>() { + }.getType()); if (StringUtils.equalsIgnoreCase(view.getType(), "chart-mix")) { List yAxisExt = new Gson().fromJson(view.getYAxisExt(), new TypeToken>() { }.getType());