diff --git a/vue-fastapi-backend/module_admin/controller/datastd_controller.py b/vue-fastapi-backend/module_admin/controller/datastd_controller.py index 7e833f9..ac03627 100644 --- a/vue-fastapi-backend/module_admin/controller/datastd_controller.py +++ b/vue-fastapi-backend/module_admin/controller/datastd_controller.py @@ -249,6 +249,23 @@ async def get_std_dict_list( dict_page_query_result = await DataStdService.get_std_dict_list_services(query_db, dict_page_query, is_page=True) logger.info('获取列配置列表成功') return ResponseUtil.success(model_content=dict_page_query_result) + + +@datastdController.get( + '/stddict/dict/listNoPage', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('datastd:stddict:dict:list'))] +) +async def get_std_dict_list_no_page( + request: Request, + query: str, + query_db: AsyncSession = Depends(get_db), +): + dict_page_query_result = await DataStdService.get_std_dict_list_no_page_services(query_db, query) + logger.info('获取列配置列表成功') + return ResponseUtil.success(data=dict_page_query_result) + + + + @datastdController.get( '/stddict/dict/{id}', response_model=DataStdDictModel, dependencies=[Depends(CheckUserInterfaceAuth('datastd:stddict:dict:list'))] ) diff --git a/vue-fastapi-backend/module_admin/dao/datastd_dao.py b/vue-fastapi-backend/module_admin/dao/datastd_dao.py index 67215f5..a3c470b 100644 --- a/vue-fastapi-backend/module_admin/dao/datastd_dao.py +++ b/vue-fastapi-backend/module_admin/dao/datastd_dao.py @@ -387,6 +387,36 @@ class DataStdDao: ) return col_list + + @classmethod + async def get_std_dict_list_no_page(cls, db: AsyncSession, query: str): + """ + 获取 DataStdDict 的列表信息,支持模糊查询和分页 + :param db: ORM对象 + :param query_object: 查询参数对象 + :param is_page: 是否开启分页 + :return: 列表信息 + """ + # 构建查询条件 + filters = [] + filters.append(or_( + DataStdDict.data_dict_cn_name.like(f"%{query}%"), + DataStdDict.data_dict_eng_name.like(f"%{query}%") + )) + # c1 = aliased(DataStdDict) # 技术部门 + # 构建查询语句 + query = ( + select(DataStdDict.onum, + DataStdDict.data_dict_no, + DataStdDict.data_dict_eng_name, + DataStdDict.data_dict_cn_name) + .where(*filters) + .order_by(desc(DataStdDict.create_time)) # 按创建时间降序排序 + ) + list = (await db.execute(query)).fetchall() + return list + + @classmethod async def add_std_dict(cls, db: AsyncSession,model:DataStdDictModel): col = DataStdDict( diff --git a/vue-fastapi-backend/module_admin/dao/meta_dao.py b/vue-fastapi-backend/module_admin/dao/meta_dao.py index 88c0edc..1742a60 100644 --- a/vue-fastapi-backend/module_admin/dao/meta_dao.py +++ b/vue-fastapi-backend/module_admin/dao/meta_dao.py @@ -1,8 +1,9 @@ from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy import select, text, cast, Integer, and_, or_, outerjoin, func, join, update, desc from module_admin.entity.vo.meta_vo import MetaPageObject, MetaColObject +from module_admin.entity.do.datastd_do import DataStdDict from module_admin.entity.do.meta_do import MetadataExtractInfo, MetadataSuppInfo, MetadataFldTabExtractInfo, \ - MetadataFldSuppInfo, MetadataClas, MetadataSuppInfoVett, MetadataFldSuppInfoVett, MetaBatchTabClas,\ + MetadataFldSuppInfo, MetadataClas, MetadataSuppInfoVett, MetadataFldSuppInfoVett, MetaBatchTabClas, \ MetaBatchFldClas, MetaBloodAnalysis from utils.common_util import CamelCaseUtil import uuid @@ -175,19 +176,24 @@ class MetaDao: MetadataFldSuppInfo.pic, MetadataFldSuppInfo.fld_clas, MetadataFldSuppInfo.fld_null_rate, + MetadataFldSuppInfo.data_dict_id, + 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( - join( - MetadataFldTabExtractInfo, - MetadataFldSuppInfo, - and_( - MetadataFldTabExtractInfo.ssys_cd == MetadataFldSuppInfo.ssys_cd, - MetadataFldTabExtractInfo.mdl_name == MetadataFldSuppInfo.mdl_name, - MetadataFldTabExtractInfo.tab_eng_name == MetadataFldSuppInfo.tab_eng_name, - MetadataFldTabExtractInfo.fld_eng_name == MetadataFldSuppInfo.fld_eng_name - ), isouter=True - ) + ).select_from(MetadataFldTabExtractInfo) + .join( + MetadataFldSuppInfo, + and_( + MetadataFldTabExtractInfo.ssys_cd == MetadataFldSuppInfo.ssys_cd, + 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_cd == query_object.ssys_cd, MetadataFldTabExtractInfo.mdl_name == query_object.mdl_name, @@ -288,16 +294,48 @@ class MetaDao: query_result = ( ( await db.execute( - select(MetadataFldSuppInfoVett).where( + select(MetadataFldSuppInfoVett, + DataStdDict.data_dict_cn_name.label("data_dict_name"), ) + .join( + DataStdDict, + MetadataFldSuppInfoVett.data_dict_id == DataStdDict.onum, # 假设关联条件 + isouter=True, # 可选,是否左连接 + ).where( MetadataFldSuppInfoVett.ssys_cd == tableInfo.ssys_cd, MetadataFldSuppInfoVett.mdl_name == tableInfo.mdl_name, MetadataFldSuppInfoVett.tab_eng_name == tableInfo.tab_eng_name, MetadataFldSuppInfoVett.apply_time == tableInfo.apply_time ) ) - ).scalars().all() + ).all() ) - return query_result + result = [] + for record in query_result: + vett_info = record[0] # MetadataFldSuppInfoVett 对象 + dict_name = record[1] # data_dict_name + result.append({ + "onum": vett_info.onum, + "crrct_ver_num": vett_info.crrct_ver_num, + "ssys_cd": vett_info.ssys_cd, + "mdl_name": vett_info.mdl_name, + "tab_eng_name": vett_info.tab_eng_name, + "fld_eng_name": vett_info.fld_eng_name, + "fld_crrct_name": vett_info.fld_crrct_name, + "crrct_pk_flag": vett_info.crrct_pk_flag, + "fld_desc": vett_info.fld_desc, + "pic": vett_info.pic, + "fld_clas": vett_info.fld_clas, + "fld_null_rate": vett_info.fld_null_rate, + "data_dict_id": vett_info.data_dict_id, + "rec_stat": vett_info.rec_stat, + "upd_time": vett_info.upd_time, + "rec_subm_prsn": vett_info.rec_subm_prsn, + "apply_time": vett_info.apply_time, + "apply_status": vett_info.apply_status, + "oldColumnData": vett_info.oldColumnData, + "data_dict_name": dict_name + }) + return result @classmethod async def get_supp_table_by_vett(cls, sysCode: str, mdlName: str, tableName: str, db: AsyncSession): @@ -348,6 +386,7 @@ class MetaDao: pic=column.pic, fld_clas=column.fld_clas, fld_null_rate=column.fld_null_rate, + data_dict_id=column.data_dict_id, rec_stat=column.rec_stat, upd_time=column.upd_time, ) @@ -367,6 +406,7 @@ class MetaDao: suppColumn.pic = column.pic suppColumn.fld_clas = column.fld_clas suppColumn.fld_null_rate = column.fld_null_rate + suppColumn.data_dict_id = column.data_dict_id suppColumn.rec_stat = column.rec_stat suppColumn.upd_time = column.upd_time db.add(suppColumn) @@ -661,7 +701,6 @@ class MetaDao: result_as_dict = [dict(zip(columns, row)) for row in result.fetchall()] return result_as_dict - @classmethod async def get_blood_by_procId(cls, result_db: AsyncSession, procId: int): query_result = ( diff --git a/vue-fastapi-backend/module_admin/entity/do/meta_do.py b/vue-fastapi-backend/module_admin/entity/do/meta_do.py index c85a5af..3e1c6b1 100644 --- a/vue-fastapi-backend/module_admin/entity/do/meta_do.py +++ b/vue-fastapi-backend/module_admin/entity/do/meta_do.py @@ -129,6 +129,7 @@ class MetadataFldSuppInfo(Base): pic = Column(String(255, collation='utf8_general_ci'), comment='图片字段') fld_clas = Column(Text, comment='字段分类') fld_null_rate = Column(String(50, collation='utf8_general_ci'), comment='字段空值率') + data_dict_id = Column(String(50, collation='utf8_general_ci'), comment='数据字典ID') rec_stat = Column(String(50, collation='utf8_general_ci'), comment='记录状态') upd_time = Column(DateTime, comment='更新时间') @@ -151,6 +152,7 @@ class MetadataFldSuppInfoVett(Base): pic = Column(String(255, collation='utf8_general_ci'), comment='图片字段') fld_clas = Column(Text, comment='字段分类') fld_null_rate = Column(String(50, collation='utf8_general_ci'), comment='字段空值率') + data_dict_id = Column(String(50, collation='utf8_general_ci'), comment='数据字典ID') rec_stat = Column(String(50, collation='utf8_general_ci'), comment='记录状态') upd_time = Column(DateTime, comment='更新时间') rec_subm_prsn = Column(String(255, collation='utf8_general_ci'), comment='记录提交人') @@ -189,7 +191,7 @@ class MetaBatchFldClas(Base): class MetaBloodAnalysis(Base): - """字段标签表""" + """血緣分析表""" __tablename__ = 'meta_blood_analysis' id = Column(String(50, collation='utf8_general_ci'), primary_key=True, comment='id') diff --git a/vue-fastapi-backend/module_admin/entity/vo/meta_vo.py b/vue-fastapi-backend/module_admin/entity/vo/meta_vo.py index f1faf66..4707fb5 100644 --- a/vue-fastapi-backend/module_admin/entity/vo/meta_vo.py +++ b/vue-fastapi-backend/module_admin/entity/vo/meta_vo.py @@ -40,6 +40,7 @@ class ColumnSuppleModel(BaseModel): fld_clas: Optional[str] = None fld_null_rate: Optional[str] = None rec_stat: Optional[str] = None + data_dict_id: Optional[str] = None class SuppleModel(BaseModel): diff --git a/vue-fastapi-backend/module_admin/service/datastd_service.py b/vue-fastapi-backend/module_admin/service/datastd_service.py index f205eba..c1716ce 100644 --- a/vue-fastapi-backend/module_admin/service/datastd_service.py +++ b/vue-fastapi-backend/module_admin/service/datastd_service.py @@ -619,6 +619,19 @@ class DataStdService: col_list_result = await DataStdDao.get_std_dict_list(query_db, query_object, is_page) return col_list_result + @classmethod + async def get_std_dict_list_no_page_services(cls, query_db: AsyncSession, query: str): + """ + 获取列配置列表信息service + + :param query_db: orm对象 + :param query_object: 查询参数对象 + :param is_page: 是否开启分页 + :return: 列配置列表信息对象 + """ + col_list_result = await DataStdDao.get_std_dict_list_no_page(query_db, query) + return CamelCaseUtil.transform_result(col_list_result) + @classmethod async def get_std_dict_by_id_services(cls, query_db: AsyncSession, id: str): diff --git a/vue-fastapi-backend/module_admin/service/meta_service.py b/vue-fastapi-backend/module_admin/service/meta_service.py index 9306785..d71b110 100644 --- a/vue-fastapi-backend/module_admin/service/meta_service.py +++ b/vue-fastapi-backend/module_admin/service/meta_service.py @@ -111,6 +111,7 @@ class MetaService: suppColumnInfo.pic = column.pic suppColumnInfo.fld_clas = column.fld_clas suppColumnInfo.fld_null_rate = column.fld_null_rate + suppColumnInfo.data_dict_id = column.data_dict_id suppColumnInfo.rec_stat = column.rec_stat suppColumnInfo.rec_subm_prsn = current_user.user.user_name suppColumnInfo.apply_time = applyTime @@ -167,6 +168,7 @@ class MetaService: pic=column.pic if column else None, fldClas=column.fld_clas if column else None, fldNullRate=column.fld_null_rate if column else None, + dataDictId=column.data_dict_id if column else None, recStat=column.rec_stat if column else None, updTime=column.upd_time if column else None ) diff --git a/vue-fastapi-frontend/src/api/datastd/std.js b/vue-fastapi-frontend/src/api/datastd/std.js index 4d97df4..db72628 100644 --- a/vue-fastapi-frontend/src/api/datastd/std.js +++ b/vue-fastapi-frontend/src/api/datastd/std.js @@ -154,6 +154,12 @@ export function listStdDict(query) { method: 'get', params: query }) +}export function listStdDictNoPage(query) { + return request({ + url: '/default-api/datastd/stddict/dict/listNoPage', + method: 'get', + params: query + }) } @@ -307,3 +313,4 @@ export function changeStdMainOum(data) { + diff --git a/vue-fastapi-frontend/src/views/meta/metaInfo/index.vue b/vue-fastapi-frontend/src/views/meta/metaInfo/index.vue index 9b737b7..d44b979 100644 --- a/vue-fastapi-frontend/src/views/meta/metaInfo/index.vue +++ b/vue-fastapi-frontend/src/views/meta/metaInfo/index.vue @@ -312,7 +312,7 @@ {{scope.row.fldNullRate}} - +