diff --git a/data_chain/apps/app.py b/data_chain/apps/app.py index f8cd6fa6ec140263874bbb5f6cddb7e2ca35ddb9..4d9f7f6713a118fe674d6dba772a08ed0df08301 100644 --- a/data_chain/apps/app.py +++ b/data_chain/apps/app.py @@ -1,4 +1,8 @@ # Copyright (c) Huawei Technologies Co., Ltd. 2023-2024. All rights reserved. +import warnings +# 过滤 APScheduler 中 pkg_resources 弃用警告 +warnings.filterwarnings('ignore', message='pkg_resources is deprecated', category=UserWarning) + from typing import Annotated from fastapi import APIRouter, Depends, Query, Body, HTTPException from fastapi.exceptions import RequestValidationError @@ -136,6 +140,11 @@ async def startup_event(): async def add_acitons(): for action in actions: + # 先检查action是否已存在,避免重复插入 + existing_action = await RoleManager.get_action_by_action(action['action']) + if existing_action: + continue + action_entity = ActionEntity( action=action['action'], name=action['name'][LanguageType.CHINESE], @@ -145,6 +154,11 @@ async def add_acitons(): async def add_knowledge_base(): + # 先检查知识库是否已存在,避免重复插入 + existing_kb = await KnowledgeBaseManager.get_knowledge_base_by_kb_id(DEFAULT_DOC_TYPE_ID) + if existing_kb: + return + knowledge_base_entity = KnowledgeBaseEntity( id=DEFAULT_DOC_TYPE_ID, default_parse_method=ParseMethod.OCR.value @@ -153,6 +167,11 @@ async def add_knowledge_base(): async def add_document_type(): + # 先检查文档类型是否已存在,避免重复插入 + existing_doc_type = await DocumentTypeManager.get_document_type_by_id(DEFAULT_DOC_TYPE_ID) + if existing_doc_type: + return + document_type_entity = DocumentTypeEntity( id=DEFAULT_DOC_TYPE_ID, name="default", diff --git a/data_chain/apps/service/team_service.py b/data_chain/apps/service/team_service.py index 7ee4671d3a5e100c1d12d1e65f9805b5e9381fdd..cdb2e02ee2efca30a9c50bc9c107096f158e03bc 100644 --- a/data_chain/apps/service/team_service.py +++ b/data_chain/apps/service/team_service.py @@ -87,7 +87,6 @@ class TeamService: team_entites_myjoined = await TeamManager.list_team_myjoined_by_user_sub_and_team_ids(user_sub, team_ids) team_ids_myjoined = [ team_entity.id for team_entity in team_entites_myjoined] - logging.error(team_ids_myjoined) team_entities_mycreated = await TeamManager.list_team_mycreated_by_user_sub_and_team_ids(user_sub, team_ids) team_ids_mycreated = [ team_entity.id for team_entity in team_entities_mycreated] diff --git a/data_chain/manager/role_manager.py b/data_chain/manager/role_manager.py index 26bb5564bffeeb88826b5db8e718008502d74601..dd7b7ac666c082fbcb0e90da265f353750e94a7c 100644 --- a/data_chain/manager/role_manager.py +++ b/data_chain/manager/role_manager.py @@ -93,6 +93,20 @@ class RoleManager: logging.exception("[RoleManager] %s", err) raise e + @staticmethod + async def get_action_by_action(action: str) -> ActionEntity: + """根据action获取操作""" + try: + async with await DataBase.get_session() as session: + stmt = select(ActionEntity).where(ActionEntity.action == action) + result = await session.execute(stmt) + action_entity = result.scalars().first() + return action_entity + except Exception as e: + err = "根据action获取操作失败" + logging.warning("[RoleManager] %s: %s", err, e) + return None + @staticmethod async def get_user_role_by_user_sub_and_team_id( user_sub: str, team_id: uuid.UUID) -> UserRoleEntity: