修复报销票据门禁提示与 OCR 降级(08-30-b2-submit-error-ocr-fallback)

这个提交包含在:
2026-08-31 20:20:20 +08:00
父节点 8b19538584
当前提交 f57e2236f2
共修改 21 个文件,包含 1829 行新增和 49 行删除
+5 -1
查看文件
@@ -51,6 +51,9 @@ R5 公网验收后确认:正式发票/OCR 上传入口只接受 PDF 发票文
- 未配置真实 OCR 时使用 `OCR_PROVIDER=off`:PDF 直接进入 `available`,不入 OCR 队列、不生成发票代码、号码、日期、购销方或金额。员工仍可把票据添加到已有明细并提交,财务必须查看 PDF 原件人工核对。
- off 模式下文件 SHA-256 查重继续有效,依赖发票代码和号码的查重暂不可用。对当前小团队可短期接受;强制人工补录或接入腾讯 OCR 应另行规划,不能在紧急报销中临时增加门槛。
- 既有 `InvoicePool.ocr_provider` 为非空枚举且默认 `tencent`,所以 off 模式的新记录仍可能带该历史默认标记。判定是否实际调用 OCR 必须同时看 provider 配置、`ocr_attempts`、请求/完成时间和 OCR 结果,不能只看 `ocr_provider`。
- 报销提交时必须把“已关联正式 PDF”和“具有可自动比较的票面金额”分开判断。金额已识别的票据可参加自动合计;没有任何 OCR 请求、尝试、完成或错误事实且金额为空的票据视为未执行 OCR,允许提交并持续标记为“需财务查看原件人工核对”。
- 已发生 OCR 请求、尝试、完成或错误事实但金额仍为空,属于金额识别失败,不得伪装成“缺少发票”或直接放行;员工应重试识别或联系财务处理。
- 同一明细只要包含未执行 OCR 的无金额票据,自动金额合计即不完整。即使同时存在有金额票据,也不得只用已知部分判断申报超额;整条明细转为财务人工核对。只有全部关联票据都有金额时,系统才执行申报金额与票面合计的自动比较。
## 样票脱敏和授权
@@ -95,6 +98,7 @@ R5 公网验收后确认:正式发票/OCR 上传入口只接受 PDF 发票文
- 发票状态为可添加。
- 发票未被其他报销单、差旅单或归档流程占用。
- `linkedItemId` 若传入,必须属于当前报销单。
- 草稿或驳回单中,已添加但尚未选择明细的发票可以直接选择本单明细。该动作必须由服务端在一个事务内校验报销参与人、单据状态、发票归属和明细归属,只更新明细关联;不得要求员工先移除再重新添加,也不得让发票短暂回到可添加状态。
明细匹配规则:
@@ -153,7 +157,7 @@ R5 公网验收后确认:正式发票/OCR 上传入口只接受 PDF 发票文
- 确实无法提供支付截图时,员工必须上传情况说明;财务可以退回补充,也可以在有其他充分证据时例外接受并留痕。不得伪造、补造或借用他人支付凭证。
- OCR 只辅助识别发票字段、匹配和查重,不判断支付真实性、费用合理性或发票法律状态。财务复核时必须同时查看明细金额、PDF 原件和个人支付证明;三者不一致时退回更正或补充说明。
- 每张有效发票应关联到一条明确费用明细。一条明细只表达同一费用类型和同一笔业务支出;不同类型或彼此独立的支出应拆分,采购物品还应是一件或一批同类物品。连续跨天或跨期的同一笔业务支出(如多晚住宿、月度通讯费、按服务期计费)可以作为一条明细,并在说明中写清起止日期。
- 票据—明细门禁启用后,需票明细没有有效发票或申报金额高于关联票面合计时阻断提交;两项包干补助不参加票面比较。关闭门禁不会删除或解绑已经建立的关联关系。
- 票据—明细门禁启用后,已添加发票未选择明细、需票明细没有关联正式 PDF、已尝试 OCR 但票面金额仍无法识别,或在全部关联票据金额完整时申报金额高于票面合计,均阻断提交。未执行 OCR 的无金额 PDF 允许提交,但员工提交反馈和审批详情必须明确提示财务查看原件人工核对;两项包干补助不参加票据与票面比较。关闭门禁不会删除或解绑已经建立的关联关系。
- 财务付款凭证号、付款日期、付款渠道和付款回单属于审批通过后的财务处理,不是员工提交报销时填写的个人支付证明。
### 差旅补助规定