|
|
|
@ -149,61 +149,37 @@ class MetaDao: |
|
|
|
|
|
|
|
@classmethod |
|
|
|
async def get_meta_col_list(cls, db: AsyncSession, query_object: MetaColObject): |
|
|
|
query_result = ( |
|
|
|
( |
|
|
|
await db.execute( |
|
|
|
select( |
|
|
|
MetadataFldTabExtractInfo.onum.label('extract_onum'), |
|
|
|
MetadataFldTabExtractInfo.extract_ver_num, |
|
|
|
MetadataFldTabExtractInfo.ssys_id, |
|
|
|
MetadataFldTabExtractInfo.data_whs_name, |
|
|
|
MetadataFldTabExtractInfo.mdl_name, |
|
|
|
MetadataFldTabExtractInfo.tab_no, |
|
|
|
MetadataFldTabExtractInfo.tab_eng_name, |
|
|
|
MetadataFldTabExtractInfo.fld_no, |
|
|
|
MetadataFldTabExtractInfo.fld_eng_name, |
|
|
|
MetadataFldTabExtractInfo.fld_cn_name, |
|
|
|
MetadataFldTabExtractInfo.fld_type, |
|
|
|
MetadataFldTabExtractInfo.pk_flag, |
|
|
|
MetadataFldTabExtractInfo.require_flag, |
|
|
|
MetadataFldTabExtractInfo.idx_flag, |
|
|
|
MetadataFldTabExtractInfo.upd_time.label('extract_upd_time'), |
|
|
|
MetadataFldSuppInfo.onum.label('supp_onum'), |
|
|
|
MetadataFldSuppInfo.crrct_ver_num, |
|
|
|
MetadataFldSuppInfo.fld_crrct_name, |
|
|
|
MetadataFldSuppInfo.crrct_pk_flag, |
|
|
|
MetadataFldSuppInfo.fld_desc, |
|
|
|
MetadataFldSuppInfo.pic, |
|
|
|
MetadataFldSuppInfo.fld_clas, |
|
|
|
# MetadataFldSuppInfo.fld_null_rate, |
|
|
|
MetadataFldSuppInfo.data_dict_id, |
|
|
|
MetadataFldSuppInfo.data_sec_lvl, |
|
|
|
DataStdDict.data_dict_cn_name.label('data_dict_name'), |
|
|
|
MetadataFldSuppInfo.rec_stat.label('supp_rec_stat'), |
|
|
|
MetadataFldSuppInfo.upd_time.label('supp_upd_time') |
|
|
|
).select_from(MetadataFldTabExtractInfo) |
|
|
|
.join( |
|
|
|
MetadataFldSuppInfo, |
|
|
|
and_( |
|
|
|
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 |
|
|
|
), isouter=True |
|
|
|
).join( |
|
|
|
DataStdDict, |
|
|
|
and_( |
|
|
|
DataStdDict.onum == MetadataFldSuppInfo.data_dict_id |
|
|
|
), isouter=True |
|
|
|
).where( |
|
|
|
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) |
|
|
|
) |
|
|
|
).all() |
|
|
|
) |
|
|
|
return [row._asdict() for row in query_result] |
|
|
|
sql_query = text("select a.onum as 'extract_onum',a.extract_ver_num,a.ssys_id,a.data_whs_name,a.mdl_name" |
|
|
|
",a.tab_no,a.tab_eng_name," |
|
|
|
"a.fld_no,a.fld_eng_name,a.fld_cn_name,a.fld_type,a.pk_flag,a.require_flag,a.idx_flag," |
|
|
|
"a.upd_time as 'extract_upd_time',b.onum as 'supp_onum',b.crrct_ver_num,b.fld_crrct_name" |
|
|
|
",b.crrct_pk_flag,b.fld_desc,b.pic," |
|
|
|
"b.fld_clas,b.data_dict_id," |
|
|
|
"IF(b.data_sec_lvl is null and b.data_dict_id is not null, d.data_sec_lvl, b.data_sec_lvl) " |
|
|
|
"as 'data_sec_lvl',b.rec_stat as 'supp_rec_stat',b.upd_time as 'supp_upd_time'," |
|
|
|
"c.data_dict_cn_name as 'data_dict_name',g.batchColClas as batchColClas " |
|
|
|
"from t_metadata_fld_tab_extract_info a " |
|
|
|
"left join t_metadata_fld_supp_info b on a.ssys_id=b.ssys_id and a.mdl_name=b.mdl_name" |
|
|
|
" and a.tab_eng_name=b.tab_eng_name and a.fld_eng_name=b.fld_eng_name " |
|
|
|
"left join t_data_dict c on b.data_dict_id = c.onum " |
|
|
|
"left join t_data_std d on c.data_std_no = d.data_std_no " |
|
|
|
"left join (select JSON_ARRAYAGG(" |
|
|
|
"JSON_OBJECT('onum',e.onum,'ssysId',e.ssys_id," |
|
|
|
"'dataWhsName',e.data_whs_name,'tabNo',e.tab_no,'tabEngName',e.tab_eng_name," |
|
|
|
"'fldEngName',e.fld_eng_name,'clasOnum',e.clas_onum,'clasValue',e.clas_value," |
|
|
|
"'clasTmpl', f.clas_tmpl,'clasEffFlag', f.clas_eff_flag,'recSumbPrsn', f.rec_subm_prsn," |
|
|
|
"'beltBatchContent',f.belt_batch_content,'clasName',f.clas_name)) as batchColClas," |
|
|
|
"e.ssys_id, e.mdl_name,e.tab_eng_name,e.fld_eng_name from t_batch_fld_clas e " |
|
|
|
"left join t_metadata_clas f on e.clas_onum = f.clas_onum " |
|
|
|
"where e.ssys_id= :ssysId and e.mdl_name=:mdlName and e.tab_eng_name=:tableName " |
|
|
|
"group by e.fld_eng_name) g on g.ssys_id=a.ssys_id and g.mdl_name = a.mdl_name " |
|
|
|
"and g.tab_eng_name = a.tab_eng_name and g.fld_eng_name = a.fld_eng_name " |
|
|
|
"where a.ssys_id = :ssysId and a.mdl_name=:mdlName and a.tab_eng_name=:tableName" |
|
|
|
" order by a.fld_no") |
|
|
|
result = (await db.execute(sql_query, {"ssysId": query_object.ssys_id, "mdlName": query_object.mdl_name, |
|
|
|
"tableName": query_object.tab_name})) |
|
|
|
columns = result.keys() |
|
|
|
return [dict(zip(columns, row)) for row in result.fetchall()] |
|
|
|
|
|
|
|
@classmethod |
|
|
|
async def get_meta_clas_list(cls, db: AsyncSession): |
|
|
|
|