diff --git a/vue-fastapi-backend/module_admin/entity/do/datastd_do.py b/vue-fastapi-backend/module_admin/entity/do/datastd_do.py
index 10eaf5a..6e0c821 100644
--- a/vue-fastapi-backend/module_admin/entity/do/datastd_do.py
+++ b/vue-fastapi-backend/module_admin/entity/do/datastd_do.py
@@ -49,6 +49,7 @@ class DataStdCodeAppr(Base):
changeType = Column(String(10), default=None, comment='变更类型')
flowId = Column(String(50), default=None, comment='审批Id')
oldInstId = Column(String(50), default=None, comment='原始正式id')
+ oldParentId = Column(String(50), default=None, comment='原始正式id')
compareId = Column(String(50), default=None, comment='原始数据id(用于对比差异)')
approStatus = Column(String(10), default=None,
comment='审批状态(waiting,申请中,pending审核中,succeed,rejected已审核,canceled已取消)')
diff --git a/vue-fastapi-backend/module_admin/entity/vo/datastd_vo.py b/vue-fastapi-backend/module_admin/entity/vo/datastd_vo.py
index 7198cd0..672f3a2 100644
--- a/vue-fastapi-backend/module_admin/entity/vo/datastd_vo.py
+++ b/vue-fastapi-backend/module_admin/entity/vo/datastd_vo.py
@@ -37,6 +37,7 @@ class DataStdCodeApprModel(DataStdCodeModel):
changeType: Optional[str] = Field(default=None, description='变更类型')
flowId: Optional[str] = Field(default=None, description='审批Id')
oldInstId: Optional[str] = Field(default=None, description='原始正式id')
+ oldParentId: Optional[str] = Field(default=None, description='正式父id')
compareId: Optional[str] = Field(default=None, description='原始数据id(用于对比差异)')
approStatus: Optional[str] = Field(default=None,
description='审批状态(waiting,申请中,pending审核中,succeed,rejected已审核,canceled已取消)')
diff --git a/vue-fastapi-backend/module_admin/service/approval_service.py b/vue-fastapi-backend/module_admin/service/approval_service.py
index e19fc82..afd91b8 100644
--- a/vue-fastapi-backend/module_admin/service/approval_service.py
+++ b/vue-fastapi-backend/module_admin/service/approval_service.py
@@ -215,16 +215,18 @@ class ApprovalService:
change_type = appr_model.changeType
if operateType == 'succeed':
+
if change_type == "add":
main_model = DataStdCodeModel(**appr_model.model_dump(exclude_unset=True, by_alias=True))
-
+ main_model.parent_id = appr_model.oldParentId
await DataStdDao.add_std_code(result_db, main_model)
elif change_type == "update":
# 使用 oldInstId 作为主键
main_model = DataStdCodeModel(**appr_model.model_dump(exclude_unset=True, by_alias=True))
-
+ main_model.parent_id = appr_model.oldParentId
main_model.onum = appr_model.oldInstId
+
await DataStdDao.update_std_code(result_db, main_model.model_dump(exclude_unset=True))
elif change_type == "delete":
diff --git a/vue-fastapi-backend/module_admin/service/data_asset_service.py b/vue-fastapi-backend/module_admin/service/data_asset_service.py
index 8372b68..f59e3ae 100644
--- a/vue-fastapi-backend/module_admin/service/data_asset_service.py
+++ b/vue-fastapi-backend/module_admin/service/data_asset_service.py
@@ -5,6 +5,7 @@ from exceptions.exception import ServiceException
from typing import Dict, Any, List
from utils.common_util import export_list2excel
+import json
class DataAssetService:
"""
@@ -183,7 +184,9 @@ class DataAssetService:
# 处理状态字段
cleaned_item["dataAstStat"] = "有效" if cleaned_item.get("dataAstStat") == "有效" else "废弃"
-
+ cleaned_item["dataAstClas"] = format_asset_tags(
+ cleaned_item.get("dataAstClas")
+ )
# 按mapping_dict的键顺序构建数据
mapped_item = {
mapping_dict[key]: cleaned_item.get(key, "")
@@ -192,4 +195,34 @@ class DataAssetService:
new_data.append(mapped_item)
# 直接调用export_list2excel,只传入数据参数
- return export_list2excel(new_data)
\ No newline at end of file
+ return export_list2excel(new_data)
+ import json
+
+def format_asset_tags(value):
+ """
+ 将资产标签转为:clasName:clasValue,clasName:clasValue
+ """
+ if not value:
+ return ""
+
+ # 如果是字符串,尝试反序列化
+ if isinstance(value, str):
+ try:
+ value = json.loads(value)
+ except Exception:
+ return value # 非 JSON,直接原样返回
+
+ # 如果不是 list,直接返回字符串
+ if not isinstance(value, list):
+ return str(value)
+
+ result = []
+ for item in value:
+ if not isinstance(item, dict):
+ continue
+ name = item.get("clasName", "")
+ val = item.get("clasValue", "")
+ if name or val:
+ result.append(f"{name}:{val}")
+
+ return ",".join(result)
diff --git a/vue-fastapi-backend/module_admin/service/datastd_service.py b/vue-fastapi-backend/module_admin/service/datastd_service.py
index 0bea0fd..f4a6def 100644
--- a/vue-fastapi-backend/module_admin/service/datastd_service.py
+++ b/vue-fastapi-backend/module_admin/service/datastd_service.py
@@ -427,7 +427,7 @@ class DataStdService:
item.upd_time = datetime.now()
item.src_sys = '公司级' if 'company' == item.cd_type else item.src_sys
item.parent_id = appr_model.onum # 设置父级 ID
-
+
# 校验代码项是否已存在于正式表中
if not await cls.check_code_unique_services(query_db, item):
raise ServiceException(message=f'代码项{item.cd_no}已经存在于正式表中,无法新增')
@@ -439,7 +439,8 @@ class DataStdService:
item_appr_model.oldInstId = item.onum
item_appr_model.approStatus = "waiting"
item_appr_model.flowId = appr_model.flowId # 使用相同的 Flow ID
-
+ item_appr_model.oldParentId = item.parent_id
+
await DataStdDao.add_std_code_appr(query_db, item_appr_model)
# 创建审批申请
@@ -562,6 +563,7 @@ class DataStdService:
item_appr_model.changeType = "update"
item_appr_model.compareId = last_item_appr.onum
item_appr_model.parent_id = appr_model.onum
+ item_appr_model.oldParentId = item.parent_id
item_appr_model.oldInstId = item.onum
item_appr_model.approStatus = "waiting"
item_appr_model.flowId = appr_model.flowId
@@ -584,6 +586,7 @@ class DataStdService:
item_appr_model.approStatus = "waiting"
item_appr_model.flowId = appr_model.flowId
item_appr_model.parent_id = appr_model.onum
+ item_appr_model.oldParentId = item.parent_id
await DataStdDao.add_std_code_appr(query_db, item_appr_model)
for old_item in code_item_list_old:
@@ -598,7 +601,7 @@ class DataStdService:
delete_appr_model.flowId = appr_model.flowId
delete_appr_model.onum = str(uuid.uuid4())
delete_appr_model.parent_id = appr_model.onum
-
+ delete_appr_model.oldParentId = item.onum
delete_appr_model.create_by = current_user.user.user_name
delete_appr_model.create_time = datetime.now()
@@ -2288,6 +2291,7 @@ class DataStdService:
parent_appr.flowId = batch_flow_id
await DataStdDao.add_std_code_appr(query_db, parent_appr)
parent_appr_onum = parent_appr.onum
+ Old_parent_appr_onum = exist_parent.onum
else:
# 父级新增审批
parent_model.onum = str(uuid.uuid4())
@@ -2302,7 +2306,7 @@ class DataStdService:
parent_appr.flowId = batch_flow_id
await DataStdDao.add_std_code_appr(query_db, parent_appr)
parent_appr_onum = parent_appr.onum
-
+ Old_parent_appr_onum = parent_appr.onum
# 处理代码项(组内每行)
for row_idx, row in group.iterrows():
row_display = int(row_idx) + 2
@@ -2343,6 +2347,7 @@ class DataStdService:
item_appr.compareId = last_item_appr.onum if last_item_appr else item_model.onum
item_appr.oldInstId = item_model.onum
item_appr.parent_id = parent_appr_onum
+ item_appr.oldParentId = Old_parent_appr_onum
item_appr.approStatus = "waiting"
item_appr.flowId = batch_flow_id
await DataStdDao.add_std_code_appr(query_db, item_appr)
@@ -2357,6 +2362,7 @@ class DataStdService:
item_appr.compareId = item_model.onum
item_appr.oldInstId = item_model.onum
item_appr.parent_id = parent_appr_onum
+ item_appr.oldParentId = Old_parent_appr_onum
item_appr.approStatus = "waiting"
item_appr.flowId = batch_flow_id
await DataStdDao.add_std_code_appr(query_db, item_appr)
diff --git a/vue-fastapi-frontend/src/views/dataAsset/assetDetail/index.vue b/vue-fastapi-frontend/src/views/dataAsset/assetDetail/index.vue
index 85f2bb1..9dceb68 100644
--- a/vue-fastapi-frontend/src/views/dataAsset/assetDetail/index.vue
+++ b/vue-fastapi-frontend/src/views/dataAsset/assetDetail/index.vue
@@ -33,10 +33,14 @@
-
+
+
+
-
+
+
+ {{ parseTime(scope.row.dataAstUpdTime) }}
+
+
@@ -498,7 +506,7 @@ const handleDelete = (row) => {
}
const handleExport = () => {
- proxy.download("/default-api/system/dataAsset/export", {
+ proxy.download("/system/dataAsset/export", {
...queryParams.value,
}, `dataAsset_${new Date().getTime()}.xlsx`);
}
@@ -525,7 +533,11 @@ const handleSelectionChange = (selection) => {
// });
const dataAstType_list = computed(() => {
- return ['表', '报表','其他应用'];
+ return [
+ { label: '表', value: 'TABLE' },
+ { label: '报表', value: '报表' },
+ { label: '其他应用', value: '其他应用' }
+ ];
});
diff --git a/vue-fastapi-frontend/src/views/meta/metasercurity/MetaSecurityCol.vue b/vue-fastapi-frontend/src/views/meta/metasercurity/MetaSecurityCol.vue
index 54c9fb6..d89e085 100644
--- a/vue-fastapi-frontend/src/views/meta/metasercurity/MetaSecurityCol.vue
+++ b/vue-fastapi-frontend/src/views/meta/metasercurity/MetaSecurityCol.vue
@@ -46,8 +46,8 @@
-
-
+
+
搜索
@@ -111,7 +111,7 @@
/>
-
+
{{ getUserName(scope.row.objValue) }}
@@ -230,7 +230,7 @@
>
-
+
-
-
+
+
搜索
@@ -113,7 +113,7 @@
/>
-
+
{{ getUserName(scope.row.objValue) }}
@@ -220,7 +220,7 @@
>
-
+