提交 cd4806ac authored 作者: taojinlong's avatar taojinlong

feat(數據集): 添加非直连数据集時,默认全量同步一次

上级 66760cdf
...@@ -17,6 +17,7 @@ public class DataSetTableRequest extends DatasetTable { ...@@ -17,6 +17,7 @@ public class DataSetTableRequest extends DatasetTable {
private List<String> tableNames; private List<String> tableNames;
private String row = "1000"; private String row = "1000";
private String userId; private String userId;
private String syncType;
private Integer editType; private Integer editType;
private Boolean isRename; private Boolean isRename;
private List<String> typeFilter; private List<String> typeFilter;
......
...@@ -9,9 +9,11 @@ import io.dataease.base.mapper.ext.ExtDataSetGroupMapper; ...@@ -9,9 +9,11 @@ import io.dataease.base.mapper.ext.ExtDataSetGroupMapper;
import io.dataease.base.mapper.ext.ExtDataSetTableMapper; import io.dataease.base.mapper.ext.ExtDataSetTableMapper;
import io.dataease.base.mapper.ext.UtilMapper; import io.dataease.base.mapper.ext.UtilMapper;
import io.dataease.commons.constants.JobStatus; import io.dataease.commons.constants.JobStatus;
import io.dataease.commons.constants.ScheduleType;
import io.dataease.commons.utils.*; import io.dataease.commons.utils.*;
import io.dataease.controller.request.dataset.DataSetGroupRequest; import io.dataease.controller.request.dataset.DataSetGroupRequest;
import io.dataease.controller.request.dataset.DataSetTableRequest; import io.dataease.controller.request.dataset.DataSetTableRequest;
import io.dataease.controller.request.dataset.DataSetTaskRequest;
import io.dataease.datasource.dto.TableFiled; import io.dataease.datasource.dto.TableFiled;
import io.dataease.datasource.provider.DatasourceProvider; import io.dataease.datasource.provider.DatasourceProvider;
import io.dataease.datasource.provider.JdbcProvider; import io.dataease.datasource.provider.JdbcProvider;
...@@ -94,6 +96,26 @@ public class DataSetTableService { ...@@ -94,6 +96,26 @@ public class DataSetTableService {
} }
} }
private void extractData(DataSetTableRequest datasetTable) throws Exception{
if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "excel")) {
commonThreadPool.addTask(() -> {
extractDataService.extractData(datasetTable.getId(), null, "all_scope", null);
});
}
if (StringUtils.isNotEmpty(datasetTable.getSyncType()) && datasetTable.getSyncType().equalsIgnoreCase("sync_now")) {
DataSetTaskRequest dataSetTaskRequest = new DataSetTaskRequest();
DatasetTableTask datasetTableTask = new DatasetTableTask();
datasetTableTask.setTableId(datasetTable.getId());
datasetTableTask.setRate(ScheduleType.SIMPLE.toString());
datasetTableTask.setType("all_scope");
datasetTableTask.setName(datasetTable.getName() + " 更新设置");
datasetTableTask.setEnd("0");
datasetTableTask.setStartTime(System.currentTimeMillis());
dataSetTaskRequest.setDatasetTableTask(datasetTableTask);
dataSetTableTaskService.save(dataSetTaskRequest);
}
}
public DatasetTable save(DataSetTableRequest datasetTable) throws Exception { public DatasetTable save(DataSetTableRequest datasetTable) throws Exception {
checkName(datasetTable); checkName(datasetTable);
if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "sql")) { if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "sql")) {
...@@ -110,11 +132,7 @@ public class DataSetTableService { ...@@ -110,11 +132,7 @@ public class DataSetTableService {
// 添加表成功后,获取当前表字段和类型,抽象到dataease数据库 // 添加表成功后,获取当前表字段和类型,抽象到dataease数据库
if (insert == 1) { if (insert == 1) {
saveTableField(datasetTable); saveTableField(datasetTable);
if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "excel")) { extractData(datasetTable);
commonThreadPool.addTask(() -> {
extractDataService.extractData(datasetTable.getId(), null, "all_scope", null);
});
}
} }
} else { } else {
int update = datasetTableMapper.updateByPrimaryKeySelective(datasetTable); int update = datasetTableMapper.updateByPrimaryKeySelective(datasetTable);
......
...@@ -919,7 +919,8 @@ export default { ...@@ -919,7 +919,8 @@ export default {
m2: ' To', m2: ' To',
char_can_not_more_50: 'Dataset name can not more 50', char_can_not_more_50: 'Dataset name can not more 50',
task_add_title: 'Add Task', task_add_title: 'Add Task',
task_edit_title: 'Edit Task' task_edit_title: 'Edit Task',
sync_latter: 'Sync latter'
}, },
datasource: { datasource: {
datasource: 'Data Source', datasource: 'Data Source',
......
...@@ -919,7 +919,8 @@ export default { ...@@ -919,7 +919,8 @@ export default {
m2: ' 移動到', m2: ' 移動到',
char_can_not_more_50: '數據集名稱不能超過50個字符', char_can_not_more_50: '數據集名稱不能超過50個字符',
task_add_title: '添加任務', task_add_title: '添加任務',
task_edit_title: '編輯任務' task_edit_title: '編輯任務',
sync_latter: '稍後同步'
}, },
datasource: { datasource: {
datasource: '數據源', datasource: '數據源',
......
...@@ -919,7 +919,8 @@ export default { ...@@ -919,7 +919,8 @@ export default {
m2: ' 移动到', m2: ' 移动到',
char_can_not_more_50: '数据集名称不能超过50个字符', char_can_not_more_50: '数据集名称不能超过50个字符',
task_add_title: '添加任务', task_add_title: '添加任务',
task_edit_title: '编辑任务' task_edit_title: '编辑任务',
sync_latter: '稍后同步'
}, },
datasource: { datasource: {
datasource: '数据源', datasource: '数据源',
......
...@@ -32,6 +32,14 @@ ...@@ -32,6 +32,14 @@
<el-option :label="$t('dataset.sync_data')" value="1" :disabled="!kettleRunning" /> <el-option :label="$t('dataset.sync_data')" value="1" :disabled="!kettleRunning" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item class="form-item" v-if="mode === '1'">
<el-select v-model="syncType" filterable :placeholder="$t('dataset.connect_mode')" size="mini">
<el-option :label="$t('dataset.sync_now')" value="sync_now" />
<el-option :label="$t('dataset.sync_latter')" value="sync_latter" />
</el-select>
</el-form-item>
<el-form-item class="form-item" style="float: right;"> <el-form-item class="form-item" style="float: right;">
<el-input <el-input
v-model="searchTable" v-model="searchTable"
...@@ -76,6 +84,7 @@ export default { ...@@ -76,6 +84,7 @@ export default {
tables: [], tables: [],
checkTableList: [], checkTableList: [],
mode: '0', mode: '0',
syncType: 'sync_now',
tableData: [], tableData: [],
kettleRunning: false kettleRunning: false
} }
...@@ -130,12 +139,14 @@ export default { ...@@ -130,12 +139,14 @@ export default {
const dataSourceId = this.dataSource const dataSourceId = this.dataSource
const tables = [] const tables = []
const mode = this.mode const mode = this.mode
const syncType = this.syncType
this.checkTableList.forEach(function(name) { this.checkTableList.forEach(function(name) {
tables.push({ tables.push({
name: ds.name + '_' + name, name: ds.name + '_' + name,
sceneId: sceneId, sceneId: sceneId,
dataSourceId: dataSourceId, dataSourceId: dataSourceId,
type: 'db', type: 'db',
syncType: syncType,
mode: parseInt(mode), mode: parseInt(mode),
info: JSON.stringify({ table: name }) info: JSON.stringify({ table: name })
}) })
......
...@@ -36,6 +36,13 @@ ...@@ -36,6 +36,13 @@
<el-option :label="$t('dataset.sync_data')" value="1" :disabled="!kettleRunning" /> <el-option :label="$t('dataset.sync_data')" value="1" :disabled="!kettleRunning" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item class="form-item" v-if="mode === '1'">
<el-select v-model="syncType" filterable :placeholder="$t('dataset.connect_mode')" size="mini">
<el-option :label="$t('dataset.sync_now')" value="sync_now" />
<el-option :label="$t('dataset.sync_latter')" value="sync_latter" />
</el-select>
</el-form-item>
</el-form> </el-form>
</el-row> </el-row>
<el-row> <el-row>
...@@ -143,6 +150,7 @@ export default { ...@@ -143,6 +150,7 @@ export default {
data: [], data: [],
fields: [], fields: [],
mode: '0', mode: '0',
syncType: 'sync_now',
height: 500, height: 500,
kettleRunning: false kettleRunning: false
} }
...@@ -260,6 +268,7 @@ export default { ...@@ -260,6 +268,7 @@ export default {
sceneId: this.param.id, sceneId: this.param.id,
dataSourceId: this.dataSource, dataSourceId: this.dataSource,
type: 'sql', type: 'sql',
syncType: this.syncType,
mode: parseInt(this.mode), mode: parseInt(this.mode),
// info: '{"sql":"' + this.sql + '"}', // info: '{"sql":"' + this.sql + '"}',
info: JSON.stringify({ sql: this.sql.trim() }) info: JSON.stringify({ sql: this.sql.trim() })
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论