2.4 KiB
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: 考虑到用户追求“一键处理”的自动化,建议在单个文件处理完成后弹窗,用户点击确认后再继续下一个文件,或者在批量任务结束后汇总显示所有缺失条码。初步决定:按文件汇总提示。