待办事项(TODO)

汇总自代码扫描(serve.py 占位、report_migration/ 草稿、NotImplementedError、Phase 注释)。 按优先级分组。来源位置用 file:line 标注。

P0 — 未实现功能(阻塞使用)

T0-1 Web 界面(serve 命令占位)

  • 位置src/certflow/cli/commands/serve.py:55-65

  • 现状:CLI 子命令 certflow serve 已定义,但 certflow.web 模块不存在,from certflow.web import create_appImportError,输出"Web 模块尚未实现"。

  • 待办:选定方案(Flask / FastAPI / PySide6 WebEngine),实现 certflow.web.create_app(),提供浏览器访问入口。

  • 建议优先级:取决于远程访问需求;纯单机使用可延后。

T0-2 报告迁移草稿区未并入主源

  • 位置src/certflow/services/report_migration/material_provider.py:45, 166

  • 现状material_provider.pyNotImplementedErrorreport_fill_engine.pyreport_data_builder.py 为草稿,ruff 已豁免 C901(见 pyproject.toml:210-213)。

  • 待办:将草稿并入 src/certflow/services/,重写 material_provider 的抽象方法实现,移除 NotImplementedError

  • 影响:当前报告生成走 report_fill_service.py(已实现),草稿区不阻塞日常使用,但长期需收敛两套实现。

P1 — 扩展待补

T1-1 Action 注册表 Phase 3.2 收尾

  • 位置src/certflow/actions/registry.py:127-128

  • 现状:注释说明 lambda 类 action 已提升为 _action_* 命名方法并注册;main_window 导航已在 Phase 2.1 接入。

  • 待办:核对 Phase 3.2 是否还有未提升的 lambda action;确认 REGISTRY 已覆盖所有 ui.yaml 中声明的 action 名。

  • 验证方式:扫描 ui.yamlaction: 字段,与 REGISTRY keys 对比。

T1-2 占位目录预建(B0-4)默认关闭

  • 位置config/import.yamlcreate_placeholder_dirs(默认 False);模型 src/certflow/config/models.py:1222-1239 ImportPlaceholderConfig

  • 现状:VBA 式导入期按订单组预建占位项目文件夹的功能已实现但默认关闭。

  • 待办:若需启用,在 config/import.yamlcreate_placeholder_dirs: true 并验证目录命名模板 {ym}/{rq}/{customer}/{project}

  • 文档04a-import-flow.md 需说明该开关。

P2 — 平台与兼容性

T2-1 Access 导出跨平台受限

  • 位置src/certflow/cli/commands/export_access.py

  • 现状:导出到 SignDB.mdb 依赖 Windows Access 驱动;pyodbcpyproject.toml:29 已注释(不支持 Access)。

  • 待办:评估替代方案(如 pyscape 已在依赖中),或在文档中明确仅 Windows 可用。

T2-2 Git LFS 自动安装覆盖范围

  • 位置start.sh:362-395

  • 现状:支持 apt/brew/winget 自动安装 Git LFS;其他平台需手动。

  • 待办:无(文档化即可)。

P3 — 文档待补

T3-1 操作者手册子文档

  • 待办:按 docs/04-operator-guide.md 索引补全 9 个子文档(04a~04i),每个子文档需包含:

    • 操作入口(GUI 菜单/按钮 + CLI 命令)

    • 逐步操作截图或步骤列表

    • 涉及的配置项(链接到 03-configuration.md

    • 涉及的 Service/Controller/View 文件(链接到 06-developer-guide.md

    • 常见问题与回退操作

T3-2 CLI 命令完整参数文档

  • 待办05-cli-reference.md 需为 24 个子命令逐个列出 --help 输出、参数表、示例。

T3-3 配置项与代码映射表

  • 待办03-configuration.md 需为每个 config/*.yaml 字段标注:类型、默认值、影响的代码位置、是否需要重启生效。

P4 — 代码质量

T4-1 复杂度豁免收敛

  • 位置pyproject.toml:193-213

  • 现状:多个文件/函数豁免 C901(bom_material_service.pybom_part_classifier.pyreport_fill_service.pyviews/query_view.py 用函数级 # noqa: C901,构建脚本用文件级豁免)。

  • 待办:逐步重构降低复杂度,移除豁免。

T4-2 pyodbc 依赖注释

  • 位置pyproject.toml:29

  • 现状:注释为"不支持 access 数据库"。

  • 待办:确认是否永久移除,或换用其他驱动;更新依赖列表。

已完成(参考)

以下原 TODO 项已实现,仅作记录:

  • ✅ Action 注册表统一派发(Phase 2.1 / 2.2 / 3.2,actions/registry.py

  • ✅ 空库自动播种基础字典(main.py::_maybe_seed_base_data

  • ✅ 数据库四库模型(A/B/C/D,start.sh 阶段10)

  • ✅ 配置 !include 拆分(config.yaml

  • paths.local.yaml 本地覆盖(config/paths_override.py