Files

11 KiB

按阶段执行任务拆解清单

1. 文档目的

本文档基于以下两份已确认文档继续往下拆:

目标是把后续工作拆成可执行任务,方便逐项审核、排期、实施和验收。


2. 执行总原则

每项任务都按同一口径执行:

  • 业务语义按旧项目保持一致
  • 代码实现按当前 leaudit-platform 规范落地
  • 先做 P0,再做 P1,最后做 P2

每项任务都要求明确:

  • 改什么
  • 改哪里
  • 不改什么
  • 做完怎么验

3. 第一阶段:P0 闭环恢复

3.1 P0-1 恢复报告产物闭环

目标

恢复一次 govdoc run 完成后的正式产物闭环:

  • annotated.docx
  • report.html
  • paragraphs.html

后端任务

  1. 将旧项目报告生成逻辑映射到当前 govdoc_bridge 执行链路。
  2. 在 run 执行完成后,正式生成报告产物,而不是只写规则结果。
  3. 将生成后的产物上传到平台正式存储。
  4. 将产物索引写入 govdoc_report_artifacts
  5. 确保同一 run 重复执行时,产物记录的覆盖/新增策略明确。

前端任务

  1. 详情页的 批注 DOCX报告 HTML 仅在真实产物存在时开放。
  2. 列表页“报告”入口指向真实 HTML 报告。
  3. 如果产物不存在,页面应明确呈现“未生成”,不能假成功。

SQL / 环境任务

  1. 核对 govdoc_report_artifacts 字段是否满足产物索引需要。
  2. 明确 OSS 路径命名规则和产物类型枚举。

重点文件

  • fastapi_modules/fastapi_leaudit/govdoc_bridge/result_adapter.py
  • fastapi_modules/fastapi_leaudit/govdoc_bridge/runner.py
  • fastapi_modules/fastapi_leaudit/govdoc_bridge/storage_adapter.py
  • fastapi_modules/fastapi_leaudit/services/impl/govdocServiceImpl.py
  • legal-platform-frontend/components/govdoc-audit/audit.tsx
  • legal-platform-frontend/components/govdoc-audit/audits.tsx

不改事项

  • 不改现有文档主档模型
  • 不改 document + run 结构
  • 不改页面主入口语义

完成标准

  • 新上传一份文档,run 完成后可下载批注 DOCX
  • 新上传一份文档,run 完成后可打开 HTML 报告
  • 段落视图可正常渲染并联动 findings

3.2 P0-2 收口详情结果对象

目标

把当前分散在多个接口里的详情结果,收口为稳定可渲染的完整业务对象。

后端任务

  1. 明确详情页主接口的返回语义。
  2. 确保以下数据在同一条业务语义上成立:
    • summary
    • findings
    • checked_rules
    • entities
    • structure
    • outline
    • reports
  3. 明确“默认 latest run”和“指定历史 run”的组装规则。
  4. 保证 checked_rulesfindingssummary 三者统计一致。

前端任务

  1. 详情页 API 适配层统一按 documentId 工作。
  2. 历史 run 切换后,页面所有标签页和产物入口同步切换。
  3. 错误态统一,不再出现部分接口成功、部分接口失败导致的半渲染页面。

SQL / 环境任务

  1. 核对 run 结果摘要字段与详情页所需数据是否匹配。
  2. 明确 result_summary_json 的职责边界,避免前后重复计算。

重点文件

  • fastapi_modules/fastapi_leaudit/services/impl/govdocServiceImpl.py
  • legal-platform-frontend/lib/api/govdoc-audit/api.ts
  • legal-platform-frontend/components/govdoc-audit/audit.tsx

不改事项

  • 不把详情入口改回 runId 主入口
  • 不把前端强行改成只看局部接口数据

完成标准

  • 详情页首次打开就能完整稳定渲染
  • 切换历史 run 后,结果、报告、段落视图一致切换
  • 不再依赖“某几个接口恰好成功”才能正常展示

