feat: 统一治理配置与通知责任人映射
This commit is contained in:
@@ -1,91 +1,4 @@
|
||||
from pathlib import Path
|
||||
|
||||
import yaml
|
||||
from django.conf import settings
|
||||
|
||||
|
||||
def _governance_defaults() -> dict:
|
||||
return {
|
||||
"owner_mappings": [
|
||||
{
|
||||
"owner_role": "注册资料负责人",
|
||||
"owner_name": "张三",
|
||||
"department": "注册事务部",
|
||||
"chapter_scope": "CH1",
|
||||
"risk_scope": "字段冲突 / 缺失项",
|
||||
"feishu_user_id": "ou_demo_1",
|
||||
"feishu_open_id": "on_demo_1",
|
||||
"feishu_name": "张三",
|
||||
"notify_enabled": "是",
|
||||
},
|
||||
{
|
||||
"owner_role": "注册申报负责人",
|
||||
"owner_name": "李四",
|
||||
"department": "临床注册组",
|
||||
"chapter_scope": "CH2-CH6",
|
||||
"risk_scope": "完整性风险 / 导出阻断",
|
||||
"feishu_user_id": "ou_demo_2",
|
||||
"feishu_open_id": "on_demo_2",
|
||||
"feishu_name": "李四",
|
||||
"notify_enabled": "是",
|
||||
},
|
||||
],
|
||||
"feishu_configs": [
|
||||
{
|
||||
"config_name": "注册审核完成通知",
|
||||
"notify_reason": "task_completed",
|
||||
"channel": "群机器人",
|
||||
"message_template": "审核完成摘要 + @处理人",
|
||||
"status": "启用",
|
||||
},
|
||||
{
|
||||
"config_name": "注册审核异常通知",
|
||||
"notify_reason": "task_failed",
|
||||
"channel": "群机器人",
|
||||
"message_template": "异常摘要 + @处理人",
|
||||
"status": "启用",
|
||||
},
|
||||
],
|
||||
"template_mappings": [
|
||||
{
|
||||
"template_name": "注册证导出模板",
|
||||
"output_type": "registration_word_export_report",
|
||||
"version": "V1.0",
|
||||
"placeholder_count": 18,
|
||||
"status": "启用",
|
||||
"field_mapping_summary": "产品名称 / 注册人 / 适用机型 / 储存条件",
|
||||
},
|
||||
{
|
||||
"template_name": "风险摘要导出模板",
|
||||
"output_type": "registration_word_export_report",
|
||||
"version": "V0.9",
|
||||
"placeholder_count": 10,
|
||||
"status": "待校验",
|
||||
"field_mapping_summary": "风险等级 / 批次号 / 责任人 / 证据摘要",
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
def _read_governance_yaml() -> dict:
|
||||
raw_path = getattr(settings, "GOVERNANCE_CONFIG_PATH", "")
|
||||
if not raw_path:
|
||||
return {}
|
||||
config_path = Path(raw_path)
|
||||
if not config_path.exists() or not config_path.is_file():
|
||||
return {}
|
||||
with config_path.open("r", encoding="utf-8") as file:
|
||||
return yaml.safe_load(file) or {}
|
||||
|
||||
|
||||
def _load_governance_config() -> dict:
|
||||
defaults = _governance_defaults()
|
||||
config = _read_governance_yaml()
|
||||
for key, default_value in defaults.items():
|
||||
configured_value = config.get(key)
|
||||
if isinstance(default_value, list) and configured_value:
|
||||
defaults[key] = configured_value
|
||||
return defaults
|
||||
from agent_core.governance import load_governance_config
|
||||
|
||||
|
||||
def get_platform_demo_context():
|
||||
@@ -241,7 +154,7 @@ def get_platform_demo_context():
|
||||
"status": "待校订",
|
||||
},
|
||||
]
|
||||
governance_config = _load_governance_config()
|
||||
governance_config = load_governance_config()
|
||||
owner_mappings = governance_config["owner_mappings"]
|
||||
feishu_configs = governance_config["feishu_configs"]
|
||||
template_mappings = governance_config["template_mappings"]
|
||||
|
||||
Reference in New Issue
Block a user