Compare commits

...

2 Commits

Author SHA1 Message Date
xueyinfei 673ef69411 Merge remote-tracking branch 'origin/master' 1 month ago
xueyinfei c1ad000b26 元数据模块bug修复 1 month ago
  1. 207
      vue-fastapi-backend/module_admin/controller/datastd_controller.py
  2. 10
      vue-fastapi-backend/module_admin/dao/datastd_dao.py
  3. 28
      vue-fastapi-backend/module_admin/entity/vo/datastd_vo.py
  4. 5
      vue-fastapi-backend/module_admin/service/datastd_service.py
  5. 2
      vue-fastapi-backend/module_admin/service/meta_service.py
  6. 13
      vue-fastapi-frontend/src/views/meta/metaInfo/index.vue

207
vue-fastapi-backend/module_admin/controller/datastd_controller.py

@ -6,14 +6,18 @@ from config.get_db import get_db
from module_admin.entity.vo.user_vo import CurrentUserModel
from module_admin.annotation.log_annotation import Log
from module_admin.aspect.interface_auth import CheckUserInterfaceAuth
from module_admin.entity.vo.datastd_vo import DataStdCodeModel,DataStdDictApprModel,DataStdCodeApprModel, DataStdCodePageQueryModel, DeleteDataStdModel,DataStdDictModel,DataStdDictPageQueryModel,DataStdMainModel,DataStdMainPageQueryModel,DataStdMainApprModel
from module_admin.entity.vo.datastd_vo import DataStdCodeModel, DataStdDictApprModel, DataStdCodeApprModel, \
DataStdCodePageQueryModel, DeleteDataStdModel, DataStdDictModel, DataStdDictPageQueryModel, DataStdMainModel, \
DataStdMainPageQueryModel, DataStdMainApprModel, StdDictNoPageParam
from module_admin.service.datastd_service import DataStdService
from module_admin.service.login_service import LoginService
from utils.log_util import logger
from utils.page_util import PageResponseModel
from utils.response_util import ResponseUtil
import uuid
from module_admin.entity.vo.data_ast_content_vo import DataCatalogPageQueryModel, DeleteDataCatalogModel,DataCatalogResponseWithChildren,DataAssetCatalogTreeResponse,DataCatalogMovedRequest,DataCatalogMergeRequest,DataCatalogChild,DataCatalogMoverelRequest
from module_admin.entity.vo.data_ast_content_vo import DataCatalogPageQueryModel, DeleteDataCatalogModel, \
DataCatalogResponseWithChildren, DataAssetCatalogTreeResponse, DataCatalogMovedRequest, DataCatalogMergeRequest, \
DataCatalogChild, DataCatalogMoverelRequest
from pydantic_validation_decorator import ValidateFields
from utils.common_util import bytes2file_response
@ -22,7 +26,8 @@ datastdController = APIRouter(prefix='/datastd', dependencies=[Depends(LoginServ
# 标准代码相关API
@datastdController.get(
'/stdcode/code/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:code:list'))]
'/stdcode/code/list', response_model=PageResponseModel,
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:code:list'))]
)
async def get_std_code_list(
request: Request,
@ -31,37 +36,52 @@ async def get_std_code_list(
):
code_page_query_result = await DataStdService.get_std_code_list_services(query_db, code_page_query, is_page=True)
return ResponseUtil.success(model_content=code_page_query_result)
@datastdController.get(
'/stdcode/Appr/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:code:list'))]
'/stdcode/Appr/list', response_model=PageResponseModel,
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:code:list'))]
)
async def get_appr_std_code_list(
request: Request,
code_page_query: DataStdCodePageQueryModel = Depends(DataStdCodePageQueryModel.as_query),
query_db: AsyncSession = Depends(get_db),
):
code_page_query_result = await DataStdService.get_appr_std_code_list_services(query_db, code_page_query, is_page=True)
code_page_query_result = await DataStdService.get_appr_std_code_list_services(query_db, code_page_query,
is_page=True)
return ResponseUtil.success(model_content=code_page_query_result)
@datastdController.get(
'/stdcode/code/maplist', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:code:list'))]
'/stdcode/code/maplist', response_model=PageResponseModel,
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:code:list'))]
)
async def get_std_code_map_list(
request: Request,
code_page_query: DataStdCodePageQueryModel = Depends(DataStdCodePageQueryModel.as_query),
query_db: AsyncSession = Depends(get_db),
):
code_page_query_result = await DataStdService.get_std_code_map_list_services(query_db, code_page_query, is_page=True)
code_page_query_result = await DataStdService.get_std_code_map_list_services(query_db, code_page_query,
is_page=True)
return ResponseUtil.success(model_content=code_page_query_result)
@datastdController.get(
'/stdcode/code/maplist2', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:code:list'))]
'/stdcode/code/maplist2', response_model=PageResponseModel,
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:code:list'))]
)
async def get_std_code_map_list2(
request: Request,
code_page_query: DataStdCodePageQueryModel = Depends(DataStdCodePageQueryModel.as_query),
query_db: AsyncSession = Depends(get_db),
):
code_page_query_result = await DataStdService.get_std_main_map_list_services(query_db, code_page_query, is_page=True)
code_page_query_result = await DataStdService.get_std_main_map_list_services(query_db, code_page_query,
is_page=True)
return ResponseUtil.success(model_content=code_page_query_result)
@datastdController.get('/stdcode/code/listappr', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('datastd:stddict:dict:list'))]
@datastdController.get('/stdcode/code/listappr', response_model=PageResponseModel,
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stddict:dict:list'))]
)
async def get_std_code_appr_list(
request: Request,
@ -71,22 +91,30 @@ async def get_std_code_appr_list(
main_page_query_result = await DataStdService.get_std_code_appr_list(query_db, main_page_query, is_page=True)
logger.info('获取数据标准列表成功')
return ResponseUtil.success(data=main_page_query_result)
@datastdController.get(
'/stdcode/code/{id}', response_model=DataStdCodeModel, dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:code:list'))]
'/stdcode/code/{id}', response_model=DataStdCodeModel,
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:code:list'))]
)
async def query_detail_code(request: Request, id: str, query_db: AsyncSession = Depends(get_db)):
config_detail_result = await DataStdService.code_detail_services(query_db, id)
logger.info(f'获取config_id为{id}的信息成功')
return ResponseUtil.success(data=config_detail_result)
@datastdController.get(
'/stdcode/codeAppr/{id}', response_model=DataStdCodeModel, dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:code:list'))]
'/stdcode/codeAppr/{id}', response_model=DataStdCodeModel,
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:code:list'))]
)
async def query_detail_code_appr(request: Request, id: str, query_db: AsyncSession = Depends(get_db)):
config_detail_result = await DataStdService.code_appr_detail_services(query_db, id)
logger.info(f'获取config_id为{id}的信息成功')
return ResponseUtil.success(data=config_detail_result)
@datastdController.post('/stdcode/code', dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:code:add'))])
@Log(title='代码管理', business_type=BusinessType.INSERT)
async def add_std_code(
@ -95,7 +123,6 @@ async def add_std_code(
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user),
):
add_std_code.create_by = current_user.user.user_name
add_std_code.create_time = datetime.now()
add_std_code.upd_prsn = current_user.user.user_name
@ -120,7 +147,8 @@ async def edit_std_code(
return ResponseUtil.success(msg=edit_std_code_result.message)
@datastdController.delete('/stdcode/code/{ids}', dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:code:remove'))])
@datastdController.delete('/stdcode/code/{ids}',
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:code:remove'))])
@Log(title='代码管理', business_type=BusinessType.DELETE)
async def delete_std_code(
request: Request,
@ -131,7 +159,10 @@ async def delete_std_code(
delete_std_code_result = await DataStdService.delete_std_code_services(request, query_db, delete_std_code)
logger.info(delete_std_code_result.message)
return ResponseUtil.success(msg=delete_std_code_result.message)
@datastdController.delete('/stdcode/codeappr/{ids}', dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:codeWithItems:delete'))])
@datastdController.delete('/stdcode/codeappr/{ids}',
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:codeWithItems:delete'))])
@Log(title='标准代码与代码项管理', business_type=BusinessType.DELETE)
async def delete_std_code_with_items_appr(
request: Request,
@ -144,7 +175,10 @@ async def delete_std_code_with_items_appr(
return ResponseUtil.success(msg="提交删除标准代码审批成功")
except Exception as e:
return ResponseUtil.error(msg=str(e))
@datastdController.post('/stdcode/codeWithItems', dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:codeWithItems:add'))])
@datastdController.post('/stdcode/codeWithItems',
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:codeWithItems:add'))])
@Log(title='标准代码与代码项管理', business_type=BusinessType.INSERT)
async def add_std_code_with_items(
request: Request,
@ -165,7 +199,10 @@ async def add_std_code_with_items(
# 返回响应
logger.info(result.message)
return ResponseUtil.success(msg=result.message)
@datastdController.post('/stdcode/codeWithItems/appr', dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:codeWithItems:add'))])
@datastdController.post('/stdcode/codeWithItems/appr',
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:codeWithItems:add'))])
@Log(title='标准代码与代码项管理', business_type=BusinessType.INSERT)
async def add_std_code_with_items_appr(
request: Request,
@ -182,7 +219,10 @@ async def add_std_code_with_items_appr(
return ResponseUtil.success(msg="标准代码及代码项添加成功,等待审批")
except Exception as e:
return ResponseUtil.error(msg=str(e))
@datastdController.put('/stdcode/codeWithItems', dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:codeWithItems:add'))])
@datastdController.put('/stdcode/codeWithItems',
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:codeWithItems:add'))])
@Log(title='标准代码与代码项管理', business_type=BusinessType.INSERT)
async def edit_std_code_with_items(
request: Request,
@ -203,10 +243,8 @@ async def edit_std_code_with_items(
return ResponseUtil.success(msg=result.message)
@datastdController.put('/stdcode/codeWithItems/appr', dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:codeWithItems:edit'))])
@datastdController.put('/stdcode/codeWithItems/appr',
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:codeWithItems:edit'))])
@Log(title='标准代码与代码项管理', business_type=BusinessType.UPDATE)
async def edit_std_code_with_items_appr(
request: Request,
@ -223,12 +261,11 @@ async def edit_std_code_with_items_appr(
except Exception as e:
return ResponseUtil.error(msg=str(e))
# ----------------------------------------------------------------数据字典----------------------------------------------------------------------------------------------------
# ----------------------------------------------------------------数据字典----------------------------------------------------------------------------------------------------
@datastdController.get('/stddict/dict/listappr', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('datastd:stddict:dict:list'))]
@datastdController.get('/stddict/dict/listappr', response_model=PageResponseModel,
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stddict:dict:list'))]
)
async def get_std_dict_appr_list(
request: Request,
@ -239,8 +276,10 @@ async def get_std_dict_appr_list(
logger.info('获取数据标准列表成功')
return ResponseUtil.success(data=main_page_query_result)
@datastdController.get(
'/stddict/dict/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('datastd:stddict:dict:list'))]
'/stddict/dict/list', response_model=PageResponseModel,
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stddict:dict:list'))]
)
async def get_std_dict_list(
request: Request,
@ -253,11 +292,12 @@ async def get_std_dict_list(
@datastdController.get(
'/stddict/dict/listNoPage', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('datastd:stddict:dict:list'))]
'/stddict/dict/listNoPage', response_model=PageResponseModel,
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stddict:dict:list'))]
)
async def get_std_dict_list_no_page(
request: Request,
query: str,
query: StdDictNoPageParam = Depends(StdDictNoPageParam.as_query),
query_db: AsyncSession = Depends(get_db),
):
dict_page_query_result = await DataStdService.get_std_dict_list_no_page_services(query_db, query)
@ -265,16 +305,17 @@ async def get_std_dict_list_no_page(
return ResponseUtil.success(data=dict_page_query_result)
@datastdController.get(
'/stddict/dict/{id}', response_model=DataStdDictModel, dependencies=[Depends(CheckUserInterfaceAuth('datastd:stddict:dict:list'))]
'/stddict/dict/{id}', response_model=DataStdDictModel,
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stddict:dict:list'))]
)
async def query_detail_dict(request: Request, id: str, query_db: AsyncSession = Depends(get_db)):
config_detail_result = await DataStdService.dict_detail_services(query_db, id)
logger.info(f'获取config_id为{id}的信息成功')
return ResponseUtil.success(data=config_detail_result)
@datastdController.post('/stddict/dict', dependencies=[Depends(CheckUserInterfaceAuth('datastd:stddict:dict:add'))])
@Log(title='数据字典', business_type=BusinessType.INSERT)
async def add_std_dict(
@ -283,7 +324,6 @@ async def add_std_dict(
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user),
):
add_std_dict.create_by = current_user.user.user_name
add_std_dict.create_time = datetime.now()
add_std_dict.upd_prsn = current_user.user.user_name
@ -308,7 +348,8 @@ async def edit_std_dict(
return ResponseUtil.success(msg=edit_std_dict_result.message)
@datastdController.delete('/stddict/dict/{ids}', dependencies=[Depends(CheckUserInterfaceAuth('datastd:stddict:dict:remove'))])
@datastdController.delete('/stddict/dict/{ids}',
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stddict:dict:remove'))])
@Log(title='数据字典', business_type=BusinessType.DELETE)
async def delete_std_dict(
request: Request,
@ -319,15 +360,20 @@ async def delete_std_dict(
delete_std_dict_result = await DataStdService.delete_std_dict_services(request, query_db, delete_std_dict)
logger.info(delete_std_dict_result.message)
return ResponseUtil.success(msg=delete_std_dict_result.message)
# 字典审批接口
@datastdController.get(
'/stddict/dictappr/{id}', response_model=DataStdDictModel, dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdmain:main:list'))]
'/stddict/dictappr/{id}', response_model=DataStdDictModel,
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdmain:main:list'))]
)
async def query_detail_dict_appr(request: Request, id: str, query_db: AsyncSession = Depends(get_db)):
config_detail_result = await DataStdService.get_std_dict_change_by_id(query_db, id)
logger.info(f'获取数据标准ID为{id}的信息成功')
return ResponseUtil.success(data=config_detail_result)
@datastdController.post('/stddict/dictappr', dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdmain:main:add'))])
@Log(title='数据字典', business_type=BusinessType.INSERT)
async def add_std_dict_appr(
@ -343,6 +389,8 @@ async def add_std_dict_appr(
add_std_dict_result = await DataStdService.add_std_dict_appr(query_db, add_std_dict)
logger.info(add_std_dict_result.message)
return ResponseUtil.success(msg=add_std_dict_result.message)
@datastdController.put('/stddict/dictappr', dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdmain:main:edit'))])
@Log(title='数据字典', business_type=BusinessType.UPDATE)
async def edit_std_dict_appr(
@ -356,7 +404,10 @@ async def edit_std_dict_appr(
edit_std_dict_result = await DataStdService.edit_std_dict_appr(query_db, edit_std_dict)
logger.info(edit_std_dict_result.message)
return ResponseUtil.success(msg=edit_std_dict_result.message)
@datastdController.delete('/stddict/dictappr/{id}', dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdmain:main:remove'))])
@datastdController.delete('/stddict/dictappr/{id}',
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdmain:main:remove'))])
@Log(title='数据字典', business_type=BusinessType.DELETE)
async def delete_std_dict_Appr(
request: Request,
@ -367,13 +418,12 @@ async def delete_std_dict_Appr(
logger.info(delete_std_dict_result.message)
return ResponseUtil.success(msg=delete_std_dict_result.message)
# ----------------------------------------------------------------标准目录----------------------------------------------------------------------------------------------------
@datastdController.get(
'/cata/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('system:data_catalog:list'))]
'/cata/list', response_model=PageResponseModel,
dependencies=[Depends(CheckUserInterfaceAuth('system:data_catalog:list'))]
)
async def get_data_catalog_list(
request: Request,
@ -381,20 +431,19 @@ async def get_data_catalog_list(
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user),
):
# 设置字段
user_id = current_user.user.user_id
# 获取分页数据
catalog_page_query_result = await DataStdService.get_catalog_list_services(query_db, catalog_page_query, user_id, is_page=True)
catalog_page_query_result = await DataStdService.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)
@datastdController.get(
'/cata/atree',response_model=DataAssetCatalogTreeResponse,dependencies=[Depends(CheckUserInterfaceAuth('system:data_catalog:atree'))],summary="Data Asset Tree Query"
'/cata/atree', response_model=DataAssetCatalogTreeResponse,
dependencies=[Depends(CheckUserInterfaceAuth('system:data_catalog:atree'))], summary="Data Asset Tree Query"
)
async def get_data_asset_catalog_tree(query_db: AsyncSession = Depends(get_db)):
try:
@ -406,6 +455,7 @@ async def get_data_asset_catalog_tree(query_db: AsyncSession = Depends(get_db)):
logger.error(f"数据资产树获取失败: {str(e)}", exc_info=True)
return ResponseUtil.error(msg="数据查询异常,请联系管理员")
@datastdController.post('/cata', dependencies=[Depends(CheckUserInterfaceAuth('system:data_catalog:add'))])
@ValidateFields(validate_model='add_data_catalog')
@Log(title='标准分类管理', business_type=BusinessType.INSERT)
@ -434,6 +484,7 @@ async def add_data_catalog(
msg=add_result.message
)
@datastdController.put('/cata/edit', dependencies=[Depends(CheckUserInterfaceAuth('system:data_catalog:edit'))])
@ValidateFields(validate_model='edit_data_catalog')
@Log(title='标准分类管理', business_type=BusinessType.UPDATE)
@ -446,7 +497,6 @@ async def edit_data_catalog(
# 设置审计字段
edit_catalog.upd_prsn = current_user.user.user_name
# 调用服务层方法
edit_result = await DataStdService.edit_catalog_child_services(query_db, edit_catalog)
logger.info(edit_result.message)
@ -511,6 +561,7 @@ async def removerel_data_ast_catalog(
# 返回标准化响应
return ResponseUtil.success()
@datastdController.put('/cata/moverel', dependencies=[Depends(CheckUserInterfaceAuth('system:data_catalog:edit'))])
@ValidateFields(validate_model='moverel_data_ast_catalog')
@Log(title='标准分类管理', business_type=BusinessType.UPDATE)
@ -528,20 +579,24 @@ async def moverel_data_ast_catalog(
return ResponseUtil.success()
@datastdController.delete('/cata/{content_onums}', dependencies=[Depends(CheckUserInterfaceAuth('system:data_catalog:remove'))])
@datastdController.delete('/cata/{content_onums}',
dependencies=[Depends(CheckUserInterfaceAuth('system:data_catalog:remove'))])
@Log(title='标准分类管理', business_type=BusinessType.DELETE)
async def delete_data_catalog(request: Request, content_onums: str, query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user),
):
delete_catalog = DeleteDataCatalogModel(content_onums=content_onums)
delete_catalog_result = await DataStdService.delete_catalog_services(query_db, delete_catalog,user_id=current_user.user.user_id)
delete_catalog_result = await DataStdService.delete_catalog_services(query_db, delete_catalog,
user_id=current_user.user.user_id)
logger.info(delete_catalog_result.message)
return ResponseUtil.success(msg=delete_catalog_result.message)
# ----------------------------------------------数据标准--------------------------------------------------------------------------------------------------------------------------
@datastdController.get(
'/stdmain/main/list', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdmain:main:list'))]
'/stdmain/main/list', response_model=PageResponseModel,
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdmain:main:list'))]
)
async def get_std_main_list(
request: Request,
@ -551,8 +606,11 @@ async def get_std_main_list(
main_page_query_result = await DataStdService.get_std_main_list(query_db, main_page_query, is_page=True)
logger.info('获取数据标准列表成功')
return ResponseUtil.success(model_content=main_page_query_result)
@datastdController.get(
'/stdmain/main/listappr', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdmain:main:list'))]
'/stdmain/main/listappr', response_model=PageResponseModel,
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdmain:main:list'))]
)
async def get_std_main_appr_list(
request: Request,
@ -562,8 +620,11 @@ async def get_std_main_appr_list(
main_page_query_result = await DataStdService.get_std_main_appr_list(query_db, main_page_query, is_page=True)
logger.info('获取数据标准列表成功')
return ResponseUtil.success(data=main_page_query_result)
@datastdController.get(
'/stdmain/main/selectlist', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdmain:main:list'))]
'/stdmain/main/selectlist', response_model=PageResponseModel,
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdmain:main:list'))]
)
async def get_std_main_select_list(
request: Request,
@ -574,16 +635,21 @@ async def get_std_main_select_list(
logger.info('获取数据标准列表成功')
return ResponseUtil.success(data=main_query_result)
@datastdController.get(
'/stdmain/main/{id}', response_model=DataStdMainModel, dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdmain:main:list'))]
'/stdmain/main/{id}', response_model=DataStdMainModel,
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdmain:main:list'))]
)
async def query_detail_main(request: Request, id: str, query_db: AsyncSession = Depends(get_db)):
config_detail_result = await DataStdService.get_std_main_by_id(query_db, id)
logger.info(f'获取数据标准ID为{id}的信息成功')
return ResponseUtil.success(data=config_detail_result)
@datastdController.get(
'/stdmain/mainappr/{id}', response_model=DataStdMainModel, dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdmain:main:list'))]
'/stdmain/mainappr/{id}', response_model=DataStdMainModel,
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdmain:main:list'))]
)
async def query_detail_main_appr(request: Request, id: str, query_db: AsyncSession = Depends(get_db)):
config_detail_result = await DataStdService.get_std_main_change_by_id(query_db, id)
@ -608,6 +674,7 @@ async def add_std_main(
logger.info(add_std_main_result.message)
return ResponseUtil.success(msg=add_std_main_result.message)
@datastdController.post('/stdmain/mainAppr', dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdmain:main:add'))])
@Log(title='数据标准', business_type=BusinessType.INSERT)
async def add_std_main_appr(
@ -638,6 +705,8 @@ async def edit_std_main(
edit_std_main_result = await DataStdService.edit_std_main(query_db, edit_std_main)
logger.info(edit_std_main_result.message)
return ResponseUtil.success(msg=edit_std_main_result.message)
@datastdController.put('/stdmain/mainAppr', dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdmain:main:edit'))])
@Log(title='数据标准', business_type=BusinessType.UPDATE)
async def edit_std_main_appr(
@ -652,7 +721,9 @@ async def edit_std_main_appr(
logger.info(edit_std_main_result.message)
return ResponseUtil.success(msg=edit_std_main_result.message)
@datastdController.delete('/stdmain/main/{id}', dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdmain:main:remove'))])
@datastdController.delete('/stdmain/main/{id}',
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdmain:main:remove'))])
@Log(title='数据标准', business_type=BusinessType.DELETE)
async def delete_std_main(
request: Request,
@ -662,7 +733,10 @@ async def delete_std_main(
delete_std_main_result = await DataStdService.delete_std_main(query_db, id)
logger.info(delete_std_main_result.message)
return ResponseUtil.success(msg=delete_std_main_result.message)
@datastdController.delete('/stdmain/mainAppr/{id}', dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdmain:main:remove'))])
@datastdController.delete('/stdmain/mainAppr/{id}',
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdmain:main:remove'))])
@Log(title='数据标准', business_type=BusinessType.DELETE)
async def delete_std_main_Appr(
request: Request,
@ -672,20 +746,27 @@ async def delete_std_main_Appr(
delete_std_main_result = await DataStdService.delete_std_main_Appr(query_db, id)
logger.info(delete_std_main_result.message)
return ResponseUtil.success(msg=delete_std_main_result.message)
@datastdController.put('/stdmain/mainonum', dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdmain:main:remove'))])
@datastdController.put('/stdmain/mainonum',
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdmain:main:remove'))])
@Log(title='数据标准', business_type=BusinessType.DELETE)
async def change_std_main_onum(
request: Request,
edit_std_main: DataStdMainModel,
query_db: AsyncSession = Depends(get_db),
):
delete_std_main_result = await DataStdService.change_std_main_onum(query_db, edit_std_main.onum,edit_std_main.belt_data_std_content)
delete_std_main_result = await DataStdService.change_std_main_onum(query_db, edit_std_main.onum,
edit_std_main.belt_data_std_content)
logger.info(delete_std_main_result.message)
return ResponseUtil.success(msg=delete_std_main_result.message)
# 标准代码映射图谱
@datastdController.get(
'/stdcode/code/mapstdlistOld/{id}', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:code:list'))]
'/stdcode/code/mapstdlistOld/{id}', response_model=PageResponseModel,
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:code:list'))]
)
async def get_code_std_map_list(
request: Request,
@ -698,7 +779,8 @@ async def get_code_std_map_list(
@datastdController.get(
'/stdcode/code/mapstdlist/{id}', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:code:list'))]
'/stdcode/code/mapstdlist/{id}', response_model=PageResponseModel,
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:code:list'))]
)
async def get_code_map_list(
request: Request,
@ -708,8 +790,11 @@ async def get_code_map_list(
code_page_query_result = await DataStdService.get_code_map_list(query_db, id)
logger.info('获取列配置列表成功')
return ResponseUtil.success(data=code_page_query_result)
@datastdController.get(
'/stdcode/code/mapstdlist2/{id}', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:code:list'))]
'/stdcode/code/mapstdlist2/{id}', response_model=PageResponseModel,
dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:code:list'))]
)
async def get_code_map_list2(
request: Request,

10
vue-fastapi-backend/module_admin/dao/datastd_dao.py

@ -1,7 +1,8 @@
from sqlalchemy import delete, select, update, desc,or_,not_
from sqlalchemy.ext.asyncio import AsyncSession
from module_admin.entity.do.datastd_do import DataStdCode,DataStdDict,DataAstContent,DataAstContentRela,DataStdMain,DataStdMainAppr,DataStdDictAppr,DataStdCodeAppr
from module_admin.entity.vo.datastd_vo import DataStdCodeModel,DataStdDictModel,DataStdMainModel,DataStdMainApprModel,DataStdDictApprModel,DataStdCodeApprModel
from module_admin.entity.vo.datastd_vo import DataStdCodeModel, DataStdDictModel, DataStdMainModel, \
DataStdMainApprModel, DataStdDictApprModel, DataStdCodeApprModel, StdDictNoPageParam
from module_admin.entity.do.dept_do import SysDept
from utils.page_util import PageUtil
from sqlalchemy.orm import aliased
@ -400,7 +401,7 @@ class DataStdDao:
return col_list
@classmethod
async def get_std_dict_list_no_page(cls, db: AsyncSession, query: str):
async def get_std_dict_list_no_page(cls, db: AsyncSession, query: StdDictNoPageParam):
"""
获取 DataStdDict 的列表信息支持模糊查询和分页
:param db: ORM对象
@ -411,9 +412,10 @@ class DataStdDao:
# 构建查询条件
filters = []
filters.append(or_(
DataStdDict.data_dict_cn_name.like(f"%{query}%"),
DataStdDict.data_dict_eng_name.like(f"%{query}%")
DataStdDict.data_dict_cn_name.like(f"%{query.queryStr}%"),
DataStdDict.data_dict_eng_name.like(f"%{query.queryStr}%")
))
filters.append(DataStdDict.src_sys == query.ssysCd)
# c1 = aliased(DataStdDict) # 技术部门
# 构建查询语句
query = (

28
vue-fastapi-backend/module_admin/entity/vo/datastd_vo.py

@ -38,7 +38,9 @@ class DataStdCodeApprModel(DataStdCodeModel):
flowId: Optional[str] = Field(default=None, description='审批Id')
oldInstId: Optional[str] = Field(default=None, description='原始正式id')
compareId: Optional[str] = Field(default=None, description='原始数据id(用于对比差异)')
approStatus: Optional[str] = Field(default=None, description='审批状态(waiting,申请中,pending审核中,succeed,rejected已审核,canceled已取消)')
approStatus: Optional[str] = Field(default=None,
description='审批状态(waiting,申请中,pending审核中,succeed,rejected已审核,canceled已取消)')
@as_query
class DataStdCodePageQueryModel(DataStdCodeModel):
@ -56,6 +58,7 @@ class DeleteDataStdModel(BaseModel):
model_config = ConfigDict(alias_generator=to_camel)
ids: str = Field(description='需要删除的参数主键')
class DataStdDictModel(BaseModel):
"""
标准字典表对应Pydantic模型 (Standard Dictionary Table Pydantic Model)
@ -79,6 +82,7 @@ class DataStdDictModel(BaseModel):
data_std_no: Optional[str] = Field(default=None, description='数据标准编号')
data_dict_stat: Optional[str] = Field(default=None, description='字典状态(1:有效 0:无效)')
@as_query
class DataStdDictPageQueryModel(DataStdDictModel):
"""
@ -86,12 +90,17 @@ class DataStdDictPageQueryModel(DataStdDictModel):
"""
page_num: int = Field(default=1, description='当前页码')
page_size: int = Field(default=10, description='每页记录数')
class DataStdDictApprModel(DataStdDictModel):
changeType: Optional[str] = Field(default=None, description='变更类型')
flowId: Optional[str] = Field(default=None, description='审批Id')
oldInstId: Optional[str] = Field(default=None, description='原始正式id')
compareId: Optional[str] = Field(default=None, description='原始数据id(用于对比差异)')
approStatus: Optional[str] = Field(default=None, description='审批状态(waiting,申请中,pending审核中,succeed,rejected已审核,canceled已取消)')
approStatus: Optional[str] = Field(default=None,
description='审批状态(waiting,申请中,pending审核中,succeed,rejected已审核,canceled已取消)')
class DataStdMainModel(BaseModel):
"""
标准代码表对应Pydantic模型 (Standard Code Table Pydantic Model)
@ -121,6 +130,8 @@ class DataStdMainModel(BaseModel):
data_std_src: Optional[str] = Field(default=None, description='标准来源')
data_clas: Optional[str] = Field(default=None, description='数据类别')
typical_fld: Optional[str] = Field(default=None, description='典型字段')
@as_query
class DataStdMainPageQueryModel(DataStdMainModel):
"""
@ -128,9 +139,20 @@ class DataStdMainPageQueryModel(DataStdMainModel):
"""
page_num: int = Field(default=1, description='当前页码')
page_size: int = Field(default=10, description='每页记录数')
@as_query
class StdDictNoPageParam(BaseModel):
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
queryStr: Optional[str] = Field(default=None, description='查询数据字典名称或代码')
ssysCd: Optional[str] = Field(default=None, description='系统名称')
class DataStdMainApprModel(DataStdMainModel):
changeType: Optional[str] = Field(default=None, description='变更类型')
flowId: Optional[str] = Field(default=None, description='审批Id')
oldInstId: Optional[str] = Field(default=None, description='原始正式id')
compareId: Optional[str] = Field(default=None, description='原始数据id(用于对比差异)')
approStatus: Optional[str] = Field(default=None, description='审批状态(waiting,申请中,pending审核中,succeed,rejected已审核,canceled已取消)')
approStatus: Optional[str] = Field(default=None,
description='审批状态(waiting,申请中,pending审核中,succeed,rejected已审核,canceled已取消)')

5
vue-fastapi-backend/module_admin/service/datastd_service.py

@ -3,6 +3,9 @@ from sqlalchemy.ext.asyncio import AsyncSession
from exceptions.exception import ServiceException
from module_admin.dao.datastd_dao import DataStdDao
from module_admin.entity.vo.common_vo import CrudResponseModel
from module_admin.entity.vo.datastd_vo import DataStdCodeModel, DeleteDataStdModel, DataStdDictModel, DataStdMainModel,\
DataStdMainApprModel, DataStdDictApprModel, DataStdCodeApprModel, DataStdCodePageQueryModel, StdDictNoPageParam
from utils.common_util import CamelCaseUtil
from module_admin.entity.vo.datastd_vo import DataStdCodeModel,DeleteDataStdModel,DataStdDictModel,DataStdMainModel,DataStdMainApprModel,DataStdDictApprModel,DataStdCodeApprModel,DataStdCodePageQueryModel
import uuid
from module_admin.entity.vo.approval_vo import ApplyModel
@ -625,7 +628,7 @@ class DataStdService:
return col_list_result
@classmethod
async def get_std_dict_list_no_page_services(cls, query_db: AsyncSession, query: str):
async def get_std_dict_list_no_page_services(cls, query_db: AsyncSession, query: StdDictNoPageParam):
"""
获取列配置列表信息service

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

@ -170,7 +170,7 @@ class MetaService:
fldNullRate=column.fld_null_rate if column else None,
dataDictId=column.data_dict_id if column else None,
recStat=column.rec_stat if column else None,
updTime=column.upd_time if column else None
updTime=column.upd_time.isoformat() if column else None
)
return json.dumps(columnDict)

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

@ -351,7 +351,7 @@
</el-tab-pane>
<el-tab-pane label="血缘关系" name="bloodRelation">
<div style="width: 100%;height: 100%">
<blood-relation :currentTable="currentMetaData" :data="bloodRelation"></blood-relation>
<blood-relation v-if="activeColumnTab === 'bloodRelation'" :currentTable="currentMetaData" :data="bloodRelation"></blood-relation>
</div>
</el-tab-pane>
<el-tab-pane label="存储过程" name="proc">
@ -851,7 +851,14 @@
}
function remoteStddict(query){
if (query !== ""){
let param = {query:query}
let param = {queryStr:query}
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 + ""
}
}
listStdDictNoPage(param).then(res=>{
stddictOptions.value = res.data
})
@ -886,7 +893,7 @@
function changeBloodOption(){
if (procId.value === -1){
proxy.$modal.msgWarning("此表暂无血缘,请执行存储过程跑批任务后查看");
bloodRelation.value = []
bloodRelation.value = {}
}else {
getMetaDataBloodRelship(procId.value).then(res=>{
bloodRelation.value = res.data

Loading…
Cancel
Save