From e522d3935dd852bc2f62c48808a07d64bfa3fe11 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Wed, 26 May 2021 12:05:16 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=99=90=E5=88=B6=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=9B=86=E5=8F=AA=E6=9C=89=E4=B8=80=E4=B8=AA=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/base/domain/DatasetTable.java | 2 + .../base/domain/DatasetTableExample.java | 70 +++++++++++++++++++ .../base/mapper/DatasetTableMapper.xml | 31 ++++++-- .../listener/DataSourceInitStartListener.java | 4 ++ .../service/dataset/DataSetTableService.java | 8 +++ .../service/dataset/ExtractDataService.java | 18 ++++- .../src/main/resources/generatorConfig.xml | 2 +- 7 files changed, 125 insertions(+), 10 deletions(-) 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/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 @@ - +