diff --git a/core/backend/src/main/java/io/dataease/controller/datasource/DatasourceController.java b/core/backend/src/main/java/io/dataease/controller/datasource/DatasourceController.java index 5b7d9a69ac..d06ba4c446 100644 --- a/core/backend/src/main/java/io/dataease/controller/datasource/DatasourceController.java +++ b/core/backend/src/main/java/io/dataease/controller/datasource/DatasourceController.java @@ -76,6 +76,8 @@ public class DatasourceController { datasource.setCreateTime(null); datasource.setType(updataDsRequest.getType()); datasource.setUpdateTime(System.currentTimeMillis()); + datasource.setEnableDataFill(updataDsRequest.getEnableDataFill()); + datasource.setEnableDataFillCreateTable(updataDsRequest.getEnableDataFillCreateTable()); if (StringUtils.isNotEmpty(updataDsRequest.getId())) { datasource.setId(updataDsRequest.getId()); } diff --git a/core/backend/src/main/java/io/dataease/controller/datasource/request/UpdataDsRequest.java b/core/backend/src/main/java/io/dataease/controller/datasource/request/UpdataDsRequest.java index f39c223e39..2f96eae775 100644 --- a/core/backend/src/main/java/io/dataease/controller/datasource/request/UpdataDsRequest.java +++ b/core/backend/src/main/java/io/dataease/controller/datasource/request/UpdataDsRequest.java @@ -16,4 +16,6 @@ public class UpdataDsRequest { @ApiModelProperty(value = "配置详情", required = true) private String configuration; private boolean configurationEncryption = false; + private Boolean enableDataFill; + private Boolean enableDataFillCreateTable; } 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 5daa3dfc0a..52610e000e 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 @@ -114,8 +114,11 @@ public class DataFillDataService { ds = datasource.get(datasourceId); } else { ds = datasource.getDataSourceDetails(datasourceId); - //todo 判断是否能创建 - ds.setConfiguration(new String(java.util.Base64.getDecoder().decode(ds.getConfiguration()))); + if (ds.getEnableDataFill() && ds.getEnableDataFillCreateTable()) { + ds.setConfiguration(new String(java.util.Base64.getDecoder().decode(ds.getConfiguration()))); + } else { + return null; + } } } diff --git a/core/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java b/core/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java index 73d1aeac71..f9be6e411e 100644 --- a/core/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java +++ b/core/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java @@ -276,6 +276,14 @@ public class DatasourceService { public void updateDatasource(String id, Datasource datasource) { + + if (datasource.getEnableDataFill() != null) { + Datasource ds = datasourceMapper.selectByPrimaryKey(id); + if (ds.getEnableDataFill()) { + datasource.setEnableDataFill(true); + } + } + DatasourceExample example = new DatasourceExample(); example.createCriteria().andIdEqualTo(id); Status status = checkDatasourceStatus(datasource); @@ -469,7 +477,8 @@ public class DatasourceService { record.setVersion(status.getVersion()); record.setStatus(status.getStatus()); datasourceMapper.updateByExampleSelective(record, example); - }catch (Exception ignore){} + } catch (Exception ignore) { + } try { handleConnectionPool(datasource, "add"); } catch (Exception e) { @@ -652,13 +661,14 @@ public class DatasourceService { datasourceMapper.updateByPrimaryKeyWithBLOBs(datasource); } - public void releaseDsconnections(){ - List providers = (List)SpringContextUtil.getApplicationContext().getBeansOfType(DefaultJdbcProvider.class).values(); - providers.forEach(provider ->{ + public void releaseDsconnections() { + List providers = (List) SpringContextUtil.getApplicationContext().getBeansOfType(DefaultJdbcProvider.class).values(); + providers.forEach(provider -> { provider.getJdbcConnection().values().forEach(druidDataSource -> { try { druidDataSource.close(); - }catch (Exception e){} + } catch (Exception e) { + } }); }); } diff --git a/core/backend/src/main/resources/db/migration/V65__1.18.20.sql b/core/backend/src/main/resources/db/migration/V65__1.18.20.sql new file mode 100644 index 0000000000..26dcf395f5 --- /dev/null +++ b/core/backend/src/main/resources/db/migration/V65__1.18.20.sql @@ -0,0 +1,3 @@ +alter table datasource + add enable_data_fill tinyint(1) default 0 null comment '开启数据填报', + add enable_data_fill_create_table tinyint(1) default 0 null comment '数据填报允许新建表'; \ No newline at end of file diff --git a/core/frontend/src/lang/en.js b/core/frontend/src/lang/en.js index ebde2633e3..da7c203da2 100644 --- a/core/frontend/src/lang/en.js +++ b/core/frontend/src/lang/en.js @@ -597,6 +597,9 @@ export default { }, data_fill: { data_fill: 'Data Filling', + permission: 'Data Filling Permission', + enable: 'Enable', + enable_hint: 'Cannot disable after enable', new_folder: 'New Folder', form_manage: 'Form Manage', my_job: 'My Job', diff --git a/core/frontend/src/lang/tw.js b/core/frontend/src/lang/tw.js index bb2b2a87ca..10fafb8b86 100644 --- a/core/frontend/src/lang/tw.js +++ b/core/frontend/src/lang/tw.js @@ -597,6 +597,9 @@ export default { }, data_fill: { data_fill: '數據填報', + permission: '填報權限', + enable: '開啟', + enable_hint: '數據填報開啟后,可將表單數據存放至數據源中,一旦開啟后,后期不允許關閉。', new_folder: '新建文件夾', form_manage: '表單管理', my_job: '我的填報', diff --git a/core/frontend/src/lang/zh.js b/core/frontend/src/lang/zh.js index bd2a7103db..caec1525d3 100644 --- a/core/frontend/src/lang/zh.js +++ b/core/frontend/src/lang/zh.js @@ -595,6 +595,9 @@ export default { }, data_fill: { data_fill: '数据填报', + permission: '填报权限', + enable: '开启', + enable_hint: '数据填报开启后,可将表单数据存放至数据源中,一旦开启后,后期不允许关闭。', new_folder: '新建文件夹', form_manage: '表单管理', my_job: '我的填报', diff --git a/core/frontend/src/views/dataFilling/form/save.vue b/core/frontend/src/views/dataFilling/form/save.vue index a207ac3d9a..d2c0101ddf 100644 --- a/core/frontend/src/views/dataFilling/form/save.vue +++ b/core/frontend/src/views/dataFilling/form/save.vue @@ -117,7 +117,7 @@ export default { _types.push({ name: dsMap[type][0]?.typeDesc, type: type, - options: dsMap[type] + options: filter(dsMap[type], d => d.enableDataFill && d.enableDataFillCreateTable) }) } }) diff --git a/core/frontend/src/views/system/datasource/DsFormContent.vue b/core/frontend/src/views/system/datasource/DsFormContent.vue index 91ad539d10..93951b68f2 100644 --- a/core/frontend/src/views/system/datasource/DsFormContent.vue +++ b/core/frontend/src/views/system/datasource/DsFormContent.vue @@ -233,6 +233,44 @@ :component-name="datasourceType.type" :obj="{ form, disabled }" /> + + + {{ $t('data_fill.data_fill') }} + + {{ $t('data_fill.enable') }} + +
+ {{ $t('data_fill.enable_hint') }} +
+ +
+
+
+ + + {{ $t('data_fill.permission') }} + 允许新建表 + + @@ -424,6 +462,7 @@ export default { ], datasourceHistoryId: [{ required: true, message: i18n.t('dataset.pls_slc_data_source'), trigger: 'blur' }] }, + disableEditDataFill: false, form: { configuration: { initialPoolSize: 5, @@ -758,6 +797,7 @@ export default { if (res.data.apiConfigurationStr) { res.data.apiConfiguration = JSON.parse(Base64.decode(res.data.apiConfigurationStr)) } + this.disableEditDataFill = res.data.enableDataFill this.params = { ...res.data, showModel } if (showModel === 'copy') { this.params.id = '' diff --git a/sdk/dataease-plugin-common/src/main/java/io/dataease/plugins/common/base/domain/Datasource.java b/sdk/dataease-plugin-common/src/main/java/io/dataease/plugins/common/base/domain/Datasource.java index 3f70bcf627..59a0436bae 100644 --- a/sdk/dataease-plugin-common/src/main/java/io/dataease/plugins/common/base/domain/Datasource.java +++ b/sdk/dataease-plugin-common/src/main/java/io/dataease/plugins/common/base/domain/Datasource.java @@ -28,5 +28,9 @@ public class Datasource implements Serializable { @ApiModelProperty(value = "配置详情", required = true) private String configuration; + private Boolean enableDataFill; + + private Boolean enableDataFillCreateTable; + private static final long serialVersionUID = 1L; } \ No newline at end of file diff --git a/sdk/dataease-plugin-common/src/main/java/io/dataease/plugins/common/base/domain/DatasourceExample.java b/sdk/dataease-plugin-common/src/main/java/io/dataease/plugins/common/base/domain/DatasourceExample.java index 8668cc4fbb..c1a0d6cbd8 100644 --- a/sdk/dataease-plugin-common/src/main/java/io/dataease/plugins/common/base/domain/DatasourceExample.java +++ b/sdk/dataease-plugin-common/src/main/java/io/dataease/plugins/common/base/domain/DatasourceExample.java @@ -713,6 +713,126 @@ public class DatasourceExample { addCriterion("version not between", value1, value2, "version"); return (Criteria) this; } + + public Criteria andEnableDataFillIsNull() { + addCriterion("enable_data_fill is null"); + return (Criteria) this; + } + + public Criteria andEnableDataFillIsNotNull() { + addCriterion("enable_data_fill is not null"); + return (Criteria) this; + } + + public Criteria andEnableDataFillEqualTo(Boolean value) { + addCriterion("enable_data_fill =", value, "enableDataFill"); + return (Criteria) this; + } + + public Criteria andEnableDataFillNotEqualTo(Boolean value) { + addCriterion("enable_data_fill <>", value, "enableDataFill"); + return (Criteria) this; + } + + public Criteria andEnableDataFillGreaterThan(Boolean value) { + addCriterion("enable_data_fill >", value, "enableDataFill"); + return (Criteria) this; + } + + public Criteria andEnableDataFillGreaterThanOrEqualTo(Boolean value) { + addCriterion("enable_data_fill >=", value, "enableDataFill"); + return (Criteria) this; + } + + public Criteria andEnableDataFillLessThan(Boolean value) { + addCriterion("enable_data_fill <", value, "enableDataFill"); + return (Criteria) this; + } + + public Criteria andEnableDataFillLessThanOrEqualTo(Boolean value) { + addCriterion("enable_data_fill <=", value, "enableDataFill"); + return (Criteria) this; + } + + public Criteria andEnableDataFillIn(List values) { + addCriterion("enable_data_fill in", values, "enableDataFill"); + return (Criteria) this; + } + + public Criteria andEnableDataFillNotIn(List values) { + addCriterion("enable_data_fill not in", values, "enableDataFill"); + return (Criteria) this; + } + + public Criteria andEnableDataFillBetween(Boolean value1, Boolean value2) { + addCriterion("enable_data_fill between", value1, value2, "enableDataFill"); + return (Criteria) this; + } + + public Criteria andEnableDataFillNotBetween(Boolean value1, Boolean value2) { + addCriterion("enable_data_fill not between", value1, value2, "enableDataFill"); + return (Criteria) this; + } + + public Criteria andEnableDataFillCreateTableIsNull() { + addCriterion("enable_data_fill_create_table is null"); + return (Criteria) this; + } + + public Criteria andEnableDataFillCreateTableIsNotNull() { + addCriterion("enable_data_fill_create_table is not null"); + return (Criteria) this; + } + + public Criteria andEnableDataFillCreateTableEqualTo(Boolean value) { + addCriterion("enable_data_fill_create_table =", value, "enableDataFillCreateTable"); + return (Criteria) this; + } + + public Criteria andEnableDataFillCreateTableNotEqualTo(Boolean value) { + addCriterion("enable_data_fill_create_table <>", value, "enableDataFillCreateTable"); + return (Criteria) this; + } + + public Criteria andEnableDataFillCreateTableGreaterThan(Boolean value) { + addCriterion("enable_data_fill_create_table >", value, "enableDataFillCreateTable"); + return (Criteria) this; + } + + public Criteria andEnableDataFillCreateTableGreaterThanOrEqualTo(Boolean value) { + addCriterion("enable_data_fill_create_table >=", value, "enableDataFillCreateTable"); + return (Criteria) this; + } + + public Criteria andEnableDataFillCreateTableLessThan(Boolean value) { + addCriterion("enable_data_fill_create_table <", value, "enableDataFillCreateTable"); + return (Criteria) this; + } + + public Criteria andEnableDataFillCreateTableLessThanOrEqualTo(Boolean value) { + addCriterion("enable_data_fill_create_table <=", value, "enableDataFillCreateTable"); + return (Criteria) this; + } + + public Criteria andEnableDataFillCreateTableIn(List values) { + addCriterion("enable_data_fill_create_table in", values, "enableDataFillCreateTable"); + return (Criteria) this; + } + + public Criteria andEnableDataFillCreateTableNotIn(List values) { + addCriterion("enable_data_fill_create_table not in", values, "enableDataFillCreateTable"); + return (Criteria) this; + } + + public Criteria andEnableDataFillCreateTableBetween(Boolean value1, Boolean value2) { + addCriterion("enable_data_fill_create_table between", value1, value2, "enableDataFillCreateTable"); + return (Criteria) this; + } + + public Criteria andEnableDataFillCreateTableNotBetween(Boolean value1, Boolean value2) { + addCriterion("enable_data_fill_create_table not between", value1, value2, "enableDataFillCreateTable"); + return (Criteria) this; + } } public static class Criteria extends GeneratedCriteria { diff --git a/sdk/dataease-plugin-common/src/main/java/io/dataease/plugins/common/base/mapper/DatasourceMapper.xml b/sdk/dataease-plugin-common/src/main/java/io/dataease/plugins/common/base/mapper/DatasourceMapper.xml index 14b67d64b9..a2ba5f3d36 100644 --- a/sdk/dataease-plugin-common/src/main/java/io/dataease/plugins/common/base/mapper/DatasourceMapper.xml +++ b/sdk/dataease-plugin-common/src/main/java/io/dataease/plugins/common/base/mapper/DatasourceMapper.xml @@ -11,6 +11,8 @@ + + @@ -74,7 +76,8 @@ - id, `name`, `desc`, `type`, configuration, create_time, update_time, create_by, version + id, `name`, `desc`, `type`, configuration, create_time, update_time, create_by, version, + enable_data_fill, enable_data_fill_create_table `status` @@ -131,11 +134,13 @@ insert into datasource (id, `name`, `desc`, `type`, configuration, create_time, update_time, create_by, version, - `status`) + enable_data_fill, enable_data_fill_create_table, `status` + ) values (#{id,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{desc,jdbcType=VARCHAR}, #{type,jdbcType=VARCHAR}, #{configuration,jdbcType=VARCHAR}, #{createTime,jdbcType=BIGINT}, #{updateTime,jdbcType=BIGINT}, #{createBy,jdbcType=VARCHAR}, #{version,jdbcType=VARCHAR}, - #{status,jdbcType=LONGVARCHAR}) + #{enableDataFill,jdbcType=BIT}, #{enableDataFillCreateTable,jdbcType=BIT}, #{status,jdbcType=LONGVARCHAR} + ) insert into datasource @@ -167,6 +172,12 @@ version, + + enable_data_fill, + + + enable_data_fill_create_table, + `status`, @@ -199,6 +210,12 @@ #{version,jdbcType=VARCHAR}, + + #{enableDataFill,jdbcType=BIT}, + + + #{enableDataFillCreateTable,jdbcType=BIT}, + #{status,jdbcType=LONGVARCHAR}, @@ -240,6 +257,12 @@ version = #{record.version,jdbcType=VARCHAR}, + + enable_data_fill = #{record.enableDataFill,jdbcType=BIT}, + + + enable_data_fill_create_table = #{record.enableDataFillCreateTable,jdbcType=BIT}, + `status` = #{record.status,jdbcType=LONGVARCHAR}, @@ -259,6 +282,8 @@ update_time = #{record.updateTime,jdbcType=BIGINT}, create_by = #{record.createBy,jdbcType=VARCHAR}, version = #{record.version,jdbcType=VARCHAR}, + enable_data_fill = #{record.enableDataFill,jdbcType=BIT}, + enable_data_fill_create_table = #{record.enableDataFillCreateTable,jdbcType=BIT}, `status` = #{record.status,jdbcType=LONGVARCHAR} @@ -274,7 +299,9 @@ create_time = #{record.createTime,jdbcType=BIGINT}, update_time = #{record.updateTime,jdbcType=BIGINT}, create_by = #{record.createBy,jdbcType=VARCHAR}, - version = #{record.version,jdbcType=VARCHAR} + version = #{record.version,jdbcType=VARCHAR}, + enable_data_fill = #{record.enableDataFill,jdbcType=BIT}, + enable_data_fill_create_table = #{record.enableDataFillCreateTable,jdbcType=BIT} @@ -306,6 +333,12 @@ version = #{version,jdbcType=VARCHAR}, + + enable_data_fill = #{enableDataFill,jdbcType=BIT}, + + + enable_data_fill_create_table = #{enableDataFillCreateTable,jdbcType=BIT}, + `status` = #{status,jdbcType=LONGVARCHAR}, @@ -322,6 +355,8 @@ update_time = #{updateTime,jdbcType=BIGINT}, create_by = #{createBy,jdbcType=VARCHAR}, version = #{version,jdbcType=VARCHAR}, + enable_data_fill = #{enableDataFill,jdbcType=BIT}, + enable_data_fill_create_table = #{enableDataFillCreateTable,jdbcType=BIT}, `status` = #{status,jdbcType=LONGVARCHAR} where id = #{id,jdbcType=VARCHAR} @@ -334,7 +369,9 @@ create_time = #{createTime,jdbcType=BIGINT}, update_time = #{updateTime,jdbcType=BIGINT}, create_by = #{createBy,jdbcType=VARCHAR}, - version = #{version,jdbcType=VARCHAR} + version = #{version,jdbcType=VARCHAR}, + enable_data_fill = #{enableDataFill,jdbcType=BIT}, + enable_data_fill_create_table = #{enableDataFillCreateTable,jdbcType=BIT} where id = #{id,jdbcType=VARCHAR} \ No newline at end of file