2026-05-12 21:45:28 +08:00
@
2026-05-05 02:40:48 +08:00

益选 OCR 订单处理系统

面向零售与分销场景的采购单处理工具,支持图片 OCR → Excel 规范化 → 模板填充 → 合并导出全流程,输出适配银豹 (PosPal) POS 系统。

核心功能

  • 智能供应商识别:自动扫描 Excel 前 50 行内容特征,路由到对应的预处理逻辑(蓉城易购、烟草公司、杨碧月等)
  • 图片 OCR:调用百度 OCR 表格识别 API,将采购单图片转为结构化 Excel
  • 规则引擎:支持列映射、数据清洗、单位转换、规格推断、赠品标记等自动化规则
  • 条码映射:可配置的条码转换规则,支持运行时编辑和云端同步
  • 单价校验:自动比对 商品资料.xlsx,价差超过 1.0 元触发预警
  • 云端同步:通过 Gitea REST API 在多台设备间同步配置文件(条码映射、供应商配置、商品资料、采购模板)
  • 拖拽一键处理:拖入图片或 Excel 自动走完 OCR → 规范化 → 合并全流程
  • CLI 接口headless_api.py 支持无界面自动化调用

快速开始

# 安装依赖
pip install -r requirements.txt

# GUI 模式
python 启动器.py

# CLI 模式
python headless_api.py data/input/xxx.xlsx
python headless_api.py data/input/xxx.jpg --barcode 6920584471055 --target 6920584471017

# 打包 EXE
python build_exe.py

项目结构

├── 启动器.py                     # GUI 入口
├── headless_api.py               # CLI 自动化接口
├── config.ini                    # 全局配置(API密钥、路径、Gitea)
├── config/
│   ├── config.ini                # 配置副本
│   ├── barcode_mappings.json     # 条码映射规则
│   └── suppliers_config.json     # 供应商配置(列映射/规则引擎)
├── app/
│   ├── config/                   # 配置管理(ConfigManager 单例)
│   ├── core/
│   │   ├── excel/                # Excel 处理(标准化、转换、合并、校验)
│   │   ├── handlers/             # 规则引擎、列映射、数据清洗、计算器
│   │   ├── ocr/                  # 百度 OCR 客户端
│   │   ├── processors/           # 处理器(通用/烟草/OCR)
│   │   └── utils/                # 工具(日志、文件、字符串、云端同步、对话框)
│   ├── services/                 # 业务服务(订单、OCR、处理器调度)
│   └── ui/                       # GUI 模块(主题、日志、快捷键、主窗口)
├── templates/
│   ├── 银豹-采购单模板.xls        # 输出模板(条码/采购量/赠送量/单价)
│   └── 商品资料.xlsx              # 单价校验参考数据
├── data/
│   ├── input/                    # 输入文件
│   ├── output/                   # OCR 输出
│   └── result/                   # 最终采购单
└── tests/                        # 单元测试(191 个)

供应商智能路由

供应商 识别特征 处理逻辑
烟草公司 "专卖证号" 或 "510109104938" B/E/G/H 列映射,数量×10,单价÷10
蓉城易购 "RCDH" E/N/Q/S 列映射,多条码分裂均分数量
杨碧月 "经手人" + "杨碧月" 列对齐,单位转换(件→瓶)
通用供应商 suppliers_config.json 配置 列映射 + 规则引擎

云端同步

通过 Gitea REST API 在多台设备间同步配置,无需 git 客户端。

支持同步的文件:

  • 条码映射 (barcode_mappings.json)
  • 供应商配置 (suppliers_config.json)
  • 商品资料 (templates/商品资料.xlsx)
  • 采购单模板 (templates/银豹-采购单模板.xls)

配置方式:

  1. 系统设置 → 填入 Gitea 地址、仓库信息、Access Token
  2. 主窗口 → "云端同步" 按钮 → 选择文件推拉

Gitea 仓库: https://gitea.94kan.cn/houhuan/yixuan-sync-data

配置说明

配置项 文件 说明
API 密钥 .envconfig.ini 百度 OCR API,优先从环境变量读取
Gitea Token .envconfig.ini 云端同步 Token,优先从环境变量读取
供应商规则 config/suppliers_config.json 列映射、清洗规则、计算规则
条码映射 config/barcode_mappings.json 条码转换规则,运行时可更新

构建打包

pip install pyinstaller
python build_exe.py
# 输出: dist/OCR订单处理系统.exe
# 便携包: release/OCR订单处理系统.exe(含模板和商品资料)

测试

python -m pytest tests/ -v
S
Description
orc识别进货单,然后按照银豹模板进行处理
Readme 118 MiB
Languages
Python 79.5%
Vue 17.6%
TypeScript 1.5%
CSS 1.4%