orc-order-v2/README.md
houhuan 32d41244e5 feat: 实现智能订单识别与自动预处理路由
- 新增智能识别功能,自动检测蓉城易购、烟草公司、杨碧月订单特征
- 修改订单服务流程,在Excel处理前自动执行专用预处理
- 更新无界面API,支持智能识别模式,简化OpenClaw集成
- 完善供应商专用预处理逻辑,修复数量计算和单位换算问题
- 添加变更日志和最终更新报告文档,记录v2.1版本变更
2026-03-30 15:36:27 +08:00

66 lines
4.0 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 内容特征(如:蓉城易购 RCDH、烟草公司专卖证号、杨碧月经手人并自动路由至专用预处理流程无需手动干预。
- **图片/Excel处理**:拖拽或选择文件,生成标准银豹采购单。
- **无界面自动化接口 (headless_api.py)**:专为 OpenClaw 等平台设计,支持 `--excel` 模式下的全自动识别。
- **单价预警机制**:自动比对 `templates/商品资料.xlsx`,若价差超过 1.0 元则触发警告。
## 供应商专用逻辑 (v2.1)
### 蓉城易购 (Rongcheng)
- **精准映射**:条码(E列)、数量(N列)、单价(Q列)、金额(S列)。
- **条码分裂**:支持多条码行(如 `条码1/条码2`)自动均分数量。
- **纯净数据**:直接提取原始数量,不进行多余的单位换算。
### 烟草公司 (Tobacco)
- **换算逻辑**:条码(B列)、数量(G列 x 10)、单价(E列 / 10)、总额(H列)。
- **智能跳行**:自动识别并跳过合计行及非数据行。
### 杨碧月订单
- **自动对齐**:识别到经手人“杨碧月”后,自动将非标 Excel 转换为标准列格式。
## 关键适配(蓉城易购)
- 新模板如“订单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元提示
- 蓉城易购新模板适配(第三行表头、单位(订购单位)、多条码拆分、金额映射)