orc-order-v2/.trae/documents/供应商规则系统全面优化与落地计划.md
houhuan fb12e63c4c feat(供应商管理): 新增规则引擎与词典配置支持
refactor(处理器): 重构通用供应商处理器以支持规则引擎
docs: 更新README与文档说明供应商管理功能
build: 更新打包脚本注入版本信息
test: 添加规则引擎单元测试
2025-12-12 13:46:00 +08:00

4.3 KiB
Raw Permalink Blame History

痛点复盘

  • 不同供应商存在强差异:列名不统一、单位混杂在数量、规格隐藏在名称、供应商缺失等
  • 现有向导只解决列映射层面,规则与词典编辑、执行顺序与生效范围不清晰
  • 缺少可视化“从原始→规范化→模板填充”的贯通验证;流程易跑不通

总体方案

  • 建立“供应商规则系统”:可配置、可视化、可预览,贯穿 映射→清洗→规则→模板 填充全链路
  • 提供“规则库 + 词典 + 执行管道”三层抽象,支持每家供应商自定义规则组合与执行顺序
  • 完善 GUI供应商管理中的四大Tab一站式配置规则编辑器内置预设与预览落地即验证

数据模型

  • suppliers_config.json 每个供应商对象结构:
    • namedescription
    • filename_patternscontent_indicators
    • header_row
    • column_mapping(源列→标准列)
    • rules: 有序规则数组(见下)
    • dictionary: 解析词典(ignore_wordsunit_synonymspack_multipliersname_patternsdefault_unitdefault_package_quantity
    • output_templates: 模板列表;current_template_index: 当前模板索引

规则库(首批)

  • split_quantity_unit(source): 拆分数量中的单位(箱/件/提/盒/瓶),无单位用默认单位
  • extract_spec_from_name(source): 从名称抽取规格/包装(容量×数量/简单双乘),应用忽略词与名称正则
  • normalize_unit(target,map): 单位归一(同义词→统一单位),件/箱/提/盒按包装倍数转换数量为“瓶”
  • compute_quantity_from_total(): 数量缺失时用金额/单价回推数量
  • fill_missing(fills): 缺失填充,例如单位默认“瓶”
  • mark_gift(): 金额/单价为0或名称含“赠品/O/o/空”标记赠品
  • 后续扩展:classify_category(name), extract_brand(name), strip_noise(name)

执行管道

  • 处理器执行顺序:映射→清洗→规则(有序)→模板填充
  • 每条规则可访问 dictionary,执行结果在 DataFrame 上可追踪(供预览)
  • 提供“预览栈”展示原始→每步规则输出多步Diff定位问题

GUI优化

  • 供应商管理:
    • 左侧供应商列表(搜索/新建/复制/删除/导入/导出)
    • 右侧四大Tab
      • 基本信息:必填校验与保存
      • 列映射与表头:现有向导增强(滚动条、表头选行、智能映射、导入/导出)
      • 规则与词典:
        • 规则编辑器(顺序可调整:上/下移动、插入/删除规则)
        • 词典编辑(忽略词、单位同义词、包装倍数、名称正则、默认值)
        • 规则预设常用组合与“应用规则预览”展示原始→规范化两列可切换查看逐步Diff
      • 模板管理:模板列表/当前选择与批量校验,显示缺失/多余列报告
  • 性能与体验所有弹窗置顶回焦滚动与水平滚动列宽拖拽与一键导出预览为CSV

使用路径(推荐)

  1. 新建供应商→选样例Excel→自动表头与初始映射建议
  2. 规则预设:选择“基础拆分与推断”→应用规则预览→查看原始/规范化对比
  3. 细化词典:补充忽略词、单位同义词、包装倍数、名称正则→再次预览
  4. 保存并重载→跑一份真实文件→最近文件中打开结果核验→如有差异回到规则编辑器微调

验证与可视化

  • 单元测试:表头识别/数量拆分/名称规格解析/单位归一/数量回推/赠品标记
  • 烟雾测试510类典型供货商样本端到端验证含极端情况无单位、名称含噪声、数量混合单位
  • 日志:每步规则执行计数与示例行输出(前/后5行便于定位问题

交付物

  • 规则引擎模块与规范接口;处理器接入
  • 供应商管理GUI规则编辑器、词典编辑器、预设与预览
  • 扩展配置示例与测试数据;打包脚本校验资源

里程碑

  • Day 1规则库与引擎扩展、处理器接入、预览栈接口
  • Day 2GUI规则编辑器顺序调整/增删)、词典编辑器、规则预设与预览
  • Day 3模板批量校验、单元与烟雾测试、日志强化
  • Day 4回归修正与打包交付

确认后我将开始实现上述内容,确保不同供应商可独立配置精细规则并“所见即所得”验证,流程稳定可跑通。