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

fix: 数据集更新

上级 a1f210ac
package io.dataease.controller.dataset; package io.dataease.controller.dataset;
import io.dataease.base.domain.DatasetTableTask; import io.dataease.base.domain.DatasetTableTask;
import io.dataease.controller.request.dataset.DataSetTaskRequest;
import io.dataease.service.dataset.DataSetTableService;
import io.dataease.service.dataset.DataSetTableTaskService; import io.dataease.service.dataset.DataSetTableTaskService;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -16,10 +18,13 @@ import java.util.List; ...@@ -16,10 +18,13 @@ import java.util.List;
public class DataSetTableTaskController { public class DataSetTableTaskController {
@Resource @Resource
private DataSetTableTaskService dataSetTableTaskService; private DataSetTableTaskService dataSetTableTaskService;
@Resource
private DataSetTableService dataSetTableService;
@PostMapping("save") @PostMapping("save")
public DatasetTableTask save(@RequestBody DatasetTableTask datasetTableTask) throws Exception { public DatasetTableTask save(@RequestBody DataSetTaskRequest dataSetTaskRequest) throws Exception {
return dataSetTableTaskService.save(datasetTableTask); dataSetTableService.saveIncrementalConfig(dataSetTaskRequest.getDatasetTableIncrementalConfig());
return dataSetTableTaskService.save(dataSetTaskRequest.getDatasetTableTask());
} }
@PostMapping("delete/{id}") @PostMapping("delete/{id}")
......
...@@ -480,6 +480,9 @@ public class DataSetTableService { ...@@ -480,6 +480,9 @@ public class DataSetTableService {
public void saveIncrementalConfig(DatasetTableIncrementalConfig datasetTableIncrementalConfig) { public void saveIncrementalConfig(DatasetTableIncrementalConfig datasetTableIncrementalConfig) {
if(datasetTableIncrementalConfig == null || StringUtils.isEmpty(datasetTableIncrementalConfig.getTableId())){
return;
}
if (StringUtils.isEmpty(datasetTableIncrementalConfig.getId())) { if (StringUtils.isEmpty(datasetTableIncrementalConfig.getId())) {
datasetTableIncrementalConfig.setId(UUID.randomUUID().toString()); datasetTableIncrementalConfig.setId(UUID.randomUUID().toString());
datasetTableIncrementalConfigMapper.insertSelective(datasetTableIncrementalConfig); datasetTableIncrementalConfigMapper.insertSelective(datasetTableIncrementalConfig);
......
...@@ -22,6 +22,7 @@ import io.dataease.dto.dataset.DataTableInfoDTO; ...@@ -22,6 +22,7 @@ import io.dataease.dto.dataset.DataTableInfoDTO;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.pentaho.di.cluster.SlaveServer; import org.pentaho.di.cluster.SlaveServer;
import org.pentaho.di.core.database.DatabaseMeta; import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.row.ValueMetaInterface; import org.pentaho.di.core.row.ValueMetaInterface;
...@@ -167,10 +168,6 @@ public class ExtractDataService { ...@@ -167,10 +168,6 @@ public class ExtractDataService {
} }
return o1.getColumnIndex().compareTo(o2.getColumnIndex()); return o1.getColumnIndex().compareTo(o2.getColumnIndex());
}); });
for (DatasetTableField datasetTableField : datasetTableFields) {
System.out.println(new Gson().toJson(datasetTableField));
}
String dorisTablColumnSql = createDorisTablColumnSql(datasetTableFields); String dorisTablColumnSql = createDorisTablColumnSql(datasetTableFields);
switch (updateType) { switch (updateType) {
// 全量更新 // 全量更新
...@@ -227,9 +224,9 @@ public class ExtractDataService { ...@@ -227,9 +224,9 @@ public class ExtractDataService {
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
LogUtil.error("ExtractData error, dataaset: " + datasetTableId); LogUtil.error("Extract data error: " + datasetTableId, e);
LogUtil.error(e.getMessage(), e);
datasetTableTaskLog.setStatus(JobStatus.Error.name()); datasetTableTaskLog.setStatus(JobStatus.Error.name());
datasetTableTaskLog.setInfo(ExceptionUtils.getStackTrace(e));
datasetTableTaskLog.setEndTime(System.currentTimeMillis()); datasetTableTaskLog.setEndTime(System.currentTimeMillis());
dataSetTableTaskLogService.save(datasetTableTaskLog); dataSetTableTaskLogService.save(datasetTableTaskLog);
} finally { } finally {
......
...@@ -757,6 +757,9 @@ export default { ...@@ -757,6 +757,9 @@ export default {
start_time: '开始时间', start_time: '开始时间',
end_time: '结束时间', end_time: '结束时间',
status: '状态', status: '状态',
error: '错误',
completed: '完成',
underway: '执行中',
task_update: '定时更新', task_update: '定时更新',
update_type: '更新方式', update_type: '更新方式',
all_scope: '全量更新', all_scope: '全量更新',
......
...@@ -4,6 +4,9 @@ ...@@ -4,6 +4,9 @@
<el-button icon="el-icon-setting" size="mini" @click="showConfig"> <el-button icon="el-icon-setting" size="mini" @click="showConfig">
{{ $t('dataset.update_setting') }} {{ $t('dataset.update_setting') }}
</el-button> </el-button>
<el-button icon="el-icon-refresh" size="mini" @click="refreshLog">
{{ $t('commons.refresh') }}
</el-button>
</el-row> </el-row>
<el-row style="margin-top: 10px;"> <el-row style="margin-top: 10px;">
<el-table <el-table
...@@ -29,13 +32,22 @@ ...@@ -29,13 +32,22 @@
:label="$t('dataset.end_time')" :label="$t('dataset.end_time')"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.endTime | timestampFormatDate }}</span> <span>{{scope.row.endTime | timestampFormatDate }}</span>
</template>
</el-table-column>
<el-table-column prop="status" :label="$t('dataset.status')" >
<template slot-scope="scope">
<span v-if="scope.row.status === 'Completed'" style="color: green">{{ $t('dataset.completed') }}</span>
<span v-if="scope.row.status === 'Underway'" style="color: blue">
<i class="el-icon-loading"></i>
{{ $t('dataset.underway') }}
</span>
<span v-if="scope.row.status === 'Error'" style="color: red" >
<el-link type="danger" style="font-size: 12px" @click="showErrorMassage(scope.row.info)">{{ $t('dataset.error') }}</el-link>
</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column
prop="status"
:label="$t('dataset.status')"
/>
</el-table> </el-table>
<el-row style="margin-top: 10px;text-align: right;"> <el-row style="margin-top: 10px;text-align: right;">
<el-pagination <el-pagination
...@@ -50,6 +62,18 @@ ...@@ -50,6 +62,18 @@
</el-row> </el-row>
</el-row> </el-row>
<el-dialog
:title="$t('dataset.detail')"
:visible="show_error_massage"
:show-close="false"
width="50%"
class="dialog-css">
<span>{{error_massage}}</span>
<span slot="footer" class="dialog-footer">
<el-button size="mini" @click="show_error_massage = false">{{ $t('dataset.close') }}</el-button>
</span>
</el-dialog>
<el-dialog <el-dialog
:title="table.name+' '+$t('dataset.update_setting')" :title="table.name+' '+$t('dataset.update_setting')"
:visible="update_setting" :visible="update_setting"
...@@ -137,10 +161,7 @@ ...@@ -137,10 +161,7 @@
<el-button type="primary" size="mini" @click="saveTask(taskForm)">{{ $t('dataset.confirm') }}</el-button> <el-button type="primary" size="mini" @click="saveTask(taskForm)">{{ $t('dataset.confirm') }}</el-button>
</div> </div>
</el-dialog> </el-dialog>
<el-row> <el-row >
<!-- <el-button icon="el-icon-download" size="mini">-->
<!-- {{ $t('dataset.sync_now') }}-->
<!-- </el-button>-->
<el-button icon="el-icon-plus" size="mini" @click="addTask(undefined)"> <el-button icon="el-icon-plus" size="mini" @click="addTask(undefined)">
{{ $t('dataset.add_task') }} {{ $t('dataset.add_task') }}
</el-button> </el-button>
...@@ -155,7 +176,7 @@ ...@@ -155,7 +176,7 @@
> >
<el-table-column <el-table-column
prop="name" prop="name"
:label="$t('dataset.start_time')" :label="$t('dataset.task_name')"
/> />
<el-table-column <el-table-column
prop="rate" prop="rate"
...@@ -276,6 +297,8 @@ export default { ...@@ -276,6 +297,8 @@ export default {
return { return {
update_setting: false, update_setting: false,
update_task: false, update_task: false,
show_error_massage: false,
error_massage: '',
taskForm: { taskForm: {
name: '', name: '',
type: 'all_scope', type: 'all_scope',
...@@ -331,9 +354,13 @@ export default { ...@@ -331,9 +354,13 @@ export default {
} }
}, },
watch: { watch: {
table() { table: {
this.listTask() handler()
this.listTaskLog() {
this.listTask()
this.listTaskLog()
},
immediate: true
} }
}, },
mounted() { mounted() {
...@@ -345,10 +372,22 @@ export default { ...@@ -345,10 +372,22 @@ export default {
this.height = window.innerHeight / 2 this.height = window.innerHeight / 2
}, },
methods: { methods: {
cellStyle ({row, column}) {
// 状态列字体颜色
if (row.status === 'Underway' && column === 'status') {
return 'color: blue'
} else if (row.status === 'Completed' && column === 'status') {
return 'color: green'
}else if (row.status === 'Error' && column === 'status') {
return 'color: red'
}
},
incrementalUpdateTypeChange: function() { incrementalUpdateTypeChange: function() {
if (this.incrementalUpdateType === 'incrementalAdd') { if (this.incrementalUpdateType === 'incrementalAdd') {
if (this.sql) { if (this.sql) {
this.incrementalConfig.incrementalDelete = this.sql this.incrementalConfig.incrementalDelete = this.sql
} else {
this.incrementalConfig.incrementalDelete = ''
} }
if (this.incrementalConfig.incrementalAdd) { if (this.incrementalConfig.incrementalAdd) {
this.sql = this.incrementalConfig.incrementalAdd this.sql = this.incrementalConfig.incrementalAdd
...@@ -360,6 +399,8 @@ export default { ...@@ -360,6 +399,8 @@ export default {
if (this.incrementalUpdateType === 'incrementalDelete') { if (this.incrementalUpdateType === 'incrementalDelete') {
if (this.sql) { if (this.sql) {
this.incrementalConfig.incrementalAdd = this.sql this.incrementalConfig.incrementalAdd = this.sql
} else {
this.incrementalConfig.incrementalAdd = ''
} }
if (this.incrementalConfig.incrementalDelete) { if (this.incrementalConfig.incrementalDelete) {
this.sql = this.incrementalConfig.incrementalDelete this.sql = this.incrementalConfig.incrementalDelete
...@@ -373,6 +414,13 @@ export default { ...@@ -373,6 +414,13 @@ export default {
this.listTask() this.listTask()
this.getIncrementalConfig() this.getIncrementalConfig()
}, },
refreshLog(){
this.listTaskLog()
},
showErrorMassage(massage){
this.show_error_massage = true
this.error_massage = massage
},
addTask(task) { addTask(task) {
if (!task) { if (!task) {
this.resetTaskForm() this.resetTaskForm()
...@@ -414,10 +462,22 @@ export default { ...@@ -414,10 +462,22 @@ export default {
}) })
}, },
saveTask(task) { saveTask(task) {
if (this.incrementalUpdateType === 'incrementalAdd') {
this.incrementalConfig.incrementalAdd = this.sql
} else {
this.incrementalConfig.incrementalDelete = this.sql
}
this.incrementalConfig.tableId = this.table.id
console.log(this.incrementalConfig)
task.startTime = new Date(task.startTime).getTime() task.startTime = new Date(task.startTime).getTime()
task.endTime = new Date(task.endTime).getTime() task.endTime = new Date(task.endTime).getTime()
task.tableId = this.table.id task.tableId = this.table.id
post('/dataset/task/save', task).then(response => { const dataSetTaskRequest = {
datasetTableTask: task,
datasetTableIncrementalConfig: this.incrementalConfig
}
post('/dataset/task/save', dataSetTaskRequest).then(response => {
this.$message({ this.$message({
message: this.$t('dataset.save_success'), message: this.$t('dataset.save_success'),
type: 'success', type: 'success',
......
...@@ -86,7 +86,6 @@ export default { ...@@ -86,7 +86,6 @@ export default {
}, },
methods: { methods: {
initTable(id) { initTable(id) {
console.log(id)
this.tabActive = 'dataPreview' this.tabActive = 'dataPreview'
this.tableViewRowForm.row = 1000 this.tableViewRowForm.row = 1000
if (id !== null) { if (id !== null) {
......
...@@ -37,7 +37,6 @@ export default { ...@@ -37,7 +37,6 @@ export default {
}, },
methods: { methods: {
switchComponent(c) { switchComponent(c) {
console.log(c)
this.param = c.param this.param = c.param
switch (c.name) { switch (c.name) {
case 'ViewTable': case 'ViewTable':
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论