BIZ8 固化费用提示轻量规则

这个提交包含在:
2026-05-13 19:02:07 +08:00
父节点 b4034adeae
当前提交 da88df2903
共修改 2 个文件,包含 23 行新增和 1 行删除
+22
查看文件
@@ -92,6 +92,28 @@
提交前应根据费用类型做预检:发票、附件、项目、说明和金额阈值缺失时给出可操作提示。普通员工只看到业务语言,不展示内部规则码。
### 3.6 BIZ8 费用提示轻量规则
BIZ8 阶段的费用提示只作为填报辅助和审批关注提醒,不扩展为重预算控制、ERP 校验或自动财务判断。系统可以提示“建议补充说明、建议关联项目、金额超出费用标准、财务需重点复核”,但不得把轻量提示误写成公司正式财务制度。
规则边界:
| 类型 | 作用 | 是否阻断提交 |
| --- | --- | --- |
| 材料提示 | 按费用类型提示发票、附件、说明或项目是否建议补充 | 不阻断;除非对应费用类型已配置为必填 |
| 金额提示 | 金额超过试运行建议值时提醒申请人和审批人关注合理性 | 不阻断;只进入提示或人工复核 |
| 费用标准 `warn` | 已配置费用标准且 `control_mode=warn` 时展示超标说明 | 不阻断;提交后可生成待复核风险项 |
| 费用标准 `block` | 已配置费用标准且 `control_mode=block` 时阻断不合规提交 | 可阻断;必须显示可理解原因 |
| 预算提示 | 仅展示预算池、预警或超用风险 | 不等同正式预算控制;重预算冻结项不得在 BIZ8 内启动 |
用户提示要求:
- 普通员工看到业务语言,例如“建议补充行程说明”“建议关联项目”“当前金额超出交通费参考标准”,不展示内部规则码。
- 审批人和财务看到提示来源、费用类型、金额、参考上限和是否需要人工复核。
- 费用提示不能自动通过、自动驳回或自动改审批链;正式审批仍以统一审批中心为准。
- 规则来源必须可配置或可追溯,不得把试运行建议金额硬编码成最终制度。
- 若规则缺失,系统可以提示“未配置费用标准”,不能把缺配置解释为审批通过或预算通过。
---
## 4. 状态模型
@@ -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。
1 ID Title Description Acceptance Test_Method Tools Dev_Status Review1_Status Regression_Status Files Dependencies Notes
9 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 审计;未改业务代码。
10 BIZ8-8 财务台账扫读性 提升财务台账的扫读性,优先解决状态、金额、申请人、项目和票据提示的扫描效率。 1) 财务能快速识别待处理项;2) 状态和金额不混乱;3) 权限不泄露;4) PC 和移动布局可用。 流程级验证:财务查看台账 -> 筛选或扫读待付款报销 -> 检查状态、金额、申请人和票据提示。 playwright|npm|manual TODO TODO TODO client/src|server/src|docs/产品设计规则.md ["BIZ8-1"] UI 改动必须参考设计事实源。
11 BIZ8-9 付款和导出增强 增强或验证财务付款标记和导出路径,保证权限、状态和审计一致。 1) 只有财务可执行付款或导出;2) 状态转换合法;3) 导出不泄露无权限数据;4) 操作可追溯。 流程级验证:财务付款或导出 -> 普通员工和管理员直连复核 -> 检查状态和权限。 node|bash|manual TODO TODO TODO server/src|client/src|server/scripts ["BIZ8-8"] 不得引入 ERP 实时集成。
12 BIZ8-10 费用提示轻量规则 设计轻量费用提示规则,作为填报辅助而非重预算控制。 1) 提示不阻断合法报销;2) 规则来源清楚;3) 不承诺预算控制;4) 用户可理解。 流程级验证:填写不同金额或类型报销 -> 检查费用提示 -> 提交和审批不被误阻断。 manual|playwright TODO DONE TODO DONE TODO 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 优先级;未改业务代码。
13 BIZ8-11 项目关联增强 增强报销、采购或合同与项目轻管理的关联,保持轻量不扩展成重型项目管理。 1) 项目选择和展示清楚;2) 无项目时可解释;3) 项目权限不泄露;4) 不扩展复杂 WBS。 流程级验证:创建或选择项目 -> 提交报销/采购 -> 财务或负责人查看关联 -> 检查权限。 node|playwright|manual TODO TODO TODO docs/需求-项目轻管理规约.md|server/src|client/src ["BIZ8-1"] 项目重管理冻结。
14 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"] 真机验证不能被自动化替代。
15 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。