SOP与BOM对比校对,生成独立校对报告。支持单个SOP与多个BOM合并校对。从SOP提取物料信息(含页码、序号),与BOM对比,生成包含三个表格的报告:有差异物料(并排对比)、SOP独有物料、BOM独有物料。差异用红色标注,重复物料编码用黄色标注。保留SOP中所有重复物料条目不合并,逐条与BOM对比校对。自动清...
SOP-BOM 校对报告生成器
功能概述
SOP-BOM 校对报告生成器是一项面向实际任务的技能,主要用于Python : 3.8 或更高版本;标准库:无额外安装;
核心要点
- 可选: openpyxl (用于读取数值类型的数量数据);
- 平台 : Linux / macOS / Windows;
- 内存 : 建议 512MB 以上;
使用与执行
解析 SOP 文件 :提取物料信息(页码、序号、物料编码、名称规格、位号、数量);解析 BOM 文件 :提取物料信息(项次、物料。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
结果检查与注意事项
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
SOP-BOM 校对报告生成器
系统要求
- Python: 3.8 或更高版本
- 依赖库:
- 标准库:无额外安装
- 可选:
openpyxl(用于读取数值类型的数量数据)pip install openpyxl
- 平台: Linux / macOS / Windows
- 内存: 建议 512MB 以上
功能说明
- 解析 SOP 文件:提取物料信息(页码、序号、物料编码、名称规格、位号、数量)
- 解析 BOM 文件:提取物料信息(项次、物料编码、名称、规格、位号、数量)
- 多 BOM 合并:支持多个 BOM 文件合并后一起校对
- 对比校对:以物料编码为基准,对比名称规格、位号、数量
- 生成校对报告:独立 xlsx 文件,包含三个表格
- 自动清理缓存:每次生成报告后自动清理临时文件和旧报告
使用方法
单个 BOM 校对
python sop_bom_report.py bom.xlsx --sop sop.xlsx
多个 BOM 合并校对
# 多个 BOM 文件会合并后一起与 SOP 对比 python sop_bom_report.py bom1.xlsx bom2.xlsx bom3.xlsx --sop sop.xlsx
指定输出目录
python sop_bom_report.py bom.xlsx --sop sop.xlsx -d ./reports
详细输出(调试模式)
python sop_bom_report.py bom.xlsx --sop sop.xlsx -v
缓存清理策略
自动清理
每次生成报告后自动执行:
- 临时目录:清理系统临时目录下的
sop_extract_*、bom_extract_*、report_* - 旧报告:
- 保留最近 20 份报告
- 删除超过 7 天的报告
- 日志输出清理统计
手动清理
如需手动清理,可执行:
# Linux/Mac rm -rf /tmp/sop_extract_* /tmp/bom_extract_* /tmp/report_* # Windows (PowerShell) Remove-Item -Path "$env:TEMPsop_extract_*" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPbom_extract_*" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPreport_*" -Force -ErrorAction SilentlyContinue
输出报告结构
表格1:有差异的物料(并排对比)
| 页码 | 序号 | 物料编码 | 名称规格 | 位号 | 数量 | 项次 | 物料编码 | 名称 | 规格 | 位号 | 数量 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SOP数据 | BOM数据 |
颜色标注:
- 🔴 红色:差异内容(名称规格/位号/数量)
- 🟡 黄色:重复物料编码(同一物料编码在SOP中出现多次)
表格2:SOP 独有物料
SOP 中有但 BOM 中没有的物料,显示完整 SOP 数据(页码、序号、物料编码、名称规格、位号、数量)。
表格3:BOM 独有物料
BOM 中有但 SOP 中没有的物料,显示完整 BOM 数据(项次、物料编码、名称、规格、位号、数量)。
文件格式
SOP 文件(作业指导书)
三级提取策略:
1. 标准格式(优先)
当 SOP 文件符合标准格式时,使用以下列提取:
| 列 | 字段 | 说明 |
|---|---|---|
| BF | 页码 | 格式:"第X页,共Y页" |
| AN | 序号 | 范围 1-20 |
| AQ | 物料编码 | 格式:XXXXX-XXX-XXX |
| AX | 名称规格 | 名称和规格合在一起 |
| BI | 位号 | 物料位置信息 |
| BO | 数量 | 物料数量(优先使用 openpyxl 读取数值) |
2. 兼容格式(后备)
当标准格式提取不到物料时,自动启用多列兼容模式:
| 列 | 字段 | 说明 |
|---|---|---|
| AQ/AR/AX/AN/BU/BF | 物料编码 | 自动扫描多列查找(按优先级) |
| AX/AQ/AR/AN/BU/BF | 名称规格 | 自动检测(排除物料编码本身) |
| BI/BJ/BK | 位号 | 自动检测 |
| BO/BP/BN/BQ | 数量 | 自动检测(优先使用 openpyxl 读取数值) |
特殊格式支持:
- AR 列物料编码:部分 SOP 格式中物料编码在 AR 列
- 共享字符串提取:当物料编码不在标准列时,从共享字符串中直接提取
- 数值数量读取:使用 openpyxl 的
data_only=True模式读取实际显示的数值
3. 共享字符串直接提取(最后后备)
当以上格式都无法提取时,直接从 Excel 共享字符串中提取物料编码:
- 匹配格式:
^d{5}-d{3}-d{3}$ - 名称规格:取物料编码相邻的下一个字符串
BOM 文件
自动识别两种 BOM 格式:
格式一(新格式)
| 列 | 字段 | 说明 |
|---|---|---|
| F | 项次 | 物料序号 |
| G | 物料编码 | 格式:XXXXX-XXX-XXX |
| H | 名称 | 物料名称 |
| I | 规格 | 规格型号 |
| K | 用量分子 | 用于计算数量 |
| L | 用量分母 | 用于计算数量 |
| M | 备注 | 包含位号信息 |
格式二(旧格式)
| 列 | 字段 | 说明 |
|---|---|---|
| H | 项次 | 物料序号 |
| I | 物料编码 | 格式:XXXXX-XXX-XXX |
| J | 名称 | 物料名称 |
| K | 规格 | 规格型号 |
| N | 用量分子 | 用于计算数量 |
| O | 用量分母 | 用于计算数量 |
| P | 备注 | 包含位号信息 |
智能检测:脚本会自动检测 BOM 文件使用哪种格式,优先检测新格式(G列物料编码)。
数量计算:实际用量 = 分子 ÷ 分母,分母为空或0时默认为1
校对逻辑
对比规则
- 物料编码匹配:以物料编码为基准进行匹配
- 名称规格对比:BOM 名称+规格 拼接后与 SOP 名称规格对比
- 位号对比:忽略格式差异(空格、标点符号、顺序)
- 数量对比:直接数值对比
忽略差异
对比时自动忽略:
- 全角/半角差异
- 标点符号差异
- 空格差异
- 换行符差异
重复物料处理
- 同一物料编码在 SOP 中出现多次时,视为重复物料
- 重复物料编码用黄色标记
- 每条记录单独与 BOM 校对
输出文件
- 文件名格式:
{订单编号}_校对报告.xlsx - 订单编号:从 SOP 文件名开头提取(格式:数字-数字-数字)
- 示例:SOP 文件名为
15214-100-008 VV12548主板PCBA作业指导书-V04.xlsx,输出文件名为15214-100-008_校对报告.xlsx
触发场景
用户发送 BOM 和 SOP 文件要求对比校对时触发。
故障排除
常见问题
Python 版本错误
错误: 需要 Python 3.8 或更高版本
解决:升级 Python 到 3.8+
临时目录权限错误
PermissionError: [Errno 13] Permission denied
解决:检查临时目录权限,或设置
TEMP环境变量文件编码错误
UnicodeDecodeError
解决:确保文件为 UTF-8 编码
调试模式
运行时添加 -v 参数查看详细日志:
python sop_bom_report.py bom.xlsx --sop sop.xlsx -v
热门AI工具
相关专题
本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。
0
2026.11.06
围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。
0
2026.11.06
详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。
0
2026.11.06
DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。
0
2026.11.05
DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。
0
2026.11.05
本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。
0
2026.11.04
本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.7万人学习
共6课时 | 54.7万人学习
最新文章