マシンと関連パーツを管理番号の末尾5桁で照合し、QRコード付き管理シールを自動生成するPythonツールです。
ポートフォリオ用として、すべて架空のダミーデータを使用しています。
本プロジェクトは、Pythonと業務自動化の学習を目的に、生成AIのサポートを活用して開発しました。
要件整理、データ構成、照合ルール、異常データの検証、QRコードの読み取り確認は自分で行い、実装方法やエラー修正について生成AIから助言を受けました。
作成したコードについては、処理の流れを確認しながら実行・検証し、マシンとパーツの照合から印刷用PDFの生成まで動作確認しています。
1台のマシンに対して、以下の5種類のパーツがひも付きます。
- MB
- SSD
- SATA
- GB
- D(電源)
マシンとパーツの管理番号は末尾5桁が共通です。このルールを利用し、セットの照合とQRシール作成を自動化しました。
- マシン100件・パーツ約500件のダミーデータ生成
- マシンとパーツを別シートへランダム配置
- 管理番号の末尾5桁による自動照合
- パーツの不足・重複・想定外データの検出
- 正常セットだけをシール出力対象として抽出
- 管理番号を格納したQRコードの生成
- A4・3列×8段の印刷用PDF生成
- Excelからマシンとパーツを読み込む
- 管理番号の末尾5桁を抽出する
- 同じ末尾5桁を持つデータをセット化する
- 必要なパーツが1個ずつ存在するか確認する
- 異常セットを出力対象から除外する
- 正常セットのQRシールを生成する
- A4印刷用PDFとして保存する
以下の異常を検出できます。
- パーツ不足
- 同じ種類のパーツの重複
- 想定外のパーツ名
サンプルデータでは、意図的に作成した10件の異常セットをすべて検出します。
各シールには以下を表示します。
- マシン名またはパーツ名
- セットを表す末尾5桁
- 管理番号全体を格納したQRコード
- Python
- openpyxl
- qrcode
- Pillow
- ReportLab
python3 -m pip install -r requirements.txtダミーデータを生成します。
python3 generate_sample_data.py照合・異常検出・QRシールPDF作成を実行します。
python3 create_qr_labels.py実行後、印刷用のportfolio_qr_labels.pdfが生成されます。
QR_DATA/
├── README.md
├── generate_sample_data.py
├── create_qr_labels.py
├── requirements.txt
├── samples/
│ ├── sample_assets.xlsx
│ └── test_label.png
└── .gitignore
- 元データの並び順に依存せず、末尾5桁でセットを照合
- パーツ数だけでなく、必要な5種類が揃っているかを検証
- QRには共通の末尾5桁ではなく、一意の管理番号全体を格納
- 1セット6枚をまとめ、セットの途中でページが変わらないよう配置
- 実データを公開せずに検証できるダミーデータ生成機能を用意
- シール用紙の商品番号に応じたレイアウト選択
- 異常内容をExcelレポートとして出力
- GUIからファイルを選択できる画面の追加
- QR読み取り後にセット情報を表示するWeb画面との連携
