|
|
@ -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 |
|
|
@ -43,36 +43,54 @@ class MetadataConfigService: |
|
|
|
cls, query_db: AsyncSession, page_object: MetadataClasModel |
|
|
|
): |
|
|
|
""" |
|
|
|
新增元数据分类 |
|
|
|
新增元数据分类,带 clas_onum 主键唯一性校验 |
|
|
|
""" |
|
|
|
try: |
|
|
|
# 校验 clas_onum 是否已存在 |
|
|
|
existing = await MetadataConfigDao.get_clas_by_onum(query_db, page_object.clas_onum) |
|
|
|
if existing: |
|
|
|
raise ServiceException(message=f"主键重复,clas_onum={page_object.clas_onum} 已存在") |
|
|
|
|
|
|
|
await MetadataConfigDao.add_metadata_clas_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_clas_services( |
|
|
|
cls, query_db: AsyncSession, page_object: MetadataClasModel |
|
|
|
): |
|
|
|
""" |
|
|
|
编辑元数据分类 |
|
|
|
编辑元数据分类,包含 clas_onum 唯一性校验(如果主键被修改) |
|
|
|
""" |
|
|
|
edit_data = page_object.model_dump(exclude_unset=True) |
|
|
|
info = await cls.get_metadata_clas_detail_services(query_db, page_object.clas_onum) |
|
|
|
if info.clas_onum: |
|
|
|
try: |
|
|
|
await MetadataConfigDao.edit_metadata_clas_dao(query_db, page_object.clas_onum, edit_data) |
|
|
|
await query_db.commit() |
|
|
|
return CrudResponseModel(is_success=True, message="更新成功") |
|
|
|
except Exception as e: |
|
|
|
await query_db.rollback() |
|
|
|
raise e |
|
|
|
else: |
|
|
|
|
|
|
|
# 当前记录旧主键(假设表单传入) |
|
|
|
original_onum = page_object.original_clas_onum # 你需要在 model 中加上这个字段 |
|
|
|
|
|
|
|
# 查询当前记录是否存在 |
|
|
|
existing = await cls.get_metadata_clas_detail_services(query_db, original_onum) |
|
|
|
if not existing: |
|
|
|
raise ServiceException(message="元数据标签不存在") |
|
|
|
|
|
|
|
|
|
|
|
# 如果修改了 clas_onum,则校验唯一性 |
|
|
|
if page_object.clas_onum != original_onum: |
|
|
|
duplicated = await MetadataConfigDao.get_clas_by_onum(query_db, page_object.clas_onum) |
|
|
|
if duplicated: |
|
|
|
raise ServiceException(message=f"clas_onum={page_object.clas_onum} 已存在,不能重复") |
|
|
|
|
|
|
|
try: |
|
|
|
await MetadataConfigDao.edit_metadata_clas_dao(query_db, original_onum, edit_data) |
|
|
|
await query_db.commit() |
|
|
|
return CrudResponseModel(is_success=True, message="更新成功") |
|
|
|
except Exception as e: |
|
|
|
await query_db.rollback() |
|
|
|
raise e |
|
|
|
|
|
|
|
|
|
|
|
@classmethod |
|
|
|
async def delete_metadata_clas_services( |
|
|
|
cls, query_db: AsyncSession, clas_ids: str |
|
|
@ -121,14 +139,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 +161,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 +175,7 @@ class MetadataConfigService: |
|
|
|
else: |
|
|
|
raise ServiceException(message="数据安全配置不存在") |
|
|
|
|
|
|
|
|
|
|
|
@classmethod |
|
|
|
async def delete_metadata_sec_services(cls, query_db: AsyncSession, onum_list: str): |
|
|
|
""" |
|
|
|