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

59 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 益选 OCR 订单处理系统
## 概览
- 面向零售与分销场景的采购单处理工具,支持图片 OCR → Excel 规范化 → 模板填充 → 合并导出全流程
- 通过供应商管理与规则引擎,适配不同供应商的格式差异(数量含单位、名称包含规格、缺失列补齐)
- 提供验证匹配面板与单价校验机制,确保输出与既定模板一致且价格合理
## 核心功能
- 图片/Excel处理拖拽或选择文件生成银豹采购单`templates/银豹-采购单模板.xls`
- 供应商管理(系统设置 → 供应商管理):
- 基本信息、文件名匹配、表头行号
- 列映射与表头预览前30行、表头选行、加载列、智能映射、导入/导出
- 规则与词典:忽略词、单位同义词、包装倍数、名称正则、默认单位/包装规则预设与步骤预览原始→逐步→规范化导出预览CSV
- 模板管理:模板列表与当前索引,批量校验报告
- 验证匹配面板(系统设置 → 验证匹配):
- 选择原始Excel与期望结果运行当前流程自动对比差异并生成建议数量拆分、单位归一、名称提规格、金额回推
- 一键应用建议写回供应商配置与词典,减少手动调整
- 单价校验:生成采购单后按条码比对 `templates/商品资料.xlsx` 的“进货价必填价差大于1元弹窗提示小于等于1元不打扰
## 关键适配(蓉城易购)
- 新模板如“订单1765440157955.xlsx”
- 使用第三行作为表头(`header=2`
- 关键词选列并重命名到期望字段:商品条码(小条码)、订购数量(小单位)、单价(小单位)、优惠后金额(小单位)、单位
- 单位优先匹配“单位(订购单位)”列,清洗为去空白并将“件”替换为“份”
- 多条码行(逗号/顿号/斜杠/空格分隔)拆分为多行,数量均分并重算金额,单位保持订购单位
- 新模板映射:将“优惠后金额(小单位)”作为单价,“出库小计(元)”作为金额来源
## 使用说明
1. 运行程序EXE或源码运行
2. 在主界面:
- 拖拽或选择图片/Excel进行处理
- 系统设置 → 供应商管理:配置供应商、列映射与规则;使用规则预览查看规范化效果
- 系统设置 → 验证匹配:选择原始与期望文件,差异对比;应用建议后重载配置
3. 处理成功后,采购单保存到 `data/output``data/result`,最近文件列表可双击打开查看
## 构建与打包
- 依赖Python 3.9+,虚拟环境建议
- 安装打包工具:`pip install pyinstaller`
- 运行打包脚本:`python build_exe.py`
- 生成 EXE`dist/OCR订单处理系统.exe`
- 生成便携包:`release/OCR订单处理系统.exe`(包含 `templates/银豹-采购单模板.xls``templates/商品资料.xlsx`
## Git 提交建议
- 建议忽略构建目录与运行输出(见 `.gitignore`
- 保留模板与配置:`templates/银豹-采购单模板.xls`、`templates/商品资料.xlsx`、`config/config.ini`、`config/barcode_mappings.json`
## 常见问题
- 表头识别失败:在供应商管理的“列映射与表头”页预览表头行并选择正确行号
- 数量含单位:启用 `split_quantity_unit``normalize_unit` 规则并配置单位同义词与包装倍数
- 名称中规格:配置 `ignore_words``name_patterns`,使用步骤预览确认解析效果
- 单价校验未提示:确认 `templates/商品资料.xlsx` 存在且列名包含“进货价”与条码列(`商品条码/条码/barcode`
## 变更记录(近期)
- 新增验证匹配面板与建议修复
- 规则预设与步骤预览(原始→逐步→规范化)
- 单价校验机制(价差>1元提示
- 蓉城易购新模板适配(第三行表头、单位(订购单位)、多条码拆分、金额映射)