# 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 | 当前未见稳定承接 |