From 551445db2d56d4a6cfba7f5aeba429566a73be64 Mon Sep 17 00:00:00 2001 From: "si@aidatagov.com" Date: Fri, 18 Jul 2025 01:23:39 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=AE=E9=A2=98=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module_admin/dao/metadata_config_dao.py | 9 ++++++++- .../service/metadata_config_service.py | 17 ++++++++++++++--- .../meta/metasercurity/MetaSecurityRow.vue | 2 ++ .../views/metadataConfig/bizConfig/index.vue | 1 + .../src/views/metadataConfig/sec/index.vue | 7 +++---- 5 files changed, 28 insertions(+), 8 deletions(-) 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 > +