Commit 55224d3c by yuwei

项目初始化

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