feat: 重构报销单AI预审流程并添加平台风险规则引擎
- 将AI验审改为AI预审,高风险不再拦截而是随单流转给审批人复核 - 新增平台风险规则评估引擎,支持事由过短、票据异常、重复发票等多种评估器 - 用户上下文增加部门信息(department_name),认证流程同步关联组织架构 - 规则scenario_json改为中文标签(差旅/费用科目),统一场景分类 - 新增orchestrator审核流程测试用例 - 前端更新审计视图、差旅报销等相关页面
This commit is contained in:
@@ -31,6 +31,7 @@ class AuthenticatedUser:
|
||||
username: str
|
||||
name: str
|
||||
role: str
|
||||
department: str
|
||||
position: str
|
||||
grade: str
|
||||
role_codes: list[str]
|
||||
@@ -78,6 +79,7 @@ class AuthService:
|
||||
username=admin_username or admin_email,
|
||||
name=display_name,
|
||||
role="管理员",
|
||||
department="",
|
||||
position="系统管理员",
|
||||
grade="",
|
||||
role_codes=["manager"],
|
||||
@@ -94,7 +96,7 @@ class AuthService:
|
||||
|
||||
stmt = (
|
||||
select(Employee)
|
||||
.options(selectinload(Employee.roles))
|
||||
.options(selectinload(Employee.organization_unit), selectinload(Employee.roles))
|
||||
.where(func.lower(Employee.email) == identifier.lower())
|
||||
)
|
||||
employee = self.db.execute(stmt).scalars().first()
|
||||
@@ -120,6 +122,7 @@ class AuthService:
|
||||
username=employee.email,
|
||||
name=employee.name,
|
||||
role=ROLE_LABELS.get(primary_role_code, "使用者"),
|
||||
department=employee.organization_unit.name if employee.organization_unit is not None else "",
|
||||
position=employee.position,
|
||||
grade=employee.grade,
|
||||
role_codes=role_codes or ["user"],
|
||||
@@ -134,6 +137,8 @@ class AuthService:
|
||||
username=user.username,
|
||||
name=user.name,
|
||||
role=user.role,
|
||||
department=user.department,
|
||||
departmentName=user.department,
|
||||
position=user.position,
|
||||
grade=user.grade,
|
||||
roleCodes=user.role_codes,
|
||||
|
||||
Reference in New Issue
Block a user