1.8 KiB
1.8 KiB
DESIGN - 数据库增强与缺失条码提示
1. 架构设计
1.1 数据库层扩展
在 app/core/db/product_db.py 中增加对 missing_barcodes 表的管理。
CREATE TABLE IF NOT EXISTS missing_barcodes (
barcode TEXT PRIMARY KEY,
name TEXT DEFAULT '',
last_seen TEXT,
source_file TEXT,
count INTEGER DEFAULT 1
);
1.2 逻辑层流程
在 ExcelProcessor 处理商品数据时,增加比对逻辑:
- 提取条码。
- 调用
ProductDatabase.is_barcode_exists(barcode)。 - 若不存在:
- 记录到
missing_barcodes表。 - 将该条码加入“本次文件缺失列表”。
- 记录到
- 文件处理结束前,若“本次文件缺失列表”不为空,调用 UI 层的弹窗通知。
2. 核心组件交互
sequenceDiagram
participant P as ExcelProcessor
participant DB as ProductDatabase
participant UI as MainWindow/DialogUtils
P->>DB: get_memory(barcode)
alt 条码不存在
DB-->>P: None
P->>DB: record_missing_barcode(barcode, name, file)
P->>P: Add to missing_list
end
Note over P: 文件处理即将完成
rect rgb(200, 220, 255)
P->>UI: show_warning("以下条码缺失: ...")
end
3. 接口定义
ProductDatabase 类新增方法:
record_missing_barcode(barcode, name, source_file): 插入或更新缺失条码记录。get_missing_barcodes(limit=100): 获取最近的缺失条码记录。
UI 提示逻辑:
- 修改
app/services/order_service.py中的process_order或相关方法,在处理流程中捕获缺失条码并触发 UI 回调。
4. DB 查看器实现
更新 check_db.py,使用 tabulate (如果安装了) 或简单的格式化输出打印所有表内容。
增加参数支持:python check_db.py --table missing_barcodes。