fix: 更新任务状态

This commit is contained in:
taojinlong 2021-07-27 16:07:03 +08:00
parent 1e33054903
commit 585755a37a
10 changed files with 116 additions and 63 deletions

View File

@ -5,6 +5,7 @@
<resultMap id="BaseResult" type="io.dataease.dto.dataset.DataSetTaskLogDTO"
extends="io.dataease.base.mapper.DatasetTableTaskLogMapper.BaseResultMap">
<result column="name" jdbcType="VARCHAR" property="name"/>
<result column="dataset_name" jdbcType="VARCHAR" property="datasetName"/>
</resultMap>
<resultMap id="TaskResult" type="io.dataease.dto.dataset.DataSetTaskDTO" extends="io.dataease.base.mapper.DatasetTableTaskMapper.BaseResultMap">
@ -13,7 +14,7 @@
</resultMap>
<select id="list" resultMap="BaseResult" parameterType="io.dataease.base.domain.DatasetTableTaskLog">
SELECT dataset_table_task_log.*, dataset_table_task.name
SELECT dataset_table_task_log.*, dataset_table_task.name, dataset_table.name as dataset_name
FROM dataset_table_task_log
LEFT JOIN dataset_table_task ON dataset_table_task_log.task_id = dataset_table_task.id
LEFT JOIN dataset_table ON dataset_table_task_log.table_id = dataset_table.id

View File

@ -12,4 +12,5 @@ import lombok.Setter;
@Setter
public class DataSetTaskLogDTO extends DatasetTableTaskLog {
private String name;
private String datasetName;
}

View File

