|
|
@ -14,29 +14,28 @@ from datetime import datetime |
|
|
|
class MetaDao: |
|
|
|
|
|
|
|
@classmethod |
|
|
|
async def get_meta_tab_clas(cls, db: AsyncSession, sysCode: str, mdlName: str, tabName: str): |
|
|
|
async def get_meta_tab_clas(cls, db: AsyncSession, sysId: int, mdlName: str, tabName: str): |
|
|
|
query_result = ( |
|
|
|
( |
|
|
|
await db.execute( |
|
|
|
select( |
|
|
|
MetaBatchTabClas.onum, |
|
|
|
MetaBatchTabClas.ssys_cd, |
|
|
|
MetaBatchTabClas.ssys_id, |
|
|
|
MetaBatchTabClas.data_whs_name, |
|
|
|
MetaBatchTabClas.mdl_name, |
|
|
|
MetaBatchTabClas.tab_no, |
|
|
|
MetaBatchTabClas.tab_eng_name, |
|
|
|
MetaBatchTabClas.clas_onum, |
|
|
|
MetaBatchTabClas.clas_value, |
|
|
|
MetadataClas.clas_pri_clas, |
|
|
|
MetadataClas.clas_scd_clas, |
|
|
|
MetadataClas.clas_thre_clas, |
|
|
|
MetadataClas.clas_tmpl, |
|
|
|
MetadataClas.clas_eff_flag, |
|
|
|
MetadataClas.rec_subm_prsn, |
|
|
|
MetadataClas.clas_name |
|
|
|
MetadataClas.clas_name, |
|
|
|
MetadataClas.belt_batch_content, |
|
|
|
).join( |
|
|
|
MetadataClas, MetaBatchTabClas.clas_onum == MetadataClas.clas_onum |
|
|
|
) |
|
|
|
.where(MetaBatchTabClas.ssys_cd == sysCode, |
|
|
|
.where(MetaBatchTabClas.ssys_id == sysId, |
|
|
|
MetaBatchTabClas.mdl_name == mdlName, |
|
|
|
MetaBatchTabClas.tab_eng_name == tabName).distinct() |
|
|
|
) |
|
|
@ -45,13 +44,13 @@ class MetaDao: |
|
|
|
return query_result |
|
|
|
|
|
|
|
@classmethod |
|
|
|
async def get_meta_fld_clas(cls, db: AsyncSession, sysCode: str, mdlName: str, tabName: str, fldName: str): |
|
|
|
async def get_meta_fld_clas(cls, db: AsyncSession, sysId: int, mdlName: str, tabName: str, fldName: str): |
|
|
|
query_result = ( |
|
|
|
( |
|
|
|
await db.execute( |
|
|
|
select( |
|
|
|
MetaBatchFldClas.onum, |
|
|
|
MetaBatchFldClas.ssys_cd, |
|
|
|
MetaBatchFldClas.ssys_id, |
|
|
|
MetaBatchFldClas.data_whs_name, |
|
|
|
MetaBatchFldClas.mdl_name, |
|
|
|
MetaBatchFldClas.tab_no, |
|
|
@ -59,16 +58,15 @@ class MetaDao: |
|
|
|
MetaBatchFldClas.fld_eng_name, |
|
|
|
MetaBatchFldClas.clas_onum, |
|
|
|
MetaBatchFldClas.clas_value, |
|
|
|
MetadataClas.clas_pri_clas, |
|
|
|
MetadataClas.clas_scd_clas, |
|
|
|
MetadataClas.clas_thre_clas, |
|
|
|
MetadataClas.clas_tmpl, |
|
|
|
MetadataClas.clas_eff_flag, |
|
|
|
MetadataClas.rec_subm_prsn, |
|
|
|
MetadataClas.belt_batch_content, |
|
|
|
MetadataClas.clas_name |
|
|
|
).join( |
|
|
|
MetadataClas, MetaBatchFldClas.clas_onum == MetadataClas.clas_onum |
|
|
|
) |
|
|
|
.where(MetaBatchFldClas.ssys_cd == sysCode, |
|
|
|
.where(MetaBatchFldClas.ssys_id == sysId, |
|
|
|
MetaBatchFldClas.mdl_name == mdlName, |
|
|
|
MetaBatchFldClas.tab_eng_name == tabName, |
|
|
|
MetaBatchFldClas.fld_eng_name == fldName).distinct() |
|
|
@ -88,7 +86,7 @@ class MetaDao: |
|
|
|
MetadataExtractInfo.onum.label('extract_onum'), |
|
|
|
MetadataExtractInfo.extract_ver_num, |
|
|
|
MetadataExtractInfo.ver_desc.label('extract_ver_desc'), |
|
|
|
MetadataExtractInfo.ssys_cd, |
|
|
|
MetadataExtractInfo.ssys_id, |
|
|
|
MetadataExtractInfo.data_whs_name, |
|
|
|
MetadataExtractInfo.mdl_name, |
|
|
|
MetadataExtractInfo.tab_no, |
|
|
@ -109,26 +107,26 @@ class MetaDao: |
|
|
|
MetadataSuppInfo.upd_time.label('supp_upd_time'), |
|
|
|
).join(MetadataSuppInfo, |
|
|
|
and_( |
|
|
|
MetadataExtractInfo.ssys_cd == MetadataSuppInfo.ssys_cd, |
|
|
|
MetadataExtractInfo.ssys_id == MetadataSuppInfo.ssys_id, |
|
|
|
MetadataExtractInfo.mdl_name == MetadataSuppInfo.mdl_name, |
|
|
|
MetadataExtractInfo.tab_eng_name == MetadataSuppInfo.tab_eng_name |
|
|
|
), isouter=True) |
|
|
|
.join( |
|
|
|
MetadataFldTabExtractInfo, |
|
|
|
and_( |
|
|
|
MetadataExtractInfo.ssys_cd == MetadataFldTabExtractInfo.ssys_cd, |
|
|
|
MetadataExtractInfo.ssys_id == MetadataFldTabExtractInfo.ssys_id, |
|
|
|
MetadataExtractInfo.mdl_name == MetadataFldTabExtractInfo.mdl_name, |
|
|
|
MetadataExtractInfo.tab_eng_name == MetadataFldTabExtractInfo.tab_eng_name |
|
|
|
), isouter=True) |
|
|
|
.join( |
|
|
|
MetadataFldSuppInfo, |
|
|
|
and_( |
|
|
|
MetadataExtractInfo.ssys_cd == MetadataFldSuppInfo.ssys_cd, |
|
|
|
MetadataExtractInfo.ssys_id == MetadataFldSuppInfo.ssys_id, |
|
|
|
MetadataExtractInfo.mdl_name == MetadataFldSuppInfo.mdl_name, |
|
|
|
MetadataExtractInfo.tab_eng_name == MetadataFldSuppInfo.tab_eng_name |
|
|
|
), isouter=True) |
|
|
|
.where( |
|
|
|
MetadataExtractInfo.ssys_cd == query_object.ssys_cd if query_object.ssys_cd else True, |
|
|
|
MetadataExtractInfo.ssys_id == query_object.ssys_id if query_object.ssys_id else True, |
|
|
|
MetadataExtractInfo.mdl_name == query_object.mdl_name if query_object.mdl_name else True, |
|
|
|
or_(MetadataExtractInfo.tab_eng_name.like(f'%{query_object.tab_name}%'), |
|
|
|
MetadataExtractInfo.tab_cn_name.like(f'%{query_object.tab_name}%'), |
|
|
@ -156,7 +154,7 @@ class MetaDao: |
|
|
|
select( |
|
|
|
MetadataFldTabExtractInfo.onum.label('extract_onum'), |
|
|
|
MetadataFldTabExtractInfo.extract_ver_num, |
|
|
|
MetadataFldTabExtractInfo.ssys_cd, |
|
|
|
MetadataFldTabExtractInfo.ssys_id, |
|
|
|
MetadataFldTabExtractInfo.data_whs_name, |
|
|
|
MetadataFldTabExtractInfo.mdl_name, |
|
|
|
MetadataFldTabExtractInfo.tab_no, |
|
|
@ -186,7 +184,7 @@ class MetaDao: |
|
|
|
.join( |
|
|
|
MetadataFldSuppInfo, |
|
|
|
and_( |
|
|
|
MetadataFldTabExtractInfo.ssys_cd == MetadataFldSuppInfo.ssys_cd, |
|
|
|
MetadataFldTabExtractInfo.ssys_id == MetadataFldSuppInfo.ssys_id, |
|
|
|
MetadataFldTabExtractInfo.mdl_name == MetadataFldSuppInfo.mdl_name, |
|
|
|
MetadataFldTabExtractInfo.tab_eng_name == MetadataFldSuppInfo.tab_eng_name, |
|
|
|
MetadataFldTabExtractInfo.fld_eng_name == MetadataFldSuppInfo.fld_eng_name |
|
|
@ -197,7 +195,7 @@ class MetaDao: |
|
|
|
DataStdDict.onum == MetadataFldSuppInfo.data_dict_id |
|
|
|
), isouter=True |
|
|
|
).where( |
|
|
|
MetadataFldTabExtractInfo.ssys_cd == query_object.ssys_cd, |
|
|
|
MetadataFldTabExtractInfo.ssys_id == query_object.ssys_id, |
|
|
|
MetadataFldTabExtractInfo.mdl_name == query_object.mdl_name, |
|
|
|
MetadataFldTabExtractInfo.tab_eng_name == query_object.tab_name |
|
|
|
).distinct().order_by(MetadataFldTabExtractInfo.fld_no) |
|
|
@ -218,11 +216,11 @@ class MetaDao: |
|
|
|
return query_result |
|
|
|
|
|
|
|
@classmethod |
|
|
|
async def get_lastest_meta_data_supp_vett(cls, db: AsyncSession, ssys_cd: str, mdl_name: str, tab_eng_name: str): |
|
|
|
async def get_lastest_meta_data_supp_vett(cls, db: AsyncSession, ssys_id: int, mdl_name: str, tab_eng_name: str): |
|
|
|
query_result = ( |
|
|
|
( |
|
|
|
await db.execute( |
|
|
|
select(MetadataSuppInfoVett).where(MetadataSuppInfoVett.ssys_cd == ssys_cd, |
|
|
|
select(MetadataSuppInfoVett).where(MetadataSuppInfoVett.ssys_id == ssys_id, |
|
|
|
MetadataSuppInfoVett.mdl_name == mdl_name, |
|
|
|
MetadataSuppInfoVett.tab_eng_name == tab_eng_name) |
|
|
|
.order_by(desc(MetadataSuppInfoVett.apply_time)) |
|
|
@ -251,7 +249,7 @@ class MetaDao: |
|
|
|
async def insertMetadataSuppInfo(cls, table: MetadataSuppInfoVett, db: AsyncSession): |
|
|
|
suppTable = MetadataSuppInfo() |
|
|
|
suppTable.onum = uuid.uuid4() |
|
|
|
suppTable.ssys_cd = table.ssys_cd |
|
|
|
suppTable.ssys_id = table.ssys_id |
|
|
|
suppTable.mdl_name = table.mdl_name |
|
|
|
suppTable.tab_eng_name = table.tab_eng_name |
|
|
|
suppTable.tab_crrct_name = table.tab_crrct_name |
|
|
@ -304,7 +302,7 @@ class MetaDao: |
|
|
|
MetadataFldSuppInfoVett.data_dict_id == DataStdDict.onum, # 假设关联条件 |
|
|
|
isouter=True, # 可选,是否左连接 |
|
|
|
).where( |
|
|
|
MetadataFldSuppInfoVett.ssys_cd == tableInfo.ssys_cd, |
|
|
|
MetadataFldSuppInfoVett.ssys_id == tableInfo.ssys_id, |
|
|
|
MetadataFldSuppInfoVett.mdl_name == tableInfo.mdl_name, |
|
|
|
MetadataFldSuppInfoVett.tab_eng_name == tableInfo.tab_eng_name, |
|
|
|
MetadataFldSuppInfoVett.apply_time == tableInfo.apply_time |
|
|
@ -319,7 +317,7 @@ class MetaDao: |
|
|
|
result.append({ |
|
|
|
"onum": vett_info.onum, |
|
|
|
"crrct_ver_num": vett_info.crrct_ver_num, |
|
|
|
"ssys_cd": vett_info.ssys_cd, |
|
|
|
"ssys_id": vett_info.ssys_id, |
|
|
|
"mdl_name": vett_info.mdl_name, |
|
|
|
"tab_eng_name": vett_info.tab_eng_name, |
|
|
|
"fld_eng_name": vett_info.fld_eng_name, |
|
|
@ -342,11 +340,11 @@ class MetaDao: |
|
|
|
return result |
|
|
|
|
|
|
|
@classmethod |
|
|
|
async def get_supp_table_by_vett(cls, sysCode: str, mdlName: str, tableName: str, db: AsyncSession): |
|
|
|
async def get_supp_table_by_vett(cls, ssys_id: int, mdlName: str, tableName: str, db: AsyncSession): |
|
|
|
query_result = ( |
|
|
|
( |
|
|
|
await db.execute( |
|
|
|
select(MetadataSuppInfo).where(MetadataSuppInfo.ssys_cd == sysCode, |
|
|
|
select(MetadataSuppInfo).where(MetadataSuppInfo.ssys_id == ssys_id, |
|
|
|
MetadataSuppInfo.mdl_name == mdlName, |
|
|
|
MetadataSuppInfo.tab_eng_name == tableName).distinct() |
|
|
|
) |
|
|
@ -355,11 +353,11 @@ class MetaDao: |
|
|
|
return query_result |
|
|
|
|
|
|
|
@classmethod |
|
|
|
async def get_meta_table(cls, sysCode: str, mdlName: str, tableName: str, db: AsyncSession): |
|
|
|
async def get_meta_table(cls, ssys_id: int, mdlName: str, tableName: str, db: AsyncSession): |
|
|
|
query_result = ( |
|
|
|
( |
|
|
|
await db.execute( |
|
|
|
select(MetadataExtractInfo).where(MetadataExtractInfo.ssys_cd == sysCode, |
|
|
|
select(MetadataExtractInfo).where(MetadataExtractInfo.ssys_id == ssys_id, |
|
|
|
MetadataExtractInfo.mdl_name == mdlName, |
|
|
|
MetadataExtractInfo.tab_eng_name == tableName).distinct() |
|
|
|
) |
|
|
@ -401,7 +399,7 @@ class MetaDao: |
|
|
|
async def insertMetadataFldSuppInfo(cls, column: MetadataFldSuppInfoVett, db: AsyncSession): |
|
|
|
suppColumn = MetadataFldSuppInfo() |
|
|
|
suppColumn.onum = uuid.uuid4() |
|
|
|
suppColumn.ssys_cd = column.ssys_cd |
|
|
|
suppColumn.ssys_id = column.ssys_id |
|
|
|
suppColumn.mdl_name = column.mdl_name |
|
|
|
suppColumn.tab_eng_name = column.tab_eng_name |
|
|
|
suppColumn.fld_eng_name = column.fld_eng_name |
|
|
@ -421,7 +419,7 @@ class MetaDao: |
|
|
|
|
|
|
|
@classmethod |
|
|
|
async def get_meta_col_supp_vett(cls, table: MetadataSuppInfoVett, db: AsyncSession): |
|
|
|
sql_query = text("select max(apply_time) from t_metadata_fld_supp_info_vett where ssys_cd ='" + table.ssys_cd + |
|
|
|
sql_query = text("select max(apply_time) from t_metadata_fld_supp_info_vett where ssys_id ='" + table.ssys_id + |
|
|
|
"' and mdl_name = '" + table.mdl_name + "' and tab_eng_name = '" + table.tab_eng_name + |
|
|
|
"'") |
|
|
|
maxTime = (await db.execute(sql_query)).scalar() |
|
|
@ -430,7 +428,7 @@ class MetaDao: |
|
|
|
( |
|
|
|
await db.execute( |
|
|
|
select(MetadataFldSuppInfoVett) |
|
|
|
.where(MetadataFldSuppInfoVett.ssys_cd == table.ssys_cd, |
|
|
|
.where(MetadataFldSuppInfoVett.ssys_id == table.ssys_id, |
|
|
|
MetadataFldSuppInfoVett.mdl_name == table.mdl_name, |
|
|
|
MetadataFldSuppInfoVett.tab_eng_name == table.tab_eng_name, |
|
|
|
MetadataFldSuppInfoVett.apply_time == maxTime).distinct() |
|
|
@ -445,7 +443,7 @@ class MetaDao: |
|
|
|
( |
|
|
|
await db.execute( |
|
|
|
select(MetadataFldSuppInfo) |
|
|
|
.where(MetadataFldSuppInfo.ssys_cd == column.ssys_cd, |
|
|
|
.where(MetadataFldSuppInfo.ssys_id == column.ssys_id, |
|
|
|
MetadataFldSuppInfo.mdl_name == column.mdl_name, |
|
|
|
MetadataFldSuppInfo.tab_eng_name == column.tab_eng_name, |
|
|
|
MetadataFldSuppInfo.fld_eng_name == column.fld_eng_name).distinct() |
|
|
@ -455,12 +453,12 @@ class MetaDao: |
|
|
|
return query_result |
|
|
|
|
|
|
|
@classmethod |
|
|
|
async def get_supp_column_by_columnInfo(cls, sysCode, mdlName, tabEngName, fldEngName, db: AsyncSession): |
|
|
|
async def get_supp_column_by_columnInfo(cls, ssys_id: int, mdlName: str, tabEngName: str, fldEngName: str, db: AsyncSession): |
|
|
|
query_result = ( |
|
|
|
( |
|
|
|
await db.execute( |
|
|
|
select(MetadataFldSuppInfo) |
|
|
|
.where(MetadataFldSuppInfo.ssys_cd == sysCode, |
|
|
|
.where(MetadataFldSuppInfo.ssys_id == ssys_id, |
|
|
|
MetadataFldSuppInfo.mdl_name == mdlName, |
|
|
|
MetadataFldSuppInfo.tab_eng_name == tabEngName, |
|
|
|
MetadataFldSuppInfo.fld_eng_name == fldEngName).distinct() |
|
|
@ -471,12 +469,12 @@ class MetaDao: |
|
|
|
return query_result |
|
|
|
|
|
|
|
@classmethod |
|
|
|
async def get_meta_column(cls, sysCode, mdlName, tabEngName, fldEngName, db: AsyncSession): |
|
|
|
async def get_meta_column(cls, ssys_id: int, mdlName: str, tabEngName: str, fldEngName: str, db: AsyncSession): |
|
|
|
query_result = ( |
|
|
|
( |
|
|
|
await db.execute( |
|
|
|
select(MetadataFldTabExtractInfo) |
|
|
|
.where(MetadataFldTabExtractInfo.ssys_cd == sysCode, |
|
|
|
.where(MetadataFldTabExtractInfo.ssys_id == ssys_id, |
|
|
|
MetadataFldTabExtractInfo.mdl_name == mdlName, |
|
|
|
MetadataFldTabExtractInfo.tab_eng_name == tabEngName, |
|
|
|
MetadataFldTabExtractInfo.fld_eng_name == fldEngName).distinct() |
|
|
@ -498,7 +496,7 @@ class MetaDao: |
|
|
|
MetadataExtractInfo.onum.label('extract_onum'), |
|
|
|
MetadataExtractInfo.extract_ver_num, |
|
|
|
MetadataExtractInfo.ver_desc.label('extract_ver_desc'), |
|
|
|
MetadataExtractInfo.ssys_cd, |
|
|
|
MetadataExtractInfo.ssys_id, |
|
|
|
MetadataExtractInfo.data_whs_name, |
|
|
|
MetadataExtractInfo.mdl_name, |
|
|
|
MetadataExtractInfo.tab_no, |
|
|
@ -519,21 +517,21 @@ class MetaDao: |
|
|
|
MetadataSuppInfo.upd_time.label('supp_upd_time'), |
|
|
|
).join(MetadataSuppInfo, |
|
|
|
and_( |
|
|
|
MetadataExtractInfo.ssys_cd == MetadataSuppInfo.ssys_cd, |
|
|
|
MetadataExtractInfo.ssys_id == MetadataSuppInfo.ssys_id, |
|
|
|
MetadataExtractInfo.mdl_name == MetadataSuppInfo.mdl_name, |
|
|
|
MetadataExtractInfo.tab_eng_name == MetadataSuppInfo.tab_eng_name |
|
|
|
), isouter=True) |
|
|
|
.join( |
|
|
|
MetadataFldTabExtractInfo, |
|
|
|
and_( |
|
|
|
MetadataExtractInfo.ssys_cd == MetadataFldTabExtractInfo.ssys_cd, |
|
|
|
MetadataExtractInfo.ssys_id == MetadataFldTabExtractInfo.ssys_id, |
|
|
|
MetadataExtractInfo.mdl_name == MetadataFldTabExtractInfo.mdl_name, |
|
|
|
MetadataExtractInfo.tab_eng_name == MetadataFldTabExtractInfo.tab_eng_name |
|
|
|
), isouter=True) |
|
|
|
.join( |
|
|
|
MetadataFldSuppInfo, |
|
|
|
and_( |
|
|
|
MetadataExtractInfo.ssys_cd == MetadataFldSuppInfo.ssys_cd, |
|
|
|
MetadataExtractInfo.ssys_id == MetadataFldSuppInfo.ssys_id, |
|
|
|
MetadataExtractInfo.mdl_name == MetadataFldSuppInfo.mdl_name, |
|
|
|
MetadataExtractInfo.tab_eng_name == MetadataFldSuppInfo.tab_eng_name |
|
|
|
), isouter=True) |
|
|
@ -544,14 +542,14 @@ class MetaDao: |
|
|
|
return CamelCaseUtil.transform_result(result) |
|
|
|
|
|
|
|
@classmethod |
|
|
|
async def get_meta_table_cn_name(cls, db: AsyncSession, sysCode, mdlName, tabEngName): |
|
|
|
async def get_meta_table_cn_name(cls, db: AsyncSession, ssys_id: int, mdlName: str, tabEngName: str): |
|
|
|
sql = text("select case when a.tab_cn_name is null then b.tab_crrct_name" |
|
|
|
" when a.tab_cn_name is not null then a.tab_cn_name end as tab_cn_name" |
|
|
|
" from t_metadata_extract_info a " |
|
|
|
"left join t_metadata_supp_info b " |
|
|
|
"on a.ssys_cd = b.ssys_cd and a.mdl_name=b.mdl_name and a.tab_eng_name=b.tab_crrct_name " |
|
|
|
"where a.ssys_cd = :sysCode and a.mdl_name = :mdlName and a.tab_eng_name = :tabEngName") |
|
|
|
result = (await db.execute(sql, {"sysCode": sysCode, "mdlName": mdlName, "tabEngName": tabEngName})) |
|
|
|
"on a.ssys_id = b.ssys_id and a.mdl_name=b.mdl_name and a.tab_eng_name=b.tab_crrct_name " |
|
|
|
"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})) |
|
|
|
|
|
|
|
return result.first().tab_cn_name |
|
|
|
|
|
|
@ -561,7 +559,7 @@ class MetaDao: |
|
|
|
( |
|
|
|
await db.execute( |
|
|
|
select( |
|
|
|
MetadataFldTabExtractInfo.ssys_cd, |
|
|
|
MetadataFldTabExtractInfo.ssys_id, |
|
|
|
MetadataFldTabExtractInfo.mdl_name, |
|
|
|
MetadataFldTabExtractInfo.tab_eng_name, |
|
|
|
MetadataFldTabExtractInfo.fld_eng_name, |
|
|
@ -570,7 +568,7 @@ class MetaDao: |
|
|
|
MetadataFldTabExtractInfo.pk_flag, |
|
|
|
MetadataFldTabExtractInfo.fld_no |
|
|
|
).where( |
|
|
|
MetadataFldTabExtractInfo.ssys_cd == query_object.ssys_cd, |
|
|
|
MetadataFldTabExtractInfo.ssys_id == query_object.ssys_id, |
|
|
|
MetadataFldTabExtractInfo.mdl_name == query_object.mdl_name, |
|
|
|
MetadataFldTabExtractInfo.tab_eng_name == query_object.tab_name |
|
|
|
).distinct().order_by(MetadataFldTabExtractInfo.fld_no) |
|
|
@ -580,18 +578,18 @@ class MetaDao: |
|
|
|
return [row._asdict() for row in query_result] |
|
|
|
|
|
|
|
@classmethod |
|
|
|
async def get_er_relation_by_table(cls, result_db: AsyncSession, ssys_cd: str, mdl_name: str, tab_eng_name: str): |
|
|
|
sql = text("with tmp as (select a1.*,row_number()over(partition by b_ssys_cd,b_mdl_name,b_tab_eng_name," |
|
|
|
async def get_er_relation_by_table(cls, result_db: AsyncSession, ssys_id: int, mdl_name: str, tab_eng_name: str): |
|
|
|
sql = text("with tmp as (select a1.*,row_number()over(partition by b_ssys_id,b_mdl_name,b_tab_eng_name," |
|
|
|
"b_fld_eng_name order by concat(op_relation,',',jd_relation) desc) as rn " |
|
|
|
"from t_batch_er_relation_step1 a1)select a1.*,'A' AS father from tmp a1 where a1.rn = 1 " |
|
|
|
" and a1.a_ssys_cd = :sysCode and a1.a_mdl_name = :mdlName and a1.a_tab_eng_name = :tabName") |
|
|
|
sql2 = text("with tmp as (select a1.*,row_number()over(partition by b_ssys_cd,b_mdl_name,b_tab_eng_name," |
|
|
|
" and a1.a_ssys_id = :ssys_id and a1.a_mdl_name = :mdlName and a1.a_tab_eng_name = :tabName") |
|
|
|
sql2 = text("with tmp as (select a1.*,row_number()over(partition by b_ssys_id,b_mdl_name,b_tab_eng_name," |
|
|
|
"b_fld_eng_name order by concat(op_relation,',',jd_relation) desc) as rn " |
|
|
|
"from t_batch_er_relation_step1 a1)select a1.*,'A' AS father from tmp a1 where a1.rn = 1 " |
|
|
|
" and a1.b_ssys_cd = :sysCode and a1.b_mdl_name = :mdlName and a1.b_tab_eng_name = :tabName") |
|
|
|
result = (await result_db.execute(sql, {"sysCode": ssys_cd, |
|
|
|
" and a1.b_ssys_id = :ssys_id and a1.b_mdl_name = :mdlName and a1.b_tab_eng_name = :tabName") |
|
|
|
result = (await result_db.execute(sql, {"ssys_id": ssys_id, |
|
|
|
"mdlName": mdl_name, "tabName": tab_eng_name})) |
|
|
|
result2 = (await result_db.execute(sql2, {"sysCode": ssys_cd, |
|
|
|
result2 = (await result_db.execute(sql2, {"ssys_id": ssys_id, |
|
|
|
"mdlName": mdl_name, "tabName": tab_eng_name})) |
|
|
|
# 获取列名 |
|
|
|
columns = result.keys() # 返回列名列表 |
|
|
@ -604,28 +602,28 @@ class MetaDao: |
|
|
|
return result3 |
|
|
|
|
|
|
|
@classmethod |
|
|
|
async def get_op_relation_by_table(cls, result_db: AsyncSession, ssys_cd: str, mdl_name: str, tab_eng_name: str): |
|
|
|
async def get_op_relation_by_table(cls, result_db: AsyncSession, ssys_id: int, mdl_name: str, tab_eng_name: str): |
|
|
|
sql = text("select a1.* ,case when a2.rela_value = '1' then 'A' when a2.rela_value = '2' then 'B' end as father" |
|
|
|
" from (select distinct a_ssys_cd ,a_mdl_name ,a_tab_eng_name ,a_fld_eng_name ,b_ssys_cd,b_mdl_name," |
|
|
|
"b_tab_eng_name ,b_fld_eng_name from ( select a_ssys_cd ,a_mdl_name ,a_tab_eng_name ,a_fld_eng_name," |
|
|
|
"b_ssys_cd,b_mdl_name ,b_tab_eng_name ,b_fld_eng_name from t_batch_fld_relation " |
|
|
|
" from (select distinct a_ssys_id ,a_mdl_name ,a_tab_eng_name ,a_fld_eng_name ,b_ssys_id,b_mdl_name," |
|
|
|
"b_tab_eng_name ,b_fld_eng_name from ( select a_ssys_id ,a_mdl_name ,a_tab_eng_name ,a_fld_eng_name," |
|
|
|
"b_ssys_id,b_mdl_name ,b_tab_eng_name ,b_fld_eng_name from t_batch_fld_relation " |
|
|
|
"where rela_type in ('jd_relation','op_relation') and rela_value not in ('0') union all " |
|
|
|
"SELECT a_ssys_cd ,a_mdl_name ,a_tab_eng_name ,a_fld_eng_name ,b_ssys_cd ,b_mdl_name,b_tab_eng_name," |
|
|
|
"SELECT a_ssys_id ,a_mdl_name ,a_tab_eng_name ,a_fld_eng_name ,b_ssys_id ,b_mdl_name,b_tab_eng_name," |
|
|
|
"b_fld_eng_name FROM t_batch_fld_relation t ,JSON_TABLE(replace(t.rela_value,'''','\"'),'$[*]' " |
|
|
|
"COLUMNS (value_num DOUBLE PATH '$.value')) AS j group by a_ssys_cd ,a_mdl_name ,a_tab_eng_name ," |
|
|
|
"a_fld_eng_name ,b_ssys_cd ,b_mdl_name ,b_tab_eng_name ,b_fld_eng_name " |
|
|
|
"COLUMNS (value_num DOUBLE PATH '$.value')) AS j group by a_ssys_id ,a_mdl_name ,a_tab_eng_name ," |
|
|
|
"a_fld_eng_name ,b_ssys_id ,b_mdl_name ,b_tab_eng_name ,b_fld_eng_name " |
|
|
|
"having max(j.value_num) > 0.1) b1 ) a1 left join t_batch_fld_relation a2 " |
|
|
|
"on a1.a_ssys_cd = a2.a_ssys_cd and a1.a_mdl_name = a2.a_mdl_name " |
|
|
|
"on a1.a_ssys_id = a2.a_ssys_id and a1.a_mdl_name = a2.a_mdl_name " |
|
|
|
"and a1.a_tab_eng_name = a2.a_tab_eng_name and a1.a_fld_eng_name = a2.a_fld_eng_name " |
|
|
|
"and a1.b_ssys_cd = a2.b_ssys_cd and a1.b_mdl_name = a2.b_mdl_name " |
|
|
|
"and a1.b_ssys_id = a2.b_ssys_id and a1.b_mdl_name = a2.b_mdl_name " |
|
|
|
"and a1.b_tab_eng_name = a2.b_tab_eng_name and a1.b_fld_eng_name = a2.b_fld_eng_name " |
|
|
|
"and a2.rela_type = 'set_flag' left join t_batch_fld_clas a4 on a1.a_ssys_cd = a4.ssys_cd " |
|
|
|
"and a2.rela_type = 'set_flag' left join t_batch_fld_clas a4 on a1.a_ssys_id = a4.ssys_id " |
|
|
|
"and a1.a_mdl_name = a4.mdl_name and a1.a_tab_eng_name = a4.tab_eng_name " |
|
|
|
"and a1.a_fld_eng_name = a4.fld_eng_name and a4.clas_onum = '2001001002' " |
|
|
|
"where coalesce(a4.clas_value,' ') <> '日期时间类'" |
|
|
|
" and ((a1.a_ssys_cd = :sysCode and a1.a_mdl_name = :mdlName and a1.a_tab_eng_name = :tabName) " |
|
|
|
" or (a1.b_ssys_cd = :sysCode and a1.b_mdl_name = :mdlName and a1.b_tab_eng_name = :tabName))") |
|
|
|
result = (await result_db.execute(sql, {"sysCode": ssys_cd, |
|
|
|
" and ((a1.a_ssys_id = :ssys_id and a1.a_mdl_name = :mdlName and a1.a_tab_eng_name = :tabName) " |
|
|
|
" or (a1.b_ssys_id = :ssys_id and a1.b_mdl_name = :mdlName and a1.b_tab_eng_name = :tabName))") |
|
|
|
result = (await result_db.execute(sql, {"ssys_id": ssys_id, |
|
|
|
"mdlName": mdl_name, "tabName": tab_eng_name})) |
|
|
|
# 获取列名 |
|
|
|
columns = result.keys() # 返回列名列表 |
|
|
@ -637,18 +635,18 @@ class MetaDao: |
|
|
|
@classmethod |
|
|
|
async def get_er_relation_by_column(cls, result_db: AsyncSession, column: {}, module: str): |
|
|
|
if module == 'pre': |
|
|
|
sql = text("with tmp as (select a1.*,row_number()over(partition by b_ssys_cd,b_mdl_name,b_tab_eng_name," |
|
|
|
sql = text("with tmp as (select a1.*,row_number()over(partition by b_ssys_id,b_mdl_name,b_tab_eng_name," |
|
|
|
"b_fld_eng_name order by concat(op_relation,',',jd_relation) desc) as rn " |
|
|
|
"from t_batch_er_relation_step1 a1)select a1.*,'A' AS father from tmp a1 where a1.rn = 1 " |
|
|
|
"and a1.b_ssys_cd = :sysCode and a1.b_mdl_name = :mdlName " |
|
|
|
"and a1.b_ssys_id = :ssys_id and a1.b_mdl_name = :mdlName " |
|
|
|
"and a1.b_tab_eng_name = :tabName and a1.b_fld_eng_name = :fldName ") |
|
|
|
else: |
|
|
|
sql = text("with tmp as (select a1.*,row_number()over(partition by b_ssys_cd,b_mdl_name,b_tab_eng_name," |
|
|
|
sql = text("with tmp as (select a1.*,row_number()over(partition by b_ssys_id,b_mdl_name,b_tab_eng_name," |
|
|
|
"b_fld_eng_name order by concat(op_relation,',',jd_relation) desc) as rn " |
|
|
|
"from t_batch_er_relation_step1 a1)select a1.*,'A' AS father from tmp a1 where a1.rn = 1 " |
|
|
|
"and a1.a_ssys_cd = :sysCode and a1.a_mdl_name = :mdlName " |
|
|
|
"and a1.a_ssys_id = :ssys_id and a1.a_mdl_name = :mdlName " |
|
|
|
"and a1.a_tab_eng_name = :tabName and a1.a_fld_eng_name = :fldName ") |
|
|
|
result = (await result_db.execute(sql, {"sysCode": column['ssys_cd'], |
|
|
|
result = (await result_db.execute(sql, {"ssys_id": column['ssys_id'], |
|
|
|
"mdlName": column['mdl_name'], "tabName": column['tab_eng_name'], |
|
|
|
"fldName": column['fld_eng_name'] |
|
|
|
})) |
|
|
@ -661,28 +659,28 @@ class MetaDao: |
|
|
|
@classmethod |
|
|
|
async def get_op_relation_by_column(cls, result_db: AsyncSession, column: {}, module: str): |
|
|
|
sql = text("select a1.* ,case when a2.rela_value = '1' then 'A' when a2.rela_value = '2' then 'B' end as father" |
|
|
|
" from (select distinct a_ssys_cd ,a_mdl_name ,a_tab_eng_name ,a_fld_eng_name ,b_ssys_cd,b_mdl_name," |
|
|
|
"b_tab_eng_name ,b_fld_eng_name from ( select a_ssys_cd ,a_mdl_name ,a_tab_eng_name ,a_fld_eng_name," |
|
|
|
"b_ssys_cd,b_mdl_name ,b_tab_eng_name ,b_fld_eng_name from t_batch_fld_relation " |
|
|
|
" from (select distinct a_ssys_id ,a_mdl_name ,a_tab_eng_name ,a_fld_eng_name ,b_ssys_id,b_mdl_name," |
|
|
|
"b_tab_eng_name ,b_fld_eng_name from ( select a_ssys_id ,a_mdl_name ,a_tab_eng_name ,a_fld_eng_name," |
|
|
|
"b_ssys_id,b_mdl_name ,b_tab_eng_name ,b_fld_eng_name from t_batch_fld_relation " |
|
|
|
"where rela_type in ('jd_relation','op_relation') and rela_value not in ('0') union all " |
|
|
|
"SELECT a_ssys_cd ,a_mdl_name ,a_tab_eng_name ,a_fld_eng_name ,b_ssys_cd ,b_mdl_name,b_tab_eng_name," |
|
|
|
"SELECT a_ssys_id ,a_mdl_name ,a_tab_eng_name ,a_fld_eng_name ,b_ssys_id ,b_mdl_name,b_tab_eng_name," |
|
|
|
"b_fld_eng_name FROM t_batch_fld_relation t ,JSON_TABLE(replace(t.rela_value,'''','\"'),'$[*]' " |
|
|
|
"COLUMNS (value_num DOUBLE PATH '$.value')) AS j group by a_ssys_cd ,a_mdl_name ,a_tab_eng_name ," |
|
|
|
"a_fld_eng_name ,b_ssys_cd ,b_mdl_name ,b_tab_eng_name ,b_fld_eng_name " |
|
|
|
"COLUMNS (value_num DOUBLE PATH '$.value')) AS j group by a_ssys_id ,a_mdl_name ,a_tab_eng_name ," |
|
|
|
"a_fld_eng_name ,b_ssys_id ,b_mdl_name ,b_tab_eng_name ,b_fld_eng_name " |
|
|
|
"having max(j.value_num) > 0.1) b1 ) a1 left join t_batch_fld_relation a2 " |
|
|
|
"on a1.a_ssys_cd = a2.a_ssys_cd and a1.a_mdl_name = a2.a_mdl_name " |
|
|
|
"on a1.a_ssys_id = a2.a_ssys_id and a1.a_mdl_name = a2.a_mdl_name " |
|
|
|
"and a1.a_tab_eng_name = a2.a_tab_eng_name and a1.a_fld_eng_name = a2.a_fld_eng_name " |
|
|
|
"and a1.b_ssys_cd = a2.b_ssys_cd and a1.b_mdl_name = a2.b_mdl_name " |
|
|
|
"and a1.b_ssys_id = a2.b_ssys_id and a1.b_mdl_name = a2.b_mdl_name " |
|
|
|
"and a1.b_tab_eng_name = a2.b_tab_eng_name and a1.b_fld_eng_name = a2.b_fld_eng_name " |
|
|
|
"and a2.rela_type = 'set_flag' left join t_batch_fld_clas a4 on a1.a_ssys_cd = a4.ssys_cd " |
|
|
|
"and a2.rela_type = 'set_flag' left join t_batch_fld_clas a4 on a1.a_ssys_id = a4.ssys_id " |
|
|
|
"and a1.a_mdl_name = a4.mdl_name and a1.a_tab_eng_name = a4.tab_eng_name " |
|
|
|
"and a1.a_fld_eng_name = a4.fld_eng_name and a4.clas_onum = '2001001002' " |
|
|
|
"where coalesce(a4.clas_value,' ') <> '日期时间类'" |
|
|
|
"and ((a1.a_ssys_cd = :sysCode and a1.a_mdl_name = :mdlName and a1.a_tab_eng_name = :tabName " |
|
|
|
"and ((a1.a_ssys_id = :ssys_id and a1.a_mdl_name = :mdlName and a1.a_tab_eng_name = :tabName " |
|
|
|
" and a1.a_fld_eng_name = :fldName and a2.rela_value = :rela_value) " |
|
|
|
" or (a1.b_ssys_cd = :sysCode and a1.b_mdl_name = :mdlName and a1.b_tab_eng_name = :tabName " |
|
|
|
" or (a1.b_ssys_id = :ssys_id and a1.b_mdl_name = :mdlName and a1.b_tab_eng_name = :tabName " |
|
|
|
" and a1.b_fld_eng_name = :fldName and a2.rela_value = :rela_value2))") |
|
|
|
result = (await result_db.execute(sql, {"sysCode": column['ssys_cd'], |
|
|
|
result = (await result_db.execute(sql, {"ssys_id": column['ssys_id'], |
|
|
|
"mdlName": column['mdl_name'], "tabName": column['tab_eng_name'], |
|
|
|
"fldName": column['fld_eng_name'], |
|
|
|
"rela_value": '2' if module == 'pre' else '1', |
|
|
@ -696,12 +694,12 @@ class MetaDao: |
|
|
|
return result_as_dict |
|
|
|
|
|
|
|
@classmethod |
|
|
|
async def get_proc_by_table(cls, result_db: AsyncSession, ssys_cd: str, mdl_name: str, tab_eng_name: str): |
|
|
|
async def get_proc_by_table(cls, result_db: AsyncSession, ssys_id: int, mdl_name: str, tab_eng_name: str): |
|
|
|
sql = text("select onum, proc_text from t_metadata_data_lineage_info" |
|
|
|
" where onum in (" |
|
|
|
"select proId from meta_blood_analysis " |
|
|
|
"where targetSysCd = :ssysCd and targetMdlName = :mdlName and targetTableName= :tableName)") |
|
|
|
result = (await result_db.execute(sql, {"ssysCd": ssys_cd, "mdlName": mdl_name, "tableName": tab_eng_name})) |
|
|
|
"where targetSysId = :ssys_id and targetMdlName = :mdlName and targetTableName= :tableName)") |
|
|
|
result = (await result_db.execute(sql, {"ssys_id": ssys_id, "mdlName": mdl_name, "tableName": tab_eng_name})) |
|
|
|
# 获取列名 |
|
|
|
columns = result.keys() # 返回列名列表 |
|
|
|
# 将结果转换为字典列表 |
|
|
|