feat: 重构报销单AI预审流程并添加平台风险规则引擎

- 将AI验审改为AI预审,高风险不再拦截而是随单流转给审批人复核
- 新增平台风险规则评估引擎,支持事由过短、票据异常、重复发票等多种评估器
- 用户上下文增加部门信息(department_name),认证流程同步关联组织架构
- 规则scenario_json改为中文标签(差旅/费用科目),统一场景分类
- 新增orchestrator审核流程测试用例
- 前端更新审计视图、差旅报销等相关页面
This commit is contained in:
caoxiaozhu
2026-05-20 09:36:01 +08:00
parent 2574bc81d1
commit 57957d11a0
23 changed files with 2109 additions and 553 deletions

View File

@@ -16,9 +16,6 @@ const EXPENSE_TYPE_LABELS = {
const LOCATION_REQUIRED_EXPENSE_TYPES = new Set([
'travel',
'hotel',
'transport',
'meal',
'meeting',
'entertainment'
])
@@ -26,7 +23,7 @@ const LOCATION_REQUIRED_EXPENSE_TYPES = new Set([
const REIMBURSEMENT_PROGRESS_LABELS = [
'保存草稿',
'待提交',
'AI审',
'AI审',
'直属领导审批',
'财务审批',
'归档入账'
@@ -135,10 +132,10 @@ function resolveWorkflowNode(claim, approvalMeta) {
if (rawNode) {
if (rawNode === '审批流转') {
return 'AI审'
return 'AI审'
}
if (rawNode === '待补充') {
return approvalMeta.key === 'draft' ? '待提交' : 'AI审'
return approvalMeta.key === 'draft' ? '待提交' : 'AI审'
}
return rawNode
}
@@ -151,7 +148,7 @@ function resolveWorkflowNode(claim, approvalMeta) {
return '归档入账'
}
return 'AI审'
return 'AI审'
}
function stringifyRiskFlag(value) {
@@ -220,7 +217,7 @@ function resolveProgressCurrentIndex(approvalMeta, workflowNode) {
) {
return 3
}
if (normalizedNode.includes('AI验审') || normalizedNode.includes('审批流转')) {
if (normalizedNode.includes('AI预审') || normalizedNode.includes('AI验审') || normalizedNode.includes('审批流转')) {
return 2
}
if (normalizedNode.includes('待提交')) {