si@aidatagov.com 2 months ago
parent
commit
fc8eab3421
  1. 58
      vue-fastapi-backend/module_admin/controller/metadata_config_controller.py
  2. 44
      vue-fastapi-backend/module_admin/dao/batch_label_config_dao.py
  3. 174
      vue-fastapi-backend/module_admin/dao/meta_dao.py
  4. 20
      vue-fastapi-backend/module_admin/entity/do/meta_do.py
  5. 37
      vue-fastapi-backend/module_admin/entity/do/metadata_config_do.py
  6. 10
      vue-fastapi-backend/module_admin/entity/vo/meta_vo.py
  7. 93
      vue-fastapi-backend/module_admin/entity/vo/metadata_config_vo.py
  8. 132
      vue-fastapi-backend/module_admin/service/batch_label_config_service.py
  9. 132
      vue-fastapi-backend/module_admin/service/meta_service.py
  10. 17
      vue-fastapi-frontend/src/api/metadataConfig/metadataConfig.js
  11. 6
      vue-fastapi-frontend/src/views/meta/metaInfo/bloodRelation.vue
  12. 43
      vue-fastapi-frontend/src/views/meta/metaInfo/index.vue
  13. 262
      vue-fastapi-frontend/src/views/metadataConfig/metaclas/index.vue

58
vue-fastapi-backend/module_admin/controller/metadata_config_controller.py