3.3 P0-3 规则版本正式接入执行链路

目标

ruleVersionId 从“接口参数”变成“实际生效规则版本”。

后端任务

  1. 明确 govdoc 模块应如何接入平台现有规则版本治理。
  2. 打通:
    • 上传文档传入 ruleVersionId
    • 手动创建 run 传入 ruleVersionId
    • run 执行阶段解析规则版本
    • 实际加载该版本规则内容
  3. 在 run 记录中保存本次实际使用的规则版本信息。
  4. GetRuleDetail / ListRules 应与当前生效规则版本一致。

前端任务

  1. 如果当前阶段不开放规则版本选择,则隐藏选择能力,避免假入口。
  2. 如果开放规则版本选择,则页面选中的版本必须真生效。

SQL / 环境任务

  1. 明确 govdoc 与平台规则版本表的关联方式。
  2. 如需新增字段或绑定关系,纳入正式 schema / migration。

重点文件

  • fastapi_modules/fastapi_leaudit/controllers/govdocController.py
  • fastapi_modules/fastapi_leaudit/services/impl/govdocServiceImpl.py
  • fastapi_modules/fastapi_leaudit/govdoc_bridge/tasks.py
  • 平台规则版本治理相关实现

不改事项

  • 不长期依赖硬编码本地规则路径作为正式方案

完成标准

  • 指定规则版本后,执行结果能证明使用的是该版本
  • 审查结果页、规则页、run 记录的规则版本信息一致

3.4 P0-4 数据库与初始化正式化

目标

将当前运行时兜底初始化,收口为正式初始化方案。

后端任务

  1. 梳理 govdoc 所需正式表、索引、字段、默认值。
  2. 明确哪些保留运行时兜底,哪些必须前置初始化。
  3. 去掉“必须先访问接口一次,表才建出来”的隐性依赖。

前端任务

  1. 无直接改动要求,主要配合环境验证。

SQL / 环境任务

  1. 整理并核对:
    • govdoc_runs
    • govdoc_rule_results
    • govdoc_report_artifacts
    • leaudit_documents.engine_type
  2. 核对权限、菜单、entry module 种子 SQL。
  3. 新环境按正式 SQL 能一次初始化完成。

重点文件

  • scripts/创建sql/schema_add_govdoc_module.sql
  • 权限与 entry module 相关 seed SQL
  • fastapi_modules/fastapi_leaudit/services/impl/govdocServiceImpl.py

不改事项

  • 不删除必要兜底逻辑前,先保证正式初始化可跑通

完成标准

  • 全新环境初始化后可直接运行
  • 不再出现缺表导致的 404/500

4. 第二阶段:P1 质量与一致性补齐

4.1 P1-1 核心实体识别调优

目标

优先把对业务最关键的实体识别稳定下来:

  • 标题
  • 发文字号
  • 日期
  • 署名
  • 主送机关
  • 文种

后端任务

  1. 梳理旧项目实体抽取逻辑与当前 govdoc_engine 的差异。
  2. 逐项修正:
    • docx_parser
    • role_tagger_rule
    • entity_builder
  3. 确保“先结构化抽取,后差量 LLM 抽取”的语义不变。

前端任务

  1. 实体页展示逻辑跟随后端真实结果,不自行兜假值。

验证任务

  1. 选取典型正反例文档做实体识别比对。
  2. 建一组固定验收样本。

完成标准

  • 核心实体识别达到可验收水平
  • 正反例结果基本符合业务预期

4.2 P1-2 高频规则误判修正

目标

优先解决最影响结果可信度的规则误判/漏判。

后端任务

  1. 梳理当前高频错判规则。
  2. 修正规则 YAML、规则执行逻辑或实体依赖。
  3. 确保 findingschecked_rules 状态一致。

重点文件

  • rules/govdoc/govdoc_general/rules.yaml
  • 相关 parser / engine check 实现

