diff --git a/backend/src/main/java/io/dataease/base/domain/DatasetTable.java b/backend/src/main/java/io/dataease/base/domain/DatasetTable.java index 5176b0df68..9a0590bba7 100644 --- a/backend/src/main/java/io/dataease/base/domain/DatasetTable.java +++ b/backend/src/main/java/io/dataease/base/domain/DatasetTable.java @@ -21,6 +21,8 @@ public class DatasetTable implements Serializable { private Long createTime; + private String syncStatus; + private String info; private static final long serialVersionUID = 1L; diff --git a/backend/src/main/java/io/dataease/base/domain/DatasetTableExample.java b/backend/src/main/java/io/dataease/base/domain/DatasetTableExample.java index ba03528ae6..b229db8021 100644 --- a/backend/src/main/java/io/dataease/base/domain/DatasetTableExample.java +++ b/backend/src/main/java/io/dataease/base/domain/DatasetTableExample.java @@ -643,6 +643,76 @@ public class DatasetTableExample { addCriterion("create_time not between", value1, value2, "createTime"); return (Criteria) this; } + + public Criteria andSyncStatusIsNull() { + addCriterion("sync_status is null"); + return (Criteria) this; + } + + public Criteria andSyncStatusIsNotNull() { + addCriterion("sync_status is not null"); + return (Criteria) this; + } + + public Criteria andSyncStatusEqualTo(String value) { + addCriterion("sync_status =", value, "syncStatus"); + return (Criteria) this; + } + + public Criteria andSyncStatusNotEqualTo(String value) { + addCriterion("sync_status <>", value, "syncStatus"); + return (Criteria) this; + } + + public Criteria andSyncStatusGreaterThan(String value) { + addCriterion("sync_status >", value, "syncStatus"); + return (Criteria) this; + } + + public Criteria andSyncStatusGreaterThanOrEqualTo(String value) { + addCriterion("sync_status >=", value, "syncStatus"); + return (Criteria) this; + } + + public Criteria andSyncStatusLessThan(String value) { + addCriterion("sync_status <", value, "syncStatus"); + return (Criteria) this; + } + + public Criteria andSyncStatusLessThanOrEqualTo(String value) { + addCriterion("sync_status <=", value, "syncStatus"); + return (Criteria) this; + } + + public Criteria andSyncStatusLike(String value) { + addCriterion("sync_status like", value, "syncStatus"); + return (Criteria) this; + } + + public Criteria andSyncStatusNotLike(String value) { + addCriterion("sync_status not like", value, "syncStatus"); + return (Criteria) this; + } + + public Criteria andSyncStatusIn(List values) { + addCriterion("sync_status in", values, "syncStatus"); + return (Criteria) this; + } + + public Criteria andSyncStatusNotIn(List values) { + addCriterion("sync_status not in", values, "syncStatus"); + return (Criteria) this; + } + + public Criteria andSyncStatusBetween(String value1, String value2) { + addCriterion("sync_status between", value1, value2, "syncStatus"); + return (Criteria) this; + } + + public Criteria andSyncStatusNotBetween(String value1, String value2) { + addCriterion("sync_status not between", value1, value2, "syncStatus"); + return (Criteria) this; + } } public static class Criteria extends GeneratedCriteria { diff --git a/backend/src/main/java/io/dataease/base/mapper/DatasetTableMapper.xml b/backend/src/main/java/io/dataease/base/mapper/DatasetTableMapper.xml index 1c52adedbb..f465f58ec3 100644 --- a/backend/src/main/java/io/dataease/base/mapper/DatasetTableMapper.xml +++ b/backend/src/main/java/io/dataease/base/mapper/DatasetTableMapper.xml @@ -10,6 +10,7 @@ + @@ -73,7 +74,7 @@ - id, `name`, scene_id, data_source_id, `type`, `mode`, create_by, create_time + id, `name`, scene_id, data_source_id, `type`, `mode`, create_by, create_time, sync_status info @@ -129,12 +130,12 @@ insert into dataset_table (id, `name`, scene_id, data_source_id, `type`, `mode`, - create_by, create_time, info - ) + create_by, create_time, sync_status, + info) values (#{id,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{sceneId,jdbcType=VARCHAR}, #{dataSourceId,jdbcType=VARCHAR}, #{type,jdbcType=VARCHAR}, #{mode,jdbcType=INTEGER}, - #{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=BIGINT}, #{info,jdbcType=LONGVARCHAR} - ) + #{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=BIGINT}, #{syncStatus,jdbcType=VARCHAR}, + #{info,jdbcType=LONGVARCHAR}) insert into dataset_table @@ -163,6 +164,9 @@ create_time, + + sync_status, + info, @@ -192,6 +196,9 @@ #{createTime,jdbcType=BIGINT}, + + #{syncStatus,jdbcType=VARCHAR}, + #{info,jdbcType=LONGVARCHAR}, @@ -230,6 +237,9 @@ create_time = #{record.createTime,jdbcType=BIGINT}, + + sync_status = #{record.syncStatus,jdbcType=VARCHAR}, + info = #{record.info,jdbcType=LONGVARCHAR}, @@ -248,6 +258,7 @@ `mode` = #{record.mode,jdbcType=INTEGER}, create_by = #{record.createBy,jdbcType=VARCHAR}, create_time = #{record.createTime,jdbcType=BIGINT}, + sync_status = #{record.syncStatus,jdbcType=VARCHAR}, info = #{record.info,jdbcType=LONGVARCHAR} @@ -262,7 +273,8 @@ `type` = #{record.type,jdbcType=VARCHAR}, `mode` = #{record.mode,jdbcType=INTEGER}, create_by = #{record.createBy,jdbcType=VARCHAR}, - create_time = #{record.createTime,jdbcType=BIGINT} + create_time = #{record.createTime,jdbcType=BIGINT}, + sync_status = #{record.syncStatus,jdbcType=VARCHAR} @@ -291,6 +303,9 @@ create_time = #{createTime,jdbcType=BIGINT}, + + sync_status = #{syncStatus,jdbcType=VARCHAR}, + info = #{info,jdbcType=LONGVARCHAR}, @@ -306,6 +321,7 @@ `mode` = #{mode,jdbcType=INTEGER}, create_by = #{createBy,jdbcType=VARCHAR}, create_time = #{createTime,jdbcType=BIGINT}, + sync_status = #{syncStatus,jdbcType=VARCHAR}, info = #{info,jdbcType=LONGVARCHAR} where id = #{id,jdbcType=VARCHAR} @@ -317,7 +333,8 @@ `type` = #{type,jdbcType=VARCHAR}, `mode` = #{mode,jdbcType=INTEGER}, create_by = #{createBy,jdbcType=VARCHAR}, - create_time = #{createTime,jdbcType=BIGINT} + create_time = #{createTime,jdbcType=BIGINT}, + sync_status = #{syncStatus,jdbcType=VARCHAR} where id = #{id,jdbcType=VARCHAR} \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/config/MybatisConfig.java b/backend/src/main/java/io/dataease/config/MybatisConfig.java index c56f901d2d..b152f8dcca 100644 --- a/backend/src/main/java/io/dataease/config/MybatisConfig.java +++ b/backend/src/main/java/io/dataease/config/MybatisConfig.java @@ -1,10 +1,7 @@ package io.dataease.config; import com.github.pagehelper.PageInterceptor; -import io.dataease.base.domain.ApiTestReportDetail; -import io.dataease.base.domain.AuthSource; -import io.dataease.base.domain.FileContent; -import io.dataease.base.domain.TestResource; +import io.dataease.base.domain.*; import io.dataease.commons.utils.CompressUtils; import io.dataease.commons.utils.MybatisInterceptorConfig; import io.dataease.interceptor.MybatisInterceptor; @@ -45,7 +42,7 @@ public class MybatisConfig { List configList = new ArrayList<>(); configList.add(new MybatisInterceptorConfig(FileContent.class, "file", CompressUtils.class, "zip", "unzip")); configList.add(new MybatisInterceptorConfig(ApiTestReportDetail.class, "content", CompressUtils.class, "compress", "decompress")); - configList.add(new MybatisInterceptorConfig(TestResource.class, "configuration")); + configList.add(new MybatisInterceptorConfig(Datasource.class, "configuration")); configList.add(new MybatisInterceptorConfig(AuthSource.class, "configuration")); interceptor.setInterceptorConfigList(configList); return interceptor; diff --git a/backend/src/main/java/io/dataease/listener/DataSourceInitStartListener.java b/backend/src/main/java/io/dataease/listener/DataSourceInitStartListener.java index 3ceeb18071..141361d560 100644 --- a/backend/src/main/java/io/dataease/listener/DataSourceInitStartListener.java +++ b/backend/src/main/java/io/dataease/listener/DataSourceInitStartListener.java @@ -3,6 +3,7 @@ package io.dataease.listener; import io.dataease.base.domain.DatasetTableTask; import io.dataease.datasource.service.DatasourceService; import io.dataease.service.ScheduleService; +import io.dataease.service.dataset.DataSetTableService; import io.dataease.service.dataset.DataSetTableTaskService; import org.springframework.boot.context.event.ApplicationReadyEvent; import org.springframework.context.ApplicationListener; @@ -17,9 +18,12 @@ import java.util.List; public class DataSourceInitStartListener implements ApplicationListener { @Resource private DatasourceService datasourceService; + @Resource + private DataSetTableService dataSetTableService; @Override public void onApplicationEvent(ApplicationReadyEvent applicationReadyEvent) { datasourceService.initAllDataSourceConnectionPool(); + dataSetTableService.updateDatasetTableStatus(); } } 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 626e177d6d..6680619ae4 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -876,4 +876,12 @@ public class DataSetTableService { List data = jdbcProvider.getData(datasourceRequest); return CollectionUtils.isNotEmpty(data); } + + public void updateDatasetTableStatus(){ + DatasetTable record = new DatasetTable(); + record.setSyncStatus(JobStatus.Completed.name()); + DatasetTableExample example = new DatasetTableExample(); + example.createCriteria().andSyncStatusEqualTo(JobStatus.Underway.name()); + datasetTableMapper.updateByExampleSelective(record, example); + } } diff --git a/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java b/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java index 11dd7acf0d..a47abc7ee0 100644 --- a/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java +++ b/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java @@ -2,6 +2,7 @@ package io.dataease.service.dataset; import com.google.gson.Gson; import io.dataease.base.domain.*; +import io.dataease.base.mapper.DatasetTableMapper; import io.dataease.base.mapper.DatasourceMapper; import io.dataease.commons.constants.JobStatus; import io.dataease.commons.constants.ScheduleType; @@ -93,6 +94,8 @@ public class ExtractDataService { private DataSetTableTaskService dataSetTableTaskService; @Resource private DatasourceMapper datasourceMapper; + @Resource + private DatasetTableMapper datasetTableMapper; private static String lastUpdateTime = "${__last_update_time__}"; private static String currentUpdateTime = "${__current_update_time__}"; @@ -172,12 +175,17 @@ public class ExtractDataService { } public void extractData(String datasetTableId, String taskId, String type) { + DatasetTable datasetTable = dataSetTableService.get(datasetTableId); + datasetTable.setSyncStatus(JobStatus.Underway.name()); + DatasetTableExample example = new DatasetTableExample(); + example.createCriteria().andIdEqualTo(datasetTableId); + if (datasetTableMapper.updateByExampleSelective(datasetTable, example) == 0) { + return; + } DatasetTableTaskLog datasetTableTaskLog = new DatasetTableTaskLog(); UpdateType updateType = UpdateType.valueOf(type); - DatasetTable datasetTable = null; Datasource datasource = new Datasource(); try { - datasetTable = dataSetTableService.get(datasetTableId); if (StringUtils.isNotEmpty(datasetTable.getDataSourceId())) { datasource = datasourceMapper.selectByPrimaryKey(datasetTable.getDataSourceId()); } else { @@ -261,6 +269,10 @@ public class ExtractDataService { datasetTableTask.setRate(ScheduleType.SIMPLE_COMPLETE.toString()); dataSetTableTaskService.update(datasetTableTask); } + datasetTable.setSyncStatus(JobStatus.Completed.name()); + example.clear(); + example.createCriteria().andIdEqualTo(datasetTableId); + datasetTableMapper.updateByExampleSelective(datasetTable, example); } } @@ -273,6 +285,8 @@ public class ExtractDataService { } private void extractData(DatasetTable datasetTable, String extractType) throws Exception { + + KettleFileRepository repository = CommonBeanFactory.getBean(KettleFileRepository.class); RepositoryDirectoryInterface repositoryDirectoryInterface = repository.loadRepositoryDirectoryTree(); JobMeta jobMeta = null; diff --git a/backend/src/main/resources/generatorConfig.xml b/backend/src/main/resources/generatorConfig.xml index f86ecb6989..6175f7e18b 100644 --- a/backend/src/main/resources/generatorConfig.xml +++ b/backend/src/main/resources/generatorConfig.xml @@ -74,7 +74,7 @@ - +
diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js index 265ae3dad6..9304174367 100644 --- a/frontend/src/lang/en.js +++ b/frontend/src/lang/en.js @@ -83,8 +83,8 @@ export default { thirdpartyTips: 'Can not be simulated on local, so please combine you own business simulation! ! !', expires: 'Login token expired, please login again', tokenError: 'Token error, please login again', - username_error: 'Please enter the correct user name', - password_error: 'The password can not be less than 6 digits' + username_error: 'Please enter the correct ID', + password_error: 'The password can not be less than 8 digits' }, commons: { close: 'Close', @@ -816,6 +816,8 @@ export default { input_limit_0_50: '0-50 chars' }, panel: { + no_auth_role: 'Unshared roles', + auth_role: 'Shared roles', picture_limit: 'Only pictures can be inserted', drag_here: 'Please drag the left field here', copy_link_passwd: 'Copy link and password', diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js index cde72834f9..b9d7f43f3a 100644 --- a/frontend/src/lang/tw.js +++ b/frontend/src/lang/tw.js @@ -83,8 +83,8 @@ export default { thirdpartyTips: '本地不能模拟,请结合自己业务进行模拟!!!', expires: '登陸信息过期,请重新登陸', tokenError: '信息错误,请重新登陸', - username_error: '請輸入正確的用戶名', - password_error: '密碼不小於6位' + username_error: '請輸入正確的ID', + password_error: '密碼不小於8位' }, commons: { icon: '圖標', @@ -815,6 +815,8 @@ export default { input_limit_0_50: '0-50字符' }, panel: { + no_auth_role: '未分享角色', + auth_role: '已分享角色', picture_limit: '只能插入圖片', drag_here: '請將左側字段拖至此處', copy_link_passwd: '複製鏈接及密碼', diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js index 5089cc1827..caa7469699 100644 --- a/frontend/src/lang/zh.js +++ b/frontend/src/lang/zh.js @@ -83,8 +83,8 @@ export default { thirdpartyTips: '本地不能模拟,请结合自己业务进行模拟!!!', expires: '登录token过期,请重新登录', tokenError: 'token错误,请重新登录', - username_error: '请输入正确的用户名', - password_error: '密码不小于6位' + username_error: '请输入正确的ID', + password_error: '密码不小于8位' }, commons: { close: '关闭', @@ -817,6 +817,8 @@ export default { input_limit_0_50: '0-50字符' }, panel: { + no_auth_role: '未分享角色', + auth_role: '已分享角色', picture_limit: '只能插入图片', drag_here: '请将左侧字段拖至此处', copy_link_passwd: '复制链接及密码', diff --git a/frontend/src/styles/variables.scss b/frontend/src/styles/variables.scss index 43c3745282..3272b606f7 100644 --- a/frontend/src/styles/variables.scss +++ b/frontend/src/styles/variables.scss @@ -39,6 +39,7 @@ $menuHover: rgba(158, 158, 158, 0.2); $subMenuBg:#1f2d3d; // $subMenuHover:#001528; $subMenuHover:#0a7be0; +$colorBg:rgba(10,123,224,.1); $sideBarWidth: 210px; $topBarHeight: 56px; diff --git a/frontend/src/views/dataset/common/DatasetTableData.vue b/frontend/src/views/dataset/common/DatasetTableData.vue index 60eb58534c..e8e627b26d 100644 --- a/frontend/src/views/dataset/common/DatasetTableData.vue +++ b/frontend/src/views/dataset/common/DatasetTableData.vue @@ -1,5 +1,5 @@