refactor(处理器): 重构通用供应商处理器以支持规则引擎 docs: 更新README与文档说明供应商管理功能 build: 更新打包脚本注入版本信息 test: 添加规则引擎单元测试
42 lines
2.0 KiB
Markdown
42 lines
2.0 KiB
Markdown
## 目标
|
||
- 通过规则引擎把不同供货商的OCR表格规范为统一字段,并自动拆分“数量+单位”、从名称推断规格、标记赠品,最终稳定填充银豹模板。
|
||
|
||
## 配置与规则
|
||
- 扩展 `suppliers_config.json`:
|
||
- `rules`: 规则数组(顺序执行)
|
||
- `output_templates`: 模板列表;`current_template_index`: 当前模板索引
|
||
- 规则类型:
|
||
- `split_quantity_unit`(拆分“4瓶/1箱/3件/2提/2盒”)
|
||
- `extract_spec_from_name`(解析“1.8L×8瓶”“550水24白膜”等)
|
||
- `normalize_unit`(单位归一“箱/件/提/盒/瓶”→统一“瓶”,按包装转换数量)
|
||
- `compute_quantity_from_total`(数量缺失时用金额/单价反推)
|
||
- `infer_supplier`(文件名/内容推断供应商)
|
||
- `fill_missing`(填默认值)
|
||
- `mark_gift`(金额/单价=0或“赠品/O/o/空”)
|
||
|
||
## 实现
|
||
- 新建 `app/core/handlers/rule_engine.py`:输入DataFrame与规则列表,返回规范化DataFrame
|
||
- 在 `GenericSupplierProcessor` 中:列映射→清洗→规则引擎→输出
|
||
- 列映射向导增强:
|
||
- 增加“规则预设”选择与“应用规则预览”按钮,显示原始/规范化后的对比
|
||
- 支持导入/导出(映射+规则)JSON
|
||
- 模板管理增强:模板组选择、批量校验、示例模板生成
|
||
|
||
## 解析与正则
|
||
- 名称解析:
|
||
- 容量×数量:`(\d+(?:\.\d+)?)(ml|l|升|毫升)[*×xX](\d+)`
|
||
- 简单数量×数量:`(\d+)[*×xX](\d+)`
|
||
- 词典忽略词:如“白膜”等
|
||
- 数量拆分:`(?P<num>\d+(?:\.\d+)?)(?P<unit>箱|件|提|盒|瓶)`
|
||
|
||
## 验证
|
||
- 单元测试覆盖规则与表头识别;烟雾测试涵盖“无单位/规格/数量混杂”的样本
|
||
- GUI预览确认规则效果;保存后热重载处理器
|
||
|
||
## 里程碑
|
||
- Day 1:规则引擎与处理器接入
|
||
- Day 2:向导规则预览与导入/导出;模板组管理
|
||
- Day 3:测试与样本库
|
||
- Day 4:打包与交付验证
|
||
|
||
请确认,我将立即开始实现并逐步提交验证结果。 |