Files
orc-order-v2/docs/数据库增强/ALIGNMENT_数据库增强.md
T

2.4 KiB

ALIGNMENT - 数据库增强与缺失条码提示

1. 原始需求描述

  • DB内容查看: 用户需要查看数据库(SQLite)中的内容。
  • 缺失条码提示与记录: 在处理订单时,如果发现条码不在最新的 商品资料.xlsx 中,需要:
    • 弹出 GUI 弹窗提示用户。
    • 将缺失条码记录到数据库中。

2. 需求理解与边界确认

2.1 数据库查看

  • 方案: 提供一个增强版的 check_db.py 脚本,可以一键列出 order_metadata(单据信息)、products(商品资料)以及新增的 missing_barcodes(缺失条码)。
  • GUI集成: 在主窗口菜单中尝试增加一个“查看处理记录”或“查看缺失条码”的快捷入口。

2.2 缺失条码处理

  • 检查点: 在 ExcelProcessor 提取商品信息时,或在 OrderService 生成结果前进行比对。
  • 数据库记录: 在 product_cache.db 中新建表 missing_barcodes
    • 表结构: barcode (TEXT, PK), name (TEXT), last_seen (TEXT), source_file (TEXT), count (INTEGER)
  • 弹窗提示:
    • 使用 tkinter.messagebox 或项目已有的 dialog_utils 进行弹窗。
    • 策略确认: 由于批量处理时频繁弹窗会打断用户,我们将采用“每个文件处理完后,如果有缺失条码,汇总弹窗一次”的策略,平衡实时性与操作体验。

3. 技术对齐

  • 数据库: 继续使用 product_cache.db,由 ProductDatabase 类管理新增表。
  • UI: 现有的 app/ui/main_window.py 是基于 tkinter 的,弹窗逻辑将与之对齐。
  • 配置: 商品资料路径已在 config.ini 中定义,需确保指向 release/templates/商品资料.xlsx

4. 验收标准

  • 运行 check_db.py 能看到所有表的结构化数据。
  • 故意处理一张包含未知条码的图片,程序能弹出警告窗口提示具体条码。
  • 弹窗后,检查 missing_barcodes 表,确认该条码已被正确记录。
  • 再次处理相同条码,记录中的 count 应该递增,且 last_seen 更新。

5. 待澄清问题

  • Q: 弹窗是否需要阻塞处理流程?
  • A: 考虑到用户追求“一键处理”的自动化,建议在单个文件处理完成后弹窗,用户点击确认后再继续下一个文件,或者在批量任务结束后汇总显示所有缺失条码。初步决定:按文件汇总提示。