@ -21,11 +21,10 @@ from module_admin.entity.vo.metadata_config_vo import (
SecuBizPermiConfigBatchModel,
SecuBizPermiConfigPageQueryModel,
BatchBusiLabelConfigModel,
BatchDataopLabelConfigModel,
BatchDatatypeLabelConfigModel,
BatchBusiLabelConfigPageQueryModel,
ColOpTypeLabelPageQueryModel,
BatchDataopLabelConfigModelVo,
BatchDataopLabelModelPageQueryModel,
BatchBusiLabelConfigPageQueryModel,
BatchDatatypeLabelConfigPageQueryModel,
DatasecConfigPageQueryModel,
DatasecConfigModel,
@ -325,6 +324,17 @@ async def get_busi_label_list(
return ResponseUtil.success(data=result)
@metadataConfigController.get('/colOpTypeLabel/list', response_model=PageResponseModel)
async def get_col_optype_label_list(
request: Request,
query: ColOpTypeLabelPageQueryModel = Depends(ColOpTypeLabelPageQueryModel.as_query),
query_db: AsyncSession = Depends(get_db),
):
result = await BatchLabelConfigService.get_col_optype_list_services(query_db, query, False)
logger.info('获取业务标签配置列表成功')
return ResponseUtil.success(data=result)
@metadataConfigController.post('/busiLabel')
@ValidateFields(validate_model='add_busi_label')
async def add_busi_label(
@ -379,17 +389,6 @@ async def get_busi_label_detail(
return ResponseUtil.success(data=result)
@metadataConfigController.get('/dataopLabel/list', response_model=PageResponseModel)
async def get_dataop_label_list(
request: Request,
query: BatchDataopLabelConfigModel = Depends(BatchDataopLabelModelPageQueryModel.as_query),
query_db: AsyncSession = Depends(get_db),
):
result = await BatchLabelConfigService.get_dataop_vo_services(query_db, query, is_page=True)
logger.info('获取操作标签配置列表成功')
return ResponseUtil.success(data=result)
@metadataConfigController.post('/dataopLabel')
@ValidateFields(validate_model='add_dataop_label')
async def add_dataop_label(
@ -397,7 +396,6 @@ async def add_dataop_label(
model: BatchDataopLabelConfigModelVo,
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user),
):
model.upd_by = current_user.user.user_name
model.upd_time = datetime.now()
@ -410,7 +408,7 @@ async def add_dataop_label(
@ValidateFields(validate_model='edit_dataop_label')
async def edit_dataop_label(
request: Request,
model: BatchDataopLabelConfigModel,
model: BatchDataopLabelConfigModelVo,
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user),
@ -433,17 +431,6 @@ async def delete_dataop_label(
return ResponseUtil.success(msg=result.message)
@metadataConfigController.get('/dataopLabel/{onum}', response_model=BatchDataopLabelConfigModel)
async def get_dataop_label_detail(
request: Request,
onum: str,
query_db: AsyncSession = Depends(get_db),
):
result = await BatchLabelConfigService.get_dataop_detail_services(query_db, onum)
logger.info(f'获取操作标签配置 onum={onum} 详情成功')
return ResponseUtil.success(data=result)
@metadataConfigController.get('/datatypeLabel/list', response_model=PageResponseModel)
async def get_datatype_label_list(
request: Request,
@ -751,6 +738,8 @@ async def task_biz_DS_meta_metatask_delete(
edit_config_result = await MetadataConfigService.ds_metatask_delete(request, query_db, process, current_user)
return ResponseUtil.success(msg=edit_config_result)
# --------------------------------------------------------------------------------标签树---------------------------------------------------
@metadataConfigController.get(
'/cata/list', response_model=PageResponseModel)
@ -763,11 +752,14 @@ async def get_data_catalog_list(
# 设置字段
user_id = current_user.user.user_id
# 获取分页数据
catalog_page_query_result = await MetadataConfigService.get_catalog_list_services(query_db, catalog_page_query, user_id,
catalog_page_query_result = await MetadataConfigService.get_catalog_list_services(query_db, catalog_page_query,
user_id,
is_page=True)
logger.info('获取成功')
return ResponseUtil.success(model_content=catalog_page_query_result)
@metadataConfigController.delete('/cata/{content_onums}',
)
@Log(title='标准分类管理', business_type=BusinessType.DELETE)
@ -780,6 +772,8 @@ async def delete_data_catalog(request: Request, content_onums: str, query_db: As
logger.info(delete_catalog_result.message)
return ResponseUtil.success(msg=delete_catalog_result.message)
@metadataConfigController.put('/cata/removerel')
@ValidateFields(validate_model='removerel_data_ast_catalog')
@Log(title='标准分类管理', business_type=BusinessType.UPDATE)
@ -795,6 +789,8 @@ async def removerel_data_ast_catalog(
# 返回标准化响应
return ResponseUtil.success()
@metadataConfigController.put('/cata/moved')
@ValidateFields(validate_model='moved_data_catalog')
@Log(title='标准分类管理', business_type=BusinessType.UPDATE)
@ -831,6 +827,8 @@ async def moved_data_catalog(
return ResponseUtil.success(
msg=merge_result.message
)
@metadataConfigController.put('/cata/moverel')
@ValidateFields(validate_model='moverel_data_ast_catalog')
@Log(title='标准分类管理', business_type=BusinessType.UPDATE)
@ -846,6 +844,8 @@ async def moverel_data_ast_catalog(
# 返回标准化响应
return ResponseUtil.success()
@metadataConfigController.put('/cata/edit')
@ValidateFields(validate_model='edit_data_catalog')
@Log(title='标准分类管理', business_type=BusinessType.UPDATE)
@ -866,6 +866,8 @@ async def edit_data_catalog(
return ResponseUtil.success(
msg=edit_result.message
)
@metadataConfigController.post('/cata')
@ValidateFields(validate_model='add_data_catalog')
@Log(title='标准分类管理', business_type=BusinessType.INSERT)

44
vue-fastapi-backend/module_admin/dao/batch_label_config_dao.py

@ -1,9 +1,11 @@
from sqlalchemy import delete, select, update, and_
from sqlalchemy.ext.asyncio import AsyncSession
from module_admin.entity.do.metadata_config_do import BatchBusiLabelConfig,BatchDataopLabelConfig,BatchDatatypeLabelConfig
from module_admin.entity.do.metadata_config_do import BatchBusiLabelConfig, BatchDataopLabelConfig, \
BatchDatatypeLabelConfig
from utils.page_util import PageUtil
class BatchLabelConfigDAO:
# region === BatchBusiLabelConfig ===
@ -17,11 +19,20 @@ class BatchLabelConfigDAO:
async def get_busi_list(cls, db: AsyncSession, query_object, is_page: bool = False):
query = select(BatchBusiLabelConfig).where(
BatchBusiLabelConfig.mdl_name == query_object.mdl_name if query_object.mdl_name else True,
BatchBusiLabelConfig.ssys_cd == query_object.ssys_cd if query_object.ssys_cd else True,
BatchBusiLabelConfig.ssys_id == query_object.ssys_id if query_object.ssys_id else True,
).order_by(BatchBusiLabelConfig.upd_time.desc())
return await PageUtil.paginate(db, query, query_object.page_num, query_object.page_size, is_page)
@classmethod
async def get_col_optype_list(cls, db: AsyncSession, query_object, is_page: bool = False):
query = select(BatchDataopLabelConfig).where(
BatchDataopLabelConfig.mdl_name.like(f'%{query_object.mdl_name}%') if query_object.mdl_name else True,
BatchDataopLabelConfig.ssys_id == query_object.ssys_id if query_object.ssys_id else True,
).order_by(BatchDataopLabelConfig.upd_time.desc())
return await PageUtil.paginate(db, query, query_object.page_num, query_object.page_size, is_page)
@classmethod
async def add_busi(cls, db: AsyncSession, obj):
db_obj = BatchBusiLabelConfig(**obj.model_dump())
@ -50,35 +61,21 @@ class BatchLabelConfigDAO:
async def get_dataop_list(cls, db: AsyncSession, query_object, is_page: bool = False):
query = select(BatchDataopLabelConfig).where(
BatchDataopLabelConfig.mdl_name == query_object.mdl_name if query_object.mdl_name else True,
BatchDataopLabelConfig.ssys_cd == query_object.ssys_cd if query_object.ssys_cd else True,
BatchDataopLabelConfig.ssys_id == query_object.ssys_id if query_object.ssys_id else True,
)
return await PageUtil.paginate(db, query, query_object.page_num, query_object.page_size, is_page)
@classmethod
async def get_dataop_list_all(cls, db: AsyncSession, query_object):
conditions = []
if query_object.mdl_name:
conditions.append(BatchDataopLabelConfig.mdl_name == query_object.mdl_name)
if query_object.ssys_cd:
conditions.append(BatchDataopLabelConfig.ssys_cd == query_object.ssys_cd)
stmt = select(BatchDataopLabelConfig).where(*conditions)
result = await db.execute(stmt)
return result.scalars().all()
@classmethod
async def add_dataop(cls, db: AsyncSession, obj):
db_obj = BatchDataopLabelConfig(**obj.model_dump())
db.add(db_obj)
db.add(obj)
await db.flush()
return db_obj
return obj
@classmethod
async def edit_dataop(cls, db: AsyncSession, onum: int, update_data: dict):
await db.execute(update(BatchDataopLabelConfig).where(BatchDataopLabelConfig.onum == onum).values(**update_data))
await db.execute(
update(BatchDataopLabelConfig).where(BatchDataopLabelConfig.onum == onum).values(**update_data))
@classmethod
async def delete_dataop(cls, db: AsyncSession, onum_list: list[int]):
@ -97,7 +94,7 @@ class BatchLabelConfigDAO:
async def get_datatype_list(cls, db: AsyncSession, query_object, is_page: bool = False):
query = select(BatchDatatypeLabelConfig).where(
BatchDatatypeLabelConfig.mdl_name == query_object.mdl_name if query_object.mdl_name else True,
BatchDatatypeLabelConfig.ssys_cd == query_object.ssys_cd if query_object.ssys_cd else True,
BatchDatatypeLabelConfig.ssys_id == query_object.ssys_id if query_object.ssys_id else True,
).order_by(BatchDatatypeLabelConfig.upd_time.desc())
return await PageUtil.paginate(db, query, query_object.page_num, query_object.page_size, is_page)
@ -111,7 +108,8 @@ class BatchLabelConfigDAO:
@classmethod
async def edit_datatype(cls, db: AsyncSession, onum: int, update_data: dict):
await db.execute(update(BatchDatatypeLabelConfig).where(BatchDatatypeLabelConfig.onum == onum).values(**update_data))
await db.execute(
update(BatchDatatypeLabelConfig).where(BatchDatatypeLabelConfig.onum == onum).values(**update_data))
@classmethod
async def delete_datatype(cls, db: AsyncSession, onum_list: list[int]):

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

@ -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() # 返回列名列表
# 将结果转换为字典列表

20
vue-fastapi-backend/module_admin/entity/do/meta_do.py

@ -13,7 +13,7 @@ class MetadataExtractInfo(Base):
onum = Column(Integer, primary_key=True, comment='唯一编号')
extract_ver_num = Column(String(50, collation='utf8_general_ci'), comment='采集版本号')
ver_desc = Column(String(250, collation='utf8_general_ci'), comment='版本描述')
ssys_cd = Column(String(50, collation='utf8_general_ci'), comment='系统代码')
ssys_id = Column(Integer, comment='系统代码')
data_whs_name = Column(String(50, collation='utf8_general_ci'), comment='数据仓库名称')
mdl_name = Column(String(50, collation='utf8_general_ci'), comment='模式名称')
tab_no = Column(Integer, comment='表编号')
@ -33,7 +33,7 @@ class MetadataSuppInfo(Base):
# onum = Column(Integer, primary_key=True, comment='唯一编号')
onum = Column(String(36, collation='utf8mb4_unicode_ci'), primary_key=True, comment='唯一编号')
crrct_ver_num = Column(String(50, collation='utf8_general_ci'), comment='补录版本号')
ssys_cd = Column(String(50, collation='utf8_general_ci'), comment='系统代码')
ssys_id = Column(Integer, comment='系统代码')
mdl_name = Column(String(50, collation='utf8_general_ci'), comment='模型名称')
tab_eng_name = Column(String(250, collation='utf8_general_ci'), comment='表英文名称')
tab_crrct_name = Column(String(250, collation='utf8_general_ci'), comment='表补录名称')
@ -55,7 +55,7 @@ class MetadataSuppInfoVett(Base):
# onum = Column(Integer, primary_key=True, comment='唯一编号')
onum = Column(String(36, collation='utf8mb4_unicode_ci'), primary_key=True, comment='唯一编号')
crrct_ver_num = Column(String(50, collation='utf8_general_ci'), comment='补录版本号')
ssys_cd = Column(String(50, collation='utf8_general_ci'), comment='系统代码')
ssys_id = Column(Integer, comment='系统代码')
mdl_name = Column(String(50, collation='utf8_general_ci'), comment='模型名称')
tab_eng_name = Column(String(250, collation='utf8_general_ci'), comment='表英文名称')
tab_crrct_name = Column(String(250, collation='utf8_general_ci'), comment='表补录名称')
@ -97,7 +97,7 @@ class MetadataFldTabExtractInfo(Base):
onum = Column(Integer, primary_key=True, comment='唯一编号')
extract_ver_num = Column(String(50, collation='utf8_general_ci'), comment='采集版本号')
ssys_cd = Column(String(50, collation='utf8_general_ci'), comment='系统代码')
ssys_id = Column(Integer, comment='系统代码')
data_whs_name = Column(String(255, collation='utf8_general_ci'), comment='数据仓库名称')
mdl_name = Column(String(255, collation='utf8_general_ci'), comment='模块名称')
tab_no = Column(String(50, collation='utf8_general_ci'), comment='表编号')
@ -120,7 +120,7 @@ class MetadataFldSuppInfo(Base):
onum = Column(String(50, collation='utf8_general_ci'), primary_key=True, comment='唯一编号')
crrct_ver_num = Column(String(50, collation='utf8_general_ci'), comment='补充版本号')
ssys_cd = Column(String(50, collation='utf8_general_ci'), comment='系统代码')
ssys_id = Column(Integer, comment='系统代码')
mdl_name = Column(String(255, collation='utf8_general_ci'), comment='模块名称')
tab_eng_name = Column(String(250, collation='utf8_general_ci'), comment='表英文名称')
fld_eng_name = Column(String(255, collation='utf8_general_ci'), comment='字段英文名称')
@ -144,7 +144,7 @@ class MetadataFldSuppInfoVett(Base):
onum = Column(String(50, collation='utf8_general_ci'), primary_key=True, comment='唯一编号')
crrct_ver_num = Column(String(50, collation='utf8_general_ci'), comment='补充版本号')
ssys_cd = Column(String(50, collation='utf8_general_ci'), comment='系统代码')
ssys_id = Column(Integer, comment='系统代码')
mdl_name = Column(String(255, collation='utf8_general_ci'), comment='模块名称')
tab_eng_name = Column(String(250, collation='utf8_general_ci'), comment='表英文名称')
fld_eng_name = Column(String(255, collation='utf8_general_ci'), comment='字段英文名称')
@ -169,7 +169,7 @@ class MetaBatchTabClas(Base):
__tablename__ = 't_batch_tab_clas'
onum = Column(Integer, primary_key=True, comment='序号(主键自增)')
ssys_cd = Column(String(50, collation='utf8_general_ci'), comment='源系统代码')
ssys_id = Column(Integer, comment='源系统id')
data_whs_name = Column(String(50, collation='utf8_general_ci'), comment='数据库名称')
mdl_name = Column(String(50, collation='utf8_general_ci'), comment='模式名称')
tab_no = Column(Integer, comment='表编号')
@ -183,7 +183,7 @@ class MetaBatchFldClas(Base):
__tablename__ = 't_batch_fld_clas'
onum = Column(Integer, primary_key=True, comment='序号(主键自增)')
ssys_cd = Column(String(50, collation='utf8_general_ci'), comment='源系统代码')
ssys_id = Column(Integer, comment='源系统代码')
data_whs_name = Column(String(50, collation='utf8_general_ci'), comment='数据库名称')
mdl_name = Column(String(50, collation='utf8_general_ci'), comment='模式名称')
tab_no = Column(Integer, comment='表编号')
@ -200,14 +200,14 @@ class MetaBloodAnalysis(Base):
id = Column(String(50, collation='utf8_general_ci'), primary_key=True, comment='id')
proId = Column(Integer, comment='存储过程ID')
proName = Column(String(100, collation='utf8_general_ci'), comment='存储过程名称')
targetSysCd = Column(String(100, collation='utf8_general_ci'), comment='目标系统')
targetSysId = Column(String(100, collation='utf8_general_ci'), comment='目标系统')
targetMdlName = Column(String(100, collation='utf8_general_ci'), comment='目标模式')
targetTableName = Column(String(100, collation='utf8_general_ci'), comment='目标表')
targetTableCnName = Column(String(100, collation='utf8_general_ci'), comment='目标表中文名')
targetColName = Column(String(100, collation='utf8_general_ci'), comment='目标字段名')
targetColCnName = Column(String(100, collation='utf8_general_ci'), comment='目标字段中文名')
targetColType = Column(String(100, collation='utf8_general_ci'), comment='目标字段类型')
sourceSysCd = Column(String(100, collation='utf8_general_ci'), comment='源系统代码')
sourceSysId = Column(String(100, collation='utf8_general_ci'), comment='源系统代码')
sourceMdlName = Column(String(100, collation='utf8_general_ci'), comment='源系统模式')
sourceTableName = Column(String(100, collation='utf8_general_ci'), comment='源系统表名')
sourceTableCnName = Column(String(100, collation='utf8_general_ci'), comment='源系统表中文名')

37
vue-fastapi-backend/module_admin/entity/do/metadata_config_do.py

@ -1,5 +1,5 @@
from datetime import datetime
from sqlalchemy import Column,Text,Date, String, Integer, DateTime, TIMESTAMP,Boolean, func,DECIMAL
from sqlalchemy import Column, String, Integer, DateTime, TIMESTAMP, Boolean, func, DECIMAL, Text, Date
from config.database import Base
@ -33,6 +33,7 @@ class MetadataSec(Base):
sec_level_desc = Column(String(200), default=None, comment='等级说明')
sec_level_summary = Column(String(200), comment='等级简介')
class SecuBizConfigRela(Base):
"""
业务域配置关联表 ORM 映射类对应表 t_secu_biz_config_rela
@ -44,6 +45,8 @@ class SecuBizConfigRela(Base):
tab_onum = Column(Integer, nullable=True, comment="表id")
create_by = Column(String(20), nullable=True, comment="创建者")
create_time = Column(DateTime, nullable=True, comment="创建时间")
class TaskBizConfigRela(Base):
"""
业务域调度配置关联表 ORM 映射类对应表 t_task_biz_config_rela
@ -56,6 +59,7 @@ class TaskBizConfigRela(Base):
create_by = Column(String(20), nullable=True, comment="创建者")
create_time = Column(DateTime, nullable=True, comment="创建时间")
class SecuBizPermiConfig(Base):
__tablename__ = "t_secu_biz_permi_config"
@ -70,6 +74,7 @@ class SecuBizPermiConfig(Base):
update_by = Column(String(20), nullable=True, comment="更新者")
update_time = Column(DateTime, nullable=True, comment="更新时间")
class SecuBizConfig(Base):
__tablename__ = "t_secu_biz_config"
@ -81,6 +86,8 @@ class SecuBizConfig(Base):
create_time = Column(DateTime, nullable=True, comment="创建时间")
update_by = Column(String(20), nullable=True, comment="更新者")
update_time = Column(DateTime, nullable=True, comment="更新时间")
class TaskBizConfig(Base):
__tablename__ = "t_task_biz_config"
@ -96,6 +103,8 @@ class TaskBizConfig(Base):
ds_time = Column(DateTime, nullable=True, comment="调度时间")
ds_ids = Column(String(50), nullable=True, comment="任务ID")
schId = Column(String(50), nullable=True, comment="调度id")
class BatchBusiLabelConfig(Base):
"""
批处理业务标签配置表 ORM 映射类对应表 t_batch_busi_label_config
@ -105,30 +114,30 @@ class BatchBusiLabelConfig(Base):
onum = Column(Integer, primary_key=True, autoincrement=True, comment="唯一编号")
regex_name = Column(String(255), nullable=True, comment="正则表达式名称")
regex_pattern = Column(String(255), nullable=True, comment="正则表达式")
ssys_cd = Column(String(50), nullable=True)
ssys_id = Column(Integer, nullable=True)
mdl_name = Column(String(50), nullable=True)
ratio = Column(DECIMAL(10, 4), nullable=True)
upd_by = Column(String(50), nullable=True)
upd_time = Column(DateTime, nullable=True, comment='更新时间')
class BatchDataopLabelConfig(Base):
"""
批处理数据操作标签配置表 ORM 映射类对应表 t_batch_dataop_label_config
"""
__tablename__ = "t_batch_dataop_label_config"
__tablename__ = "t_batch_dataoptype_label_config"
onum = Column(Integer, primary_key=True, autoincrement=True, comment="唯一编号")
optype = Column(String(50), nullable=True, comment="唯一类型,忽略类型")
config1 = Column(DECIMAL(10, 4), nullable=True, comment="参数1")
config2 = Column(DECIMAL(10, 4), nullable=True, comment="参数2")
config3 = Column(DECIMAL(10, 4), nullable=True, comment="参数3")
config4 = Column(DECIMAL(10, 4), nullable=True, comment="参数4")
config5 = Column(DECIMAL(10, 4), nullable=True, comment="参数5")
config6 = Column(DECIMAL(10, 4), nullable=True, comment="参数6")
config7 = Column(DECIMAL(10, 4), nullable=True, comment="参数7")
ssys_cd = Column(String(50), nullable=True)
op_type = Column(String(50), nullable=True, comment="唯一类型,忽略类型")
col_type = Column(String(50), nullable=True, comment="字段类型")
col_attr = Column(String(50), nullable=True, comment="字段属性")
ratio = Column(DECIMAL(10, 4), nullable=True, comment="阈值")
ssys_id = Column(Integer, nullable=True)
mdl_name = Column(String(50), nullable=True)
upd_by = Column(String(50), nullable=True)
upd_time = Column(DateTime, nullable=True, comment='更新时间')
class BatchDatatypeLabelConfig(Base):
"""
批处理字段类型标签配置表 ORM 映射类对应表 t_batch_datatype_label_config
@ -138,10 +147,12 @@ class BatchDatatypeLabelConfig(Base):
onum = Column(Integer, primary_key=True, autoincrement=True, comment="唯一编号")
datatype = Column(String(100), nullable=True, comment="字段类型")
ratio = Column(DECIMAL(10, 4), nullable=True, comment="比率")
ssys_cd = Column(String(50), nullable=True)
ssys_id = Column(Integer, nullable=True)
mdl_name = Column(String(50), nullable=True)
upd_by = Column(String(50), nullable=True)
upd_time = Column(DateTime, nullable=True, comment='更新时间')
class DatasecConfig(Base):
"""
数据安全参数配置 ORM 映射类对应表 t_datasec_config

10
vue-fastapi-backend/module_admin/entity/vo/meta_vo.py

@ -7,7 +7,7 @@ from pydantic.alias_generators import to_camel
class MetaModel(BaseModel):
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
ssys_cd: Optional[str] = Field(default=None, description='系统名称')
ssys_id: Optional[int] = Field(default=None, description='系统名称')
mdl_name: Optional[str] = Field(default=None, description='模式名称')
tab_name: Optional[str] = Field(default=None, description='表名')
tab_type: Optional[str] = Field(default=None, description='表类型')
@ -25,7 +25,7 @@ class MetaPageObject(MetaModel):
@as_query
class MetaColObject(BaseModel):
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
ssys_cd: Optional[str] = Field(default=None, description='系统名称')
ssys_id: Optional[int] = Field(default=None, description='系统名称')
mdl_name: Optional[str] = Field(default=None, description='模式名称')
tab_name: Optional[str] = Field(default=None, description='表名')
@ -46,7 +46,7 @@ class ColumnSuppleModel(BaseModel):
class SuppleModel(BaseModel):
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
ssys_cd: Optional[str] = None
ssys_id: Optional[int] = None
mdl_name: Optional[str] = None
tab_eng_name: Optional[str] = None
tab_crrct_name: Optional[str] = None
@ -61,7 +61,7 @@ class SuppleModel(BaseModel):
@as_query
class MetaBusinessRelShipObject(BaseModel):
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
ssys_cd: Optional[str]
ssys_id: Optional[int]
mdl_name: Optional[str]
tab_eng_name: Optional[str]
type: Optional[str]
@ -70,6 +70,6 @@ class MetaBusinessRelShipObject(BaseModel):
@as_query
class MetaProcQueryObject(BaseModel):
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
ssys_cd: Optional[str]
ssys_id: Optional[int]
mdl_name: Optional[str]
tab_eng_name: Optional[str]

93
vue-fastapi-backend/module_admin/entity/vo/metadata_config_vo.py

@ -39,7 +39,6 @@ class MetadataClasQueryModel(MetadataClasModel):
end_time: Optional[str] = Field(default=None, description='结束时间')
@as_query
class MetadataClasPageQueryModel(MetadataClasQueryModel):
"""
@ -58,6 +57,7 @@ class DeleteMetadataClasModel(BaseModel):
clas_onums: str = Field(description='需要删除的标签主键(多个用逗号分隔)')
class MetadataSecModel(BaseModel):
"""
数据安全配置表对应 Pydantic 模型
@ -80,6 +80,8 @@ class MetadataSecModel(BaseModel):
def validate_fields(self):
self.get_sec_level_name()
class DeleteMetadataSecModel(BaseModel):
"""
删除数据安全配置模型
@ -88,6 +90,8 @@ class DeleteMetadataSecModel(BaseModel):
model_config = ConfigDict(alias_generator=to_camel)
onums: str = Field(description='需要删除的唯一编号(多个用逗号分隔)')
class MetadataSecQueryModel(MetadataSecModel):
"""
数据安全配置不分页查询模型
@ -95,6 +99,7 @@ class MetadataSecQueryModel(MetadataSecModel):
begin_time: Optional[str] = Field(default=None, description='开始时间')
end_time: Optional[str] = Field(default=None, description='结束时间')
@as_query
class MetadataSecPageQueryModel(MetadataSecQueryModel):
"""
@ -116,6 +121,8 @@ class SecuBizConfigRelaModel(BaseModel):
tab_onum: Optional[int] = Field(default=None, description="表ID")
create_by: Optional[str] = Field(default=None, description="创建者")
create_time: Optional[datetime] = Field(default=None, description="创建时间")
class TaskBizConfigRelaModel(BaseModel):
"""
业务域配置关联表对应 Pydantic 模型
@ -127,6 +134,7 @@ class TaskBizConfigRelaModel(BaseModel):
create_by: Optional[str] = Field(default=None, description="创建者")
create_time: Optional[datetime] = Field(default=None, description="创建时间")
class SecuBizConfigAddModel(BaseModel):
"""
业务域配置对应 Pydantic 模型
@ -142,6 +150,8 @@ class SecuBizConfigAddModel(BaseModel):
update_by: Optional[str] = Field(default=None, description='更新者')
update_time: Optional[datetime] = Field(default=None, description='更新时间')
tab_onum_list: List[int] = Field(default=None, description='表id列表')
class SecuBizConfigModel(BaseModel):
"""
业务域配置对应 Pydantic 模型
@ -165,6 +175,7 @@ class SecuBizConfigModel(BaseModel):
def validate_fields(self):
self.get_risk_lvl()
class DeleteSecuBizConfigModel(BaseModel):
"""
删除业务域配置模型
@ -172,6 +183,7 @@ class DeleteSecuBizConfigModel(BaseModel):
model_config = ConfigDict(alias_generator=to_camel)
onums: str = Field(..., description='需要删除的唯一编号(多个用逗号分隔)')
class SecuBizConfigQueryModel(SecuBizConfigModel):
"""
业务域配置不分页查询模型
@ -179,6 +191,7 @@ class SecuBizConfigQueryModel(SecuBizConfigModel):
begin_time: Optional[str] = Field(default=None, description='开始时间')
end_time: Optional[str] = Field(default=None, description='结束时间')
@as_query
class SecuBizConfigPageQueryModel(SecuBizConfigQueryModel):
"""
@ -206,6 +219,8 @@ class SecuBizPermiConfigModel(BaseModel):
create_time: Optional[datetime] = Field(default=None, description='创建时间')
update_by: Optional[str] = Field(default=None, description='更新者')
update_time: Optional[datetime] = Field(default=None, description='更新时间')
class SecuBizPermiConfigBatchModel(BaseModel):
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
@ -215,8 +230,6 @@ class SecuBizPermiConfigBatchModel(BaseModel):
obj_name: str = Field(..., description='角色名称')
isStop: Optional[bool] = Field(default=False, description='是否停用(false:运行 true:停用)')
@NotBlank(field_name='obj_name', message='角色名称不能为空')
@Size(field_name='obj_name', max_length=50, message='角色名称长度不能超过50个字符')
def get_obj_name(self):
@ -225,6 +238,7 @@ class SecuBizPermiConfigBatchModel(BaseModel):
def validate_fields(self):
self.get_obj_name()
class DeleteSecuBizPermiConfigModel(BaseModel):
"""
删除业务域权限配置模型
@ -232,6 +246,7 @@ class DeleteSecuBizPermiConfigModel(BaseModel):
model_config = ConfigDict(alias_generator=to_camel)
onums: str = Field(..., description='需要删除的唯一编号(多个用逗号分隔)')
class SecuBizPermiConfigQueryModel(SecuBizPermiConfigModel):
"""
业务域权限配置不分页查询模型
@ -239,6 +254,7 @@ class SecuBizPermiConfigQueryModel(SecuBizPermiConfigModel):
begin_time: Optional[str] = Field(default=None, description='开始时间')
end_time: Optional[str] = Field(default=None, description='结束时间')
@as_query
class SecuBizPermiConfigPageQueryModel(SecuBizPermiConfigQueryModel):
"""
@ -246,56 +262,40 @@ class SecuBizPermiConfigPageQueryModel(SecuBizPermiConfigQueryModel):
"""
page_num: int = Field(default=1, description='当前页码')
page_size: int = Field(default=10, description='每页记录数')
class BatchDataopLabelConfigModel(BaseModel):
class BatchDatatypeLabelConfigModel(BaseModel):
"""
批处理数据操作标签配置 Pydantic 模型
批处理字段类型标签配置 Pydantic 模型
"""
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
onum: Optional[int] = Field(default=None, description='唯一编号')
optype: Optional[str] = Field(default=None, description='唯一类型,忽略类型')
config1: Optional[float] = Field(default=None, description='参数1')
config2: Optional[float] = Field(default=None, description='参数2')
config3: Optional[float] = Field(default=None, description='参数3')
config4: Optional[float] = Field(default=None, description='参数4')
config5: Optional[float] = Field(default=None, description='参数5')
config6: Optional[float] = Field(default=None, description='参数6')
config7: Optional[float] = Field(default=None, description='参数7')
ssys_cd: Optional[str] = Field(default=None, description='系统代码')
datatype: Optional[str] = Field(default=None, description='字段类型')
ratio: Optional[float] = Field(default=None, description='比率')
ssys_id: Optional[int] = Field(default=None, description='系统代码')
mdl_name: Optional[str] = Field(default=None, description='模块名称')
upd_by: Optional[str] = Field(default=None, description='更新人员')
upd_time: Optional[datetime] = Field(default=None, description='更新时间')
class BatchDataopLabelConfigModelVo(BaseModel):
"""
批处理数据操作标签配置 Pydantic 模型
"""
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
config1: Optional[float] = Field(default=None, description='参数1')
config2: Optional[float] = Field(default=None, description='参数2')
config3: Optional[float] = Field(default=None, description='参数3')
config4: Optional[float] = Field(default=None, description='参数4')
config5: Optional[float] = Field(default=None, description='参数5')
config6: Optional[float] = Field(default=None, description='参数6')
config7: Optional[float] = Field(default=None, description='参数7')
ssys_cd: Optional[str] = Field(default=None, description='系统代码')
mdl_name: Optional[str] = Field(default=None, description='模块名称')
upd_by: Optional[str] = Field(default=None, description='更新人员')
upd_time: Optional[datetime] = Field(default=None, description='更新时间')
class BatchDatatypeLabelConfigModel(BaseModel):
"""
批处理字段类型标签配置 Pydantic 模型
"""
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
onum: Optional[int] = Field(default=None, description='唯一编号')
datatype: Optional[str] = Field(default=None, description='字段类型')
ratio: Optional[float] = Field(default=None, description='比率')
ssys_cd: Optional[str] = Field(default=None, description='系统代码')
op_type: Optional[str] = Field(default=None, description='处理类型')
col_type: Optional[str] = Field(default=None, description='字段类型')
col_attr: Optional[str] = Field(default=None, description='字段属性')
ratio: Optional[float] = Field(default=None, description='阈值')
ssys_id: Optional[int] = Field(default=None, description='系统代码')
mdl_name: Optional[str] = Field(default=None, description='模块名称')
upd_by: Optional[str] = Field(default=None, description='更新人员')
upd_time: Optional[datetime] = Field(default=None, description='更新时间')
class BatchBusiLabelConfigModel(BaseModel):
"""
批处理业务标签配置 Pydantic 模型
@ -305,24 +305,34 @@ class BatchBusiLabelConfigModel(BaseModel):
onum: Optional[int] = Field(default=None, description='唯一编号')
regex_name: Optional[str] = Field(default=None, description='正则表达式名称')
regex_pattern: Optional[str] = Field(default=None, description='正则表达式')
ssys_cd: Optional[str] = Field(default=None, description='系统代码')
ssys_id: Optional[int] = Field(default=None, description='系统代码')
mdl_name: Optional[str] = Field(default=None, description='模块名称')
ratio: Optional[float] = Field(default=None, description='比率')
upd_by: Optional[str] = Field(default=None, description='更新人员')
upd_time: Optional[datetime] = Field(default=None, description='更新时间')
@as_query
class BatchDataopLabelModelPageQueryModel(BatchDataopLabelConfigModel):
class ColOpTypeLabelPageQueryModel(BaseModel):
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
ssys_id: Optional[int] = Field(default=None, description='系统名称')
mdl_name: Optional[str] = Field(default=None, description='模式名称')
page_num: Optional[int] = Field(default=None, description='当前页码')
page_size: Optional[int] = Field(default=None, description='每页记录数')
page_num: int = Field(default=1, description='当前页码')
page_size: int = Field(default=10, description='每页记录数')
@as_query
class BatchDatatypeLabelConfigPageQueryModel(BatchDatatypeLabelConfigModel):
page_num: int = Field(default=1, description='当前页码')
page_size: int = Field(default=10, description='每页记录数')
@as_query
class BatchBusiLabelConfigPageQueryModel(BatchBusiLabelConfigModel):
page_num: int = Field(default=1, description='当前页码')
page_size: int = Field(default=10, description='每页记录数')
class DatasecConfigModel(BaseModel):
"""
数据安全任务配置 Pydantic 模型对应表 t_datasec_config
@ -340,6 +350,8 @@ class DatasecConfigModel(BaseModel):
ds_time: Optional[datetime] = Field(default=None, description="调度时间")
ds_ids: Optional[str] = Field(default=None, description="任务ID")
schId: Optional[str] = Field(default=None, description="调度id")
@as_query
class DatasecConfigPageQueryModel(DatasecConfigModel):
page_num: int = Field(default=1, description='当前页码')
@ -347,6 +359,7 @@ class DatasecConfigPageQueryModel(DatasecConfigModel):
begin_time: Optional[str] = Field(default=None, description='开始时间')
end_time: Optional[str] = Field(default=None, description='结束时间')
class TaskBizConfigAddModel(BaseModel):
"""
标签任务域配置对应 Pydantic 模型
@ -366,6 +379,8 @@ class TaskBizConfigAddModel(BaseModel):
ds_ids: Optional[str] = Field(default=None, description="任务ID")
schId: Optional[str] = Field(default=None, description="调度id")
tab_onum_list: List[int] = Field(default=None, description='表id列表')
class TaskBizConfigModel(BaseModel):
"""
标签任务配置对应 Pydantic 模型
@ -384,6 +399,7 @@ class TaskBizConfigModel(BaseModel):
ds_time: Optional[datetime] = Field(default=None, description="调度时间")
ds_ids: Optional[str] = Field(default=None, description="任务ID")
schId: Optional[str] = Field(default=None, description="调度id")
@NotBlank(field_name='risk_lvl', message='安全等级不能为空')
@Size(field_name='risk_lvl', max_length=50, message='安全等级长度不能超过50')
def get_risk_lvl(self):
@ -392,6 +408,7 @@ class TaskBizConfigModel(BaseModel):
def validate_fields(self):
self.get_risk_lvl()
class DeleteTaskBizConfigModel(BaseModel):
"""
删除业务域配置模型
@ -399,6 +416,7 @@ class DeleteTaskBizConfigModel(BaseModel):
model_config = ConfigDict(alias_generator=to_camel)
onums: str = Field(..., description='需要删除的唯一编号(多个用逗号分隔)')
class TaskBizConfigQueryModel(TaskBizConfigModel):
"""
业务域配置不分页查询模型
@ -406,6 +424,7 @@ class TaskBizConfigQueryModel(TaskBizConfigModel):
begin_time: Optional[str] = Field(default=None, description='开始时间')
end_time: Optional[str] = Field(default=None, description='结束时间')
@as_query
class TaskBizConfigPageQueryModel(TaskBizConfigQueryModel):
"""

132
vue-fastapi-backend/module_admin/service/batch_label_config_service.py

@ -1,7 +1,8 @@
from sqlalchemy.ext.asyncio import AsyncSession
from module_admin.dao.batch_label_config_dao import BatchLabelConfigDAO
from module_admin.entity.vo.common_vo import CrudResponseModel
from module_admin.entity.vo.metadata_config_vo import BatchBusiLabelConfigModel,BatchDataopLabelConfigModel,BatchDatatypeLabelConfigModel,BatchDataopLabelConfigModelVo
from module_admin.entity.vo.metadata_config_vo import BatchBusiLabelConfigModel, BatchDatatypeLabelConfigModel
from module_admin.entity.do.metadata_config_do import BatchDataopLabelConfig
from exceptions.exception import ServiceException
import uuid
from utils.common_util import CamelCaseUtil
@ -17,6 +18,10 @@ class BatchLabelConfigService:
async def get_busi_list_services(cls, db: AsyncSession, query_object, is_page: bool = False):
return await BatchLabelConfigDAO.get_busi_list(db, query_object, is_page)
@classmethod
async def get_col_optype_list_services(cls, db: AsyncSession, query_object, is_page: bool = False):
return await BatchLabelConfigDAO.get_col_optype_list(db, query_object, is_page)
@classmethod
async def add_busi_services(cls, db: AsyncSession, page_object):
try:
@ -44,7 +49,7 @@ class BatchLabelConfigService:
@classmethod
async def delete_busi_services(cls, db: AsyncSession, onum_list: str):
id_list = [x.strip() for x in onum_list.split(",") if x.strip()]
id_list = [int(x.strip()) for x in onum_list.split(",") if x.strip()]
if not id_list:
raise ServiceException(message="无效的编号列表")
@ -70,95 +75,37 @@ class BatchLabelConfigService:
@classmethod
async def get_dataop_list_services(cls, db: AsyncSession, query_object, is_page: bool = False):
return await BatchLabelConfigDAO.get_dataop_list(db, query_object, is_page)
@classmethod
async def get_dataop_vo_services(cls, db: AsyncSession, query_object, is_page: bool = False):
result = BatchDataopLabelConfigModelVo() # 自定义返回 VO 对象
resultList = await BatchLabelConfigDAO.get_dataop_list_all(db, query_object)
if resultList:
for item in resultList:
if item.optype == "唯一类型":
result.config1 = item.config1
result.config2 = item.config2
result.config3 = item.config3
result.config4 = item.config4
result.ssys_cd = item.ssys_cd
result.mdl_name = item.mdl_name
result.upd_by = item.upd_by
result.upd_time = item.upd_time
elif item.optype == "忽略类型":
result.config5 = item.config1 # 注意:忽略类型只有 config1, config2
result.config6 = item.config2
# 其他公共字段,如果你也想覆盖可再写一次:
result.ssys_cd = item.ssys_cd
result.mdl_name = item.mdl_name
result.upd_by = item.upd_by
result.upd_time = item.upd_time
return result
@classmethod
async def add_dataop_services(cls, db: AsyncSession, page_object):
try:
resultList = await BatchLabelConfigDAO.get_dataop_list_all(db, page_object)
# 唯一类型对象
onopLabel = BatchDataopLabelConfigModel(
optype="唯一类型",
config1=page_object.config1,
config2=page_object.config2,
config3=page_object.config3,
config4=page_object.config4,
ssysCd=page_object.ssys_cd,
mdlName=page_object.mdl_name,
updBy=page_object.upd_by,
updTime=page_object.upd_time
)
# 忽略类型对象
inopLabel = BatchDataopLabelConfigModel(
optype="忽略类型",
config1=page_object.config5,
config2=page_object.config6,
ssysCd=page_object.ssys_cd,
mdlName=page_object.mdl_name,
updBy=page_object.upd_by,
updTime=page_object.upd_time
)
if resultList:
for item in resultList:
if item.optype == "唯一类型":
update_data = {
"config1": onopLabel.config1,
"config2": onopLabel.config2,
"config3": onopLabel.config3,
"config4": onopLabel.config4,
"ssys_cd": onopLabel.ssys_cd,
"mdl_name": onopLabel.mdl_name,
"upd_by": onopLabel.upd_by,
"upd_time": onopLabel.upd_time
}
elif item.optype == "忽略类型":
update_data = {
"config1": inopLabel.config1,
"config2": inopLabel.config2,
"ssys_cd": inopLabel.ssys_cd,
"mdl_name": inopLabel.mdl_name,
"upd_by": inopLabel.upd_by,
"upd_time": inopLabel.upd_time
}
if page_object.onum:
# edit
conf = BatchDataopLabelConfig()
conf.op_type = page_object.op_type
conf.col_type = page_object.col_type
conf.col_attr = page_object.col_attr
conf.ratio = page_object.ratio
conf.ssys_id = page_object.ssys_id
conf.mdl_name = page_object.mdl_name
conf.upd_by = page_object.upd_by
conf.upd_time = page_object.upd_time
dic = conf.model_dump(exclude_unset=True)
await BatchLabelConfigDAO.edit_dataop(db, page_object.onum, dic)
else:
continue # 忽略未知类型
await BatchLabelConfigDAO.edit_dataop(db, item.onum, update_data)
else:
await BatchLabelConfigDAO.add_dataop(db, onopLabel)
await BatchLabelConfigDAO.add_dataop(db, inopLabel)
# add
conf = BatchDataopLabelConfig()
conf.op_type = page_object.op_type
conf.col_type = page_object.col_type
conf.col_attr = page_object.col_attr
conf.ratio = page_object.ratio
conf.ssys_id = page_object.ssys_id
conf.mdl_name = page_object.mdl_name
conf.upd_by = page_object.upd_by
conf.upd_time = page_object.upd_time
await BatchLabelConfigDAO.add_dataop(db, conf)
await db.commit()
return CrudResponseModel(is_success=True, message="新增或更新成功")
return CrudResponseModel(is_success=True, message="操作成功")
except Exception as e:
await db.rollback()
raise e
@ -166,8 +113,8 @@ class BatchLabelConfigService:
@classmethod
async def edit_dataop_services(cls, db: AsyncSession, page_object):
edit_data = page_object.model_dump(exclude_unset=True)
info = await cls.get_dataop_detail_services(db, page_object.onum)
if info.onum:
result = await BatchLabelConfigDAO.get_dataop_detail_by_id(db, page_object.onum)
if result.onum:
try:
await BatchLabelConfigDAO.edit_dataop(db, page_object.onum, edit_data)
await db.commit()
@ -180,7 +127,7 @@ class BatchLabelConfigService:
@classmethod
async def delete_dataop_services(cls, db: AsyncSession, onum_list: str):
id_list = [x.strip() for x in onum_list.split(",") if x.strip()]
id_list = [int(x.strip()) for x in onum_list.split(",") if x.strip()]
if not id_list:
raise ServiceException(message="无效的编号列表")
@ -192,13 +139,6 @@ class BatchLabelConfigService:
await db.rollback()
raise e
@classmethod
async def get_dataop_detail_services(cls, db: AsyncSession, onum: str):
result = await BatchLabelConfigDAO.get_dataop_detail_by_id(db, onum)
if result:
return BatchDataopLabelConfigModel(**CamelCaseUtil.transform_result(result))
return BatchDataopLabelConfigModel(**dict())
# endregion
# region === BatchDatatypeLabelConfig ===
@ -234,7 +174,7 @@ class BatchLabelConfigService:
@classmethod
async def delete_datatype_services(cls, db: AsyncSession, onum_list: str):
id_list = [x.strip() for x in onum_list.split(",") if x.strip()]
id_list = [int(x.strip()) for x in onum_list.split(",") if x.strip()]
if not id_list:
raise ServiceException(message="无效的编号列表")

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

@ -41,7 +41,7 @@ class MetaService:
meta_rel_list = await MetaDao.get_meta_rel_list(result_db, query_object)
if meta_rel_list and len(meta_rel_list.rows) > 0:
for table in meta_rel_list.rows:
tab_list = await MetaDao.get_meta_tab_clas(result_db, table['ssysCd'], table['mdlName'],
tab_list = await MetaDao.get_meta_tab_clas(result_db, table['ssysId'], table['mdlName'],
table['tabEngName'])
table['batchTabClas'] = CamelCaseUtil.transform_result(tab_list)
return meta_rel_list
@ -49,7 +49,7 @@ class MetaService:
meta_rel_list = await MetaDao.get_meta_rel_list(result_db, query_object)
if meta_rel_list and len(meta_rel_list.rows) > 0:
for table in meta_rel_list.rows:
tab_list = await MetaDao.get_meta_tab_clas(result_db, table['ssysCd'], table['mdlName'],
tab_list = await MetaDao.get_meta_tab_clas(result_db, table['ssysId'], table['mdlName'],
table['tabEngName'])
table['batchTabClas'] = CamelCaseUtil.transform_result(tab_list)
return meta_rel_list
@ -59,7 +59,7 @@ class MetaService:
meta_result = await MetaDao.get_meta_col_list(result_db, query_object)
result = CamelCaseUtil.transform_result(meta_result)
for column in result:
fld_list = await MetaDao.get_meta_fld_clas(result_db, column['ssysCd'], column['mdlName'],
fld_list = await MetaDao.get_meta_fld_clas(result_db, column['ssysId'], column['mdlName'],
column['tabEngName'], column['fldEngName'])
column['batchFldClas'] = CamelCaseUtil.transform_result(fld_list)
if column['dataSecLvl'] is None and column['dataDictId'] is not None:
@ -76,10 +76,10 @@ class MetaService:
@classmethod
async def meta_supp(cls, result_db: AsyncSession, supple: SuppleModel, current_user: CurrentUserModel):
# 0,暂存 waiting,申请中,pending审核中,succeed,rejected已审核,canceled已取消
hasTable = await MetaDao.get_lastest_meta_data_supp_vett(result_db, supple.ssys_cd, supple.mdl_name,
hasTable = await MetaDao.get_lastest_meta_data_supp_vett(result_db, supple.ssys_id, supple.mdl_name,
supple.tab_eng_name)
oldTable = await MetaDao.get_supp_table_by_vett(supple.ssys_cd, supple.mdl_name, supple.tab_eng_name, result_db)
tableInfo = await MetaDao.get_meta_table(supple.ssys_cd, supple.mdl_name, supple.tab_eng_name, result_db)
oldTable = await MetaDao.get_supp_table_by_vett(supple.ssys_id, supple.mdl_name, supple.tab_eng_name, result_db)
tableInfo = await MetaDao.get_meta_table(supple.ssys_id, supple.mdl_name, supple.tab_eng_name, result_db)
tableOnum = uuid.uuid4()
if hasTable is not None:
if hasTable.apply_status == 'waiting':
@ -89,7 +89,7 @@ class MetaService:
applyTime = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
suppTableInfo = MetadataSuppInfoVett()
suppTableInfo.onum = tableOnum
suppTableInfo.ssys_cd = supple.ssys_cd
suppTableInfo.ssys_id = supple.ssys_id
suppTableInfo.mdl_name = supple.mdl_name
suppTableInfo.tab_eng_name = supple.tab_eng_name
suppTableInfo.tab_crrct_name = supple.tab_crrct_name
@ -104,18 +104,18 @@ class MetaService:
await MetaDao.insertMetadataSuppInfoVett(suppTableInfo, result_db)
if supple.columnInfo is not None and len(supple.columnInfo) > 0:
for column in supple.columnInfo:
oldColumn = await MetaDao.get_supp_column_by_columnInfo(supple.ssys_cd, supple.mdl_name,
oldColumn = await MetaDao.get_supp_column_by_columnInfo(supple.ssys_id, supple.mdl_name,
supple.tab_eng_name,
column.fld_eng_name, result_db)
data_dict_name = ''
if oldColumn and oldColumn.data_dict_id and oldColumn.data_dict_id != '':
oldDict = await DataStdDao.get_data_dict_by_id(result_db, oldColumn.data_dict_id)
data_dict_name = oldDict.data_dict_cn_name if oldDict else ''
columnInfo = await MetaDao.get_meta_column(supple.ssys_cd, supple.mdl_name, supple.tab_eng_name,
columnInfo = await MetaDao.get_meta_column(supple.ssys_id, supple.mdl_name, supple.tab_eng_name,
column.fld_eng_name, result_db)
suppColumnInfo = MetadataFldSuppInfoVett()
suppColumnInfo.onum = uuid.uuid4()
suppColumnInfo.ssys_cd = supple.ssys_cd
suppColumnInfo.ssys_id = supple.ssys_id
suppColumnInfo.mdl_name = supple.mdl_name
suppColumnInfo.tab_eng_name = supple.tab_eng_name
suppColumnInfo.fld_eng_name = column.fld_eng_name
@ -146,7 +146,7 @@ class MetaService:
tableDict = dict(
onum=tableInfo.onum,
crrctVerNum=table.crrct_ver_num if table else None,
ssysCd=tableInfo.ssys_cd,
ssysId=tableInfo.ssys_id,
mdlName=tableInfo.mdl_name,
tabEngName=tableInfo.tab_eng_name,
tabCnName=tableInfo.tab_cn_name,
@ -168,7 +168,7 @@ class MetaService:
columnDict = dict(
onum=columnInfo.onum,
crrctVerNum=column.crrct_ver_num if column and column.crrct_ver_num else None,
ssysCd=columnInfo.ssys_cd,
ssysId=columnInfo.ssys_id,
mdlName=columnInfo.mdl_name,
tabEngName=columnInfo.tab_eng_name,
fldEngName=columnInfo.fld_eng_name,
@ -195,13 +195,13 @@ class MetaService:
async def get_meta_apply_detail_services(cls, result_db: AsyncSession, businessId: str):
tableData = await MetaDao.get_supp_table_vett_by_id(businessId, result_db)
table = CamelCaseUtil.transform_result(tableData)
clas_list = await MetaDao.get_meta_tab_clas(result_db, tableData.ssys_cd, tableData.mdl_name,
clas_list = await MetaDao.get_meta_tab_clas(result_db, tableData.ssys_id, tableData.mdl_name,
tableData.tab_eng_name)
table['batchTabClas'] = CamelCaseUtil.transform_result(clas_list)
columnData = await MetaDao.get_supp_column_vett_by_tableInfo(result_db, tableData)
column_list = CamelCaseUtil.transform_result(columnData)
for column in column_list:
col_list = await MetaDao.get_meta_fld_clas(result_db, column['ssysCd'], column['mdlName'],
col_list = await MetaDao.get_meta_fld_clas(result_db, column['ssysId'], column['mdlName'],
column['tabEngName'], column['fldEngName'])
column['batchColClas'] = CamelCaseUtil.transform_result(col_list)
result = dict(
@ -213,16 +213,16 @@ class MetaService:
@classmethod
async def get_table_by_id(cls, result_db: AsyncSession, tableId: int):
table = await MetaDao.get_meta_table_by_id(tableId, result_db)
tab_list = await MetaDao.get_meta_tab_clas(result_db, table['ssysCd'], table['mdlName'],
tab_list = await MetaDao.get_meta_tab_clas(result_db, table['ssysId'], table['mdlName'],
table['tabEngName'])
table['batchTabClas'] = CamelCaseUtil.transform_result(tab_list)
colQuery = MetaColObject()
colQuery.ssys_cd = table['ssysCd']
colQuery.ssys_id = table['ssysId']
colQuery.mdl_name = table['mdlName']
colQuery.tab_name = table['tabEngName']
columnList = await MetaDao.get_meta_col_list(result_db, colQuery)
for column in columnList:
col_list = await MetaDao.get_meta_fld_clas(result_db, column['ssys_cd'], column['mdl_name'],
col_list = await MetaDao.get_meta_fld_clas(result_db, column['ssys_id'], column['mdl_name'],
column['tab_eng_name'], column['fld_eng_name'])
column['batchColClas'] = CamelCaseUtil.transform_result(col_list)
table['columnList'] = CamelCaseUtil.transform_result(columnList)
@ -230,37 +230,37 @@ class MetaService:
@classmethod
async def getBusinessRelationShip(cls, result_db: AsyncSession, meta_query: MetaBusinessRelShipObject):
currentNodeList = await cls.getRelationByTable(result_db, meta_query.ssys_cd, meta_query.mdl_name,
currentNodeList = await cls.getRelationByTable(result_db, meta_query.ssys_id, meta_query.mdl_name,
meta_query.tab_eng_name, meta_query.type)
relationList = []
if currentNodeList is not None and len(currentNodeList) > 0:
for currentNode in currentNodeList:
if currentNode['father'] is None:
relation = {"source": {"ssys_cd": currentNode['a_ssys_cd'],
relation = {"source": {"ssys_id": currentNode['a_ssys_id'],
"mdl_name": currentNode['a_mdl_name'],
"tab_eng_name": currentNode['a_tab_eng_name'],
"fld_eng_name": currentNode['a_fld_eng_name']},
"target": {'ssys_cd': currentNode['b_ssys_cd'],
"target": {'ssys_id': currentNode['b_ssys_id'],
'mdl_name': currentNode['b_mdl_name'],
'tab_eng_name': currentNode['b_tab_eng_name'],
'fld_eng_name': currentNode['b_fld_eng_name']},
"endArrow": False}
else:
relation = {"source": {"ssys_cd": currentNode['a_ssys_cd'],
relation = {"source": {"ssys_id": currentNode['a_ssys_id'],
"mdl_name": currentNode['a_mdl_name'],
"tab_eng_name": currentNode['a_tab_eng_name'],
"fld_eng_name": currentNode['a_fld_eng_name']},
"target": {'ssys_cd': currentNode['b_ssys_cd'],
"target": {'ssys_id': currentNode['b_ssys_id'],
'mdl_name': currentNode['b_mdl_name'],
'tab_eng_name': currentNode['b_tab_eng_name'],
'fld_eng_name': currentNode['b_fld_eng_name']},
"endArrow": True} if \
currentNode['father'] == 'A' else {
"source": {'ssys_cd': currentNode['b_ssys_cd'],
"source": {'ssys_id': currentNode['b_ssys_id'],
'mdl_name': currentNode['b_mdl_name'],
'tab_eng_name': currentNode['b_tab_eng_name'],
'fld_eng_name': currentNode['b_fld_eng_name']},
"target": {"ssys_cd": currentNode['a_ssys_cd'],
"target": {"ssys_id": currentNode['a_ssys_id'],
"mdl_name": currentNode['a_mdl_name'],
"tab_eng_name": currentNode['a_tab_eng_name'],
"fld_eng_name": currentNode['a_fld_eng_name']},
@ -270,7 +270,7 @@ class MetaService:
if currentNode['a_tab_eng_name'] == meta_query.tab_eng_name:
if currentNode['father'] == 'A':
# b为下游,取b字段的下下游
nextNodeList = (await cls.getRelationByColumn(result_db, currentNode['b_ssys_cd'],
nextNodeList = (await cls.getRelationByColumn(result_db, currentNode['b_ssys_id'],
currentNode['b_mdl_name'],
currentNode['b_tab_eng_name'],
currentNode['b_fld_eng_name'],
@ -278,20 +278,20 @@ class MetaService:
'next'))
if nextNodeList and len(nextNodeList) > 0:
for nextNode in nextNodeList:
relation = {"source": {"ssys_cd": nextNode['a_ssys_cd'],
relation = {"source": {"ssys_id": nextNode['a_ssys_id'],
"mdl_name": nextNode['a_mdl_name'],
"tab_eng_name": nextNode['a_tab_eng_name'],
"fld_eng_name": nextNode['a_fld_eng_name']},
"target": {'ssys_cd': nextNode['b_ssys_cd'],
"target": {'ssys_id': nextNode['b_ssys_id'],
'mdl_name': nextNode['b_mdl_name'],
'tab_eng_name': nextNode['b_tab_eng_name'],
'fld_eng_name': nextNode['b_fld_eng_name']},
"endArrow": True} if nextNode['father'] == 'A' else \
{"source": {'ssys_cd': nextNode['b_ssys_cd'],
{"source": {'ssys_id': nextNode['b_ssys_id'],
'mdl_name': nextNode['b_mdl_name'],
'tab_eng_name': nextNode['b_tab_eng_name'],
'fld_eng_name': nextNode['b_fld_eng_name']},
"target": {"ssys_cd": nextNode['a_ssys_cd'],
"target": {"ssys_id": nextNode['a_ssys_id'],
"mdl_name": nextNode['a_mdl_name'],
"tab_eng_name": nextNode['a_tab_eng_name'],
"fld_eng_name": nextNode['a_fld_eng_name']},
@ -300,7 +300,7 @@ class MetaService:
relationList.append(relation)
if currentNode['father'] == 'B':
# b为上游, 取b字段的上上游
preNodeList = await cls.getRelationByColumn(result_db, currentNode['b_ssys_cd'],
preNodeList = await cls.getRelationByColumn(result_db, currentNode['b_ssys_id'],
currentNode['b_mdl_name'],
currentNode['b_tab_eng_name'],
currentNode['b_fld_eng_name'],
@ -308,20 +308,20 @@ class MetaService:
'pre')
if preNodeList and len(preNodeList) > 0:
for preNode in preNodeList:
relation = {"source": {"ssys_cd": preNode['a_ssys_cd'],
relation = {"source": {"ssys_id": preNode['a_ssys_id'],
"mdl_name": preNode['a_mdl_name'],
"tab_eng_name": preNode['a_tab_eng_name'],
"fld_eng_name": preNode['a_fld_eng_name']},
"target": {'ssys_cd': preNode['b_ssys_cd'],
"target": {'ssys_id': preNode['b_ssys_id'],
'mdl_name': preNode['b_mdl_name'],
'tab_eng_name': preNode['b_tab_eng_name'],
'fld_eng_name': preNode['b_fld_eng_name']},
"endArrow": True} if preNode['father'] == 'A' else \
{"source": {'ssys_cd': preNode['b_ssys_cd'],
{"source": {'ssys_id': preNode['b_ssys_id'],
'mdl_name': preNode['b_mdl_name'],
'tab_eng_name': preNode['b_tab_eng_name'],
'fld_eng_name': preNode['b_fld_eng_name']},
"target": {"ssys_cd": preNode['a_ssys_cd'], "mdl_name": preNode['a_mdl_name'],
"target": {"ssys_id": preNode['a_ssys_id'], "mdl_name": preNode['a_mdl_name'],
"tab_eng_name": preNode['a_tab_eng_name'],
"fld_eng_name": preNode['a_fld_eng_name']},
"endArrow": True}
@ -329,7 +329,7 @@ class MetaService:
if currentNode['b_tab_eng_name'] == meta_query.tab_eng_name:
if currentNode['father'] == 'A':
# a 为上游,取a字段的上上游
preNodeList = await cls.getRelationByColumn(result_db, currentNode['a_ssys_cd'],
preNodeList = await cls.getRelationByColumn(result_db, currentNode['a_ssys_id'],
currentNode['a_mdl_name'],
currentNode['a_tab_eng_name'],
currentNode['a_fld_eng_name'],
@ -337,49 +337,49 @@ class MetaService:
'pre')
if preNodeList and len(preNodeList) > 0:
for preNode in preNodeList:
relation = {"source": {"ssys_cd": preNode['a_ssys_cd'],
relation = {"source": {"ssys_id": preNode['a_ssys_id'],
"mdl_name": preNode['a_mdl_name'],
"tab_eng_name": preNode['a_tab_eng_name'],
"fld_eng_name": preNode['a_fld_eng_name']},
"target": {'ssys_cd': preNode['b_ssys_cd'],
"target": {'ssys_id': preNode['b_ssys_id'],
'mdl_name': preNode['b_mdl_name'],
'tab_eng_name': preNode['b_tab_eng_name'],
'fld_eng_name': preNode['b_fld_eng_name']},
"endArrow": True} if \
preNode['father'] == 'A' else {
"source": {'ssys_cd': preNode['b_ssys_cd'],
"source": {'ssys_id': preNode['b_ssys_id'],
'mdl_name': preNode['b_mdl_name'],
'tab_eng_name': preNode['b_tab_eng_name'],
'fld_eng_name': preNode['b_fld_eng_name']},
"target": {"ssys_cd": preNode['a_ssys_cd'], "mdl_name": preNode['a_mdl_name'],
"target": {"ssys_id": preNode['a_ssys_id'], "mdl_name": preNode['a_mdl_name'],
"tab_eng_name": preNode['a_tab_eng_name'],
"fld_eng_name": preNode['a_fld_eng_name']},
"endArrow": True}
relationList.append(relation)
if currentNode['father'] == 'B':
# a 为下游,取a字段的下下游
nextNodeList = await cls.getRelationByColumn(result_db, currentNode['a_ssys_cd'],
nextNodeList = await cls.getRelationByColumn(result_db, currentNode['a_ssys_id'],
currentNode['a_mdl_name'],
currentNode['a_tab_eng_name'],
currentNode['a_fld_eng_name'],
meta_query.type,
'next')
for nextNode in nextNodeList:
relation = {"source": {"ssys_cd": nextNode['a_ssys_cd'],
relation = {"source": {"ssys_id": nextNode['a_ssys_id'],
"mdl_name": nextNode['a_mdl_name'],
"tab_eng_name": nextNode['a_tab_eng_name'],
"fld_eng_name": nextNode['a_fld_eng_name']},
"target": {'ssys_cd': nextNode['b_ssys_cd'],
"target": {'ssys_id': nextNode['b_ssys_id'],
'mdl_name': nextNode['b_mdl_name'],
'tab_eng_name': nextNode['b_tab_eng_name'],
'fld_eng_name': nextNode['b_fld_eng_name']},
"endArrow": True} if \
nextNode['father'] == 'A' else {
"source": {'ssys_cd': nextNode['b_ssys_cd'],
"source": {'ssys_id': nextNode['b_ssys_id'],
'mdl_name': nextNode['b_mdl_name'],
'tab_eng_name': nextNode['b_tab_eng_name'],
'fld_eng_name': nextNode['b_fld_eng_name']},
"target": {"ssys_cd": nextNode['a_ssys_cd'], "mdl_name": nextNode['a_mdl_name'],
"target": {"ssys_id": nextNode['a_ssys_id'], "mdl_name": nextNode['a_mdl_name'],
"tab_eng_name": nextNode['a_tab_eng_name'],
"fld_eng_name": nextNode['a_fld_eng_name']},
"endArrow": True}
@ -391,38 +391,38 @@ class MetaService:
hasSourceTable = False
hasTargetTable = False
for tab in tableList:
if tab['ssys_cd'] == relation['source']['ssys_cd'] and tab['mdl_name'] == \
if tab['ssys_id'] == relation['source']['ssys_id'] and tab['mdl_name'] == \
relation['source']['mdl_name'] and tab['tab_eng_name'] == \
relation['source']['tab_eng_name']:
hasSourceTable = True
if tab['ssys_cd'] == relation['target']['ssys_cd'] and tab['mdl_name'] == \
if tab['ssys_id'] == relation['target']['ssys_id'] and tab['mdl_name'] == \
relation['target']['mdl_name'] and tab['tab_eng_name'] == \
relation['target']['tab_eng_name']:
hasTargetTable = True
if not hasSourceTable:
tableList.append({"ssys_cd": relation['source']['ssys_cd'],
tableList.append({"ssys_id": relation['source']['ssys_id'],
"mdl_name": relation['source']['mdl_name'],
"tab_eng_name": relation['source']['tab_eng_name']})
if not hasTargetTable:
tableList.append({"ssys_cd": relation['target']['ssys_cd'],
tableList.append({"ssys_id": relation['target']['ssys_id'],
"mdl_name": relation['target']['mdl_name'],
"tab_eng_name": relation['target']['tab_eng_name']})
else:
tableList.append({"ssys_cd": relation['source']['ssys_cd'],
tableList.append({"ssys_id": relation['source']['ssys_id'],
"mdl_name": relation['source']['mdl_name'],
"tab_eng_name": relation['source']['tab_eng_name']})
tableList.append({"ssys_cd": relation['target']['ssys_cd'],
tableList.append({"ssys_id": relation['target']['ssys_id'],
"mdl_name": relation['target']['mdl_name'],
"tab_eng_name": relation['target']['tab_eng_name']})
if len(tableList) > 0:
for table in tableList:
query_object = MetaColObject()
query_object.ssys_cd = table['ssys_cd']
query_object.ssys_id = table['ssys_id']
query_object.mdl_name = table['mdl_name']
query_object.tab_name = table['tab_eng_name']
meta_result = await MetaDao.get_meta_col_name_list(result_db, query_object)
result = CamelCaseUtil.transform_result(meta_result)
tableCnName = await MetaDao.get_meta_table_cn_name(result_db, table['ssys_cd'], table['mdl_name'],
tableCnName = await MetaDao.get_meta_table_cn_name(result_db, table['ssys_id'], table['mdl_name'],
table['tab_eng_name'])
table['tab_cn_name'] = tableCnName
table['column'] = result
@ -433,21 +433,21 @@ class MetaService:
return result
@classmethod
async def getRelationByTable(cls, result_db: AsyncSession, ssys_cd: str, mdl_name: str,
async def getRelationByTable(cls, result_db: AsyncSession, ssys_id: int, mdl_name: str,
tab_eng_name: str, rel_type: str):
if rel_type == 'op':
currentNodeList = await MetaDao.get_op_relation_by_table(result_db, ssys_cd, mdl_name, tab_eng_name)
currentNodeList = await MetaDao.get_op_relation_by_table(result_db, ssys_id, mdl_name, tab_eng_name)
return currentNodeList
if rel_type == 'er':
currentNodeList = await MetaDao.get_er_relation_by_table(result_db, ssys_cd, mdl_name, tab_eng_name)
currentNodeList = await MetaDao.get_er_relation_by_table(result_db, ssys_id, mdl_name, tab_eng_name)
return currentNodeList
return None
@classmethod
async def getRelationByColumn(cls, result_db: AsyncSession, ssys_cd: str, mdl_name: str,
async def getRelationByColumn(cls, result_db: AsyncSession, ssys_id: int, mdl_name: str,
tab_eng_name: str, fld_eng_name: str, rel_type: str, module: str):
col = {
'ssys_cd': ssys_cd,
'ssys_id': ssys_id,
'mdl_name': mdl_name,
'tab_eng_name': tab_eng_name,
'fld_eng_name': fld_eng_name
@ -462,7 +462,7 @@ class MetaService:
@classmethod
async def getMetaProc(cls, result_db: AsyncSession, meta_query: MetaProcQueryObject):
result = await MetaDao.get_proc_by_table(result_db, meta_query.ssys_cd, meta_query.mdl_name,
result = await MetaDao.get_proc_by_table(result_db, meta_query.ssys_id, meta_query.mdl_name,
meta_query.tab_eng_name)
return result
@ -473,38 +473,38 @@ class MetaService:
if bloodRelations is not None and len(bloodRelations) > 0:
for blood in bloodRelations:
if len(tableList) > 0:
exists1 = any(item["ssys_cd"].lower() == blood.targetSysCd.lower()
exists1 = any(item["ssys_id"] == blood.targetSysId
and item["mdl_name"].lower() == blood.targetMdlName.lower()
and item["tab_eng_name"].lower() == blood.targetTableName.lower()
for item in tableList)
if not exists1:
tableList.append({"ssys_cd": blood.targetSysCd.lower(),
tableList.append({"ssys_id": blood.targetSysId,
"mdl_name": blood.targetMdlName.lower(),
"tab_eng_name": blood.targetTableName.lower()})
exists2 = any(item["ssys_cd"].lower() == blood.sourceSysCd.lower()
exists2 = any(item["ssys_id"] == blood.sourceSysId
and item["mdl_name"].lower() == blood.sourceMdlName.lower()
and item["tab_eng_name"].lower() == blood.sourceTableName.lower()
for item in tableList)
if not exists2:
tableList.append({"ssys_cd": blood.sourceSysCd.lower(),
tableList.append({"ssys_id": blood.sourceSysId,
"mdl_name": blood.sourceMdlName.lower(),
"tab_eng_name": blood.sourceTableName.lower()})
else:
tableList.append({"ssys_cd": blood.targetSysCd.lower(),
tableList.append({"ssys_id": blood.targetSysId,
"mdl_name": blood.targetMdlName.lower(),
"tab_eng_name": blood.targetTableName.lower()})
tableList.append({"ssys_cd": blood.sourceSysCd.lower(),
tableList.append({"ssys_id": blood.sourceSysId,
"mdl_name": blood.sourceMdlName.lower(),
"tab_eng_name": blood.sourceTableName.lower()})
if len(tableList) > 0:
for table in tableList:
query_object = MetaColObject()
query_object.ssys_cd = table['ssys_cd']
query_object.ssys_id = table['ssys_id']
query_object.mdl_name = table['mdl_name']
query_object.tab_name = table['tab_eng_name']
meta_result = await MetaDao.get_meta_col_name_list(result_db, query_object)
result1 = CamelCaseUtil.transform_result(meta_result)
tableCnName = await MetaDao.get_meta_table_cn_name(result_db, table['ssys_cd'], table['mdl_name'],
tableCnName = await MetaDao.get_meta_table_cn_name(result_db, table['ssys_id'], table['mdl_name'],
table['tab_eng_name'])
table['tab_cn_name'] = tableCnName
table['column'] = result1

17
vue-fastapi-frontend/src/api/metadataConfig/metadataConfig.js

@ -206,6 +206,15 @@ export function getBusiLabelList(data) {
})
}
// 获取业务标签列表(分页)
export function getColOpTypeLabelList(data) {
return request({
url: '/default-api/metadataConfig/colOpTypeLabel/list',
method: 'get',
params: data
})
}
// 新增业务标签
export function addBusiLabel(data) {
return request({
@ -239,14 +248,6 @@ export function getBusiLabelDetail(onum) {
method: 'get'
})
}
// 获取操作标签列表(分页)
export function getDataopLabelList(data) {
return request({
url: '/default-api/metadataConfig/dataopLabel/list',
method: 'get',
params: data
})
}
// 新增操作标签
export function addDataopLabel(data) {

6
vue-fastapi-frontend/src/views/meta/metaInfo/bloodRelation.vue

@ -653,7 +653,7 @@ watch(
for (let i = 0; i < props.data.tableList.length; i++) {
let table = props.data.tableList[i]
let g6Tab = {
id: table.ssys_cd+"-"+table.mdl_name+"-"+table.tab_eng_name,
id: table.ssys_id+"-"+table.mdl_name+"-"+table.tab_eng_name,
label: table.tab_eng_name + ((table.tab_cn_name && table.tab_cn_name.length>0)?"("+table.tab_cn_name+")":""),
attrs:[],
collapsed:true
@ -670,8 +670,8 @@ watch(
for (let i = 0; i < props.data.relation.length; i++) {
let relation = props.data.relation[i]
let key = relation.targetColName.toLowerCase()
let tableKey = relation.sourceSysCd.toLowerCase()+"-"+relation.sourceMdlName.toLowerCase()+"-"+relation.sourceTableName.toLowerCase()
let nodeId = relation.targetSysCd.toLowerCase()+"-"+relation.targetMdlName.toLowerCase()+"-"+relation.targetTableName.toLowerCase()
let tableKey = relation.sourceSysId+"-"+relation.sourceMdlName.toLowerCase()+"-"+relation.sourceTableName.toLowerCase()
let nodeId = relation.targetSysId+"-"+relation.targetMdlName.toLowerCase()+"-"+relation.targetTableName.toLowerCase()
if (g6data.value.length > 0){
for (let j = 0; j < g6data.value.length; j++) {
if (g6data.value[j].id === tableKey){

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

@ -758,7 +758,7 @@
const data = reactive({
queryParams:{
ssysCd:'',
ssysId:'',
mdlName:'',
tabName:'',
colName:'',
@ -772,6 +772,7 @@
tabEngName:'',
tabCnName:'',
ssysCd:'',
ssysId:-1,
mdlName:'',
tabCrrctName:'',
tabDesc:'',
@ -863,19 +864,11 @@
}
}
function remoteStddict(){
let param = {ssysCd:""}
let dbList = databaseList.value[0].children;
for (let i = 0; i < dbList.length; i++) {
if (currentMetaData.value.ssysCd.toUpperCase() === dbList[i].name.toUpperCase()){
param.ssysCd = dbList[i].id + ""
}
}
if (param.ssysCd !== ""){
let param = {ssysCd:currentMetaData.value.ssysId + ""}
listStdDictNoPage(param).then(res=>{
stddictOptions.value = res.data
})
}
}
function remoteSecLvl(){
listMetadataSecOptions().then(res=>{
secLvlOptions.value = res.data
@ -883,7 +876,7 @@
}
function generateDemoData(){
let param ={
dataAstSrc: currentMetaData.value.ssysCd,
dataAstSrc: currentMetaData.value.ssysId,
dataAstEngName:currentMetaData.value.mdlName+"."+currentMetaData.value.tabEngName
}
getMetaSecurityData(param).then(res=>{
@ -894,7 +887,7 @@
function changeBusinessOption(){
loadingBusiness.value = true;
let data = {
ssysCd: currentMetaData.value.ssysCd,
ssysId: currentMetaData.value.ssysId,
mdlName: currentMetaData.value.mdlName,
tabEngName: currentMetaData.value.tabEngName,
type: businessOptionSelect.value
@ -1236,6 +1229,7 @@
tabEngName: tableData.tabEngName,
tabCnName: tableData.tabCnName,
ssysCd: tableData.ssysCd,
ssysId: tableData.ssysId,
mdlName:tableData.mdlName,
tabCrrctName:tableData.tabCrrctName,
tabDesc:tableData.tabDesc,
@ -1245,7 +1239,7 @@
}
let columnData = {
tabName: row.tabEngName,
ssysCd: row.ssysCd,
ssysId: row.ssysId,
mdlName: row.mdlName
}
getColumnList(columnData).then(res=>{
@ -1305,7 +1299,7 @@
drawer.value = true
changedColumns.value = []
let param = {
ssysCd: currentMetaData.value.ssysCd,
ssysId: currentMetaData.value.ssysId,
mdlName: currentMetaData.value.mdlName,
tabEngName: currentMetaData.value.tabEngName
}
@ -1313,7 +1307,7 @@
if(res.data.length >0){
let dbList = databaseList.value[0].children;
for (let i = 0; i < dbList.length; i++) {
if (currentMetaData.value.ssysCd.toUpperCase() === dbList[i].name.toUpperCase()){
if (currentMetaData.value.ssysId === dbList[i].id){
dbType.value = dbList[i].type
}
}
@ -1341,7 +1335,7 @@
}
function resetQuery(){
queryParams.value ={
ssysCd:'',
ssysId:'',
mdlName:'',
tabName:'',
colName:'',
@ -1386,8 +1380,15 @@
function getList(){
getMetaDataList(queryParams.value).then(res=>{
dataList.value = res.data.rows
let dbList = databaseList.value[0].children
console.log(dataList.value[0].ssysId)
if (dataList.value.length>0){
for (let i = 0; i < dataList.value.length; i++) {
for (let j = 0; j < dbList.length; j++) {
if (dataList.value[i].ssysId === dbList[j].id){
dataList.value[i].ssysCd = dbList[j].name
}
}
let batchTabClas = dataList.value[i].batchTabClas
let tabClas =[]
if (dataList.value[i].tabClas && dataList.value[i].tabClas !== '[]'){
@ -1496,7 +1497,7 @@
dataAstType: row.tabType,
dataAstStat: '1',
dataAstDesc:'',
dataAstSrc: row.ssysCd,
dataAstSrc: row.ssysId,
astNo: row.extractOnum,
dataAstClas: JSON.stringify(row.batchTabClas),
showTabClas: row.showTabClas,
@ -1512,7 +1513,7 @@
return data.name.indexOf(value) !== -1;
};
function handleNodeClick(data) {
queryParams.value.ssysCd = data.name;
queryParams.value.ssysId = data.id;
handleQuery();
}
watch(database, val => {
@ -1520,7 +1521,7 @@
});
function submit(){
let data = {
ssysCd: currentMetaData.value.ssysCd,
ssysId: currentMetaData.value.ssysId,
mdlName: currentMetaData.value.mdlName,
tabEngName: currentMetaData.value.tabEngName,
tabCrrctName: currentMetaData.value.tabCrrctName,
@ -1556,8 +1557,8 @@
function cancel(){
drawer.value = false
}
onMounted(()=>{
getDatabaseList()
onMounted(async () => {
await getDatabaseList()
handleQuery()
})

262
vue-fastapi-frontend/src/views/metadataConfig/metaclas/index.vue

@ -3,8 +3,8 @@
<el-row :gutter="10" class="mb8">
<el-form :inline="true" :model="queryForm">
<el-form-item label="归属系统">
<el-select v-model="queryForm.ssysCd" placeholder="请选择系统" clearable allow-create filterable style="width: 180px">
<el-option v-for="item in dsSysList" :key="item.id" :label="item.name" :value="item.name" />
<el-select v-model="queryForm.ssysId" placeholder="请选择系统" clearable allow-create filterable style="width: 180px">
<el-option v-for="item in dsSysList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="模式名">
@ -16,9 +16,8 @@
</el-form-item>
</el-form>
</el-row>
<el-divider content-position="center" ><span style=" font-size: 18px; font-weight: bold; ">值类型参数调整</span></el-divider>
<el-tabs v-model="activeTab" type="border-card" class="full-height-tabs">
<el-tab-pane label="值类型参数调整" name="valueType">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="openAddDialog1">新增</el-button>
@ -30,7 +29,6 @@
<el-button type="danger" plain icon="Delete" :disabled="selectedRows1.length === 0" @click="deleteSelected1">删除</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="configList1" @selection-change="handleSelectionChange1" style="width: 100%" height="400" border stripe>
<el-table-column type="selection" width="55" />
<el-table-column prop="datatype" label="值类型" />
@ -38,9 +36,8 @@
<el-table-column prop="updBy" label="更新人" />
<el-table-column prop="updTime" label="更新时间" />
</el-table>
<el-divider content-position="center" ><span style=" font-size: 18px; font-weight: bold; ">业务类型参数调整</span></el-divider>
</el-tab-pane>
<el-tab-pane label="业务类型参数调整" name="businessType">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="openAddDialog2">新增</el-button>
@ -52,7 +49,6 @@
<el-button type="danger" plain icon="Delete" :disabled="selectedRows2.length === 0" @click="deleteSelected2">删除</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="configList2" @selection-change="handleSelectionChange2" style="width: 100%" height="400" border stripe>
<el-table-column type="selection" width="55" />
<el-table-column prop="regexName" label="业务类型" />
@ -61,61 +57,32 @@
<el-table-column prop="updBy" label="更新人" />
<el-table-column prop="updTime" label="更新时间" />
</el-table>
<el-divider content-position="center" ><span style=" font-size: 18px; font-weight: bold; ">字段处理类型参数调整</span></el-divider>
<div style="margin-bottom: 10px">
<span style="display: inline-block; font-size: 14px; font-weight: bold; margin-bottom: 4px">唯一类型数值类判定条件</span>
<el-form :inline="true" :model="form3" size="medium">
<el-form-item label="空值率小于">
<el-input v-model="form3.config1" style="width: 100px" />
</el-form-item>
<el-form-item label="值长度方差小于">
<el-input v-model.number="form3.config2" style="width: 100px" />
</el-form-item>
<el-form-item label="重复率大于">
<el-input v-model.number="form3.config3" style="width: 100px" />
</el-form-item>
</el-form>
</div>
<div style="margin-bottom: 10px">
<span style="display: inline-block; font-size: 14px; font-weight: bold; margin-bottom: 4px">唯一类型非数值类判定条件</span>
<el-form :inline="true" :model="form3" size="medium">
<el-form-item label="重复率大于">
<el-input v-model.number="form3.config4" style="width: 100px" />
</el-form-item>
</el-form>
</div>
<div style="border-top: 1px dashed #999; margin: 10px 0;"></div>
<div style="margin-bottom: 10px">
<span style="display: inline-block; font-size: 14px; font-weight: bold; margin-bottom: 4px">忽略类型数值类判断条件</span>
<el-form :inline="true" :model="form3" size="medium">
<el-form-item label="空值率大于">
<el-input v-model.number="form3.config5" style="width: 100px" />
</el-form-item>
</el-form>
</div>
<div style="margin-bottom: 10px">
<span style="display: inline-block; font-size: 14px; font-weight: bold; margin-bottom: 4px">忽略类型其他判断条件</span>
<el-form :inline="true" :model="form3" size="medium">
<el-form-item label="平均值长大于">
<el-input v-model.number="form3.config6" style="width: 100px" />
</el-form-item>
<el-form-item >
<el-button type="primary" @click="submitForm3">保存</el-button>
</el-form-item>
</el-form>
</div>
</el-tab-pane>
<el-tab-pane label="字段处理类型参数调整" name="columnType">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="openAddDialog3">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="Edit" :disabled="selectedRows3.length !== 1" @click="openEditDialog3(selectedRows3[0])">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="Delete" :disabled="selectedRows3.length === 0" @click="deleteSelected3">删除</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="configList3" @selection-change="handleSelectionChange3" style="width: 100%" height="400" border stripe>
<el-table-column type="selection" width="55" />
<el-table-column prop="opType" label="处理类型" />
<el-table-column prop="colType" label="字段类型" />
<el-table-column prop="colAttr" label="字段属性" />
<el-table-column prop="ratio" label="阈值" />
<el-table-column prop="updBy" label="更新人" />
<el-table-column prop="updTime" label="更新时间" />
</el-table>
</el-tab-pane>
</el-tabs>
<el-dialog :title="title" v-model="open1" width="500px" append-to-body :before-close="handleClose1">
<el-form ref="clasFormRef1" :model="form1" :rules="rules1" label-width="120px" size="medium">
<el-form ref="clasFormRef1" :model="form1" :rules="rules1" label-width="120px" >
<el-form-item label="值类型" prop="datatype">
<el-input v-model="form1.datatype" autocomplete="off" />
</el-form-item>
@ -146,6 +113,34 @@
<el-button type="primary" @click="submitForm2">保存</el-button>
</template>
</el-dialog>
<el-dialog :title="title" v-model="open3" width="500px" append-to-body :before-close="handleClose3">
<el-form ref="clasFormRef3" :model="form3" :rules="rules3" label-width="120px">
<el-form-item label="处理类型" prop="opType">
<el-input v-model="form3.opType" autocomplete="off" />
</el-form-item>
<el-form-item label="字段类型" prop="regexPattern">
<el-input v-model="form3.colType" autocomplete="off" />
</el-form-item>
<el-form-item label="字段属性" prop="regexPattern">
<el-input v-model="form3.colAttr" autocomplete="off" />
</el-form-item>
<el-form-item label="阈值" prop="ratio">
<el-input v-model.number="form3.ratio" autocomplete="off" />
</el-form-item>
<el-form-item label="所属系统" prop="ssysId">
<el-select v-model="form3.ssysId" placeholder="请选择系统" clearable allow-create filterable style="width: 350px">
<el-option v-for="item in dsSysList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="所属模式" prop="mdlName">
<el-input v-model="form3.mdlName" autocomplete="off" />
</el-form-item>
</el-form>
<template #footer>
<el-button @click="open3 = false">取消</el-button>
<el-button type="primary" @click="submitForm3">保存</el-button>
</template>
</el-dialog>
</div>
</template>
@ -161,29 +156,34 @@ import {
deleteBusiLabel,
editBusiLabel,
addBusiLabel,
getBusiLabelList,
deleteDataopLabel,
editDataopLabel,
addDataopLabel,
getDataopLabelList,
getBusiLabelList
getColOpTypeLabelList,
} from "@/api/metadataConfig/metadataConfig";
import useUserStore from '@/store/modules/user'; //
const userStore = useUserStore(); //
const dsSysList = userStore.dsSysList; // 访
const queryForm = reactive({
ssysCd: "*",
mdlName: "*",
ssysId: undefined,
mdlName: "",
});
const activeTab = ref('valueType');
const configList1 = ref([]); //
const configList2 = ref([]); //
const configList3 = ref([]); //
const loading = ref(false);
const open1 = ref(false); //
const open2 = ref(false); //
const open3 = ref(false); //
const title = ref("");
const clasFormRef1 = ref(null); // formRef
const clasFormRef2 = ref(null); // formRef
const clasFormRef3 = ref(null); // formRef
const form1 = reactive({
datatype: "",
@ -195,13 +195,12 @@ const form2 = reactive({
ratio: null,
});
const form3 = reactive({
config1: null,
config2: null,
config3: null,
config4: null,
config5: null,
config6: null,
config7: null,
opType: "",
colType: "",
colAttr: "",
ssysId: undefined,
mdlName: "",
ratio: null,
});
const rules1 = {
@ -213,9 +212,16 @@ const rules2 = {
regexPattern: [{ required: true, message: "请输入正则表达式", trigger: "blur" }],
ratio: [{ required: true, message: "请输入阈值", trigger: "blur" }],
};
const rules3 = {
opType: [{ required: true, message: "请输入处理类型", trigger: "blur" }],
colType: [{ required: true, message: "请输入字段类型", trigger: "blur" }],
colAttr: [{ required: true, message: "请输入字段属", trigger: "blur" }],
ratio: [{ required: true, message: "请输入阈值", trigger: "blur" }],
};
const selectedRows1 = ref([]);
const selectedRows2 = ref([]);
const selectedRows3 = ref([]);
function handleSelectionChange1(val) {
selectedRows1.value = val;
@ -223,6 +229,9 @@ function handleSelectionChange1(val) {
function handleSelectionChange2(val) {
selectedRows2.value = val;
}
function handleSelectionChange3(val) {
selectedRows3.value = val;
}
async function getList1() {
loading.value = true;
@ -248,16 +257,20 @@ async function getList2() {
}
}
async function getList3() {
const res = await getDataopLabelList(queryForm);
Object.assign(form3, res.data);
loading.value = true;
try {
const res = await getColOpTypeLabelList(queryForm);
configList3.value = res.data || [];
} catch (error) {
ElMessage.error("获取字段处理类型列表失败");
} finally {
loading.value = false;
}
}
function resetQuery() {
queryForm.ssysCd = "*";
queryForm.mdlName = "*";
queryForm.ssysId = undefined;
queryForm.mdlName = "";
getList1();
getList2();
getList3();
@ -289,7 +302,7 @@ function openEditDialog1(row) {
function submitForm1() {
clasFormRef1.value.validate(async (valid) => {
if (!valid) return;
const submitData = { ...form1,ssysCd:queryForm.ssysCd,mdlName:queryForm.mdlName };
const submitData = { ...form1,ssysId:queryForm.ssysId,mdlName:queryForm.mdlName };
try {
if (title.value.includes("新增")) {
await addDatatypeLabel(submitData);
@ -305,17 +318,6 @@ function submitForm1() {
}
});
}
async function submitForm3() {
const submitData = { ...form3,ssysCd:queryForm.ssysCd,mdlName:queryForm.mdlName };
try {
await addDataopLabel(submitData);
ElMessage.success("编辑成功");
} catch (error) {
ElMessage.error("操作失败,请重试");
}
}
function deleteSelected1() {
if (selectedRows1.value.length === 0) {
ElMessage.warning("请至少选择一条记录删除");
@ -353,6 +355,18 @@ function openAddDialog2() {
});
open2.value = true;
}
function openAddDialog3() {
title.value = "新增字段处理类型参数";
Object.assign(form3, {
opType: "",
colType: "",
colAttr: "",
ssysId: queryForm.ssysId,
mdlName: queryForm.mdlName,
ratio: null,
});
open3.value = true;
}
function openEditDialog2(row) {
if (!row) {
@ -364,10 +378,20 @@ function openEditDialog2(row) {
open2.value = true;
}
function openEditDialog3(row) {
if (!row) {
ElMessage.warning("请选择一条记录进行编辑");
return;
}
title.value = "编辑字段处理类型参数";
Object.assign(form3, row);
open3.value = true;
}
function submitForm2() {
clasFormRef2.value.validate(async (valid) => {
if (!valid) return;
const submitData = { ...form2,ssysCd:queryForm.ssysCd,mdlName:queryForm.mdlName};
const submitData = { ...form2,ssysId:queryForm.ssysId,mdlName:queryForm.mdlName};
try {
if (title.value.includes("新增")) {
await addBusiLabel(submitData);
@ -383,6 +407,25 @@ function submitForm2() {
}
});
}
function submitForm3() {
clasFormRef3.value.validate(async (valid) => {
if (!valid) return;
const submitData = { ...form3};
try {
if (title.value.includes("新增")) {
await addDataopLabel(submitData);
ElMessage.success("新增成功");
} else {
await editDataopLabel(submitData);
ElMessage.success("编辑成功");
}
open3.value = false;
await getList3();
} catch {
ElMessage.error("操作失败,请重试");
}
});
}
function deleteSelected2() {
if (selectedRows2.value.length === 0) {
@ -406,11 +449,38 @@ function deleteSelected2() {
});
}
function deleteSelected3() {
if (selectedRows3.value.length === 0) {
ElMessage.warning("请至少选择一条记录删除");
return;
}
ElMessageBox.confirm(
`确定删除选中的 ${selectedRows3.value.length} 条字段处理类型参数吗?`,
"提示",
{ type: "warning" }
).then(async () => {
try {
for (const row of selectedRows3.value) {
await deleteDataopLabel(row.onum);
}
ElMessage.success("删除成功");
getList3();
} catch {
ElMessage.error("删除失败,请重试");
}
});
}
function handleClose2(done) {
clasFormRef2.value.resetFields();
done();
}
function handleClose3(done) {
clasFormRef3.value.resetFields();
done();
}
onMounted(() => {
getList1();
getList2();

Loading…
Cancel
Save