Files
orc-order-v2/docs/订单批量识别/TASK_订单批量识别.md
T

3.7 KiB
Raw Blame History

TASK — 订单批量识别(OCR 元信息提取 + 批量一键处理)

任务依赖图

graph TD
    T1[任务1: metadata_extractor] --> T4[任务4: order_service 集成]
    T2[任务2: order_metadata 表] --> T4
    T3[任务3: OCR meta.json 落盘] --> T4
    T4 --> T5[任务5: 文件命名 + 重命名原图]
    T5 --> T6[任务6: processor_service 批量入口]
    T6 --> T7[任务7: UI 一键处理按钮 + 进度]
    T1 --> T8[任务8: 单元测试]
    T2 --> T8

原子任务列表

任务 1metadata_extractor.py

内容
输入契约 ocr_text (str)、ocr_rows (list[list[str]])
输出契约 OrderMetadata(supplier, bill_date, total_amount, raw_supplier_text)
实现约束 供应商关键词清单 + 启发式;日期正则;金额关键词
验收标准 单元测试覆盖:完整三字段、部分缺失、OCR 噪声、日期格式 4 种
依赖

任务 2order_metadata 表 + CRUD

内容
输入契约 ProductDatabase 实例
输出契约 save_order_metadata / get_order_metadata / list_all_metadata
实现约束 建表 IF NOT EXISTS;幂等 savePK = file_hash
验收标准 测试创建/查询/更新/列出
依赖

任务 3OCR meta.json 落盘

内容
输入契约 OCRService.process_image 返回的 (excel_path, raw_text)
输出契约 data/output/{hash}.meta.json 含 ocr_text
实现约束 修改 table_ocr.py 返回原始 textOCRService 调用方写 meta.json
验收标准 OCR 一次后 meta.json 存在且含完整 text
依赖

任务 4order_service.process_excel 集成元信息

内容
输入契约 excel_path
输出契约 (new_result_path, metadata)
实现约束 读 meta.json → extract → save → 应用新 result 文件名
验收标准 跑真实 OCR 文件后 result 文件名符合新规则
依赖 T1、T2、T3

任务 5:原图重命名

内容
输入契约 (原图路径, metadata, file_hash)
输出契约 新图路径(已重命名)
实现约束 保留扩展名;清理非法字符;冲突加 _N
验收标准 处理后 input 中文件名带日期/供应商/hash
依赖 T4

任务 6processor_service.process_all_inputs

内容
输入契约
输出契约 dict(total, success, failed, results)
实现约束 扫描 data/input/ 全部图片;串行;现有 processed_files.json 不重做
验收标准 input 放 3 张图 → 处理后 results 长度=3status 准确
依赖 T4、T5

任务 7UI 一键处理按钮 + 进度

内容
输入契约 UI 按钮点击事件
输出契约 进度对话框 + 主窗口日志更新 + 完成 MessageBox
实现约束 后台线程 + UI 通信用 queue;进度不可关闭
验收标准 点击按钮 → 进度可见 → 完成有汇总
依赖 T6

任务 8:单元测试

内容
输入契约 测试用例集
输出契约 191 + 新测试 全部 pass
实现约束 tests/test_metadata_extractor.pytests/test_order_metadata.py
验收标准 pytest tests/ 全绿
依赖 T1、T2

工作量评估

  • T1:30 分钟(算法 + 10 个测试用例)
  • T215 分钟
  • T320 分钟
  • T430 分钟
  • T520 分钟
  • T630 分钟
  • T740 分钟(UI 线程)
  • T830 分钟
  • 测试与集成:30 分钟

交付物

  • 8 个原子任务全部通过
  • docs/订单批量识别/FINAL_订单批量识别.md:项目总结
  • docs/订单批量识别/TODO_订单批量识别.md:待办清单