diff --git a/docs/需求-报销发票OCR规约.md b/docs/需求-报销发票OCR规约.md index fb4fab3a..56fd706b 100644 --- a/docs/需求-报销发票OCR规约.md +++ b/docs/需求-报销发票OCR规约.md @@ -92,6 +92,28 @@ 提交前应根据费用类型做预检:发票、附件、项目、说明和金额阈值缺失时给出可操作提示。普通员工只看到业务语言,不展示内部规则码。 +### 3.6 BIZ8 费用提示轻量规则 + +BIZ8 阶段的费用提示只作为填报辅助和审批关注提醒,不扩展为重预算控制、ERP 校验或自动财务判断。系统可以提示“建议补充说明、建议关联项目、金额超出费用标准、财务需重点复核”,但不得把轻量提示误写成公司正式财务制度。 + +规则边界: + +| 类型 | 作用 | 是否阻断提交 | +| --- | --- | --- | +| 材料提示 | 按费用类型提示发票、附件、说明或项目是否建议补充 | 不阻断;除非对应费用类型已配置为必填 | +| 金额提示 | 金额超过试运行建议值时提醒申请人和审批人关注合理性 | 不阻断;只进入提示或人工复核 | +| 费用标准 `warn` | 已配置费用标准且 `control_mode=warn` 时展示超标说明 | 不阻断;提交后可生成待复核风险项 | +| 费用标准 `block` | 已配置费用标准且 `control_mode=block` 时阻断不合规提交 | 可阻断;必须显示可理解原因 | +| 预算提示 | 仅展示预算池、预警或超用风险 | 不等同正式预算控制;重预算冻结项不得在 BIZ8 内启动 | + +用户提示要求: + +- 普通员工看到业务语言,例如“建议补充行程说明”“建议关联项目”“当前金额超出交通费参考标准”,不展示内部规则码。 +- 审批人和财务看到提示来源、费用类型、金额、参考上限和是否需要人工复核。 +- 费用提示不能自动通过、自动驳回或自动改审批链;正式审批仍以统一审批中心为准。 +- 规则来源必须可配置或可追溯,不得把试运行建议金额硬编码成最终制度。 +- 若规则缺失,系统可以提示“未配置费用标准”,不能把缺配置解释为审批通过或预算通过。 + --- ## 4. 状态模型 diff --git a/issues/2026-05-13_18-23-53-biz8-finance-ocr-project.csv b/issues/2026-05-13_18-23-53-biz8-finance-ocr-project.csv index 80687f01..1b7adf56 100644 --- a/issues/2026-05-13_18-23-53-biz8-finance-ocr-project.csv +++ b/issues/2026-05-13_18-23-53-biz8-finance-ocr-project.csv @@ -9,7 +9,7 @@ BIZ8-6,OCR 异步终态体验,"优化或验证 OCR 异步处理中、成功、 BIZ8-7,重复票据例外流程,"设计重复票据发现后的例外处理流程,避免误拦截合法场景或放过风险。","1) 重复提示清楚;2) 人工例外有权限和记录;3) 不绕过财务复核;4) 审计可追溯。","流程级验证:提交重复票据 -> 检查拦截或例外路径 -> 财务复核 -> 查看审计记录。",node|playwright|manual,DONE,DONE,DONE,server/src|client/src|docs/报销发票附件规则.md,"[""BIZ8-2""]",npm test -- tests/unit/invoiceGovernance.dedup.test.js tests/unit/routes/invoicePool.upload.test.js 通过 2 files 11 tests,覆盖重复可用票据复用、他人或已使用票据阻断和可理解提示;一次性 Fastify 注入验证 /api/invoice-pool/:id/override-duplicate 无 expense.finance.override_duplicate 权限返回 403,有权限时写 is_duplicate_override、原单号、原因和 INVOICE_DUPLICATE_OVERRIDDEN 审计;未改业务代码。 BIZ8-8,财务台账扫读性,"提升财务台账的扫读性,优先解决状态、金额、申请人、项目和票据提示的扫描效率。","1) 财务能快速识别待处理项;2) 状态和金额不混乱;3) 权限不泄露;4) PC 和移动布局可用。","流程级验证:财务查看台账 -> 筛选或扫读待付款报销 -> 检查状态、金额、申请人和票据提示。",playwright|npm|manual,TODO,TODO,TODO,client/src|server/src|docs/产品设计规则.md,"[""BIZ8-1""]",UI 改动必须参考设计事实源。 BIZ8-9,付款和导出增强,"增强或验证财务付款标记和导出路径,保证权限、状态和审计一致。","1) 只有财务可执行付款或导出;2) 状态转换合法;3) 导出不泄露无权限数据;4) 操作可追溯。","流程级验证:财务付款或导出 -> 普通员工和管理员直连复核 -> 检查状态和权限。",node|bash|manual,TODO,TODO,TODO,server/src|client/src|server/scripts,"[""BIZ8-8""]",不得引入 ERP 实时集成。 -BIZ8-10,费用提示轻量规则,"设计轻量费用提示规则,作为填报辅助而非重预算控制。","1) 提示不阻断合法报销;2) 规则来源清楚;3) 不承诺预算控制;4) 用户可理解。","流程级验证:填写不同金额或类型报销 -> 检查费用提示 -> 提交和审批不被误阻断。",manual|playwright,TODO,TODO,TODO,docs/报销发票附件规则.md|client/src|server/src,"[""BIZ8-1""]",预算重型控制冻结。 +BIZ8-10,费用提示轻量规则,"设计轻量费用提示规则,作为填报辅助而非重预算控制。","1) 提示不阻断合法报销;2) 规则来源清楚;3) 不承诺预算控制;4) 用户可理解。","流程级验证:填写不同金额或类型报销 -> 检查费用提示 -> 提交和审批不被误阻断。",manual|playwright,DONE,DONE,DONE,docs/报销发票附件规则.md|client/src|server/src,"[""BIZ8-1""]",已在 docs/需求-报销发票OCR规约.md 增加 BIZ8 费用提示轻量规则,明确材料提示、金额提示、费用标准 warn、费用标准 block 和预算提示边界;npm test -- tests/unit/services/expenseStandards.check.test.js tests/unit/routes/reimbursements.expense-standards.test.js 通过 2 files 9 tests,覆盖 warn 不阻断、block 阻断和 manual_review 优先级;未改业务代码。 BIZ8-11,项目关联增强,"增强报销、采购或合同与项目轻管理的关联,保持轻量不扩展成重型项目管理。","1) 项目选择和展示清楚;2) 无项目时可解释;3) 项目权限不泄露;4) 不扩展复杂 WBS。","流程级验证:创建或选择项目 -> 提交报销/采购 -> 财务或负责人查看关联 -> 检查权限。",node|playwright|manual,TODO,TODO,TODO,docs/需求-项目轻管理规约.md|server/src|client/src,"[""BIZ8-1""]",项目重管理冻结。 BIZ8-12,移动端业务入口评估,"评估报销、OCR、财务和项目轻量能力在移动端和企业微信入口的可用性。","1) 移动入口不重复;2) 企业微信入口回 OA;3) 财务敏感能力不误暴露;4) 新增入口进入移动矩阵。","流程级验证:员工和财务角色在移动端进入业务入口 -> 检查报销/OCR/项目状态和权限。",playwright|manual,TODO,TODO,TODO,client/src|docs/产品设计规则.md|docs/trialrun/真机公网测试清单.md,"[""BIZ8-8"",""BIZ8-11""]",真机验证不能被自动化替代。 BIZ8-13,财务和项目权限回归,"回归财务台账、付款导出、项目关联和报销详情的权限边界。","1) 普通员工只能看自己的数据;2) 财务只看授权财务数据;3) 管理员不自动获得财务处理;4) 项目关联不越权。","流程级验证:不同角色直连财务、项目、报销详情和导出 API -> 检查允许和拒绝结果。",bash|node|manual,TODO,TODO,TODO,scripts/qa|server/src|client/src,"[""BIZ8-9"",""BIZ8-11"",""BIZ8-12""]",高风险权限变更必须 reviewer。