Browse Source

代码提交

master
si@aidatagov.com 4 weeks ago
parent
commit
1e1ef209d7
  1. 6
      vue-fastapi-backend/module_admin/dao/datastd_dao.py
  2. 33
      vue-fastapi-backend/module_admin/dao/metadata_config_dao.py
  3. 4
      vue-fastapi-backend/module_admin/entity/do/meta_do.py
  4. 2
      vue-fastapi-backend/module_admin/service/metadata_config_service.py
  5. 4
      vue-fastapi-frontend/src/views/metadataConfig/sec/index.vue

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

@ -83,9 +83,11 @@ class DataStdDao:
.select_from(c1)
.outerjoin(c2, c1.code_map_id == c2.onum)
.where(*filters)
.order_by(desc(c1.create_time))
)
if query_object.parent_id:
query = query.order_by(c1.cd_no)
else:
query = query.order_by(desc(c1.create_time))
# 分页处理
result = await PageUtil.paginate(
db, query, query_object.page_num, query_object.page_size, is_page

33
vue-fastapi-backend/module_admin/dao/metadata_config_dao.py

@ -14,6 +14,7 @@ from utils.page_util import PageUtil
from module_admin.entity.vo.data_ast_content_vo import DataCatalogPageQueryModel, DeleteDataCatalogModel, \
DataCatalogChild
from sqlalchemy import delete, select, update, desc, or_, not_, and_
from exceptions.exception import ServiceException,ServiceWarning
class MetadataConfigDao:
"""
@ -106,6 +107,8 @@ class MetadataConfigDao:
@classmethod
async def get_metadata_sec_list(cls, db: AsyncSession, query_object, is_page: bool = False):
query = select(MetadataSec).where(
MetadataSec.sec_level_summary.like(
f"%{query_object.sec_level_summary}%") if query_object.sec_level_summary else True,
MetadataSec.sec_level_name.like(
f"%{query_object.sec_level_name}%") if query_object.sec_level_name else True,
MetadataSec.sec_eff_flag == query_object.sec_eff_flag if query_object.sec_eff_flag else True,
@ -502,35 +505,43 @@ class MetadataConfigDao:
async def add_catalog_dao(cls, db: AsyncSession, catalog1: dict, catalog2: dict):
"""
新增目录数据库操作
:param db: orm对象
:param catalog: 目录对象
:return:
"""
# === 先校验是否重名 ===
stmt = (
select(DataAstContent)
.where(
DataAstContent.supr_content_onum == catalog1.get("supr_content_onum"),
DataAstContent.content_name == catalog1.get("content_name")
)
)
result = await db.execute(stmt)
exists = result.scalars().first() # 只取第一条,不管有几条
if exists:
raise ServiceException(f"同一父节点下已存在名称为 {catalog1.get('content_name')} 的目录")
# === 新增父目录 ===
db_catalog = DataAstContent(**catalog1)
db.add(db_catalog)
await db.flush()
# 处理子关系(统一转换为 ORM 模型)
# === 处理子关系 ===
for child in catalog2.get('children', []):
# 如果是 Pydantic 模型实例,先转换为字典
if isinstance(child, DataCatalogChild):
child_dict = child.model_dump()
elif isinstance(child, dict):
child_dict = child
else:
raise TypeError("不支持的子关系数据类型")
# 创建 ORM 模型实例
processed_child = dict(child_dict)
processed_child['content_onum'] = db_catalog.content_onum
db_child = DataAstContentRela(**processed_child)
db.add(db_child)
await db.flush()
return db_catalog
@classmethod
async def edit_catalog_leaf_dao(cls, db: AsyncSession, catalog: dict):
"""

4
vue-fastapi-backend/module_admin/entity/do/meta_do.py

@ -1,4 +1,4 @@
from sqlalchemy import Column, Float, Integer, String, Text, DateTime, Boolean, ForeignKey, UniqueConstraint, Index, \
from sqlalchemy import Column, Float, Integer,BigInteger, String, Text, DateTime, Boolean, ForeignKey, UniqueConstraint, Index, \
text
from config.database import Base
from datetime import datetime
@ -78,7 +78,7 @@ class MetadataClas(Base):
"""
__tablename__ = 't_metadata_clas'
clas_onum = Column(Integer, primary_key=True, comment='分类编号')
clas_onum = Column(BigInteger, primary_key=True, comment='分类编号')
# clas_pri_clas = Column(String(50, collation='utf8_general_ci'), comment='一级分类')
# clas_scd_clas = Column(String(50, collation='utf8_general_ci'), comment='二级分类')
clas_tmpl = Column(String(200, collation='utf8_general_ci'), comment='标签模板')

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

@ -1053,7 +1053,7 @@ class MetadataConfigService:
child["rela_eff_end_date"] = datetime(year=2999, month=12, day=31, hour=0, minute=0, second=0).strftime("%Y-%m-%d %H:%M:%S"), # 设置默认值,2999-12-31
child["upd_prsn"] = request.upd_prsn,
child["rela_status"] = "1"
# 校验contentName在同一个节点下不重复
new_catalog = await MetadataConfigDao.add_catalog_dao(query_db, catalog_data1, catalog_data2)
await query_db.commit()
return CrudResponseModel(is_success=True, message='新增成功', data=new_catalog)

4
vue-fastapi-frontend/src/views/metadataConfig/sec/index.vue

@ -2,8 +2,8 @@
<div class="app-container">
<el-row :gutter="10" class="mb8">
<el-form :inline="true" :model="queryForm" >
<el-form-item label="唯一编号">
<el-input v-model="queryForm.onum" placeholder="请输入唯一编号" clearable />
<el-form-item label="等级简称">
<el-input v-model="queryForm.secLevelSummary" placeholder="请输入等级简称" clearable />
</el-form-item>
<el-form-item label="等级名称">
<el-input v-model="queryForm.secLevelName" placeholder="请输入等级名称" clearable />

Loading…
Cancel
Save