智能报销系统产品需求文档
产品与架构 · 报销业务链路 · 智能助手 · 系统规格
覆盖业务系统、发票审核 Workflow、员工报销助手与报销分析助手;四者共享受控业务数据,权限、凭证、会话和职责分别隔离。
1. 产品概览
发票全生命周期
上传、OCR、L1–L3预审、入单、L1–L4终审、占用与付款归档。
PaddleOCR
Dify 负责文件解析和结构化提取,后端负责确定性审核。
助手与分析
员工助手负责问答,报销分析助手负责权限范围内的只读分析。
访客管理员
独立共享演示身份,可测试完整业务功能,不复用真实 admin。
| 能力 | 当前状态 | 员工可见结果 | 关键边界 |
|---|---|---|---|
| 发票夹 | 服务端可用 | 最近加入、状态、预审结论、预览、重试、删除、入单 | 不再以浏览器 localStorage 作为正式数据源 |
| 发票识别 | PaddleOCR 已接入 | 发票号、日期、购销方、金额、税额、税率、费用信息 | 识别不等于审批;低质量结果进入待修改/重试 |
| L1–L4 | 后端确定性规则 | 分层结论、风险等级、修正建议和最终流转状态 | 大模型不得改变金额、重复、预算和状态结论 |
| 员工报销助手 | Chatflow 已接入 | 制度问答、交互式类型澄清、附件排查、状态解释和人工分流 | 技术/制度知识证据隔离;不调用、不占用、也不修改发票审核结果 |
| 报销分析助手 | 只读分析 | 趋势、预算、风险、合规和管理建议 | 不能审批、付款、推送 OA 或修改配置 |
| 税务验真/OA/付款 | 接口边界 | Demo 展示流程和状态 | 生产仍需企业外部服务和幂等补偿 |
2. 产品定位、目标与范围
2.1 产品目标
- 员工在上传发票时尽早发现字段、金额和重复风险,减少报销单退回。
- 报销单提交时使用数据库最新事实完成 L1–L4终审,防止并发重复报销和过期预算结论。
- 财务人员获得可追溯的审核依据、占用记录、预算版本和分析视图。
- 将问答型 Agent、分析型 Agent 与确定性审核系统解耦,避免 AI 越权。
2.2 角色
| 角色 | 主要能力 | 数据范围 | 限制 |
|---|---|---|---|
| 员工 | 上传发票、维护发票夹、新建和查询本人报销、使用员工助手 | 本人发票与报销 | 不可审批,不可查看他人敏感信息 |
| 部门负责人 | 审核本部门单据、查看本部门预算 | 本人及授权部门 | 不可修改税务与全局预算规则 |
| 财务经理 | 人工复核、查验、规则与预算分析、使用报销分析助手 | 授权公司/部门范围 | 关键写操作仍走业务接口和审计 |
| 系统管理员 | 用户、部门、权限、配置和运行维护 | 管理员授权范围 | 不能绕过审核状态机直接制造付款结论 |
| 访客管理员 | 体验 Demo 内完整管理员业务功能 | 共享演示身份和演示数据 | 不是生产匿名管理员;不复用真实 admin 凭证 |
3. 统一架构与四类能力边界
智能报销系统
身份、发票夹、报销单、审批、预算、规则、状态机、审计和 API。
最终业务事实源发票审核工作流
PaddleOCR 文档解析、字段整理、结果解释和运行流水。
不维护业务状态员工报销助手
制度查询、可点击类型澄清、填报帮助、状态解释和技术问题分流。
独立会话与双知识库报销分析助手
趋势、预算、风险、合规和经营分析。
只读授权数据3.1 数据流
3.2 Dify 发票审核 Workflow 实际快照
下图记录当前已发布发票审核工作流的实际编排:四项输入依次进入 PaddleOCR-VL、多模态票据字段整理、输入与身份结构校验以及 L1–L3;随后由“制度分类与额度检索”和“制度例外与材料检索”查询同一个制度知识库,合并两路证据后进入 L4 确定性终审,再完成确定性结果聚合、只读解释、结构化封装和严格 JSON 输出。宽图可横向滚动,点击可查看原始分辨率。
4. 发票上传预审—报销单终审主流程
4.1 阶段一:上传发票
4.2 阶段二:提交报销单
5. 发票夹与 PaddleOCR 识别
常规电子发票上传
- 顶部“上传电子发票”按钮与识别区共用隐藏文件输入。
- 支持鼠标点击、键盘 Enter/Space、拖拽上传。
- 支持 JPG、PNG、PDF;附件先保存,再异步执行识别。
发票夹操作
- 查询当前用户的服务端常规电子发票记录。
- 支持预览、重试和未入流程记录删除。
- 已占用或已报销记录不可删除;原附件按审计策略保留。
document_type 采用不同必填矩阵;缺少标准发票要素时不得伪造字段,应保留 OCR 证据并转人工复核。5.1 规范化票面字段
| 字段 | 来源 | 处理 | 入单保护 |
|---|---|---|---|
| invoiceNo / invoiceType / invoiceDate | 原始 OCR + 员工确认 | 展示 AI 识别原值,允许员工校正票号、类型与日期 | 仅所属员工可编辑;服务端保存逐字段差异 |
| sellerName / buyerName | 原始 OCR + 员工确认 | 不确定时保持空;员工可据票面补正 | 不覆盖原始 OCR 快照 |
| amount / tax / totalAmount | 原始 OCR + 员工确认 | 金额分别可改;报销总额按员工确认的价税合计汇总 | 合计与金额加税额不一致时保留 L2 失败 |
| costCenter / description | 模型建议 + 用户业务输入 | 分类使用统一选项下拉框,业务说明可补充 | 保存员工确认值和修改记录 |
| 附件名称/格式标签 | 真实附件 + 员工展示标签 | 标签可校正;预览、下载仍指向原文件 | 文件哈希、真实文件名和附件归属不可改 |
| aiConfidence | 识别服务 | 只读展示置信度 | 客户端不得修改 |
5.2 发票夹状态
6. L1–L4 确定性审核规格
| 层级 | 上传阶段 | 提交阶段 | 失败动作 | 规则责任方 |
|---|---|---|---|---|
| L1 完整性 | 按 document_type 检查可识别字段、附件与日期 | 重新检查主表、员工身份及票据字段;必要提交资料单独校验 | 非必要字段风险随单进入部门审批;必要资料缺失仍阻止提交 | 后端确定性代码 + OCR 证据 |
| L2 金额税额 | 不含税金额、税额、价税合计;铁路票拆分另有规则 | 按员工确认合计计算报销总额;金额加税额不一致保留失败详情 | 正金额和总额必填;非重复差异可带风险提交 | 后端确定性代码 |
| L3 重复发票 | 按票号和附件内容指纹查询历史有效状态 | 单内重复、历史有效单据重复及事务级唯一占用 | 确认重复或占用时阻断正式提交;不得按说明文字关键词拦截 | 数据库事实与唯一约束 |
| L4 制度预算 | 识别阶段展示制度证据与建议,不能代替提交审核 | 按当前部门、费用类别、有效规则和预算复核 | 缺预算或超额保留失败及严重风险,但可进入部门审批 | 知识证据 + 后端确定性规则 |
6.1 L4 阈值
正常
进入部门审批。
预算预警
带风险提示进入部门审批并提示财务。
严重风险
不套用默认预算;保留 L4 未通过项,提交至部门审批,由审核人员判断后续处理。
passed、status、riskLevel、金额、重复证据、预算结论或审批状态。7. L3 重复报销与并发占用
7.1 判定键
no:<规范化发票号>:去空格、连字符并转大写。hash:<附件内容指纹>:由文件内容生成的固定标识;文件改名但内容不变时仍相同。- 任一键命中即可判为历史占用;同一报销单内还需检查重复票号和重复附件。
7.2 有效占用状态
| 场景 | 处理 | 原因 |
|---|---|---|
| 只存在发票夹 | 不视为已报销 | 尚未形成有效报销占用 |
| 草稿或待修改 | 不占用;若由有效状态退回则释放 | 允许员工修正或重新提交 |
| 同一报销单重复提交 | 幂等,不将自己判为重复 | 按 report_id 排除自身 |
| 两个用户并发提交同一发票 | 唯一键保证最多一个成功 | 不能依赖先查后写的时间窗口 |
| 跨员工命中 | 仅提示“已被其他有效报销单占用” | 不泄露他人员工、部门和单号 |
| 已付款 | 永久占用 | 形成不可重复报销的最终事实 |
8. 发票与报销状态机
8.1 发票状态流
8.2 报销状态与占用动作
| 报销状态/动作 | 发票占用 | 发票夹状态 |
|---|---|---|
| 草稿、待修改 | 不占用或释放已有占用 | 可继续校正与入单 |
| 提交且必要资料齐全、未确认重复 | 同一事务写入 invoice_claims | 已占用;非重复风险随单保留 |
| 待部门审批至付款中 | 持续占用并同步 report_status | 已占用 |
| 撤回、驳回到可修改 | 删除当前报销单占用 | 恢复可入单状态 |
| 已付款 | 永久保留占用 | 已报销 |
9. 员工智能报销助手 Chatflow
员工助手是已发布并嵌入 Demo 的独立 Dify Advanced Chat 应用,面向员工提供制度解释、操作帮助、本人进度指引和技术故障分流。它不是发票审核 Workflow,也不是最终审核器。
可以做
- 回答费用是否可报、金额上限、附件、票据和字段要求。
- 对餐费、交通、采购、发票及其他模糊问题显示可点击选项,并基于选择继续检索。
- 先按技术知识指导附件排查;完成排查仍失败时转 IT。
- 解释员工本人报销进度的查询路径和确定性退回原因。
不能做
- 不能审批、占用、释放或报销发票。
- 不能替代 L1–L4、预算、税务验真和付款状态机。
- 不能查看其他员工敏感数据,也不能伪造本人进度。
- 不能将制度问题交给技术知识库,或将技术故障交给财务人员。
9.1 身份、路由与知识隔离
- 后端根据登录身份生成可信、稳定、不可由前端伪造的
user_id;身份缺失或异常时直接转 IT,不继续回答。 - 业务路由明确区分
progress、technical_not_done、technical_escalate、technical、clarify和制度问答等路径。 - 技术检索节点只绑定系统技术知识库;制度检索节点只绑定报销制度知识库,禁止跨库补写和混用证据。
- 长期平台凭证只保存在服务端;浏览器只接收受控 WebApp 地址和压缩编码后的可信输入。
- 知识库发布、废止和版本变更可追溯;超时、空答或服务异常时明确提示不可用,不以静态答案冒充真实 Agent 输出。
9.2 员工报销助手 Chatflow 实际快照
下图为 Demo 当前嵌入员工助手的编排参考:员工身份来自后端登录上下文,制度和技术问题分流处理;模糊费用问题可通过按钮补齐场景,知识证据不足时不猜测制度结论。实际回答能力以当前已发布应用为准。宽图可横向滚动。
9.3 交互式分流与继续执行
| 路径 | 触发条件 | 节点行为 | 最终去向 |
|---|---|---|---|
| 本人进度 | “我的报销到哪里了”“目前什么进度” | 不检索制度,不猜测状态;提示进入“我的报销”按报销单查询 | 本人报销进度查询指引 |
| 一般技术问题 | 登录、页面、附件、提交等系统故障 | 标准化技术 Query → 技术知识库 → 技术证据门禁 → 证据充足性判断 | 有证据则回答;无证据进入排查或人工 |
| 附件上传失败 | 上传不了、传不上去、附件失败等表达 | 先检索技术知识;仍不能定位时给出格式、20 MB、刷新重登、网络和避免重复提交等文字排查 | “已完成仍失败”转 IT;“尚未完成”要求先排查;超时给出重新进入提示 |
| 模糊制度问题 | 只说餐费、交通费、采购、发票或“这个能不能报” | 按 clarification_kind 进入场景化按钮;选择后由 Code 节点生成确定性检索词 | 继续进入制度知识库,不在按钮节点无提示结束 |
| 明确制度问题 | 费用类型、身份和问题目标足够明确 | 生成明确问题检索词,经变量聚合器进入制度问答主链 | 制度回答、质检、必要重写和最终输出 |
9.4 Human Input 选项矩阵
| 表单 | 员工可点击选项 | 按钮数 | 后续处理 |
|---|---|---|---|
| 餐费场景 | 差旅伙食补贴、日常业务餐费、业务招待费 | 3 | 生成对应制度检索词 |
| 交通费用 | 差旅交通、市内交通补贴、出租车/网约车、高铁/动车、飞机 | 5 | 生成对应票据或补贴检索词 |
| 采购费用 | 办公用品、低值易耗品、采购服务、专项设备 | 4 | 生成采购制度检索词 |
| 发票与票据 | 发票抬头、有效性/红冲、明细与佐证、历史发票、重复报销、其他票据问题 | 6 | 前 5 项检索;“其他”要求补充完整问题 |
| 费用或票据范围 | 差旅、餐费、采购、日常运营、员工福利、发票、报销流程、其他 | 8 | 进入二级表单或补充信息 |
| 差旅费用 | 住宿费、伙食补贴、交通费 | 3 | 住宿/餐费检索;交通进入交通二级表单 |
| 日常运营 | 通讯费、快递费、培训费、市场推广费 | 4 | 生成对应制度检索词 |
| 员工福利 | 婴儿奶粉福利、健身运动福利、员工体检、公司团建 | 4 | 生成对应福利制度检索词 |
| 流程与资金 | 员工借款、借款核销、审批要求、预算控制 | 4 | 生成对应流程制度检索词 |
| 附件排查完成状态 | 已完成上述排查仍失败、尚未完成上述排查 | 2 | 分别转 IT 或要求先完成排查 |
9.5 知识证据与回答质量
技术回答链
技术 Query 标准化 → 系统技术知识库 → 技术证据门禁 → 证据充足性判断 → 技术回答或附件排查/IT。知识不足时不得使用制度知识补写技术结论。
制度回答链
明确问题或按钮映射 → 变量聚合 → 确定性完整度检查 → 报销制度知识库 → 智能回答 → 制度质检与必要重写 → 输出。不得生成知识片段未支持的金额、资格或材料要求。
10. 报销分析助手
报销分析助手面向管理员、财务经理、部门经理和访客管理员,对当前授权范围内的报销、预算、风险、公司制度和有效税务规则进行只读分析。内部继续使用 analysis-agent 标识以保持接口兼容。
| 能力 | 输入 | 输出 | 约束 |
|---|---|---|---|
| 趋势分析 | 期间、部门、费用类别 | 金额趋势、结构变化和异常提示 | 数据必须来自统一快照 |
| 预算分析 | 活动预算版本、实际占用 | 期间预算、实际、剩余、执行率 | 缺预算不得补默认金额 |
| 风险与合规 | L1–L4结果、规则命中 | 风险原因、影响和建议 | 只能解释,不能改变原结论 |
| 管理建议 | 聚合指标与制度依据 | 可执行建议和引用来源 | 不能执行审批、付款和配置修改 |
10.1 千问接入与事实保护
- 后端通过独立
ANALYSIS_MODEL_*配置直连千问兼容接口,不复用 Dify 发票 Workflow、员工助手或其他模块凭证。 - 仅向模型发送按角色过滤后的聚合、脱敏证据快照,不发送密码、令牌、附件、完整发票或员工联系方式。
- 模型只生成结论、原因、风险、建议和
claimRefs;金额、笔数、比例、排名、预算和制度事实由后端确定性计算。 - 正文数字和引用必须逐项回查证据。首次校验失败最多重写一次,仍失败则隐藏模型答案并降级为规则分析。
- 模型不得联网搜索,也不得执行审批、预算修改、OA、付款或数据库写入。
10.2 权限、降级与审计
| 控制点 | 问题或风险 | 处理方式 | 页面表现与审计依据 |
|---|---|---|---|
| 角色权限 | 普通员工可能越权读取经营汇总 | 后端按登录角色校验分析入口和接口;仅管理员、财务经理、部门经理及访客管理员可访问 | 无权限时拒绝请求,不返回分析快照 |
| 部门数据隔离 | 前端改筛选条件可能越权查询其他部门 | 部门经理的部门范围由服务端强制注入;管理员和财务经理在授权范围内查看全局 | 回答和图表只引用当前授权快照,记录实际生效的部门筛选 |
| 访客演示隔离 | 共享访客身份可能访问真实业务数据或滥用模型额度 | 访客仅访问演示数据,并设置请求频率限制;不得复用真实管理员凭证 | 超限时提示稍后重试,审计记录访客身份及请求结果 |
| 事实保护 | 模型可能编造金额、预算余额或制度依据 | 后端计算数值并提供脱敏快照;逐项校验回答中的数字与引用,失败最多修订一次 | 校验失败不显示未经证实的模型答案,改用规则分析 |
| 模型未配置 | 千问接口或密钥未配置 | 不调用模型,直接使用服务端确定性规则生成分析 | 明确标示“规则分析模式”,不冒充 AI 回答 |
| 服务异常 | 模型超时、限流、余额不足或返回格式异常 | 捕获错误并切换为规则分析,不影响报销主流程 | 保留错误类型和回答提供方,不向页面暴露密钥或内部堆栈 |
| 回答留痕 | 事后无法复现回答依据或判断原因 | 记录会话、筛选条件、数据快照编号、规则与预算版本、模型与提示词版本、回答提供方及修订/校验结果 | 可按回答追溯证据与降级原因;敏感数据和凭证不写入普通日志 |
11. Agent 与发票 Workflow 边界
发票审核 Workflow
输入:可信 user_id、invoice_files、后端审核事实 audit_payload_json 与可选 report_id。
输出:严格字符串字段 result_json;其中包含结构化发票、L1–L4、风险、人工复核标记、审计轨迹与员工提示。
⇄
员工助手/分析 Agent
输入:授权业务问题、知识片段或只读数据快照。
输出:问答、解释或分析;不产生发票业务状态。
| 项目 | 发票 Workflow | 员工助手 | 报销分析助手 |
|---|---|---|---|
| 应用类型 | Workflow | Chatflow | 只读分析 Agent |
| 主要触发 | 上传发票 | 员工发起对话 | 授权用户发起分析 |
| 长期会话 | 无业务会话 | 按用户维护 | 按授权分析会话维护 |
| 业务写入 | 由后端接收结果后写入 | 禁止 | 禁止 |
| 确定性判断 | 后端覆盖 L1–L3并在提交时完成 L1–L4 | 只解释 | 只解释和分析 |
| 凭证 | 独立 DIFY_INVOICE_AUDIT_* | 独立助手配置 | 独立分析配置/工具权限 |
12. 业务模块需求
工作台
展示累计报销、状态分布、最近报销,以及按年月生成的金额、通过率、风险和费用结构驾驶舱。
我的发票
服务端发票夹提供 OCR、L1–L3 状态、识别字段校正、AI 原值与员工修改留痕、预览、重试、删除和入单。
新建报销
从发票夹选择票据、用统一下拉框确认分类;非常规票据可手工补录并上传附件。必要字段齐全且无实际重复时,风险票据也可提交审批。
我的报销
按状态、类型、年月和关键词查询;草稿/待修改可维护,详情保留提交时的票据修改快照与 L1–L4 风险。
待审批
审核人员查看逐字段 AI 原值、员工最终值和未通过项,再决定是否继续通过。
分析报告
按年份、月份和部门查看趋势、预算、风险和合规;规则与预算溯源集中在该页面展示。
部门管理
维护组织部门、负责人和成员。用户、角色、菜单/API 权限属于后端与生产治理能力,当前 Demo 未提供独立管理菜单。
个人中心
展示本人身份、部门、联系方式和脱敏账户信息,支持受控修改个人联系字段。
智能入口
右下角员工助手面向制度与操作问答;分析页提供报销分析助手,二者与发票 Workflow 分应用、分凭证、分职责。
12.1 当前 Demo 功能实景截图
以下截图由访客账号登录当前本地 Demo 拍摄,展示页面与功能入口。访客共享演示数据可能随体验操作变化;点击图片可查看原始分辨率。









