refactor(处理器): 重构通用供应商处理器以支持规则引擎 docs: 更新README与文档说明供应商管理功能 build: 更新打包脚本注入版本信息 test: 添加规则引擎单元测试
57 lines
3.4 KiB
Markdown
57 lines
3.4 KiB
Markdown
## 目标
|
||
- 用你提供的原始文件与期望结果跑通“验证闭环”,自动对比差异并生成修正建议。
|
||
- 将“规则设置”改造成通俗易懂的“向导 + 快速模板 + 自动识别”,让普通用户也能完成操作。
|
||
|
||
## 验证闭环(立即可用)
|
||
- 新增“验证匹配”面板:
|
||
- 选择原始Excel:`data/output/微信图片_20251115212128_148_108.xlsx`
|
||
- 选择期望结果:`data/result/采购单_微信图片_20251115212128_148_108.xls`
|
||
- 一键运行当前供应商流程 → 自动生成临时结果 → 与期望结果进行单元格级对比
|
||
- 输出差异报告:
|
||
- 列差异(列缺失/多余/名称不一致)
|
||
- 行差异(按条码或名称对齐,数量/单位/单价/金额差异)
|
||
- 规则差异归因(例如:数量未拆分、单位未归一)
|
||
- 按“应用建议”自动调整当前供应商的规则/词典(可撤销)
|
||
|
||
## 简化操作设计
|
||
- 两种模式:
|
||
- 简单模式(默认):
|
||
- 步骤:选择文件 → 选择供应商 → 选择快速模板 → 预览 → 生成
|
||
- 字段中文说明(name(商品名称)、quantity(数量)等)与自动建议
|
||
- 高级模式:
|
||
- 可编辑规则顺序与参数、词典、正则;具备步骤预览与Diff
|
||
- 快速模板:
|
||
- “无数量/单位列”模板:自动配置拆分数量单位→名称提取规格→单位归一→缺省填充→标记赠品
|
||
- “纯金额/单价反推数量”模板:直接回推数量
|
||
- “条码驱动匹配”模板:条码为主键对齐
|
||
|
||
## 自动识别与建议
|
||
- 列名识别:从表头关键词自动映射常用字段
|
||
- 单位与数量:从“订单数量”拆分,单位同义词与包装倍数自动套用
|
||
- 名称提取规格:词典与正则库(容量×数量、双乘、“550水24白膜”)自动解析;失败行计数提示
|
||
- 自动修正建议:
|
||
- 若数量为空:建议添加“split_quantity_unit(source=订单数量)”
|
||
- 若单位为“箱/件/提/盒”:建议添加“normalize_unit + pack_multipliers”
|
||
- 若金额与单价存在且数量为空:建议添加“compute_quantity_from_total”
|
||
|
||
## 差异对比与一键修复
|
||
- 差异可视化:原始→规范化→模板填充三栏对比;支持仅显示变化列、导出CSV
|
||
- 一键修复:将建议以“卡片”列表展示,点击应用后立即刷新预览;支持撤销上一步
|
||
|
||
## 交互流程
|
||
1) 进入“验证匹配” → 选择原始与期望 → 运行 → 查看差异
|
||
2) 点击“应用建议”直观修复规则/词典 → 差异减少直至匹配
|
||
3) 切回“简单模式”一键生成采购单
|
||
|
||
## 技术实现要点
|
||
- 供应商配置:继续使用 `suppliers_config.json`,但在GUI中隐藏JSON细节,改为中文表单与下拉
|
||
- 规则执行:保留引擎,新增“建议生成器”根据差异报告生成规则/词典变更
|
||
- 对比对齐:优先按条码对齐;无条码时按名称近似匹配(去噪后模糊比对)
|
||
|
||
## 里程碑
|
||
- Day 1:验证面板与差异对比;建议生成器(数量/单位/规格/金额)
|
||
- Day 2:简单/高级模式切换;快速模板与自动识别
|
||
- Day 3:一键修复与撤销;导出差异报告
|
||
- Day 4:回归测试与打包;提供“农夫山泉”预设并用你的样例验证匹配
|
||
|
||
确认后我将实现“验证匹配”面板并接入建议修复,先用你提供的农夫山泉样例跑通闭环,再推广到其它供应商。 |