refactor(处理器): 重构通用供应商处理器以支持规则引擎 docs: 更新README与文档说明供应商管理功能 build: 更新打包脚本注入版本信息 test: 添加规则引擎单元测试
3.2 KiB
3.2 KiB
概览
- 目标:让改动更可见并提升识别/处理准确性与可操作性
- 范围:GUI入口与提示、表头识别与手动指定、供应商配置联动、交互一致性
可见入口改造
- 在“Excel处理→特殊处理”区新增两个明显按钮:
- “列映射向导”:加载 Excel 源列 → 映射到标准列 → 保存至
config/suppliers_config.json - “模板管理”:选择模板、校验表头列是否包含必需项 → 保存路径至供应商配置
- “列映射向导”:加载 Excel 源列 → 映射到标准列 → 保存至
- 在“快捷操作”区补充一个“显示处理器类型”入口,便于确认支持的文件类型
- 在保存成功后增加气泡提示与日志条目(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
- Excel处理:
- 供应商配置:
config/suppliers_config.json
交付
- 提交代码改动后,更新打包 EXE,便携包包含上述 UI 与功能;提供操作说明与可见验证点。
请确认以上计划,确认后我将按此逐项实现并验证。