Browse Source

血缘解析优化

master
xueyinfei 3 weeks ago
parent
commit
70d6b76e77
  1. 4
      vue-fastapi-backend/module_admin/dao/meta_dao.py
  2. 3
      vue-fastapi-backend/module_admin/service/meta_service.py
  3. 2
      vue-fastapi-frontend/src/views/dataint/cypz/cdplb.vue
  4. 41
      vue-fastapi-frontend/src/views/meta/metaInfo/index.vue
  5. 25
      vue-fastapi-frontend/src/views/sqlFlow/index.vue
  6. 1
      vue-fastapi-frontend/src/views/system/flow/index.vue

4
vue-fastapi-backend/module_admin/dao/meta_dao.py

@ -562,8 +562,8 @@ class MetaDao:
"on a.ssys_id = b.ssys_id and a.mdl_name=b.mdl_name and a.tab_eng_name=b.tab_eng_name " "on a.ssys_id = b.ssys_id and a.mdl_name=b.mdl_name and a.tab_eng_name=b.tab_eng_name "
"where a.ssys_id = :ssys_id and a.mdl_name = :mdlName and a.tab_eng_name = :tabEngName") "where a.ssys_id = :ssys_id and a.mdl_name = :mdlName and a.tab_eng_name = :tabEngName")
result = (await db.execute(sql, {"ssys_id": ssys_id, "mdlName": mdlName, "tabEngName": tabEngName})) result = (await db.execute(sql, {"ssys_id": ssys_id, "mdlName": mdlName, "tabEngName": tabEngName}))
row = result.scalar_one_or_none()
return result.first().tab_cn_name return row
@classmethod @classmethod
async def get_meta_col_name_list(cls, db: AsyncSession, query_object: MetaColObject): async def get_meta_col_name_list(cls, db: AsyncSession, query_object: MetaColObject):

3
vue-fastapi-backend/module_admin/service/meta_service.py

@ -689,7 +689,7 @@ class MetaService:
"tabEngName": row['tab_eng_name'], "tabEngName": row['tab_eng_name'],
"errorInfo": "对应的负责人不存在,无法上传补录" "errorInfo": "对应的负责人不存在,无法上传补录"
}) })
continue continue
tableOnum = uuid.uuid4() tableOnum = uuid.uuid4()
suppTableInfo = MetadataSuppInfoVett() suppTableInfo = MetadataSuppInfoVett()
suppTableInfo.onum = tableOnum suppTableInfo.onum = tableOnum
@ -820,6 +820,7 @@ class MetaService:
"fldEngName": row['fld_eng_name'], "fldEngName": row['fld_eng_name'],
"errorInfo": "安全等级:" + row['data_sec_lvl'] + "不是S1,S2,S3,S4中的值,无法上传" "errorInfo": "安全等级:" + row['data_sec_lvl'] + "不是S1,S2,S3,S4中的值,无法上传"
}) })
continue
suppColumnInfo = MetadataFldSuppInfoVett() suppColumnInfo = MetadataFldSuppInfoVett()
suppColumnInfo.onum = uuid.uuid4() suppColumnInfo.onum = uuid.uuid4()
suppColumnInfo.ssys_id = ssysId suppColumnInfo.ssys_id = ssysId

2
vue-fastapi-frontend/src/views/dataint/cypz/cdplb.vue

@ -213,7 +213,7 @@
</template> </template>
</el-dialog> </el-dialog>
<el-dialog title="选择字段" v-model="openColumn" width="1000px" append-to-body> <el-dialog title="选择字段" v-model="openColumn" width="1000px" append-to-body>
<el-table :data="column.children" style="width: 100%" <el-table v-if="openColumn" :data="column.children" style="width: 100%"
@selection-change="handleChildSelectionChange"> @selection-change="handleChildSelectionChange">
<el-table-column type="selection" width="55"></el-table-column> <el-table-column type="selection" width="55"></el-table-column>
<el-table-column label="字段英文名" prop="fld_eng_name" width="200"></el-table-column> <el-table-column label="字段英文名" prop="fld_eng_name" width="200"></el-table-column>

41
vue-fastapi-frontend/src/views/meta/metaInfo/index.vue