user_id。13. API 与输入输出契约
13.1 发票夹接口
| 方法与路径 | 用途 | 关键规则 |
|---|---|---|
GET /api/invoice-assets | 查询当前用户发票夹 | 仅返回本人记录,按创建时间倒序 |
POST /api/invoice-assets/precheck | 保存附件并执行 OCR、L1–L3 | 校验附件归属与哈希;同用户同哈希复用 |
PATCH /api/invoice-assets/:id | 员工校正识别字段 | 仅所属员工可编辑;服务端记录 AI 原值、最终值、修改人和时间 |
POST /api/invoice-assets/:id/retry | 重试失败、待修改或疑似重复记录 | 其他状态返回冲突 |
DELETE /api/invoice-assets/:id | 删除未进入报销流程的记录 | 已关联、已占用或已报销禁止删除 |
13.2 报销发票对象
存在 invoiceAssetId 时,后端校验资产归属并以真实附件元数据为准;员工确认的识别字段可入单,服务端生成逐字段差异与提交快照。展示标签不会更改原文件、哈希、预览或下载地址;置信度与原始 AI 结果不能由客户端伪造。
13.3 Dify 发票 Workflow
| 配置/字段 | 说明 |
|---|---|
DIFY_INVOICE_AUDIT_API_BASE | 独立 API 基址,默认使用 Dify API;不写入前端 |
DIFY_INVOICE_AUDIT_API_KEY | 独立 Workflow 密钥,仅服务端保存 |
DIFY_INVOICE_AUDIT_TIMEOUT_MS | 工作流超时,最低 1000毫秒,默认 120000毫秒 |
user_id | 必填;由后端登录上下文生成,禁止客户端伪造 |
invoice_files | 必填数组;图片映射为 image,PDF 等映射为 document |
audit_payload_json | 后端生成的确定性审核事实 JSON;不得由模型自行补造金额、重复或预算事实 |
report_id | 可选报销单标识;用于排除自身、串联审计,不作为发票唯一键 |
result_json | 最终输出节点唯一业务字段,必须是可解析 JSON 字符串 |
result_json.invoices | 必须为数组;缺失、非数组或 JSON 不可解析时整个识别视为失败 |
dify_workflow_run_id | 保存运行流水用于审计,不作为业务主键 |
13.4 报销分析助手接口
| 方法与路径/配置 | 用途 | 关键规则 |
|---|---|---|
GET /api/analysis-agent/status | 读取模型和降级状态 | 只返回是否配置、提供方、模型、最近状态和 Demo 限流,不返回密钥 |
POST /api/analysis-agent/sessions | 创建授权分析会话 | 沿用内部 analysis-agent 标识 |
POST /api/analysis-agent/sessions/:id/messages | 执行取数、分析与校验 | 返回 answerProvider、modelUsed、snapshotId、fallbackReason、validatedClaims |
ANALYSIS_MODEL_* | 千问独立服务端配置 | 默认 qwen-plus;密钥不进入 HTML 或浏览器 |
POST /api/analysis/chat | 旧版兼容接口 | 返回 Deprecation/Sunset/Link 头,一个版本周期后移除 |
14. 数据模型摘要
| 表 | 用途 | 关键字段/约束 |
|---|---|---|
invoice_assets | 服务端发票夹和上传预审审计 | 归属用户、原始 OCR、员工修改摘要、展示标签、真实附件和哈希;同用户同哈希唯一 |
invoice_claims | L3 最终占用 | 占用键、报销单、发票资产、操作人和报销状态 |
expense_invoices | 报销单发票快照 | 资产引用、员工确认合计、修改字段、AI 原值、员工最终值、修改人与时间 |
expense_reports | 报销主表与状态机 | 员工、部门、事由、日期、金额、状态和创建人 |
ai_review_results | 报销提交阶段 L1–L4 审核轨迹 | 规则、结论、风险、原因、建议和规则溯源 |
department_budgets | 部门与期间预算 | 活动预算、期间预算、实际、剩余和执行率 |
tax_policy_rules | 有效税务与制度依据 | 规则 ID、来源、生效日期和废止状态 |
dim_users / roles / permissions | 身份、角色与权限 | 生产用户与 guest_visitor 分离 |
14.1 双审计轨迹
- 发票夹:原始 OCR、员工校正值、逐字段差异、修改人、修改时间、L1–L3 与重复证据。
- 报销单:提交时冻结发票修改快照,保留 L1–L4、发票占用、预算依据、状态和审核历史;后续重试或修改发票夹不覆盖已提交快照。
15. 权限、安全与 Demo 访客
- 所有发票夹接口依赖服务端登录身份;附件路径必须属于当前用户且解析后仍位于附件根目录内。
- 附件入库前后校验文件内容指纹,防止记录与实际文件不一致。
- Dify API Key、工作流标识、长期访问令牌不进入 HTML、浏览器、本地存储或普通业务日志。
- 发票资产导入必须验证 owner_user_id;只有服务端允许的员工确认字段可以变化,原始 AI 值、置信度与真实附件元数据不可由客户端改写。
- 跨员工重复只返回抽象占用提示,不返回他人身份、部门或报销单号。
15.1 访客管理员 Demo
guest_visitor 演示身份。访客只能读取自己的发票、报销、审批与分析记录;本地浏览器缓存也与真实账号隔离。访客测试数据可单独清理,不影响真实用户;生产环境不得照搬匿名管理员设计。16. 异常与降级
| 异常 | 系统行为 | 用户提示 | 是否可入单 |
|---|---|---|---|
| Dify 未配置/超时/失败 | 文件保留,状态改为识别失败待重试,记录受限错误 | “发票已保存,但识别失败,可稍后重试” | 识别完成或员工补齐必要字段后再提交 |
| Workflow 缺少 invoices | 按无效结构化输出处理 | 识别失败,可重试 | 必要数据不齐时不可正式提交 |
| OCR 字段缺失或金额异常 | L1/L2 失败,保留原判定 | 展示缺失项或金额差异,允许员工校正 | 必要字段补齐后可带风险提交 |
| 疑似重复 | 允许查看、选择与核对;提交时重做 L3 检查 | 展示重复证据 | 确认重复或占用时阻断 |
| 并发唯一键冲突 | 当前事务失败并清理已写入键 | 已被其他有效报销单占用 | 否 |
| 预算缺失或超过 100% | 不套用默认值,保留 L4 失败和严重风险 | 展示预算缺失或超额原因 | 可带风险提交到部门审批 |
| 报销分析模型不可用 | 隐藏未校验模型答案并使用确定性分析 | 明确显示“规则分析模式” | 不影响确定性业务 API |
17. 埋点、日志与审计
| 事件/日志 | 关键属性 | 用途 |
|---|---|---|
| invoice_upload_start/result | 文件类型、大小、是否复用、耗时、结果状态 | 监控上传与 OCR 转化 |
| invoice_precheck_result | asset_id、L1–L3、风险、审核版本 | 分析失败原因与重试率 |
| invoice_asset_retry/delete/import | 状态、操作人、来源页面 | 审计发票夹操作 |
| expense_submit | 报销单、发票数、总额、预算版本 | 提交漏斗和业务量 |
| ai_review_result | L1–L4、状态、风险、原因码 | 审核准确性和人工复核率 |
| invoice_claim_result | 键类型、幂等/冲突、报销状态 | 重复报销和并发监控 |
| assistant_message | 意图、知识版本、是否回答、转人工 | 员工助手质量 |
| analysis_agent_answer | 筛选、数据时间、版本、校验结果 | 财务分析可追溯 |
18. 测试与验收标准
| 验收场景 | 预期结果 |
|---|---|
| 上传真实 PDF/JPG/PNG | 保存真实附件、规范化 OCR 字段与 L1–L3 结果;识别失败可重试 |
| 同用户重复上传内容相同的附件 | 根据附件内容指纹返回既有发票资产,不重复 OCR;仅改文件名不会再次识别 |
| 员工校正识别结果 | 分类使用统一下拉选项;AI 原值、最终值、修改人和时间逐字段留痕,置信度只读 |
| 调整附件展示标签 | 标签可改,原文件、哈希、预览和下载不变 |
| 从发票夹导入报销单 | 带 invoiceAssetId 和员工确认值入单;服务端校验资产归属并保存提交快照 |
| 金额或日期预审未通过 | 保留 L1/L2 失败;必要字段补齐且无实际重复时可带风险进入部门审批 |
| 当前单或历史有效单据重复 | L3 确认重复或占用时阻断正式提交;草稿和待修改不误报 |
| 正常票据说明含“未发现重复” | 不会因说明文字含“重复”而误拦截;以结构化重复结论和占用事务为准 |
| 两个报销单并发提交同一发票 | 最多一个成功,失败方得到占用提示 |
| 预算超过 100%或未配置 | 保留 L4 未通过和严重风险;报销单仍进入待部门审批 |
| 撤回或驳回 | 占用释放;已付款不释放,历史报销修改快照保持不变 |
| 制度问答与技术问题 | 费用问题依据知识库证据回答;技术问题建议转 IT,缺证据不得臆造制度结论 |
| Agent 解释审核结果 | 不得改变 passed、status、金额、重复证据或预算结论 |
| 访客模式 | 独立演示身份和浏览器缓存;只显示访客自己的发票、报销和审批数据 |
18.1 当前自动化覆盖
后端项目回归测试覆盖金额、日期、识别重试、员工修改留痕、附件归属、重复占用、并发竞争、预算边界和访客隔离。最近一次本地运行结果为 148 项通过;该结果不代表外部 Dify 工作流或腾讯云部署已同步验证。
19. Demo 与生产边界
| 能力 | 当前 Demo | 生产增强 |
|---|---|---|
| 常规电子发票夹与 OCR | 后端接入 Dify 识别 | 对象存储私有化、病毒扫描、生命周期、OCR SLA 和监控 |
| 非常规票据 | 新建报销页手工补录 | 收据、地铁票、出租车票等统一进入发票夹直通流程,并建立分票种准确率与人工兜底指标 |
| L1–L4 与占用 | 确定性审核 + 风险随单 + 真重复硬拦截 | 规则发布审批、迁移演练、数据库高可用和压测 |
| 税务验真 | 流程演示 | 接入合规税务查验服务,保存外部流水和证据 |
| OA 与付款 | 状态演示 | 企业 OA/ERP/银企 API、幂等、重试、补偿和对账 |
| 规则/预算/权限配置 | 数据与分析页可见,无独立配置菜单 | 补齐规则发布、预算编制、用户角色、审批流和数据权限的管理控制台 |
| 访客管理员 | 独立演示身份与数据 | 生产关闭匿名管理员,接 SSO、最小权限与集中审计 |
| 员工助手 | Chatflow 已接入 | 知识库发布监控、问答完成率、知识质检、限流与 IT/财务人工服务 SLA |
| 报销分析 | 千问增强/规则降级 | 数据快照治理、指标语义层、模型调用监控、回归评测和回答质检 |
20. 与主流竞品的差异分析
本节基于 2026-08-18 各厂商官网公开能力,对比对象为 合思费控、分贝通、汇联易和 SAP Concur 解决方案。该分析用于产品规划,不等同于采购验收或对竞品当前全部版本的实测结论。
| 对比维度 | 智能报销系统 | 主流竞品公开能力 | 差异判断 |
|---|---|---|---|
| 产品覆盖范围 | 聚焦员工报销、发票审核、部门审批、合规分析和双助手 | 合思、分贝通、汇联易普遍覆盖申请、商旅/消费、企业支付、报销、对账、核算和档案;SAP Concur 还覆盖全球差旅、Invoice/AP 与伙伴生态 | 明显不足 当前是报销审核型产品,不是完整企业支出平台 |
| 事前与事中费控 | 预算主要在提交和分析阶段校验 | 合思、分贝通、汇联易强调申请前置、消费标准预设和事中预算控制 | 不足 需补申请、预占、企业支付和消费订单联动 |
| 票据覆盖与验真 | 常规电子发票已直通;非常规票据规则已有,但 UI 仍手工补录;税务验真为接口边界 | 国内竞品普遍宣传多票种采集、OCR、查重、验真和电子档案 | 不足 主要短板是票种直通率、真实验真和档案闭环 |
| 智能审核方式 | OCR/大模型负责识别与解释,金额、重复、预算和状态由后端确定性规则及数据库约束裁决 | 竞品普遍提供规则引擎、AI 审核、异常模型或人工审计服务 | 差异优势 责任边界、失败关闭和审计可解释性更明确,适合高风险场景验证 |
| 重复报销控制 | 票号 + 附件内容指纹 + 历史有效状态 + 事务级唯一占用,支持并发冲突和撤回释放 | 竞品公开描述多为发票查重、异常校验或防重复付款 | 优势 当前 PRD 对并发占用、隐私提示和状态释放定义更细 |
| 制度与预算证据 | 知识证据与后端确定性规则分层;缺预算时标记 L4 风险并由部门审批判断 | 竞品多采用可配置制度、预算和规则引擎,成熟度更高但公开资料通常不披露模型与规则的裁决边界 | 各有侧重 当前系统的证据和风险留痕透明,竞品在规则管理产品化和企业实施上领先 |
| 员工问答与交互澄清 | 技术/制度双知识库隔离,模糊问题用按钮补齐上下文,附件故障先排查再转 IT | 部分竞品提供智能坐席、审批 Agent 或管控 Agent,但交互式知识分流细节公开较少 | 差异优势 员工问题分类、知识隔离和人工转接规则清晰 |
| 分析与管理洞察 | 确定性指标 + 千问只读解释;校验失败降级为规则分析 | 竞品提供预算执行、支出结构、风险、成本节约和经营分析 | 部分持平 当前系统的事实保护较强,但指标语义层、行业模板和跨系统数据仍不足 |
| 全球化与生态 | 当前主要面向国内单组织 Demo,无移动端、商旅供应链和成熟连接器市场 | SAP Concur 提供全球差旅、费用、Invoice/AP、移动端及伙伴生态;国内竞品也扩展海外商旅与支付 | 明显不足 不宜在现阶段以全球费用平台作为直接定位 |
| 集成与交付成熟度 | 税务、OA、ERP、付款仍以接口边界或演示状态为主 | 主流竞品已有大量企业实施、支付/银行、ERP、商旅和档案连接能力 | 不足 下一阶段应优先补真实接口、可观测性和实施工具 |
20.1 当前更好的地方
模型不裁决业务事实
OCR、模型、知识库和后端职责分层,金额、重复、预算、状态不会被生成式回答覆盖。
L1–L4 与双审计轨迹
上传预审和提交终审分开记录,制度证据、规则版本、占用事务与员工提示可回查。
不只做查询式查重
唯一占用、幂等、自身排除、撤回释放和跨员工隐私提示形成更完整的重复报销控制。
技术与制度不混答
员工助手使用双知识库与确定性分流,附件故障先排查、完成后再转 IT。
长期密钥仅在后端
Workflow、员工助手和分析助手分应用、分凭证、分会话,浏览器不持有审核密钥。
失败不静默放行
知识不足、模型异常和输出不合法时关闭自动放行或回退规则分析,避免伪造确定性结论。
20.2 有待改进的地方与优先级
| 优先级 | 改进项 | 目标结果 | 建议验收指标 |
|---|---|---|---|
| P0 | 非常规票据统一直通、真实税务验真、OA/ERP/付款接口 | 从“规则可识别”升级为“端到端可处理”,补齐主业务闭环 | 分票种字段准确率、直通率、验真成功率、接口幂等与补偿成功率 |
| P0 | 规则、预算、用户角色与审批流管理控制台 | 将当前后端数据和分析展示变成可发布、可审批、可回滚的配置产品 | 规则发布审计、预算版本覆盖率、权限越权测试、审批配置回归 |
| P1 | 事前申请、预算预占、商旅/企业支付与消费订单匹配 | 由事后报销审核扩展到事前、事中支出管理 | 企业支付占比、员工垫资比例、预算超额拦截率、订单自动匹配率 |
| P1 | 电子会计档案、自动凭证、对账与审计导出 | 形成财务后链路和监管证据闭环 | 自动制证率、归档完整率、对账差异率、审计导出耗时 |
| P2 | 移动端、多币种、多语言、海外税制和连接器生态 | 满足集团化、全球化和多系统实施需求 | 移动端覆盖率、币种/国家覆盖、连接器数量、实施周期 |