From f1512febdec03be9ec1851c0238f116dc9e616e4 Mon Sep 17 00:00:00 2001 From: Akira Date: Fri, 13 Mar 2026 13:50:24 +0900 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8=E5=BA=AB=E7=AE=A1=E7=90=86=E6=A9=9F?= =?UTF-8?q?=E8=83=BD=E5=AE=9F=E8=A3=85=E6=A1=88.md=20=E3=81=AB=E3=80=81?= =?UTF-8?q?=E9=9B=BB=E6=B0=97=E7=82=89=E3=81=95=E3=81=84=20=E3=83=9F?= =?UTF-8?q?=E3=83=8D=E3=83=A9=E3=83=AB=E3=83=9B=E3=82=A6=E7=B4=A0=20?= =?UTF-8?q?=E3=83=AA=E3=83=B3=E9=85=B8=E3=82=B0=E3=82=A2=E3=83=8E=20?= =?UTF-8?q?=E3=82=82=E8=BF=BD=E8=A8=98=E3=81=97=E3=81=BE=E3=81=97=E3=81=9F?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 追加した内容は、各資材についての袋表示・保証票ベースの情報、実装上の扱い、alias の例です。あわせて最後のまとめも更新して、5件を次の3パターンに整理しました。 現場名と保証票名が違う: 仁井田米有機, 土佐勤農党, 電気炉さい 現場名と表示名がほぼ一致する: リン酸グアノ 公式マスタよりローカル資材管理向き: ミネラルホウ素 今回は文書更新のみで、コード変更やテストはしていません。必要なら次に、この5件を前提にした MaterialAlias の Django モデル案まで具体化します。 --- 改善案/在庫管理機能実装案.md | 293 +++++++++++++++++++++++++++++++++++ 1 file changed, 293 insertions(+) diff --git a/改善案/在庫管理機能実装案.md b/改善案/在庫管理機能実装案.md index d5b3cf6..1f7dcd6 100644 --- a/改善案/在庫管理機能実装案.md +++ b/改善案/在庫管理機能実装案.md @@ -1071,3 +1071,296 @@ API の考え方: - 施肥計画で使う肥料情報の標準化が進む - 農薬と同じ UX パターンで実装できる - 将来の購入管理や必要量算出にもつなげやすい + +--- + +## 19. 補足: 別名辞書(alias)設計案 + +実運用では、現場で使っている名称と保証票上の正式名称が一致しないことが多い。 + +例: + +- 現場名: `仁井田米有機` +- 保証票名: `複合肥料 DH85号` + +- 現場名: `土佐勤農党` +- 保証票名: `新・土佐勤農党・U` + +このようなケースに対応するため、公式データ同期・あいまい検索に加えて、 +`別名辞書` を持つことを強く推奨する。 + +### 19.1 目的 + +- 現場の通称やブランド名で検索できるようにする +- 正式名称へのひも付けを一度覚えたら、次回以降すぐ使えるようにする +- 手入力のたびに同じ確認作業を繰り返さないようにする + +### 19.2 追加テーブル案 + +#### MaterialAlias + +共通資材向けの別名辞書。 + +想定フィールド: + +- `id` +- `material_type` `fertilizer` / `pesticide` +- `alias_name` 現場の通称、略称、ブランド名 +- `alias_type` `brand` / `local_name` / `abbreviation` / `kana_variation` +- `material` 既存登録済み資材への紐づけ +- `official_fertilizer_master` `ForeignKey(FertilizerOfficialMaster, null=True, blank=True)` +- `official_pesticide_master` `ForeignKey(PesticideOfficialMaster, null=True, blank=True)` +- `maker_hint` +- `note` +- `created_at` +- `updated_at` + +運用上は、以下のどちらかで使えるようにする。 + +- 公式マスタ候補へのショートカット +- 既に登録済みの社内資材マスタへのショートカット + +### 19.3 検索優先順位 + +検索時の流れは以下を推奨する。 + +1. まず別名辞書を検索する +2. 一致があれば、それに紐づく公式候補または登録済み資材を優先表示する +3. 一致がなければ、通常の公式マスタあいまい検索を行う +4. ユーザーが正式候補を確定したら、必要に応じて別名辞書を学習登録する + +### 19.4 自動学習の考え方 + +初期フェーズでは手動登録だけでも十分だが、将来的には以下も可能である。 + +- ユーザーが `仁井田米有機` で検索し、`複合肥料 DH85号` を選択したら + `MaterialAlias` に候補登録する +- 同じ入力が複数回出たら、管理者承認付きで正式 alias に昇格する + +### 19.5 この設計のメリット + +- 現場名と正式名が違っても使いやすい +- ローカル運用に最適化できる +- 公式同期の精度不足を現場知識で補える +- 農薬・肥料の両方で同じ仕組みを使える + +--- + +## 20. 補足: 現場肥料名と保証票名の具体例 + +以下は、今回共有された実物ラベル写真から読み取れる内容をもとにした、 +`現場名` と `保証票上の名称` の対応例である。 + +### 20.1 仁井田米有機 + +現場呼称: + +- `仁井田米有機` + +保証票上の情報: + +- 肥料区分: `指定配合肥料` +- 肥料の名称: `複合肥料 DH85号` +- 生産業者: `大東肥料株式会社` +- 正味重量: `20キログラム` +- 保証成分量: + - `窒素全量 8.0` + - `りん酸全量 5.0` + - `加里全量 3.0` + - `内水溶性加里 2.2` + +実装上の扱い: + +- `Fertilizer.name`: `仁井田米有機` +- `Fertilizer.official_name`: `複合肥料 DH85号` +- `Fertilizer.maker`: `大東肥料株式会社` +- `Fertilizer.capacity_kg`: `20` +- `Fertilizer.nitrogen_pct`: `8.0` +- `Fertilizer.phosphorus_pct`: `5.0` +- `Fertilizer.potassium_pct`: `3.0` + +alias 例: + +- `MaterialAlias.alias_name = '仁井田米有機'` +- `official_fertilizer_master -> 複合肥料 DH85号` + +### 20.2 土佐勤農党 + +現場呼称: + +- `土佐勤農党` + +保証票上の情報: + +- 肥料区分: `指定配合肥料` +- 肥料の名称: `新・土佐勤農党・U` +- 生産業者: `株式会社 古田産業` +- 生産した事業場: `株式会社古田産業タナスカ工場` +- 正味重量: `20キログラム` +- 保証成分量: + - `窒素全量 17.0` + - `内アンモニア性窒素 7.5` + - `可溶性りん酸 15.0` + - `内水溶性りん酸 12.5` + - `水溶性加里 15.0` + +実装上の扱い: + +- `Fertilizer.name`: `土佐勤農党` +- `Fertilizer.official_name`: `新・土佐勤農党・U` +- `Fertilizer.maker`: `株式会社 古田産業` +- `Fertilizer.capacity_kg`: `20` +- `Fertilizer.nitrogen_pct`: `17.0` +- `Fertilizer.phosphorus_pct`: `15.0` +- `Fertilizer.potassium_pct`: `15.0` + +alias 例: + +- `MaterialAlias.alias_name = '土佐勤農党'` +- `official_fertilizer_master -> 新・土佐勤農党・U` + +### 20.3 電気炉さい + +現場呼称: + +- `電気炉さい` + +保証票上の情報: + +- 登録番号: `生第87006号` +- 肥料の種類: `鉱さいけい酸質肥料` +- 肥料の名称: `粒状スーパー珪鉄1号` +- 生産業者: `株式会社 古田産業` +- 生産した事業場: `株式会社古田産業東孕工場` +- 正味重量: `20キログラム` +- 保証成分量: + - `可溶性けい酸 24.0` + - `アルカリ分 37.0` + - `く溶性苦土 3.0` + +実装上の扱い: + +- `Fertilizer.name`: `電気炉さい` +- `Fertilizer.official_name`: `粒状スーパー珪鉄1号` +- `Fertilizer.registration_no`: `生第87006号` +- `Fertilizer.maker`: `株式会社 古田産業` +- `Fertilizer.capacity_kg`: `20` +- `Fertilizer.notes`: `鉱さいけい酸質肥料。現場では電気炉さいと呼称` + +補足: + +- この資材は、N/P/K 中心の複合肥料とは異なり、けい酸質肥料として管理する性格が強い +- そのため、施肥計画で使う場合は `notes` や追加属性で区分を保持した方がよい + +alias 例: + +- `MaterialAlias.alias_name = '電気炉さい'` +- `official_fertilizer_master -> 粒状スーパー珪鉄1号` + +### 20.4 ミネラルホウ素 + +現場呼称: + +- `ミネラルホウ素` + +袋表示上の情報: + +- 表示名: `複合ミネラル有機JAS適合資材` +- JAS登録番号: `JASOM-130419` +- 特長表示: + - `多種の微量要素を含有` + - `珪酸の吸収を助ける` + - `有害カビ類に対し抑止力効果` +- 適用量例: + - `水稲 60〜100kg` + - `露地野菜 60〜120kg` + - `施設園芸 100〜140kg` + - `花卉 60〜100kg` + - `特用作物・牧草 80〜120kg` +- 成分表(分析例): + - `珪酸 60.16` + - `粘土 18.45` + - `酸化鉄 5.55` + - `加里 3.36` + - `苦土 2.17` + - `石灰 2.68` + - `りん酸 0.22` + - `マンガン 0.09` + - `ほう素 0.005` + +実装上の扱い: + +- `Fertilizer.name`: `ミネラルホウ素` +- `Fertilizer.official_name`: `複合ミネラル有機JAS適合資材` +- `Fertilizer.capacity_kg`: 袋表示要確認 +- `Fertilizer.notes`: `微量要素資材。袋表示上は複合ミネラル有機JAS適合資材` + +補足: + +- 袋表示からは一般的な N/P/K 保証票というより、分析例と資材特長が前面に出ている +- このため、通常の普通肥料公式マスタにそのまま一致しない可能性がある +- 初期実装では `手入力 + alias辞書` で扱い、後から公式対応可否を判定するのが安全 + +alias 例: + +- `MaterialAlias.alias_name = 'ミネラルホウ素'` +- `material -> 自社登録のミネラルホウ素材材` + +### 20.5 リン酸グアノ + +現場呼称: + +- `リン酸グアノ` + +袋表示上の情報: + +- 表示名: `純天然有機質リン酸肥料` +- 商品表示名: `リン酸グアノ` +- 正味重量: `20kg` +- 原産国表示: `MADE IN INDONESIA` +- 成分表(分析例): + - `リン酸全量 25.73` + - `く溶性リン酸 17.47` + - `石灰 31.69` +- 施肥基準量例: + - `水稲 40kg〜60kg` + - `葉菜・芝草類 60kg〜100kg` + - `根菜・果菜・果樹類 80kg〜120kg` + +実装上の扱い: + +- `Fertilizer.name`: `リン酸グアノ` +- `Fertilizer.official_name`: `リン酸グアノ` +- `Fertilizer.capacity_kg`: `20` +- `Fertilizer.phosphorus_pct`: `25.73` または用途に応じて `く溶性リン酸 17.47` を備考保持 +- `Fertilizer.notes`: `純天然有機質リン酸肥料。石灰成分を多く含む` + +補足: + +- `リン酸グアノ` は商品表示名そのものが現場呼称と一致しており、今回の例では alias なしでも扱いやすい +- ただし、同名類似品がある場合はメーカー名や原産国も保持できると識別しやすい + +alias 例: + +- `MaterialAlias.alias_name = 'リン酸グアノ'` +- `official_fertilizer_master -> リン酸グアノ` + +### 20.6 この具体例から分かること + +今回の5例を見ると、現場資材の扱いは大きく3パターンに分かれる。 + +- `現場名と保証票名が違う` + - 例: `仁井田米有機`, `土佐勤農党`, `電気炉さい` +- `現場名と表示名がほぼ一致する` + - 例: `リン酸グアノ` +- `公式マスタよりローカル資材管理向き` + - 例: `ミネラルホウ素` + +このため、肥料公式データ同期を実装する場合でも、実運用では次の3つが必要になる。 + +- 公式データ同期 +- ローカルDBあいまい検索 +- 別名辞書(alias) + +この3つを組み合わせることで、正式名称ベースの整合性と、 +現場名称ベースの使いやすさを両立できる。