@ -51,7 +51,9 @@ public class DataSetTableTaskLogService {
if(!type.equalsIgnoreCase("excel")){
ConditionEntity entity = new ConditionEntity();
entity.setField("task_id");
entity.setOperator("not null");
entity.setOperator("not in");
List<String>status = new ArrayList<>();status.add("初始导入");status.add("替换");status.add("追加");
entity.setValue(status);
List<ConditionEntity> conditionEntities = request.getConditions();
if(CollectionUtils.isEmpty(conditionEntities)){
conditionEntities = new ArrayList<>();

View File

@ -181,7 +181,7 @@ public class SysMsgService {
}
public List<SysMsgSetting> defaultSettings() {
Long userId = AuthUtils.getUser().getUserId();
// Long userId = AuthUtils.getUser().getUserId();
SysMsgSetting sysMsgSetting1 = new SysMsgSetting();
sysMsgSetting1.setTypeId(2L);
sysMsgSetting1.setChannelId(1L);

View File

@ -1,7 +1,7 @@
<template>
<de-container>
<de-aside-container>
<dataset-group-selector-tree @getTable="getTable" :mode=mode :type=type :showMode=showMode />
<dataset-group-selector-tree @getTable="getTable" :mode=mode :type=type :customType=customType :showMode=showMode />
</de-aside-container>
<de-main-container>
<dataset-table-data :table="table" />
@ -39,7 +39,12 @@ export default {
type: String,
required: false,
default: null
}
},
customType: {
type: Array,
required: false,
default: null
},
},
data() {
return {

View File

@ -96,7 +96,7 @@
append-to-body
>
<el-col>
<el-form :form="taskForm" label-width="100px" size="mini">
<el-form :form="taskForm" :model="taskForm" label-width="100px" size="mini" ref="taskForm" :rules="taskFormRules">
<el-form-item :label="$t('dataset.task_name')" prop="name">
<el-input
v-model="taskForm.name"
@ -362,7 +362,8 @@ export default {
taskData: [],
taskFormRules: {
name: [
{ required: true, message: this.$t('dataset.required'), trigger: 'change' }
{ required: true, message: this.$t('dataset.required'), trigger: 'change' },
{ min: 2, max: 50, message: this.$t('datasource.input_limit_0_50', [2, 50]), trigger: 'blur' }
],
type: [
{ required: true, message: this.$t('dataset.required'), trigger: 'change' }
@ -525,31 +526,43 @@ 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
task.startTime = new Date(task.startTime).getTime()
task.endTime = new Date(task.endTime).getTime()
task.tableId = this.table.id
const form = JSON.parse(JSON.stringify(task))
form.extraData = JSON.stringify(form.extraData)
const dataSetTaskRequest = {
datasetTableTask: form,
datasetTableIncrementalConfig: this.incrementalConfig
}
post('/dataset/task/save', dataSetTaskRequest).then(response => {
this.$message({
message: this.$t('dataset.save_success'),
type: 'success',
showClose: true
})
this.update_task = false
this.resetTaskForm()
this.listTask()
this.listTaskLog()
this.$refs.taskForm.validate(valid => {
if (valid) {
if (this.incrementalUpdateType === 'incrementalAdd') {
this.incrementalConfig.incrementalAdd = this.sql
} else {
this.incrementalConfig.incrementalDelete = this.sql
}
this.incrementalConfig.tableId = this.table.id
let startTime = new Date(task.startTime).getTime()
if(startTime < new Date().getTime()){
startTime = new Date().getTime()
}
task.startTime = startTime
task.endTime = new Date(task.endTime).getTime()
task.tableId = this.table.id
const form = JSON.parse(JSON.stringify(task))
form.extraData = JSON.stringify(form.extraData)
const dataSetTaskRequest = {
datasetTableTask: form,
datasetTableIncrementalConfig: this.incrementalConfig
}
post('/dataset/task/save', dataSetTaskRequest).then(response => {
this.$message({
message: this.$t('dataset.save_success'),
type: 'success',
showClose: true
})
this.update_task = false
this.resetTaskForm()
this.listTask()
this.listTaskLog()
})
}else {
return false
}
})
},
deleteTask(task) {

View File

@ -146,7 +146,7 @@ export default {
],
searchConfig: {
useQuickSearch: true,
quickPlaceholder: '按名称搜索',
quickPlaceholder: this.$t('role.search_by_name'),
components: [
{ field: 'name', label: this.$t('organization.name'), component: 'FuComplexInput' }
]

View File

@ -71,9 +71,9 @@ export default {
],
searchConfig: {
useQuickSearch: false,
quickPlaceholder: '按名称搜索',
quickPlaceholder: this.$t('role.search_by_name'),
components: [
{ field: 'name', label: '名称', component: 'FuComplexInput' }
{ field: 'name', label: this.$t('plugin.name'), component: 'FuComplexInput' }
// {
// field: 'u.enabled',

View File

@ -80,7 +80,7 @@
<el-dialog v-dialogDrag :title="update_task_dialog_title" :visible="update_task" :show-close="false" width="50%" class="dialog-css" append-to-body>
<el-col>
<el-form :form="taskForm" label-width="100px" size="mini">
<el-form :form="taskForm" ref="taskForm" :model="taskForm" label-width="100px" size="mini" :rules="taskFormRules">
<el-form-item :label="$t('dataset.task_name')" prop="name">
<el-input v-model="taskForm.name" size="mini" style="width: 50%" :placeholder="$t('dataset.task_name')"/>
</el-form-item>
@ -169,7 +169,7 @@
<!--添加任务-选择数据集-->
<el-dialog v-dialogDrag :title="$t('dataset.task.create')" :visible="selectDatasetFlag" :show-close="false" width="70%" class="dialog-css" :destroy-on-close="true">
<table-selector @getTable="getTable" :mode="1" type="db" showMode="datasetTask"/>
<table-selector @getTable="getTable" :mode="1" :customType=customType showMode="datasetTask"/>
<div slot="footer" class="dialog-footer">
<el-button size="mini" @click="closeCreateTask">{{ $t('chart.cancel') }}</el-button>
<el-button type="primary" size="mini" :disabled="!table.id" @click="create(undefined)">{{ $t('chart.confirm') }}</el-button>
@ -317,7 +317,26 @@ export default {
selectDatasetFlag: false,
table: {},
show_error_massage: false,
error_massage: ''
error_massage: '',
taskFormRules: {
name: [
{ required: true, message: this.$t('dataset.required'), trigger: 'change' },
{ min: 2, max: 50, message: this.$t('datasource.input_limit_0_50', [2, 50]), trigger: 'blur' }
],
type: [
{ required: true, message: this.$t('dataset.required'), trigger: 'change' }
],
startTime: [
{ required: true, message: this.$t('dataset.required'), trigger: 'change' }
],
rate: [
{ required: true, message: this.$t('dataset.required'), trigger: 'change' }
],
end: [
{ required: true, message: this.$t('dataset.required'), trigger: 'change' }
]
},
customType: ['db', 'sql']
}
},
computed: {
@ -545,7 +564,7 @@ export default {
return task.rate === 'SIMPLE' || task.status === 'Stopped'
},
disableExec(task) {
return task.status === 'Stopped' || task.status === 'Pending'
return task.status === 'Stopped' || task.status === 'Pending' || task.rate === 'SIMPLE'
},
deleteTask(task) {
this.$confirm(this.$t('dataset.confirm_delete'), this.$t('dataset.tips'), {
@ -601,31 +620,42 @@ export default {
this.$emit('jumpTaskRecord', item)
},
saveTask(task) {
if (task.rate !== 'SIMPLE') {
if (this.incrementalUpdateType === 'incrementalAdd') {
this.incrementalConfig.incrementalAdd = this.sql
} else {
this.incrementalConfig.incrementalDelete = this.sql
this.$refs.taskForm.validate(valid => {
if (valid) {
if (task.rate !== 'SIMPLE') {
if (this.incrementalUpdateType === 'incrementalAdd') {
this.incrementalConfig.incrementalAdd = this.sql
} else {
this.incrementalConfig.incrementalDelete = this.sql
}
this.incrementalConfig.tableId = task.tableId
}
let startTime = new Date(task.startTime).getTime()
if(startTime < new Date().getTime()){
startTime = new Date().getTime()
}
task.startTime = startTime
task.endTime = new Date(task.endTime).getTime()
const form = JSON.parse(JSON.stringify(task))
form.extraData = JSON.stringify(form.extraData)
const dataSetTaskRequest = {
datasetTableTask: form,
datasetTableIncrementalConfig: task.type === 'add_scope' ? this.incrementalConfig : undefined
}
post('/dataset/task/save', dataSetTaskRequest).then(response => {
this.$message({
message: this.$t('dataset.save_success'),
type: 'success',
showClose: true
})
this.update_task = false
this.resetTaskForm()
this.search(this.last_condition, true)
})
}else {
return false
}
this.incrementalConfig.tableId = task.tableId
}
task.startTime = new Date(task.startTime).getTime()
task.endTime = new Date(task.endTime).getTime()
const form = JSON.parse(JSON.stringify(task))
form.extraData = JSON.stringify(form.extraData)
const dataSetTaskRequest = {
datasetTableTask: form,
datasetTableIncrementalConfig: task.type === 'add_scope' ? this.incrementalConfig : undefined
}
post('/dataset/task/save', dataSetTaskRequest).then(response => {
this.$message({
message: this.$t('dataset.save_success'),
type: 'success',
showClose: true
})
this.update_task = false
this.resetTaskForm()
this.search(this.last_condition, true)
})
},
handleClose() {

View File

@ -9,6 +9,7 @@
</span>
</template>
</el-table-column>
<el-table-column prop="datasetName" :label="$t('dataset.task.dataset')" />
<el-table-column prop="startTime" :label="$t('dataset.start_time')">
<template slot-scope="scope">
<span>{{ scope.row.startTime | timestampFormatDate }}</span>