Commit 55224d3c by yuwei

项目初始化

parent b96a8d4a
......@@ -36,7 +36,7 @@ public class MetadataSourceEntity extends DataScopeBaseEntity {
private String sourceName;
/**
* 元数据同步(0否,1是)
* 元数据同步(0否,1同步中, 2是)
*/
private String isSync;
......
package cn.datax.service.data.metadata.api.enums;
public enum SyncStatus {
NotSync("0"),
InSync("1"),
IsSync("2");
private final String key;
SyncStatus(String key) {
this.key = key;
}
public String getKey() {
return key;
}
}
package cn.datax.service.data.metadata.async;
import cn.datax.common.core.DataConstant;
import cn.datax.common.database.DataSourceFactory;
import cn.datax.common.database.DbQuery;
import cn.datax.common.database.constants.DbQueryProperty;
......@@ -10,6 +9,7 @@ import cn.datax.service.data.metadata.api.dto.DbSchema;
import cn.datax.service.data.metadata.api.entity.MetadataColumnEntity;
import cn.datax.service.data.metadata.api.entity.MetadataSourceEntity;
import cn.datax.service.data.metadata.api.entity.MetadataTableEntity;
import cn.datax.service.data.metadata.api.enums.SyncStatus;
import cn.datax.service.data.metadata.dao.MetadataColumnDao;
import cn.datax.service.data.metadata.dao.MetadataSourceDao;
import cn.datax.service.data.metadata.dao.MetadataTableDao;
......@@ -85,7 +85,7 @@ public class AsyncTask {
});
}
}
dataSource.setIsSync(DataConstant.TrueOrFalse.TRUE.getKey());
dataSource.setIsSync(SyncStatus.IsSync.getKey());
metadataSourceDao.updateById(dataSource);
log.info("异步任务执行完成!耗时{}秒", (System.currentTimeMillis() - start / 1000));
}
......
......@@ -19,6 +19,7 @@ import cn.datax.service.data.metadata.api.entity.MetadataColumnEntity;
import cn.datax.service.data.metadata.api.entity.MetadataSourceEntity;
import cn.datax.service.data.metadata.api.entity.MetadataTableEntity;
import cn.datax.service.data.metadata.api.enums.DataLevel;
import cn.datax.service.data.metadata.api.enums.SyncStatus;
import cn.datax.service.data.metadata.async.AsyncTask;
import cn.datax.service.data.metadata.dao.MetadataColumnDao;
import cn.datax.service.data.metadata.dao.MetadataSourceDao;
......@@ -88,7 +89,7 @@ public class MetadataSourceServiceImpl extends BaseServiceImpl<MetadataSourceDao
@Transactional(rollbackFor = Exception.class)
public void saveMetadataSource(MetadataSourceDto metadataSourceDto) {
MetadataSourceEntity dataSource = metadataSourceMapper.toEntity(metadataSourceDto);
dataSource.setIsSync(DataConstant.TrueOrFalse.FALSE.getKey());
dataSource.setIsSync(SyncStatus.NotSync.getKey());
metadataSourceDao.insert(dataSource);
}
......@@ -192,9 +193,11 @@ public class MetadataSourceServiceImpl extends BaseServiceImpl<MetadataSourceDao
@Override
public void syncMetadata(String id) {
MetadataSourceEntity metadataSourceEntity = super.getById(id);
if (DataConstant.TrueOrFalse.TRUE.getKey().equals(metadataSourceEntity.getIsSync())) {
throw new DataException("元数据已同步");
if (!SyncStatus.NotSync.getKey().equals(metadataSourceEntity.getIsSync())) {
throw new DataException("元数据同步中");
}
metadataSourceEntity.setIsSync(SyncStatus.InSync.getKey());
metadataSourceDao.updateById(metadataSourceEntity);
// 异步执行同步任务
asyncTask.doTask(metadataSourceEntity);
}
......
......@@ -4,7 +4,7 @@
<span>{{ title }}</span>
<el-button-group style="float: right;">
<el-button v-hasPerm="['metadata:datasource:sync']" v-if="form.isSync === '0'" size="mini" icon="el-icon-coin" round @click="handleSync">元数据同步</el-button>
<el-button v-hasPerm="['metadata:datasource:word']" v-if="form.isSync === '1'" size="mini" icon="el-icon-coin" round @click="handleWord">数据库文档</el-button>
<el-button v-hasPerm="['metadata:datasource:word']" v-if="form.isSync === '2'" size="mini" icon="el-icon-coin" round @click="handleWord">数据库文档</el-button>
<el-button v-hasPerm="['metadata:datasource:connect']" size="mini" icon="el-icon-coin" round @click="handleCheckConnection">连通性检测</el-button>
<el-button size="mini" icon="el-icon-back" round @click="showCard">返回</el-button>
</el-button-group>
......@@ -154,6 +154,7 @@ export default {
handleSync() {
sync(this.data.id).then(response => {
if (response.success) {
this.$set(this.form, 'isSync', '1')
this.$message.success('元数据正在后台同步中,请到元数据管理中查看结果')
}
})
......
......@@ -167,6 +167,12 @@ export default {
tableColumns: [
{ prop: 'sourceName', label: '数据源名称', show: true },
{
prop: 'isSync',
label: '同步状态',
show: true,
formatter: this.syncFormatter
},
{
prop: 'status',
label: '状态',
show: true,
......@@ -312,6 +318,15 @@ export default {
this.queryParams.pageNum = val
this.getList()
},
syncFormatter(row, column, cellValue, index) {
if (cellValue === '0') {
return <el-tag type='warning'>未同步</el-tag>
} else if (cellValue === '1') {
return <el-tag type='info'>同步中</el-tag>
} else if (cellValue === '2') {
return <el-tag type='success'>已同步</el-tag>
}
},
statusFormatter(row, column, cellValue, index) {
const dictLabel = this.selectDictLabel(this.statusOptions, cellValue)
if (cellValue === '1') {
......
......@@ -23,7 +23,7 @@
<el-button icon="el-icon-delete" type="text" @click="handleReset">
重置
</el-button>
<el-button icon="el-icon-plus" type="text" @click="handleSubmit">
<el-button icon="el-icon-plus" type="text" v-hasPerm="['visual:board:build']" @click="handleSubmit">
保存
</el-button>
<el-button icon="el-icon-close" type="text" @click="handleCancel">
......
......@@ -15,7 +15,7 @@
</el-row>
<el-divider />
<el-row :gutter="20">
<el-col :span="6" class="box-card-col">
<el-col :span="6" class="box-card-col" v-hasPerm="['visual:board:add']">
<el-card :body-style="{ padding: '0px' }" class="box-card-item">
<div class="box-card-item-add" @click="handleAdd">
<div class="icon-block">
......@@ -33,16 +33,16 @@
</div>
</el-image>
<div class="box-card-item-edit" :style="{display: (item.show ? 'block' : 'none')}">
<el-button type="primary" @click="handleConfig(item)">编辑</el-button>
<el-button type="primary" v-hasPerm="['visual:board:build']" @click="handleConfig(item)">编辑</el-button>
</div>
</div>
<div class="box-card-item-footer">
<div class="box-card-item-footer-text">{{ item.boardName }}</div>
<div class="clearfix">
<i class="el-icon-edit-outline" @click="handleEdit(item)" />
<i class="el-icon-view" @click="handleView(item)" />
<i class="el-icon-delete" @click="handleDelete(item)" />
<i class="el-icon-copy-document" @click="handleCopy(item)" />
<i class="el-icon-edit-outline" v-hasPerm="['visual:board:edit']" @click="handleEdit(item)" />
<i class="el-icon-view" v-hasPerm="['visual:board:preview']" @click="handleView(item)" />
<i class="el-icon-delete" v-hasPerm="['visual:board:remove']" @click="handleDelete(item)" />
<i class="el-icon-copy-document" v-hasPerm="['visual:board:copy']" @click="handleCopy(item)" />
</div>
</div>
</el-card>
......
......@@ -35,7 +35,7 @@
<el-button icon="el-icon-delete" type="text" @click="handleReset">
重置
</el-button>
<el-button icon="el-icon-plus" type="text" @click="handleSubmit">
<el-button icon="el-icon-plus" type="text" v-hasPerm="['visual:chart:build']" @click="handleSubmit">
保存
</el-button>
<el-button icon="el-icon-close" type="text" @click="handleCancel">
......
......@@ -15,7 +15,7 @@
</el-row>
<el-divider />
<el-row :gutter="20">
<el-col class="box-card-col">
<el-col class="box-card-col" v-hasPerm="['visual:chart:add']">
<el-card :body-style="{ padding: '0px' }" class="box-card-item">
<div class="box-card-item-add" @click="handleAdd">
<div class="icon-block">
......@@ -33,15 +33,15 @@
</div>
</el-image>
<div class="box-card-item-edit" :style="{display: (item.show ? 'block' : 'none')}">
<el-button type="primary" @click="handleConfig(item)">编辑</el-button>
<el-button v-hasPerm="['visual:chart:build']" type="primary" @click="handleConfig(item)">编辑</el-button>
</div>
</div>
<div class="box-card-item-footer">
<span class="box-card-item-footer-text">{{ item.chartName }}</span>
<div class="clearfix">
<i class="el-icon-edit-outline" @click="handleEdit(item)" />
<i class="el-icon-delete" @click="handleDelete(item)" />
<i class="el-icon-copy-document" @click="handleCopy(item)" />
<i class="el-icon-edit-outline" v-hasPerm="['visual:chart:edit']" @click="handleEdit(item)" />
<i class="el-icon-delete" v-hasPerm="['visual:chart:remove']" @click="handleDelete(item)" />
<i class="el-icon-copy-document" v-hasPerm="['visual:chart:copy']" @click="handleCopy(item)" />
</div>
</div>
</el-card>
......
......@@ -20,7 +20,7 @@
<el-col :span="12">
<el-button-group>
<el-button
v-hasPerm="['visual:chart:add']"
v-hasPerm="['visual:set:add']"
type="primary"
icon="el-icon-plus"
size="mini"
......@@ -100,21 +100,21 @@
trigger="click"
>
<el-button
v-hasPerm="['visual:chart:edit']"
v-hasPerm="['visual:set:edit']"
size="mini"
type="text"
icon="el-icon-edit-outline"
@click="handleEdit(scope.row)"
>修改</el-button>
<el-button
v-hasPerm="['visual:chart:detail']"
v-hasPerm="['visual:set:detail']"
size="mini"
type="text"
icon="el-icon-view"
@click="handleDetail(scope.row)"
>详情</el-button>
<el-button
v-hasPerm="['visual:chart:remove']"
v-hasPerm="['visual:set:remove']"
size="mini"
type="text"
icon="el-icon-delete"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment