## 你现在就能这样做 - 目标:在没有“规格/数量/单位”列、只有“订单数量”列(如“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=unit,map={"箱":"件","提":"件","盒":"件"} - fill_missing,参数:fills={"unit":"瓶"} - mark_gift(可选) - compute_quantity_from_total(可选,当只有金额/单价时) 2) 词典设置: - unit_synonyms:{"箱":"件","提":"件","盒":"件","瓶":"瓶"} - pack_multipliers:{"件":24,"箱":24,"提":12,"盒":10}(根据你的供应商习惯调整) - default_unit:瓶 - default_package_quantity:1 - 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预览、错误计数与一键测试),并把默认规则与词典预设直接提供出来,确保“只有订单数量列”的场景开箱可用。