完成标准

  • 典型样本下不再出现明显错误结论
  • 高优先级规则结果可解释

4.3 P1-3 文件能力与页面提示统一

目标

把“系统真正支持什么文件”和“页面告诉用户支持什么文件”统一起来。

后端任务

  1. 明确当前阶段是否恢复 .doc / .wps -> docx 转换能力。
  2. 如果恢复,补齐转换链路。
  3. 如果不恢复,统一收口为 .docx,并形成明确业务口径。

前端任务

  1. 上传页提示、accept、错误提示与后端能力一致。
  2. 列表筛选文件类型与实际能力一致。

重点文件

  • fastapi_modules/fastapi_leaudit/services/impl/govdocServiceImpl.py
  • legal-platform-frontend/components/govdoc-audit/upload-zone.tsx
  • legal-platform-frontend/components/govdoc-audit/audits.tsx

完成标准

  • 用户不会再看到“页面允许、后端拒绝”的不一致

4.4 P1-4 列表、详情、历史 run 语义统一

目标

把文档主模型和历史 run 语义真正落成产品行为。

后端任务

  1. 明确列表展示的是“文档最新结果”。
  2. 明确详情默认 latest run,支持历史 run 切换。
  3. 明确首页统计按文档 latest run 计算。

前端任务

  1. 列表跳详情统一按 documentId
  2. 历史 run 的显示、切换、当前标识明确。
  3. 避免再混用 documentIdrunId 做同一主键字段。

完成标准

  • 同一文档多次执行后,用户能看懂当前结果和历史结果
  • 列表、详情、统计三处的“最新结果”口径一致

5. 第三阶段:P2 治理与收尾

5.1 P2-1 实体结果结构化治理

目标

评估是否需要独立实体表或更正式的结构化结果域。

任务

  1. 梳理现有 result_summary_json 承载内容。
  2. 明确哪些长期适合 JSON,哪些适合结构化。
  3. 如需拆表,作为后续治理任务安排,不阻塞 P0/P1。

5.2 P2-2 文档同步更新

目标

让内部文档反映当前真实代码状态和业务边界。

任务

  1. 更新运行依赖说明。
  2. 更新现状偏差与补齐计划。
  3. 更新接口、权限、环境说明。

5.3 P2-3 测试与演示数据收尾

目标

为提测和演示整理稳定环境。

任务

  1. 清理历史失败 run 和无效测试文档。
  2. 沉淀一组固定验收样本。
  3. 明确演示环境初始化步骤。

6. 推荐执行顺序

建议实际开发顺序如下:

  1. P0-1 报告产物闭环
  2. P0-2 详情结果对象收口
  3. P0-4 数据库与初始化正式化
  4. P0-3 规则版本正式接入
  5. P1-1 核心实体识别调优
  6. P1-2 高频规则误判修正
  7. P1-3 文件能力与页面提示统一
  8. P1-4 列表、详情、历史 run 语义统一
  9. P2 治理与文档收尾

之所以把 P0-4 放到 P0-3 前面,是因为:

  • 没有稳定环境初始化,规则接入和报告链路都容易被环境问题反复干扰

7. 建议的每轮交付节奏

为了避免一次改太大,建议每轮只交付一个可验证闭环。

第一轮

  • 报告产物闭环
  • 详情页真实可下载/可打开报告

第二轮

  • 规则版本正式接入
  • 规则页与执行结果规则版本一致

第三轮

  • 核心实体识别调优
  • 高频规则误判修正

第四轮

  • 文件能力统一
  • 历史 run 与列表/详情语义统一

第五轮

  • 文档、数据、治理收尾

8. 最终结论

后续实施不应再以“能不能先跑起来”为目标,而应以:

  • 是否恢复完整业务闭环
  • 是否符合当前平台规范

作为唯一标准。

按这个拆解顺序执行,内部公文模块就能在不改业务逻辑的前提下,逐阶段恢复为一套真正可验收、可维护、可持续扩展的正式模块。