diff --git a/vue-fastapi-backend/module_admin/dao/metadata_config_dao.py b/vue-fastapi-backend/module_admin/dao/metadata_config_dao.py index 4eeba6b..e22b9fe 100644 --- a/vue-fastapi-backend/module_admin/dao/metadata_config_dao.py +++ b/vue-fastapi-backend/module_admin/dao/metadata_config_dao.py @@ -108,7 +108,14 @@ class MetadataConfigDao: db_sec = MetadataSec(**sec.model_dump()) db.add(db_sec) await db.flush() - return db_sec + return db_sec + @classmethod + async def get_by_sec_level_summary(cls, query_db: AsyncSession, sec_level_summary: str, exclude_onum: str = None): + stmt = select(MetadataSec).where(MetadataSec.sec_level_summary == sec_level_summary) + if exclude_onum: + stmt = stmt.where(MetadataSec.onum != exclude_onum) + result = await query_db.execute(stmt) + return result.scalars().first() @classmethod async def edit_metadata_sec_dao(cls, db: AsyncSession, onum: str, update_data: dict): diff --git a/vue-fastapi-backend/module_admin/service/metadata_config_service.py b/vue-fastapi-backend/module_admin/service/metadata_config_service.py index d015c55..1610175 100644 --- a/vue-fastapi-backend/module_admin/service/metadata_config_service.py +++ b/vue-fastapi-backend/module_admin/service/metadata_config_service.py @@ -7,7 +7,7 @@ SecuBizConfigQueryModel,SecuBizPermiConfigModel, SecuBizPermiConfigQueryModel,\ TaskBizConfigAddModel, TaskBizConfigQueryModel,TaskBizConfigModel,TaskBizConfigRelaModel from utils.common_util import CamelCaseUtil from module_admin.entity.do.metadata_config_do import SecuBizConfigRela,TaskBizConfigRela # ORM 类 -from exceptions.exception import ServiceException +from exceptions.exception import ServiceException,ServiceWarning import uuid from module_admin.entity.vo.dataSource_vo import ProcessDefinition,ParmScheduleVo,ProcessInstancePage,ParmSchedule from typing import List @@ -121,14 +121,19 @@ class MetadataConfigService: 新增数据安全配置 """ try: - page_object.onum=str(uuid.uuid4()) + # 校验 secLevelSummary 是否已存在 + existing = await MetadataConfigDao.get_by_sec_level_summary( query_db, page_object.sec_level_summary,page_object.onum) + if existing: + raise ServiceWarning(message=page_object.sec_level_summary+"该等级简称已存在,不能重复") + + page_object.onum = str(uuid.uuid4()) await MetadataConfigDao.add_metadata_sec_dao(query_db, page_object) await query_db.commit() return CrudResponseModel(is_success=True, message="新增成功") except Exception as e: await query_db.rollback() raise e - + @classmethod async def edit_metadata_sec_services(cls, query_db: AsyncSession, page_object: MetadataSecModel): """ @@ -138,6 +143,11 @@ class MetadataConfigService: info = await cls.get_metadata_sec_detail_services(query_db, page_object.onum) if info.onum: try: + # 校验 secLevelSummary 是否重复(排除当前记录) + existing = await MetadataConfigDao.get_by_sec_level_summary( query_db, page_object.sec_level_summary,page_object.onum) + if existing: + raise ServiceWarning(message=page_object.sec_level_summary+"该等级简称已存在,不能重复") + await MetadataConfigDao.edit_metadata_sec_dao(query_db, page_object.onum, edit_data) await query_db.commit() return CrudResponseModel(is_success=True, message="更新成功") @@ -147,6 +157,7 @@ class MetadataConfigService: else: raise ServiceException(message="数据安全配置不存在") + @classmethod async def delete_metadata_sec_services(cls, query_db: AsyncSession, onum_list: str): """ diff --git a/vue-fastapi-frontend/src/views/meta/metasercurity/MetaSecurityRow.vue b/vue-fastapi-frontend/src/views/meta/metasercurity/MetaSecurityRow.vue index e9a5215..3bde4ec 100644 --- a/vue-fastapi-frontend/src/views/meta/metasercurity/MetaSecurityRow.vue +++ b/vue-fastapi-frontend/src/views/meta/metasercurity/MetaSecurityRow.vue @@ -507,6 +507,8 @@ onMounted(() => { getList(); getDeptTree(); getRoleOrUserList(); + changeMetaSecurityObj(form.value.objType); + }); watch(dbResoursName, (val) => { if (val) { diff --git a/vue-fastapi-frontend/src/views/metadataConfig/bizConfig/index.vue b/vue-fastapi-frontend/src/views/metadataConfig/bizConfig/index.vue index 649ada6..98dcd2e 100644 --- a/vue-fastapi-frontend/src/views/metadataConfig/bizConfig/index.vue +++ b/vue-fastapi-frontend/src/views/metadataConfig/bizConfig/index.vue @@ -57,6 +57,7 @@ stripe > +