orc-order-v2/.trae/documents/解决“只有订单数量列”场景的可操作方案.md
houhuan fb12e63c4c feat(供应商管理): 新增规则引擎与词典配置支持
refactor(处理器): 重构通用供应商处理器以支持规则引擎
docs: 更新README与文档说明供应商管理功能
build: 更新打包脚本注入版本信息
test: 添加规则引擎单元测试
2025-12-12 13:46:00 +08:00

50 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 你现在就能这样做
- 目标:在没有“规格/数量/单位”列、只有“订单数量”列如“4瓶/1箱/5箱/3件”拆分出数量与单位并按名称提取规格最终规范化为银豹模板字段。
### A. 最小映射(只为模板填充)
- 在“供应商管理 → 列映射与表头”页,只需映射这些常用列:
- name ← 商品名称
- barcode ← 条码(如有)
- unit_price ← 单价(如有)
- total_price ← 金额/小计(如有)
- 不需要映射“数量/单位/规格”,后续用规则直接从原始列生成。
### B. 规则与词典设置(关键)
- 在“供应商管理 → 规则与词典”页:
1) 规则列表按顺序添加:
- split_quantity_unit参数source=订单数量
- extract_spec_from_name参数source=商品名称
- normalize_unit参数target=unitmap={"箱":"件","提":"件","盒":"件"}
- fill_missing参数fills={"unit":"瓶"}
- mark_gift可选
- compute_quantity_from_total可选当只有金额/单价时)
2) 词典设置:
- unit_synonyms{"箱":"件","提":"件","盒":"件","瓶":"瓶"}
- pack_multipliers{"件":24,"箱":24,"提":12,"盒":10}(根据你的供应商习惯调整)
- default_unit
- default_package_quantity1
- ignore_words白膜、彩膜、赠品
- name_patterns每行一个正则
- (\d+(?:\.\d+)?)(ml|l|升|毫升)[*×xX](\d+)
- (\d+)[*×xX](\d+)瓶
- 需要时加入供应商特有格式如“550水24白膜”可匹配“(\d{2,3}).*?(\d{1,3})”并将第二组当作包装数
### C. 预览与验证
- 在“规则与词典”页选择Excel点击“生成步骤预览”
- 看“原始 → 规范化”两侧表,对比是否出现 quantity数值、unit单位、specification、package_quantity
- 在“预览步骤”中逐步查看每一条规则的结果必要时导出CSV核对
- 保存后会自动重载处理器;用真实文件跑一次,结果会出现在“最近文件”,双击打开核验。
### D. 解释关键点
- 映射是为了模板填充字段的命名统一;对于“订单数量”这种来源列,规则会直接读取 source=订单数量,不要求你把它映射成标准列。
- 规则执行后会产生标准字段quantity、unit、specification、package_quantity可被模板填充。
- normalize_unit会用词典的pack_multipliers或name解析出的package_quantity自动把“件/箱/提/盒”的数量换算成“瓶”并将unit统一为“瓶”。
## 我将继续优化的点(让流程更清晰)
1) 规则表单中的“来源列”改为可选下拉直接从Excel列名取值无需手填。
2) 步骤预览支持“仅显示变化的列Diff模式”与“错误计数”未匹配的行统计
3) 提供“无数量/单位列”的快速模版:自动添加上述规则与词典默认值,一键套用。
4) 规则帮助提示:每条规则说明输入/输出字段与常见示例。
5) 供应商级的“测试运行”:选文件→一键规范化→预览→导出结果,独立于正式处理。
如果你同意我将按上述方案完善GUI交互来源列下拉、快速模板、Diff预览、错误计数与一键测试并把默认规则与词典预设直接提供出来确保“只有订单数量列”的场景开箱可用。