43 lines
2.3 KiB
Markdown

# Contract: REV-004 功能缺失判定矩阵
## 1. 目标
本合同用于统一判定旧账务对象相对当前 backend 的承接成熟度,避免将“旧表缺失”直接误判为“功能缺失”。
## 2. 判定字段
| Field | Required | Description |
| --- | --- | --- |
| `legacyObjectName` | Yes | 旧对象名称 |
| `legacyTable` | Yes | 旧表名 |
| `expectedCapability` | Yes | 旧对象期望承载的业务能力 |
| `currentVerdict` | Yes | `implemented` / `partial` / `readonly` / `missing` |
| `evidenceType` | Yes | `controller` / `service` / `do` / `mapping-doc` / `none` |
| `evidencePath` | Yes | 证据路径或文档路径 |
| `whyNotFullyImplemented` | No | 为什么不能判定为完全实现 |
| `recommendedHandling` | Yes | `reuse` / `extend` / `readonly-retain` / `implement-later` |
| `migrationImpact` | Yes | 对迁移的影响:低 / 中 / 高 |
| `notes` | No | 其他补充说明 |
## 3. 判定规则
- `implemented`:当前 backend 已有稳定在线能力,且核心业务语义可被当前对象直接承接。
- `partial`:已有部分能力、控制器、服务或数据对象,但无法完整表达旧模型全部语义。
- `readonly`:不建议在线重建,只要求查询、比对和追溯能力。
- `missing`:当前未看到稳定承接能力或映射出口,后续需补设计或开发。
## 4. 使用约束
- 不允许仅凭“未看到同名表”判定为 `missing`
- 必须优先核对统一场景入口、服务逻辑、日志承接和历史只读口径。
- 对于旧审批流相关对象,若当前只保留审批能力位,可优先判为 `readonly``partial`,而不是默认 `missing`
## 5. 示例
| legacyObjectName | currentVerdict | evidencePath | recommendedHandling | 说明 |
| --- | --- | --- | --- | --- |
| 营业账 | implemented | `ChargeDO.java` / `biz_charge` | reuse | 已有主对象承接 |
| 预存退款详情 | partial | `ChargeServiceImpl.adjustAccounting` + `bk_transaction*` | extend | 退款语义已有,旧细明台账未一对一落地 |
| 账单-呆坏账详情 | partial | `ChargeServiceImpl.adjustAccounting` | extend | 坏账申请语义已有,但旧细表未独立承接 |
| 特账明细 | missing | `BACKEND_TABLE_MAPPING.md` | implement-later or readonly-retain | 当前未见稳定承接 |