|
|
@ -22,6 +22,8 @@ from module_admin.service.config_service import ConfigService |
|
|
|
import requests |
|
|
|
import pandas as pd |
|
|
|
from config.env import AppConfig |
|
|
|
from config.enums import RedisInitKeyConfig |
|
|
|
|
|
|
|
class DataStdService: |
|
|
|
""" |
|
|
|
数据源标准服务层 |
|
|
@ -1551,36 +1553,108 @@ class DataStdService: |
|
|
|
"tableData": table_data, |
|
|
|
"children": children |
|
|
|
} |
|
|
|
# @classmethod |
|
|
|
# async def get_code_map_list2(cls, request: Request, query_db: AsyncSession, id: str): |
|
|
|
|
|
|
|
# check_model = DataStdDictModel() |
|
|
|
# dataStdNo=await DataStdDao.get_std_main_by_id(query_db, id) |
|
|
|
# cd_type=dataStdNo.src_sys |
|
|
|
# check_model.data_std_no=dataStdNo.onum |
|
|
|
# hasDict = await request.app.state.redis.get(f'{RedisInitKeyConfig.SYS_CONFIG.key}:sys.std.dict') |
|
|
|
# # 字典 |
|
|
|
# main_list = await DataStdDao.get_data_dict_list_by_info(query_db, check_model) |
|
|
|
# # 元数据 |
|
|
|
# meta_list = await DataStdDao.get_meta_field_list_by_onum(query_db, dataStdNo.onum) |
|
|
|
|
|
|
|
# if not main_list: |
|
|
|
# return { "children": []} # 如果 A 表没有数据,返回空结构 |
|
|
|
|
|
|
|
# table_data = [] # 存储表格数据 |
|
|
|
# children = [] # 存储图谱数据 |
|
|
|
|
|
|
|
# for main in main_list: |
|
|
|
# # 组织图谱数据(A 表作为父节点) |
|
|
|
# node = { |
|
|
|
# "id": f"node_{main.onum}", # 使用 get() 方法访问字段 |
|
|
|
# "name": main.data_dict_cn_name, # 使用 get() 方法访问字段 |
|
|
|
# "label": main.data_dict_eng_name, # 使用 get() 方法访问字段 |
|
|
|
# "rate": 1.0, |
|
|
|
# "status": "B", |
|
|
|
# # "currency": main.get('dataStdNo'), # 使用 get() 方法访问字段 |
|
|
|
# "variableValue": "数据字典", |
|
|
|
# "variableUp": True, |
|
|
|
# "children": [], |
|
|
|
# } |
|
|
|
|
|
|
|
|
|
|
|
# children.append(node) |
|
|
|
|
|
|
|
# return { |
|
|
|
# "tableData": table_data, |
|
|
|
# "children": children |
|
|
|
# } |
|
|
|
@classmethod |
|
|
|
async def get_code_map_list2(cls, query_db: AsyncSession, id: str): |
|
|
|
async def get_code_map_list2(cls, request: Request, query_db: AsyncSession, id: str): |
|
|
|
check_model = DataStdDictModel() |
|
|
|
dataStdNo=await DataStdDao.get_std_main_by_id(query_db, id) |
|
|
|
cd_type=dataStdNo.src_sys |
|
|
|
check_model.data_std_no=dataStdNo.onum |
|
|
|
main_list = await DataStdDao.get_data_dict_list_by_info(query_db, check_model) |
|
|
|
dataStdNo = await DataStdDao.get_std_main_by_id(query_db, id) |
|
|
|
cd_type = dataStdNo.src_sys |
|
|
|
check_model.data_std_no = dataStdNo.onum |
|
|
|
|
|
|
|
if not main_list: |
|
|
|
return { "children": []} # 如果 A 表没有数据,返回空结构 |
|
|
|
# Redis 判断是否有字典层 |
|
|
|
hasDict = await request.app.state.redis.get(f'{RedisInitKeyConfig.SYS_CONFIG.key}:sys.std.dict') |
|
|
|
hasDict = hasDict.decode() if isinstance(hasDict, bytes) else hasDict |
|
|
|
|
|
|
|
table_data = [] # 存储表格数据 |
|
|
|
children = [] # 存储图谱数据 |
|
|
|
|
|
|
|
if hasDict == "是": |
|
|
|
# 获取字典列表 |
|
|
|
main_list = await DataStdDao.get_data_dict_list_by_info(query_db, check_model) |
|
|
|
if not main_list: |
|
|
|
return {"children": []} |
|
|
|
|
|
|
|
for main in main_list: |
|
|
|
# 组织图谱数据(A 表作为父节点) |
|
|
|
node = { |
|
|
|
"id": f"node_{main.onum}", # 使用 get() 方法访问字段 |
|
|
|
"name": main.data_dict_cn_name, # 使用 get() 方法访问字段 |
|
|
|
"label": main.data_dict_eng_name, # 使用 get() 方法访问字段 |
|
|
|
dict_node = { |
|
|
|
"id": f"dict_{main.onum}", |
|
|
|
"name": main.data_dict_cn_name, |
|
|
|
"label": main.data_dict_eng_name, |
|
|
|
"rate": 1.0, |
|
|
|
"status": "B", |
|
|
|
# "currency": main.get('dataStdNo'), # 使用 get() 方法访问字段 |
|
|
|
"variableValue": "数据字典", |
|
|
|
"variableUp": True, |
|
|
|
"children": [], |
|
|
|
} |
|
|
|
|
|
|
|
# 获取该字典的元数据列表 |
|
|
|
meta_list = await DataStdDao.get_meta_field_list_by_onum(query_db, main.onum) |
|
|
|
for meta in meta_list: |
|
|
|
meta_node = { |
|
|
|
"id": f"meta_{meta.onum}", |
|
|
|
"name": meta.fld_desc, |
|
|
|
"label": meta.fld_eng_name+"("+meta.tab_eng_name+")", |
|
|
|
"rate": 1.0, |
|
|
|
"status": "Y", |
|
|
|
"variableValue": "元数据", |
|
|
|
"variableUp": False, |
|
|
|
} |
|
|
|
dict_node["children"].append(meta_node) |
|
|
|
|
|
|
|
children.append(node) |
|
|
|
children.append(dict_node) |
|
|
|
|
|
|
|
else: |
|
|
|
# 获取标准直接挂载的元数据列表 |
|
|
|
meta_list = await DataStdDao.get_meta_field_list_by_onum(query_db, dataStdNo.onum) |
|
|
|
for meta in meta_list: |
|
|
|
meta_node = { |
|
|
|
"id": f"meta_{meta.onum}", |
|
|
|
"name": meta.fld_desc, |
|
|
|
"label": meta.fld_eng_name+"("+meta.tab_eng_name+")", |
|
|
|
"rate": 1.0, |
|
|
|
"status": "Y", |
|
|
|
"variableValue": "元数据", |
|
|
|
"variableUp": False, |
|
|
|
} |
|
|
|
children.append(meta_node) |
|
|
|
|
|
|
|
return { |
|
|
|
"tableData": table_data, |
|
|
|