首次上传
This commit is contained in:
commit
04f7349a1e
19190 files changed
+2414744
No files matched your search
@@ -0,0 +1,94 @@
|
||||
from PDAPI import *
|
||||
import TempLateAPI.GERP.API.FormAPI.FormData as FormData
|
||||
from Utils.Models import GERPUser, GERPRole, GERPPermission, GERPDept
|
||||
|
||||
|
||||
_cache = {}
|
||||
|
||||
|
||||
def _get_display_map(table, model, uuid_col, name_field):
|
||||
result = {}
|
||||
items = db.session.query(model).all()
|
||||
for item in items:
|
||||
try:
|
||||
if isinstance(uuid_col, str):
|
||||
uuid_bytes = getattr(item, uuid_col, None)
|
||||
else:
|
||||
uuid_bytes = uuid_col(item)
|
||||
uuid_str = str(uuid.UUID(bytes=uuid_bytes)) if isinstance(uuid_bytes, bytes) else str(uuid_bytes)
|
||||
name = getattr(item, name_field, None)
|
||||
if name:
|
||||
result[uuid_str] = name
|
||||
except:
|
||||
pass
|
||||
return result
|
||||
|
||||
|
||||
def _ensure_cache():
|
||||
global _cache
|
||||
if _cache:
|
||||
return
|
||||
_cache["User"] = _get_display_map("User", GERPUser, "UserUUID", "UserName")
|
||||
_cache["Role"] = _get_display_map("Role", GERPRole, "RoleUUID", "RoleName")
|
||||
_cache["Permission"] = _get_display_map("Permission", GERPPermission, "PermUUID", "PermName")
|
||||
_cache["Dept"] = _get_display_map("Dept", GERPDept, "DeptUUID", "DeptName")
|
||||
|
||||
|
||||
__metadata__ = {
|
||||
"route": "{DEFAULT_ROUTE}",
|
||||
"methods": ["GET"],
|
||||
"blueprint": "GERP",
|
||||
"permission": 1.0,
|
||||
"attributes": [],
|
||||
}
|
||||
|
||||
|
||||
def HandleRequest(_CleanedData):
|
||||
_ensure_cache()
|
||||
|
||||
table_configs = FormData.TABLE_CODE_DISPLAY
|
||||
|
||||
translations = {
|
||||
"zh_CN": {},
|
||||
"en_US": {}
|
||||
}
|
||||
|
||||
for table_name, fields in table_configs.items():
|
||||
for field_name, config in fields.items():
|
||||
key_prefix = f"{table_name}.{field_name}"
|
||||
value_field = config.get("valueField", "id")
|
||||
label_field = config.get("labelField", "name")
|
||||
|
||||
ref_table = None
|
||||
ref_map = None
|
||||
if value_field == "UserUUID" or field_name == "UserUUID":
|
||||
ref_table = "User"
|
||||
elif value_field == "RoleUUID" or field_name == "RoleUUID":
|
||||
ref_table = "Role"
|
||||
elif value_field == "PermUUID" or field_name == "PermUUID":
|
||||
ref_table = "Permission"
|
||||
elif value_field == "DeptUUID" or field_name == "DeptUUID":
|
||||
ref_table = "Dept"
|
||||
|
||||
if ref_table and ref_table in _cache:
|
||||
ref_map = _cache[ref_table]
|
||||
|
||||
if ref_map:
|
||||
for uuid_val, name in ref_map.items():
|
||||
translations["zh_CN"][f"{key_prefix}.{uuid_val}"] = name
|
||||
translations["en_US"][f"{key_prefix}.{uuid_val}"] = name
|
||||
|
||||
enum_labels = FormData.TABLE_ENUM_LABELS
|
||||
enum_translations = {}
|
||||
for table_name, fields in enum_labels.items():
|
||||
for field_name, value_map in fields.items():
|
||||
key_prefix = f"{table_name}.{field_name}"
|
||||
for val, label in value_map.items():
|
||||
enum_translations[f"{key_prefix}.{val}"] = label
|
||||
|
||||
return {
|
||||
"code": 0,
|
||||
"translations": translations,
|
||||
"cache": _cache,
|
||||
"enumLabels": enum_translations,
|
||||
}, 200
|
||||
Reference in new issue
Block a user