refactor(处理器): 重构通用供应商处理器以支持规则引擎 docs: 更新README与文档说明供应商管理功能 build: 更新打包脚本注入版本信息 test: 添加规则引擎单元测试
52 lines
3.2 KiB
Markdown
52 lines
3.2 KiB
Markdown
## 概览
|
||
- 目标:让改动更可见并提升识别/处理准确性与可操作性
|
||
- 范围:GUI入口与提示、表头识别与手动指定、供应商配置联动、交互一致性
|
||
|
||
## 可见入口改造
|
||
- 在“Excel处理→特殊处理”区新增两个明显按钮:
|
||
- “列映射向导”:加载 Excel 源列 → 映射到标准列 → 保存至 `config/suppliers_config.json`
|
||
- “模板管理”:选择模板、校验表头列是否包含必需项 → 保存路径至供应商配置
|
||
- 在“快捷操作”区补充一个“显示处理器类型”入口,便于确认支持的文件类型
|
||
- 在保存成功后增加气泡提示与日志条目(log 面板出现“列映射已保存”“模板路径已保存”)
|
||
|
||
## 手动表头行支持
|
||
- 在“列映射向导”弹窗增加“表头行号(从1开始)”输入框:
|
||
- 加载列时按照指定行重读 Excel 并展示源列
|
||
- 保存时将 `header_row`(零基索引)写入 `suppliers_config.json`
|
||
- 通用供应商处理器读取时优先使用 `supplier_config['header_row']`;未设置时执行自动表头检测(关键词+非空比例+字符串比例)
|
||
|
||
## 自动表头检测增强
|
||
- Excel 单文件处理与通用供应商处理器:
|
||
- 扫描范围扩大到前 30 行
|
||
- 扩充关键词:加入金额类(“金额/小计/总计/合计/合计金额”)
|
||
- 综合评分:关键词命中+非空比例+字符串比例,阈值达到即判为表头;否则选第一个有效行
|
||
|
||
## 交互与一致性
|
||
- “单个识别”按钮直接弹出图片选择(只允许 `jpg/jpeg/png/bmp`),取消即终止
|
||
- “单个处理”按钮弹出 Excel 选择(只允许 `xlsx/xls`),取消即终止,不再默认处理最新 Excel
|
||
- 处理完成后不再自动打开 `result/output` 目录,改为通过“最近文件”双击打开
|
||
- 最近文件仅记录图片/Excel,自动过滤无效并按修改时间降序展示,空历史时从 `data/output`、`data/result` 回填合规文件
|
||
|
||
## 供应商配置联动
|
||
- `suppliers_config.json`:
|
||
- `column_mapping`:保存源列→标准列映射
|
||
- `header_row`:保存手动指定的表头行(零基)
|
||
- `output_template`:保存模板路径(相对路径)
|
||
- 处理器加载时校验并日志提示不合法项,保留已通过的配置
|
||
|
||
## 验证与可视化
|
||
- 操作日志:保存映射/模板时写入成功日志
|
||
- 处理器信息:通过“显示处理器类型”对话框列出支持的扩展名和描述
|
||
- 手动表头验证:在向导中“加载列”后,源列下拉应出现正确列名;处理后“最近文件”出现输出采购单
|
||
|
||
## 预计改动位置
|
||
- GUI按钮与向导弹窗:`启动器.py`(特殊处理区与工具函数)
|
||
- 自动表头检测与手动表头使用:
|
||
- Excel处理:`app/core/excel/processor.py` 的 `_find_header_row`、`process_specific_file`
|
||
- 通用供应商处理:`app/core/processors/supplier_processors/generic_supplier_processor.py` 的 `_read_supplier_data`、`_find_header_row`
|
||
- 供应商配置:`config/suppliers_config.json`
|
||
|
||
## 交付
|
||
- 提交代码改动后,更新打包 EXE,便携包包含上述 UI 与功能;提供操作说明与可见验证点。
|
||
|
||
请确认以上计划,确认后我将按此逐项实现并验证。 |