diff --git a/core/backend/src/main/java/io/dataease/provider/ext/MysqlExtDDLProvider.java b/core/backend/src/main/java/io/dataease/provider/ext/MysqlExtDDLProvider.java index 4f2f193ed3..2efeba5002 100644 --- a/core/backend/src/main/java/io/dataease/provider/ext/MysqlExtDDLProvider.java +++ b/core/backend/src/main/java/io/dataease/provider/ext/MysqlExtDDLProvider.java @@ -109,7 +109,16 @@ public class MysqlExtDDLProvider extends DefaultExtDDLProvider { StringBuilder builder = new StringBuilder("WHERE 1 = 1 "); for (TableField searchField : searchFields) { //目前只考虑等于 - builder.append("AND $Column_Field$ = ? ".replace("$Column_Field$", searchField.getFieldName())); + if (searchField.getInCount() > 1) { + List pList = new ArrayList<>(); + for (int i = 0; i < searchField.getInCount(); i++) { + pList.add("?"); + } + String str = "AND $Column_Field$ IN (" + String.join(", ", pList) + ")"; + builder.append(str.replace("$Column_Field$", searchField.getFieldName())); + } else { + builder.append("AND $Column_Field$ = ? ".replace("$Column_Field$", searchField.getFieldName())); + } } return builder.toString(); } diff --git a/core/backend/src/main/java/io/dataease/provider/query/oracle/OracleQueryProvider.java b/core/backend/src/main/java/io/dataease/provider/query/oracle/OracleQueryProvider.java index ffdb96ca5c..b8e17544ca 100644 --- a/core/backend/src/main/java/io/dataease/provider/query/oracle/OracleQueryProvider.java +++ b/core/backend/src/main/java/io/dataease/provider/query/oracle/OracleQueryProvider.java @@ -435,9 +435,7 @@ public class OracleQueryProvider extends QueryProvider { xAxis.add(chartViewFieldDTO); List fieldCustomFilter = new ArrayList<>(); -// for (ChartFieldCustomFilterDTO chartFieldCustomFilterDTO : OrgFieldCustomFilter) { -// fieldCustomFilter.add(chartFieldCustomFilterDTO); -// } + ChartFieldCustomFilterDTO chartFieldCustomFilterDTO = new ChartFieldCustomFilterDTO(); DatasetTableField datasetTableField = new DatasetTableField(); datasetTableField.setOriginName("ROWNUM"); @@ -463,7 +461,6 @@ public class OracleQueryProvider extends QueryProvider { } else { if (pageInfo.getGoPage() != null && pageInfo.getPageSize() != null) { - System.out.println("SELECT * FROM (" + sqlFix(originalTableInfo("(" + sqlFix(table) + ")", xAxis, OrgFieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view, fieldCustomFilter)) + ") DE_RESULT_TMP " + " WHERE DE_ROWNUM > " + (pageInfo.getGoPage() - 1) * pageInfo.getPageSize()); return "SELECT * FROM (" + sqlFix(originalTableInfo("(" + sqlFix(table) + ")", xAxis, OrgFieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view, fieldCustomFilter)) + ") DE_RESULT_TMP " + " WHERE DE_ROWNUM > " + (pageInfo.getGoPage() - 1) * pageInfo.getPageSize(); } else { return "SELECT * FROM (" + sqlFix(originalTableInfo("(" + sqlFix(table) + ")", xAxis, OrgFieldCustomFilter, rowPermissionsTree, extFilterRequestList, ds, view, fieldCustomFilter)) + ") DE_RESULT_TMP "; @@ -525,10 +522,12 @@ public class OracleQueryProvider extends QueryProvider { List fields = new ArrayList<>(); fields.addAll(xFields); List wheres = new ArrayList<>(); + List pageWheres = new ArrayList<>(); + if (customWheres != null) wheres.add(customWheres); if (extWheres != null) wheres.add(extWheres); if (whereTrees != null) wheres.add(whereTrees); - if (oldWhere != null) wheres.add(oldWhere); + if (oldWhere != null) pageWheres.add(oldWhere); List groups = new ArrayList<>(); groups.addAll(xFields); // 外层再次套sql @@ -539,6 +538,7 @@ public class OracleQueryProvider extends QueryProvider { ST st_sql = stg.getInstanceOf("previewSql"); st_sql.add("isGroup", false); if (CollectionUtils.isNotEmpty(xFields)) st_sql.add("groups", xFields); + if (CollectionUtils.isNotEmpty(wheres)) st_sql.add("filters", wheres); if (CollectionUtils.isNotEmpty(orders)) st_sql.add("orders", orders); if (ObjectUtils.isNotEmpty(tableObj)) st_sql.add("table", tableObj); String sql = st_sql.render(); @@ -571,7 +571,7 @@ public class OracleQueryProvider extends QueryProvider { .tableName(String.format(OracleConstants.BRACKETS, sql)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 2)) .build(); - if (CollectionUtils.isNotEmpty(wheres)) st2.add("filters", wheres); + if (CollectionUtils.isNotEmpty(pageWheres)) st2.add("filters", pageWheres); if (ObjectUtils.isNotEmpty(tableSQL)) st2.add("table", tableSQL2); return st2.render(); diff --git a/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java b/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java index 83828f608c..2023a4959c 100644 --- a/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -343,6 +343,7 @@ public class ChartViewService { //downloadType = dataset 为下载原始名字 这里做数据转换模拟 table-info类型图表导出 if ("dataset".equals(request.getDownloadType())) { view.setType("table-info"); + view.setIsPlugin(false); List sourceFields = dataSetTableFieldsService.getFieldsByTableId(view.getTableId()); dsHeader = sourceFields.stream() .map(DatasetTableField::getName) diff --git a/core/backend/src/main/java/io/dataease/service/datafill/DataFillDataService.java b/core/backend/src/main/java/io/dataease/service/datafill/DataFillDataService.java index f02846adb5..3933635d86 100644 --- a/core/backend/src/main/java/io/dataease/service/datafill/DataFillDataService.java +++ b/core/backend/src/main/java/io/dataease/service/datafill/DataFillDataService.java @@ -227,16 +227,29 @@ public class DataFillDataService { String whereSql = ""; if (StringUtils.isNotBlank(searchRequest.getPrimaryKeyValue())) { whereSql = extDDLProvider.whereSql(dataFillForm.getTableName(), List.of(pk)); - } - - String countSql = extDDLProvider.countSql(dataFillForm.getTableName(), searchFields, whereSql); - if (StringUtils.isNotBlank(searchRequest.getPrimaryKeyValue())) { datasourceRequest.setTableFieldWithValues(List.of(new DatasourceRequest.TableFieldWithValue() .setValue(searchRequest.getPrimaryKeyValue()) .setFiledName(pk.getFieldName()) .setTypeName(pk.getFieldType()) .setType(pk.getType()))); } + + if (CollectionUtils.isNotEmpty(searchRequest.getPrimaryKeyValueList())) { + pk.setInCount(searchRequest.getPrimaryKeyValueList().size()); + whereSql = extDDLProvider.whereSql(dataFillForm.getTableName(), List.of(pk)); + List ids = new ArrayList<>(); + for (String s : searchRequest.getPrimaryKeyValueList()) { + ids.add(new DatasourceRequest.TableFieldWithValue() + .setValue(s) + .setFiledName(pk.getFieldName()) + .setTypeName(pk.getFieldType()) + .setType(pk.getType())); + } + datasourceRequest.setTableFieldWithValues(ids); + } + + String countSql = extDDLProvider.countSql(dataFillForm.getTableName(), searchFields, whereSql); + datasourceRequest.setQuery(countSql); List countData = datasourceProvider.getData(datasourceRequest); long count = NumberUtils.toLong(countData.get(0)[0]); @@ -1022,6 +1035,10 @@ public class DataFillDataService { datasourceRequest.setDatasource(ds); datasourceRequest.setTable(dataFillForm.getTableName()); Provider datasourceProvider = ProviderFactory.getProvider(ds.getType()); + + ExtDDLProvider extDDLProvider = ProviderFactory.gerExtDDLProvider(ds.getType()); + setLowerCaseRequest(ds, datasourceProvider, extDDLProvider, datasourceRequest); + List tableFields = datasourceProvider.getTableFields(datasourceRequest); for (TableField tableField : tableFields) { diff --git a/core/frontend/package.json b/core/frontend/package.json index 4ea6564500..24cb6f0200 100644 --- a/core/frontend/package.json +++ b/core/frontend/package.json @@ -1,6 +1,6 @@ { "name": "dataease", - "version": "1.18.22", + "version": "1.18.23", "description": "dataease front", "private": true, "scripts": { diff --git a/core/frontend/src/App.vue b/core/frontend/src/App.vue index 592e543cf9..afaa93157e 100644 --- a/core/frontend/src/App.vue +++ b/core/frontend/src/App.vue @@ -15,17 +15,20 @@ > + diff --git a/core/frontend/src/components/canvas/components/editor/EditBar.vue b/core/frontend/src/components/canvas/components/editor/EditBar.vue index 6a25393d37..53d50ac9b0 100644 --- a/core/frontend/src/components/canvas/components/editor/EditBar.vue +++ b/core/frontend/src/components/canvas/components/editor/EditBar.vue @@ -489,8 +489,7 @@ export default { this.$message({ message: h('p', null, [ this.$t('data_export.exporting'), - this.showEditPosition === 'bar-main-preview' - ? h( + h( Button, { props: { @@ -504,7 +503,7 @@ export default { } }, this.$t('data_export.export_center') - ) : this.$t('data_export.export_center'), + ), this.$t('data_export.export_info') ]), iconClass, diff --git a/core/frontend/src/components/canvas/components/editor/Preview.vue b/core/frontend/src/components/canvas/components/editor/Preview.vue index b012057a1e..2c3867c7e4 100644 --- a/core/frontend/src/components/canvas/components/editor/Preview.vue +++ b/core/frontend/src/components/canvas/components/editor/Preview.vue @@ -172,7 +172,7 @@ - diff --git a/core/frontend/src/views/dataFilling/form/create.vue b/core/frontend/src/views/dataFilling/form/create.vue index 02560ec926..8c219c864f 100644 --- a/core/frontend/src/views/dataFilling/form/create.vue +++ b/core/frontend/src/views/dataFilling/form/create.vue @@ -722,6 +722,18 @@ export default { } } } + } else { + if (f.settings.optionDatasource === undefined || + f.settings.optionTable === undefined || + f.settings.optionColumn === undefined) { + this.selectItem(f.id) + this.$message({ + message: this.$t('data_fill.form.option_list_datasource_cannot_empty'), + type: 'error', + showClose: true + }) + return + } } } } @@ -746,7 +758,7 @@ export default { forEach(this.formSettings.forms, f => { const temp = find(this.tempForms, tf => tf.id === f.id) if (temp) { - f.settings.updateRuleCheck = temp.updateRuleCheck + this.$set(f.settings, 'updateRuleCheck', temp.updateRuleCheck) } }) this.closeEditCommitRule() diff --git a/core/frontend/src/views/dataset/exportExcel/index.vue b/core/frontend/src/views/dataset/exportExcel/index.vue index 1df66255fe..9569fe0c71 100644 --- a/core/frontend/src/views/dataset/exportExcel/index.vue +++ b/core/frontend/src/views/dataset/exportExcel/index.vue @@ -226,7 +226,6 @@ export default { } }, created() { - this.handleClick() }, mounted() { bus.$on('task-export-topic-call', this.taskExportTopicCall) diff --git a/core/mobile/package.json b/core/mobile/package.json index 9b04604f7d..78d60c450a 100644 --- a/core/mobile/package.json +++ b/core/mobile/package.json @@ -1,6 +1,6 @@ { "name": "dataease-mobile", - "version": "1.18.22", + "version": "1.18.23", "private": true, "scripts": { "serve": "npm run dev:h5", diff --git a/pom.xml b/pom.xml index 23237c2190..efe46e9f55 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ pom - 1.18.22 + 1.18.23 4.1.1 3.1.0