feat: 新增预算费控模型与报销审批流引擎
后端新增预算费控服务和报销单审批流模块,引入申请人费用画像 算法,优化知识库 RAG 运行时和同步逻辑,完善报销单工作流常 量和明细同步,更新差旅报销规则电子表格,前端新增预算分析 组件和数字员工模型,完善审批对话框和洞察面板交互,优化侧 边栏和顶栏样式,补充单元测试。
This commit is contained in:
@@ -57,7 +57,7 @@ test('detail topbar ignores system allowance rows when checking missing tickets'
|
||||
|
||||
assert.equal(hasMissingAttachment(request), false)
|
||||
assert.equal(hasPendingInfo(request), false)
|
||||
assert.deepEqual(alerts, ['直属领导审批'])
|
||||
assert.deepEqual(alerts, ['SLA 催单次数 0'])
|
||||
})
|
||||
|
||||
test('detail topbar still flags real manual rows without required ticket info', () => {
|
||||
@@ -96,7 +96,7 @@ test('detail topbar still flags real manual rows without required ticket info',
|
||||
|
||||
assert.equal(hasMissingAttachment(request), true)
|
||||
assert.equal(hasPendingInfo(request), true)
|
||||
assert.deepEqual(alerts, ['待提交', '缺少票据', '待补信息'])
|
||||
assert.deepEqual(alerts, ['SLA 催单次数 0', '缺少票据', '待补信息'])
|
||||
})
|
||||
|
||||
test('application detail topbar does not ask for receipt attachments', () => {
|
||||
@@ -122,5 +122,29 @@ test('application detail topbar does not ask for receipt attachments', () => {
|
||||
|
||||
assert.equal(hasMissingAttachment(request), false)
|
||||
assert.equal(alerts.includes('缺少票据'), false)
|
||||
assert.deepEqual(alerts, ['直属领导审批'])
|
||||
assert.deepEqual(alerts, ['SLA 催单次数 0'])
|
||||
})
|
||||
|
||||
test('detail topbar shows SLA reminder count from direct fields and reminder events', () => {
|
||||
const directAlerts = buildDetailAlerts({
|
||||
node: '直属领导审批',
|
||||
approvalKey: 'in_progress',
|
||||
slaReminderCount: 2,
|
||||
expenseItems: []
|
||||
})
|
||||
|
||||
const eventAlerts = buildDetailAlerts({
|
||||
node: '直属领导审批',
|
||||
approvalKey: 'in_progress',
|
||||
riskFlags: [
|
||||
{ source: 'sla_reminder', message: '下属已催单' },
|
||||
{ event_type: 'urge', message: '再次催单' }
|
||||
],
|
||||
expenseItems: []
|
||||
})
|
||||
|
||||
assert.equal(directAlerts[0].label, 'SLA 催单次数 2')
|
||||
assert.equal(directAlerts[0].tone, 'warning')
|
||||
assert.equal(directAlerts[0].icon, 'mdi mdi-bell-ring-outline')
|
||||
assert.equal(eventAlerts[0].label, 'SLA 催单次数 2')
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user