refactor(处理器): 重构通用供应商处理器以支持规则引擎 docs: 更新README与文档说明供应商管理功能 build: 更新打包脚本注入版本信息 test: 添加规则引擎单元测试
41 lines
2.6 KiB
Markdown
41 lines
2.6 KiB
Markdown
## 目标
|
||
- 在系统设置中提供“供应商管理”GUI,支持新增/编辑/删除供应商,无需手改代码或JSON。
|
||
- 一站式配置:基本信息、表头与列映射、规则与词典、模板管理,保存后即时生效。
|
||
|
||
## 界面设计
|
||
- 入口:右侧“系统设置”新增按钮“供应商管理”。
|
||
- 布局:
|
||
- 左栏:供应商列表(名称),支持搜索/新建/复制/删除。
|
||
- 右侧Tab:
|
||
1) 基本信息:`name`、`description`、`filename_patterns`、`content_indicators`、`header_row`
|
||
2) 列映射与表头:嵌入现有“列映射向导”核心(预览前30行、表头选行、加载列、智能映射、导入/导出)
|
||
3) 规则与词典:词典编辑(忽略词、单位同义词、包装倍数、名称正则、默认单位/包装);规则预设与规则预览(原始→规范化)
|
||
4) 模板管理:`output_templates` 列表、当前选择与批量校验
|
||
- 操作按钮:保存(写入`suppliers_config.json`)、重载处理器、导入/导出供应商配置(单个或全部)。
|
||
|
||
## 数据流与验证
|
||
- 加载/保存:统一读写`config/suppliers_config.json`;保存后调用`ProcessorService.reload_processors()`。
|
||
- 校验:复用`ProcessorService._validate_suppliers_config`;保存前进行schema校验,错误弹窗聚合列表。
|
||
- 预设:提供“基础拆分与推断”规则预设;可导入/导出自定义规则。
|
||
|
||
## 增强逻辑(自动化建议)
|
||
- 新建供应商时,可选择样例Excel:
|
||
- 自动检测表头与初始列映射;基于列名关键词给出映射建议。
|
||
- 词典预填:常见单位同义词、默认单位“瓶”、常见包装倍数(件/箱/提/盒)。
|
||
|
||
## 实施步骤
|
||
1) 创建`open_supplier_manager`弹窗(系统设置入口),左列表+右侧Tab结构。
|
||
2) 基本信息Tab:表单与校验;保存更新到JSON。
|
||
3) 列映射与表头Tab:复用现有向导组件(预览/加载/智能映射/导入/导出)。
|
||
4) 规则与词典Tab:编辑词典与规则预览,保存写入`dictionary`与`rules`。
|
||
5) 模板管理Tab:维护`output_templates`与`current_template_index`,批量校验与报告显示。
|
||
6) 保存与重载:统一写入后调用处理器重载并日志提示。
|
||
|
||
## 验证
|
||
- GUI走查:新增/复制/删除供应商配置;规则预览正确;模板校验能识别缺失列。
|
||
- 处理生效:保存后立刻按新规则规范化并填充模板输出。
|
||
|
||
## 后续扩展
|
||
- 多供应商批量校验与报告导出;词典共享/继承;规则预设库扩展。
|
||
|
||
如果确认,我将开始实现该GUI及其数据流,并将现有向导整合到供应商管理中以形成一站式配置体验。 |