PR REVIEW EVIDENCE

feat(entity-log): 公司旧备份实体日志接入在线查询(禅道 #3442)

hemo-backend #1382

  1. PR 提交时间2026-10-09 16:13:18
  2. 审核结束时间2026-10-09 18:20:11
  3. 固定版本f1f6abfe2dc7
  4. 模型链gpt-5.6-terra → gpt-5.6-sol
  5. 门禁blocked
  6. 结果success

难度分

82
  • code_volume78包含大型离线导入命令、查询链路改造、迁移脚本、OSS 客户端扩展及多组测试和运维脚本。
  • architecture_complexity82改动跨越 MySQL 路由、OSS 对象校验、冷热日志合并、分页游标、排班内部查询和离线发布事务。
  • domain_knowledge88需要理解医疗审计日志、机构范围隔离、历史归档恢复、数据完整性核验和受控生产运维流程。
  • impact_scope72查询契约新增来源字段,并影响全院可见的实体日志查询与排班历史排序;旧数据发布后才会实际扩展数据范围。
  • risk_level85涉及历史审计数据导入、对象存储保护属性、生产路由写入和跨来源去重,错误可能影响日志可追溯性与查询正确性。

完成分

94
  • correctness80最终风险固定扣分:medium 1×20;合计 -20
  • completeness100本次静态审核未发现该维度的确认问题;不代表绝对完善
  • code_quality100本次静态审核未发现该维度的确认问题;不代表绝对完善
  • security100本次静态审核未发现该维度的确认问题;不代表绝对完善
  • details100本次静态审核未发现该维度的确认问题;不代表绝对完善

固定范围

目标分支 SHA
8aabc6e7343116b21759886ab5ec431d2f837ddf
共同祖先 SHA
d634fbd39fb172de16835ee40f12e7597e97e7a8
PR head SHA
f1f6abfe2dc7b54046a2d165617b6706e9e37957
轻量检查
passed · 轻量检查通过

风险与证据

medium · 已确认 · 已计入完成分

来源标签缺少数据库唯一约束

并发导入或其他写入途径可能让不同旧数据来源使用相同来源标签。若这些来源存在相同日志编号,查询结果中的“来源 + 日志编号”将无法唯一定位日志,可能造成审计追溯、列表选择或翻页处理混淆。

证据:src/main/resources/sql/migration/2026-10-09-entity-update-log-legacy-route.sql:35 PRIMARY KEY (id), UNIQUE KEY uk_eul_legacy_archive_code (archive_code), UNIQUE KEY uk_eul_legacy_object_key (object_key(191)), KEY ix_eul_legacy_query_day (archive_day, table_name, security_class, min_create_time, max_create_time), KEY ix_eul_legacy_query_scope (client_scope, archive_day, table_name, security_class, min_create_time, max_create_time), KEY ix_eul_legacy_source (source_code)

建议:为 source_label 增加数据库唯一键,并保留发布前校验以提供清晰错误信息;迁移前先检查是否已有重复标签。