forked from github/dataease
fix: 数据集更新
This commit is contained in:
parent
a1f210ac91
commit
568288001a
@ -1,6 +1,8 @@
|
||||
package io.dataease.controller.dataset;
|
||||
|
||||
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 org.springframework.web.bind.annotation.*;
|
||||
|
||||
@ -16,10 +18,13 @@ import java.util.List;
|
||||
public class DataSetTableTaskController {
|
||||
@Resource
|
||||
private DataSetTableTaskService dataSetTableTaskService;
|
||||
@Resource
|
||||
private DataSetTableService dataSetTableService;
|
||||
|
||||
@PostMapping("save")
|
||||
public DatasetTableTask save(@RequestBody DatasetTableTask datasetTableTask) throws Exception {
|
||||
return dataSetTableTaskService.save(datasetTableTask);
|
||||
public DatasetTableTask save(@RequestBody DataSetTaskRequest dataSetTaskRequest) throws Exception {
|
||||
dataSetTableService.saveIncrementalConfig(dataSetTaskRequest.getDatasetTableIncrementalConfig());
|
||||
return dataSetTableTaskService.save(dataSetTaskRequest.getDatasetTableTask());
|
||||
}
|
||||
|
||||
@PostMapping("delete/{id}")
|
||||
|
@ -480,6 +480,9 @@ public class DataSetTableService {
|
||||
|
||||
|
||||
public void saveIncrementalConfig(DatasetTableIncrementalConfig datasetTableIncrementalConfig) {
|
||||
if(datasetTableIncrementalConfig == null || StringUtils.isEmpty(datasetTableIncrementalConfig.getTableId())){
|
||||
return;
|
||||
}
|
||||
if (StringUtils.isEmpty(datasetTableIncrementalConfig.getId())) {
|
||||
datasetTableIncrementalConfig.setId(UUID.randomUUID().toString());
|
||||
datasetTableIncrementalConfigMapper.insertSelective(datasetTableIncrementalConfig);
|
||||
|
@ -22,6 +22,7 @@ import io.dataease.dto.dataset.DataTableInfoDTO;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.exception.ExceptionUtils;
|
||||
import org.pentaho.di.cluster.SlaveServer;
|
||||
import org.pentaho.di.core.database.DatabaseMeta;
|
||||
import org.pentaho.di.core.row.ValueMetaInterface;
|
||||
@ -167,10 +168,6 @@ public class ExtractDataService {
|
||||
}
|
||||
return o1.getColumnIndex().compareTo(o2.getColumnIndex());
|
||||
});
|
||||
for (DatasetTableField datasetTableField : datasetTableFields) {
|
||||
System.out.println(new Gson().toJson(datasetTableField));
|
||||
}
|
||||
|
||||
String dorisTablColumnSql = createDorisTablColumnSql(datasetTableFields);
|
||||
switch (updateType) {
|
||||
// 全量更新
|
||||
@ -227,9 +224,9 @@ public class ExtractDataService {
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
LogUtil.error("ExtractData error, dataaset: " + datasetTableId);
|
||||
LogUtil.error(e.getMessage(), e);
|
||||
LogUtil.error("Extract data error: " + datasetTableId, e);
|
||||
datasetTableTaskLog.setStatus(JobStatus.Error.name());
|
||||
datasetTableTaskLog.setInfo(ExceptionUtils.getStackTrace(e));
|
||||
datasetTableTaskLog.setEndTime(System.currentTimeMillis());
|
||||
dataSetTableTaskLogService.save(datasetTableTaskLog);
|
||||
} finally {
|
||||
|
@ -757,6 +757,9 @@ export default {
|
||||
start_time: '开始时间',
|
||||
end_time: '结束时间',
|
||||
status: '状态',
|
||||
error: '错误',
|
||||
completed: '完成',
|
||||
underway: '执行中',
|
||||
task_update: '定时更新',
|
||||
update_type: '更新方式',
|
||||
all_scope: '全量更新',
|
||||
|
@ -4,6 +4,9 @@
|
||||
<el-button icon="el-icon-setting" size="mini" @click="showConfig">
|
||||
{{ $t('dataset.update_setting') }}
|
||||
</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="refreshLog">
|
||||
{{ $t('commons.refresh') }}
|
||||
</el-button>
|
||||
</el-row>
|
||||
<el-row style="margin-top: 10px;">
|
||||
<el-table
|
||||
@ -29,13 +32,22 @@
|
||||
:label="$t('dataset.end_time')"
|
||||
>
|
||||
<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>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="status"
|
||||
:label="$t('dataset.status')"
|
||||
/>
|
||||
</el-table>
|
||||
<el-row style="margin-top: 10px;text-align: right;">
|
||||
<el-pagination
|
||||
@ -50,6 +62,18 @@
|
||||
</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
|
||||
:title="table.name+' '+$t('dataset.update_setting')"
|
||||
:visible="update_setting"
|
||||
@ -137,10 +161,7 @@
|
||||
<el-button type="primary" size="mini" @click="saveTask(taskForm)">{{ $t('dataset.confirm') }}</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<el-row>
|
||||
<!-- <el-button icon="el-icon-download" size="mini">-->
|
||||
<!-- {{ $t('dataset.sync_now') }}-->
|
||||
<!-- </el-button>-->
|
||||
<el-row >
|
||||
<el-button icon="el-icon-plus" size="mini" @click="addTask(undefined)">
|
||||
{{ $t('dataset.add_task') }}
|
||||
</el-button>
|
||||
@ -155,7 +176,7 @@
|
||||
>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
:label="$t('dataset.start_time')"
|
||||
:label="$t('dataset.task_name')"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="rate"
|
||||
@ -276,6 +297,8 @@ export default {
|
||||
return {
|
||||
update_setting: false,
|
||||
update_task: false,
|
||||
show_error_massage: false,
|
||||
error_massage: '',
|
||||
taskForm: {
|
||||
name: '',
|
||||
type: 'all_scope',
|
||||
@ -331,9 +354,13 @@ export default {
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
table() {
|
||||
this.listTask()
|
||||
this.listTaskLog()
|
||||
table: {
|
||||
handler()
|
||||
{
|
||||
this.listTask()
|
||||
this.listTaskLog()
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
@ -345,10 +372,22 @@ export default {
|
||||
this.height = window.innerHeight / 2
|
||||
},
|
||||
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() {
|
||||
if (this.incrementalUpdateType === 'incrementalAdd') {
|
||||
if (this.sql) {
|
||||
this.incrementalConfig.incrementalDelete = this.sql
|
||||
} else {
|
||||
this.incrementalConfig.incrementalDelete = ''
|
||||
}
|
||||
if (this.incrementalConfig.incrementalAdd) {
|
||||
this.sql = this.incrementalConfig.incrementalAdd
|
||||
@ -360,6 +399,8 @@ export default {
|
||||
if (this.incrementalUpdateType === 'incrementalDelete') {
|
||||
if (this.sql) {
|
||||
this.incrementalConfig.incrementalAdd = this.sql
|
||||
} else {
|
||||
this.incrementalConfig.incrementalAdd = ''
|
||||
}
|
||||
if (this.incrementalConfig.incrementalDelete) {
|
||||
this.sql = this.incrementalConfig.incrementalDelete
|
||||
@ -373,6 +414,13 @@ export default {
|
||||
this.listTask()
|
||||
this.getIncrementalConfig()
|
||||
},
|
||||
refreshLog(){
|
||||
this.listTaskLog()
|
||||
},
|
||||
showErrorMassage(massage){
|
||||
this.show_error_massage = true
|
||||
this.error_massage = massage
|
||||
},
|
||||
addTask(task) {
|
||||
if (!task) {
|
||||
this.resetTaskForm()
|
||||
@ -414,10 +462,22 @@ export default {
|
||||
})
|
||||
},
|
||||
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.endTime = new Date(task.endTime).getTime()
|
||||
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({
|
||||
message: this.$t('dataset.save_success'),
|
||||
type: 'success',
|
||||
|
@ -86,7 +86,6 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
initTable(id) {
|
||||
console.log(id)
|
||||
this.tabActive = 'dataPreview'
|
||||
this.tableViewRowForm.row = 1000
|
||||
if (id !== null) {
|
||||
|
@ -37,7 +37,6 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
switchComponent(c) {
|
||||
console.log(c)
|
||||
this.param = c.param
|
||||
switch (c.name) {
|
||||
case 'ViewTable':
|
||||
|
Loading…
Reference in New Issue
Block a user