# OCR订单处理系统优化实施建议与周计划

## 目标
- 提升稳定性与可维护性：统一日志、进度回调、错误提示与配置持久化
- 优化用户体验：一致的弹窗与目录打开、清晰进度与结果摘要
- 控制成本与性能：合理并发、避免重复处理、日志滚动归档

## 范围
- 应用层（GUI、设置、交互）
- 服务层（OCR、Excel、合并）
- 工具层（日志、配置、校验）

## 已完成优化
- 日志滚动归档：单文件5MB，保留3个备份（RotatingFileHandler）
- 统一GUI日志挂载：`init_gui_logger`/`dispose_gui_logger`
- 统一进度显示：`ProgressReporter` 接入主要流程
- 结果目录一致化：Excel/合并/完整流程优先打开 `data/result`
- Excel引擎错误提示：统一弹窗附带安装建议（openpyxl/xlrd）
- 用户设置持久化：窗口尺寸与主题记忆（`data/user_settings.json`）

## 待实施优化（按周迭代）

### 第1周：基础能力统一与设置面板扩展
- 任务1：系统设置面板扩展
  - 新增设置项：日志级别、并发参数（`max_workers`/`batch_size`）、模板路径、输入/输出/结果目录
  - 写入 `user_settings.json` 并同步到 `config.ini`（通过 `ConfigManager.update/save_config`）
  - 验收：设置变更后重启仍生效；操作流程读取最新参数
- 任务2：进度回调全链路接入（服务层）
  - 为合并流程（`PurchaseOrderMerger`）添加 `progress_cb`（97%→100%），UI显示阶段进度
  - 完整流程串联 OCR→Excel→合并 三段进度
  - 验收：状态栏进度从0→100%，阶段文案一致、无跳变
- 任务3：错误提示模板统一
  - 抽象错误弹窗生成：标题/描述/建议操作（缺依赖、模板列缺失、文件格式异常）
  - 在服务层捕获常见错误并附带建议（不用泄露敏感信息）
  - 验收：触发典型错误时弹窗一致、日志有详细堆栈

### 第2周：兼容性与可维护性增强
- 任务4：供应商配置校验（schema）
  - 对 `suppliers_config.json` 加载前校验：字段完整、列映射存在、清洗/计算规则可执行
  - 失败时聚合错误列表并弹窗提示
  - 验收：错误配置阻止加载且提示清晰；正确配置即时生效
- 任务5：拖拽与最近文件
  - 日志面板上方增加拖拽区域（图片/Excel），拖入即处理
  - 最近处理文件列表（持久化、可清空）
  - 验收：拖拽成功处理；最近列表记忆与操作正常
- 任务6：线程池复用与批次自适应
  - OCR批量识别的线程池复用；根据 CPU 核心数与文件量自适应 `max_workers`、`batch_size`
  - 验收：大批量处理性能平稳，无过载或明显阻塞

### 第3周：数据处理与模板管理
- 任务7：列映射向导
  - 弹窗展示识别到的列与标准列，支持手动修正并保存到供应商配置
  - 验收：手动修正列映射后处理成功；配置热重载生效
- 任务8：多模板管理与校验
  - 支持按供应商选择模板；校验模板表头与系统标准列，给出差异提示
  - 验收：不同模板无错填；差异提示友好

### 第4周：测试与交付质量
- 任务9：单元测试与烟雾测试
  - 核心逻辑单元测试（规格解析、数量反推、列映射、模板填充）
  - 端到端小样本烟雾测试（OCR→Excel→采购单）
  - 验收：测试通过率达标；烟雾测试稳定
- 任务10：打包与版本信息
  - 打包资源校验（模板与配置存在性）；显示版本号与更新日志入口
  - 验收：打包可用；启动显示版本信息；更新日志可查看

## 验收标准与度量
- 功能验收：设置变更生效、进度准确、错误提示一致
- 稳定性：长时间运行日志不会膨胀；批量处理无明显卡顿
- 可维护性：配置驱动、模块职责清晰、代码重复显著减少

## 风险与回滚
- 配置同步风险：提供回滚策略（保留最近一次有效 `config.ini` 与 `user_settings.json` 备份）
- 依赖安装风险：提供一键安装与离线安装说明
- 模板差异风险：在校验失败时阻断流程并提示修复路径

## 实施说明
- 每周开始前将与您确认要启动的任务；每个任务完成后提交变更摘要与验证结果
- 如发现新需求或变化，计划将滚动更新，并在执行前与您确认
