tangweijie 91f37d6622 docs: 收口 REV-005 US4 边界与验证记录
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 10:22:56 +08:00

124 lines
7.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# REV-005 验证记录
## 1. 验证范围
本记录用于沉淀 `REV-005` 当前已完成的一期正常开票闭环验证证据,覆盖以下范围:
- US1后台发票申请与校验
- US2`SYS-008` 异步协同与查询兜底
- US3结果回写、账单关联与客户侧电子发票消费
- US4作废与红冲边界预留仅文档边界不含 backend 实现)
当前验证结论以已执行命令、已完成文档修订、最小编译验证和范围边界复核为主;`spec.md``SC-001 ~ SC-005` 的性能/统计指标尚未形成专门压测脚本或批量样本统计,本文件先记录现有证据、缺口与后续建议。
## 2. 已执行验证命令与结果
| 类别 | 命令 | 结果 | 说明 |
|------|------|------|------|
| 文档单文件校验 | `make validate-file FILE=docs/design/03_Technical_Design/01_Database_Design.md` | 通过 | 已用于验证发票数据承接口径 |
| 文档单文件校验 | `make validate-file FILE=docs/design/03_Technical_Design/03_Interface_Design.md` | 通过 | 已用于验证客户侧查询/下载/推送接口文档 |
| backend 最小编译 | `mvn -f backend/sw-business/sw-business-server/pom.xml -DskipTests compile` | 通过 | 已用于验证 REV-005 US3 代码可编译 |
| 仓库交叉引用校验 | `make check-links` | 通过 | 当前链接检查输出为“所有链接检查通过” |
| Mermaid 语法校验 | `make validate-mermaid` | 通过 | 当前 Mermaid 验证输出为“所有 mermaid 图表语法验证通过” |
## 3. Success Criteria 对照
### SC-001 发票申请接口响应时间 < 500ms不包含外部服务调用
- **当前状态**:待补充专项验证
- **现有证据**backend 最小编译通过,后台申请接口与校验链路已实现
- **缺口说明**:尚未执行接口响应时延采样,也未沉淀固定样本、环境与统计结果
- **后续建议**:在可用测试环境中对 `/admin-api/revenue/invoice/apply` 执行最小样本压测或定点采样至少记录样本量、平均值、P95、排除外部调用口径
### SC-002 发票申请校验通过率 > 95%(正常业务场景)
- **当前状态**:待补充样本统计
- **现有证据**:已实现账单收费状态、开票状态、客户开票信息、税率配置、开票限额、幂等控制等校验规则
- **缺口说明**:尚未基于真实或模拟样本形成“正常场景通过率”统计
- **后续建议**:准备覆盖正常账单、已开票账单、未缴费账单、限额超限账单等样本集,按样本分组输出通过/拦截统计
### SC-003 开票结果回写成功率 > 99%
- **当前状态**:待补充样本统计
- **现有证据**:已实现结果回写、成功终态保护、账单状态联动、失败原因留痕
- **缺口说明**:尚未基于批量样本统计回写成功率
- **后续建议**:在联调或测试环境中按申请单号、受理号建立样本集,统计回写请求总量、成功量、失败量与失败原因分类
### SC-004 电子发票下载成功率 > 99%
- **当前状态**:待补充样本统计
- **现有证据**:已实现仅 `SUCCESS + fileUrl` 可下载/推送的前置校验,客户归属校验与推送状态回写已落地
- **缺口说明**:尚未形成客户侧下载成功率样本统计
- **后续建议**:在具备有效电子票文件地址的样本下,统计查询、下载、推送三类动作成功率,并区分“无权限”“无文件”“非成功终态”等拦截原因
### SC-005 操作日志完整率 100%(所有关键操作均有日志)
- **当前状态**:部分满足,待补充专项核对
- **现有证据**:申请、查询补偿、结果回写、客户侧下载/推送等关键动作已在当前实现中补充操作留痕
- **缺口说明**:尚未形成“关键动作清单 ↔ 日志写入点”逐项对照表
- **后续建议**:补一份日志追溯矩阵,至少覆盖申请、调用、查询、回写、下载、推送六类动作
## 4. US4 边界收口结论
当前已在以下正式文档中明确:
- `docs/design/02_Detailed_Design/12_REV_Detailed.md`
- `docs/design/03_Technical_Design/03_Interface_Design.md`
- `docs/design/00_Management/01_Project_Progress.md`
- `docs/design/00_Management/03_Task_Checklist.md`
收口结论如下:
1. 一期交付范围为“后台申请 + 查询兜底 + 结果回写 + 账单关联 + 客户侧电子票消费”。
2. 发票作废、红冲继续由 `SYS-008` 统一承接。
3. 当前阶段仅保留 `INVALID``RED_INK` 状态与后续扩展入口,不视为本轮 backend 已交付能力。
4. 后续若进入作废/红冲实现,应在既有状态模型和文档入口上继续扩展,不回退当前一期闭环边界。
## 5. 当前已完成文件
### 正式文档
- `docs/design/02_Detailed_Design/12_REV_Detailed.md`
- `docs/design/03_Technical_Design/01_Database_Design.md`
- `docs/design/03_Technical_Design/03_Interface_Design.md`
- `docs/design/00_Management/01_Project_Progress.md`
- `docs/design/00_Management/03_Task_Checklist.md`
### spec/planning 产物
- `specs/002-rev005-invoice-flow/spec.md`
- `specs/002-rev005-invoice-flow/plan.md`
- `specs/002-rev005-invoice-flow/research.md`
- `specs/002-rev005-invoice-flow/data-model.md`
- `specs/002-rev005-invoice-flow/contracts/if-rev-008-invoice-application.md`
- `specs/002-rev005-invoice-flow/contracts/if-rev-009-invoice-query.md`
- `specs/002-rev005-invoice-flow/tasks.md`
- `specs/002-rev005-invoice-flow/verification.md`
### backend 相关实现
- `backend/sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/controller/admin/invoice/InvoiceController.java`
- `backend/sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/controller/admin/invoice/vo/InvoiceApplyReqVO.java`
- `backend/sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/controller/admin/invoice/vo/InvoiceApplyRespVO.java`
- `backend/sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/controller/admin/invoice/vo/InvoiceCustomerQueryReqVO.java`
- `backend/sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/controller/admin/invoice/vo/InvoicePushReqVO.java`
- `backend/sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/controller/admin/invoice/vo/InvoiceQueryReqVO.java`
- `backend/sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/controller/admin/invoice/vo/InvoiceQueryRespVO.java`
- `backend/sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/controller/admin/invoice/vo/InvoiceWriteBackReqVO.java`
- `backend/sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/dal/dataobject/invoice/InvoiceDO.java`
- `backend/sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/dal/mysql/invoice/InvoiceMapper.java`
- `backend/sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/service/invoice/InvoiceService.java`
- `backend/sw-business/sw-business-server/src/main/java/cn/com/emsoft/sw/business/service/invoice/InvoiceServiceImpl.java`
## 6. 剩余风险
1. `SC-001 ~ SC-005` 尚缺可重复执行的专项测量脚本或统计记录。
2. 当前 `make validate-mermaid` 输出仅覆盖仓库现有扫描范围,若后续扩展更多图表文件,仍需复核目标文件是否全部纳入。
3. backend 子仓库仍存在与本轮无关的未提交改动,后续继续提交时需避免混入。
4. 作废/红冲当前仅完成边界收口,尚未进入下一轮 planning、tasks 与实现拆解。
## 7. 下一步建议
1. 若继续推进一期验收,优先补 `SC-001 ~ SC-005` 的专项统计与样本口径。
2. 若继续推进功能,下一阶段建议进入“作废/红冲”专项 planning而不是在本轮正常开票闭环上继续追加范围。
3. 若准备提测,可直接引用本文件作为当前已完成验证与剩余风险摘要。\n