@ -454,7 +454,9 @@
style="width: 240px" style="width: 240px"
@change="changeTableTag" @change="changeTableTag"
> >
<el-option v-for="item in metaClasList" :key="item.clasOnum" :value="item.clasOnum" :label="item.clasOnum+' - '+item.clasName"/> <template v-for="item in metaClasList">
<el-option v-if="item.clasOnum && (item.clasOnum+'')[0] === '1'" :key="item.clasOnum" :value="item.clasOnum" :label="item.clasOnum+' - '+item.clasName"/>
</template>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -612,7 +614,9 @@
style="width: 192px" style="width: 192px"
@change="changeColumnTag" @change="changeColumnTag"
> >
<el-option v-for="item in metaClasList" :key="item.clasOnum" :value="item.clasOnum" :label="item.clasOnum+' - '+item.clasName"/> <template v-for="item in metaClasList">
<el-option v-if="item.clasOnum && (item.clasOnum+'')[0] === '2'" :key="item.clasOnum" :value="item.clasOnum" :label="item.clasOnum+' - '+item.clasName"/>
</template>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -889,6 +893,12 @@
import {EditPen} from "@element-plus/icons-vue"; import {EditPen} from "@element-plus/icons-vue";
import { useRoute} from 'vue-router'; import { useRoute} from 'vue-router';
import {datasourcetree} from "@/api/meta/metatask.js"; import {datasourcetree} from "@/api/meta/metatask.js";
import {ElMessage} from "element-plus";
import useUserStore from '@/store/modules/user'
const userStore = useUserStore()
const dsSysList = userStore.dsSysList
const data = reactive({ const data = reactive({
queryParams:{ queryParams:{
ssysId:'', ssysId:'',
@ -976,6 +986,8 @@
const stddictOptions = ref([]) const stddictOptions = ref([])
const secLvlOptions = ref([]) const secLvlOptions = ref([])
const directoryTree = ref([]) const directoryTree = ref([])
/*** 导入参数 */ /*** 导入参数 */
const upload = reactive({ const upload = reactive({
// //
@ -1049,14 +1061,35 @@
loadingBusiness.value = false; loadingBusiness.value = false;
}) })
} }
const getSrcSysName = (id) => {
const match = dsSysList.find(item => item.id === id);
return match ? match.name : id;
};
function changeBloodOption(){ function changeBloodOption(){
if (procId.value === -1){ if (procId.value === -1){
proxy.$modal.msgWarning("此表暂无血缘,请执行存储过程跑批任务后查看"); proxy.$modal.msgWarning("此表暂无血缘,请执行存储过程跑批任务后查看");
bloodRelation.value = {} bloodRelation.value = {}
}else { }else {
getMetaDataBloodRelship(procId.value).then(res=>{ getMetaDataBloodRelship(procId.value).then(res=>{
bloodRelation.value = res.data let tableList = res.data.tableList
let emptyTable = []
if (tableList && tableList.length>0){
tableList.forEach(table=>{
let column = table.column
if (column === null || column.length === 0){
emptyTable.push('系统:'+getSrcSysName(table.ssys_id)+',模式:'+table.mdl_name+',表:'+table.tab_eng_name+"在系统中无该表元数据信息<br>")
}
})
}
if (emptyTable.length>0){
bloodRelation.value = []
let message = emptyTable.join("")+'请核对存储过程以及元数据信息'
ElMessage.warning({message: message,dangerouslyUseHTMLString:true})
bloodRelation.value = []
}else {
bloodRelation.value = res.data
}
}) })
} }
} }

25
vue-fastapi-frontend/src/views/sqlFlow/index.vue

@ -149,7 +149,10 @@ const changeBloodOption = () => {
bloodRelation.value = res.data bloodRelation.value = res.data
}) })
} }
const getSrcSysName = (id) => {
const match = dsSysList.find(item => item.id === id);
return match ? match.name : id;
};
/** /**
* 执行 SQL 并生成血缘分析图 * 执行 SQL 并生成血缘分析图
*/ */
@ -183,8 +186,24 @@ const executeSql = async () => {
ElMessage.info('正在执行血缘分析,请稍候...') ElMessage.info('正在执行血缘分析,请稍候...')
const res = await runBloodAnalysisBySql(params) const res = await runBloodAnalysisBySql(params)
if (res?.data) { if (res?.data) {
bloodRelation.value = res.data let tableList = res.data.tableList
ElMessage.success('血缘分析执行成功') let emptyTable = []
if (tableList && tableList.length>0){
tableList.forEach(table=>{
let column = table.column
if (column === null || column.length === 0){
emptyTable.push('系统:'+getSrcSysName(table.ssys_id)+',模式:'+table.mdl_name+',表:'+table.tab_eng_name+"在系统中无该表元数据信息<br>")
}
})
}
if (emptyTable.length>0){
bloodRelation.value = []
let message = emptyTable.join("")+'请核对存储过程以及元数据信息'
ElMessage.warning({message: message,dangerouslyUseHTMLString:true})
}else{
bloodRelation.value = res.data
ElMessage.success('血缘分析执行成功')
}
} else { } else {
ElMessage.warning('未返回血缘数据') ElMessage.warning('未返回血缘数据')
} }

1
vue-fastapi-frontend/src/views/system/flow/index.vue

@ -1162,6 +1162,7 @@ function agree(row){
getWaitingFlowCount().then(res=>{ getWaitingFlowCount().then(res=>{
cache.local.set("waitingTotal",res.data) cache.local.set("waitingTotal",res.data)
}) })
businessDialog.value = false;
stdMainVisible.value = false; stdMainVisible.value = false;
stdDictVisible.value = false; stdDictVisible.value = false;
stdCodeVisible.value = false; stdCodeVisible.value = false;

Loading…
Cancel
Save