# 证据库最小改造验证记录

## 验证时间

2026-04-21

## 验证环境

- 前端：`http://localhost:62319`
- 后端：`http://localhost:62318`
- 项目：`test`
- 项目 ID：`90337`

## 验证结果

| 验证项 | 结果 | 说明 |
| --- | --- | --- |
| 后端编译 | 通过 | `mvn -pl ccdi-project -am compile -DskipTests` 成功 |
| 前端构建 | 通过 | `npm run build:prod` 成功，仅存在原有包体积 warning |
| 数据库表 | 通过 | `ccdi_evidence` 已存在 |
| 模型证据入库 | 通过 | 模型详情小号「加入证据库」可打开弹窗并保存，生成 `EV-001` |
| 流水证据入库 | 通过 | 流水详情小号「加入证据库」可打开弹窗并保存，当前代码已改为使用 32 位 MD5 指纹作为 `source_record_id` |
| 资产证据入库 | 通过 | 资产详情小号「加入证据库」可打开弹窗并保存，已验证旧规则测试数据 `EV-003` 与新指纹规则测试数据 `EV-004` |
| 证据线索抽屉 | 通过 | 抽屉展示三类证据，包含编号、类型、关联人员、摘要、来源、确认人、备注 |
| 前端控制台 | 通过 | 验证后未发现 error/warn |
| 模型/资产来源指纹更新 | 通过 | 已重启后端并通过 MCP 页面验证：模型证据、资产证据均可打开确认弹窗，本次未确认入库，避免新增测试数据 |
| 证据抽屉跳转入口 | 通过 | 本期不做原记录跳转，已移除抽屉卡片中的「查看流水详情」「查看模型详情」「查看资产详情」按钮 |

## 落库核对

项目 `90337` 当前证据数：

| 类型 | 数量 |
| --- | ---: |
| FLOW | 1 |
| MODEL | 1 |
| ASSET | 2 |
| 合计 | 4 |

## 注意事项

- 本次验证产生了测试证据数据，如正式交付前需要干净环境，可按项目 ID 清理。
- 历史已保存的测试证据可能保留旧来源标识，新保存的流水、模型、资产证据会按当前规则生成 MD5 指纹。
- 当前代码已将模型证据来源标识改为 `md5(人员身份证+模型编码)`，资产证据来源标识改为 `md5(人员身份证+资产字段)`，均不拼接项目 ID。
- 为让模型详情前端拿到模型编码，后端仅补充返回 `modelCode` 字段，不涉及表结构和接口路径变更。

## 后续边界

- 证据卡片「查看详情」本期不做真实跳转，当前抽屉不展示跳转按钮；后续如要定位原记录，可基于 `source_type`、`source_record_id`、`snapshot_json` 增加跳转逻辑。
- 跨项目引用/复用 UI 本期不做；当前 `source_record_id` 已按不拼接项目 ID 的规则生成，后续具备按同一来源指纹做跨项目比对的基础。
- 重复证据拦截本期不做；当前允许同一项目内重复确认，后续可按 `project_id + evidence_type + source_type + source_record_id` 增加唯一性提示或软拦截。
