feat: 新增预算后端服务与差旅风险规则库
后端新增预算模型、端点和服务模块,支持预算 CRUD 和余额 查询,清理旧生成规则文件并替换为按严重等级分类的差旅风 险规则库,优化认证权限和报销单访问策略,新增财务规则目 录和演示数据构建脚本,前端预算中心增加对话框交互,完善 审计页面运行时模型和元数据展示,补充单元测试。
This commit is contained in:
@@ -519,6 +519,8 @@ class RiskRuleTemplateExecutor:
|
||||
)
|
||||
if normalized.startswith("attachment."):
|
||||
return self._resolve_attachment_values(normalized.removeprefix("attachment."), contexts)
|
||||
if normalized.startswith("budget."):
|
||||
return self._resolve_budget_values(normalized.removeprefix("budget."), contexts)
|
||||
return []
|
||||
|
||||
@staticmethod
|
||||
@@ -566,6 +568,19 @@ class RiskRuleTemplateExecutor:
|
||||
values.extend(self._scan_document_values(document_info, field_key))
|
||||
return self._normalize_values(values)
|
||||
|
||||
def _resolve_budget_values(self, field_key: str, contexts: list[dict[str, Any]]) -> list[str]:
|
||||
values: list[Any] = []
|
||||
for context in contexts:
|
||||
if not isinstance(context, dict):
|
||||
continue
|
||||
budget_context = context.get("budget_context")
|
||||
if not isinstance(budget_context, dict):
|
||||
continue
|
||||
for key in {field_key, field_key.replace("_", ""), field_key.replace("-", "_")}:
|
||||
if key in budget_context:
|
||||
values.append(budget_context.get(key))
|
||||
return self._normalize_values(values)
|
||||
|
||||
def _scan_document_values(self, document_info: dict[str, Any], field_key: str) -> list[Any]:
|
||||
values: list[Any] = []
|
||||
for key in {field_key, field_key.replace("_", ""), field_key.replace("_", "-")}:
|
||||
|
||||
Reference in New Issue
Block a user