Files
keinasystem/document/06_ドキュメントvs実装_差異レポート.md
Akira 73e99f62d4 対応表モード 実装サマリー
新規ファイル
ファイル	内容
LinkModal.tsx	共通コンポーネントとして切り出し(圃場詳細・対応表の両方で使用)
変更ファイル
ファイル	変更内容
fields/page.tsx	[通常] / [対応表] トグルボタンを追加。対応表モードでは圃場名・面積・共済漢字地名・中山間所在地を横並び表示。各行で直接+追加/x解除が可能
fields/[id]/page.tsx	LinkModalのインポートを共通コンポーネントに変更
04_画面設計書.md	画面4に対応表モードのレイアウト・機能要件を追記
06_差異レポート.md	E-2の実装状況を更新
対応表モードの機能
一覧表示: 圃場名 / 面積(反) / 共済(耕地-分筆 + 漢字地名) / 中山間(ID + 所在地)
直接編集: 各セルの[+追加]ボタンで検索モーダルを開いて紐づけ追加
紐づけ解除: 各レコードにホバーで表示される[x]ボタン(確認ダイアログ付き)
複数紐づけ: 同一セル内に改行で表示
圃場名クリック: 詳細画面(/fields/[id])に遷移
http://localhost:3000/fields で「対応表」ボタンを押して確認できます。
2026-02-18 14:24:10 +09:00

10 KiB
Raw Blame History

ドキュメント vs 実装 差異レポート

作成日: 2026-02-16 最終更新: 2026-02-17 目的: ドキュメントと実装の差異を洗い出し、対応方針を決定する


A. ドキュメントに書かれているが実装されていないもの

A-1: ダッシュボード画面

  • ドキュメント: 画面設計書 画面2 - 概要サマリー(全圃場数/作付け済み/未割当)、クイックアクセスボタン、最近の変更履歴
  • 実装: / はトークンの有無で /allocation/login にリダイレクトするだけ
  • 影響: なくても作付け計画画面から全機能にアクセス可能。Navbarで各画面に遷移できる
  • 状態: 🔜 未着手

対応方針: 将来、機能追加する時には、ここにボタンが増えていく形式になっていくはずなので必要です


A-2: チェックボックスによる一括操作

  • ドキュメント: 画面設計書 画面3 - 各行にチェックボックス、複数選択→一括割当
  • 実装: チェックボックスなし、一括操作UI なし
  • 補足: Backend には POST /api/plans/bulk_update/ APIが既に存在する
  • 状態: 🔜 未着手

対応方針: 利便性向上の為必要です。


A-3: 前年度コピー機能(フロントエンド)

  • ドキュメント: ユーザーストーリー P1-5、画面設計書 画面3 - [前年度をコピー]ボタン
  • 実装: Backend API (POST /api/plans/copy_from_previous_year/) は存在するが、Frontend にボタンがない
  • 影響: 毎年手動で39筆を設定する必要がある
  • 状態: 🔜 未着手

対応方針: 必要な項目です。


A-4: 品種のインライン追加

  • ドキュメント: 画面設計書 画面4 - [+ 新しい品種を追加]ボタン、その場で入力して即座にマスタ登録
  • 実装: 既存品種からの選択のみ。新品種の追加はDjango管理画面からのみ可能
  • 影響: 運用中に新品種が出てきた場合、管理画面を開く必要がある
  • 状態: 🔜 未着手

対応方針: 追加出来る事は必要です。削除も出来ないと間違って追加した時に不便です


A-5: PDFプレビュー機能

  • ドキュメント: 画面設計書 画面6 - [プレビュー]ボタンで新タブにPDF表示
  • 実装: ダウンロードボタンのみ(プレビューなし)
  • 影響: ダウンロード前に内容確認ができない
  • 状態: 🔜 未着手

対応方針: プレビューしてから保存、もしくは、印刷出来るようにしたいです。


A-6: エクスポート機能CSV/ZIP

  • ドキュメント: 画面設計書 画面7 - 全圃場データCSV、作付け計画CSV、全データZIPバックアップ
  • 実装: 未実装
  • 影響: バックアップ手段がないDBダンプのみ
  • 状態: 🔜 未着手

対応方針: 必要です。近い将来サーバーに移行するので、その時に、このローカル環境で設定したデータを移動できるようにしたいです。


A-7: 作付け計画画面の検索・フィルタ

  • ドキュメント: 画面設計書 画面3 - 圃場名・住所で部分一致検索、作物で絞り込み、未割当のみトグル
  • 実装: 並び替え(カスタム順/グループ順/作付け順)のみ。テキスト検索なし
  • 影響: 39筆なので目視でも探せるが、検索があると便利
  • 状態: 🔜 未着手

対応方針: 優先度は低いですが必要です。


A-8: 圃場詳細画面の共済/中山間情報表示 対応済み

  • 対応内容: 圃場詳細画面 (/fields/[id]) に共済情報テーブルと中山間情報テーブルを追加
  • 対応日: 2026-02-17
  • 確認: Playwright E2E テストで検証済み

B. 実装されているがドキュメントに記載がないもの

B-1〜B-5: ドキュメント追記対応 対応済み

以下の項目は 2026-02-17 のドキュメント一斉更新で対応済み:

  • B-1: グループ機能 → データ仕様書・CLAUDE.md に記載済み
  • B-2: 圃場管理画面(/fields → 画面設計書に追記済み
  • B-3: 圃場新規作成画面(/fields/new → 画面設計書に追記済み
  • B-4: インライン編集方式(作付け計画) → 画面設計書をモーダル→インラインに更新済み
  • B-5: Navbar → 画面設計書に追記済み

C. ドキュメントと実装で食い違っているもの

C-1: Field と共済/中山間の関係M:1 vs M:N 対応済み

  • 対応内容: データ仕様書を M:N に更新
  • 対応日: 2026-02-17

C-2: 共済マスタのフィールド型 対応済み

  • 対応内容: k_num = CharField, s_num = CharField に統一。unique_together = [['k_num', 's_num']] を設定マイグレーション0005
  • 対応日: 2026-02-17
  • 確認: Playwright E2E テストで重複拒否を検証済み

C-3: 中山間マスタのフィールド型 対応済み

  • 対応内容: c_id = CharField, chiban = CharField で実装。データ仕様書も CharField に更新済み
  • 理由: 地番に「イ」「ロ」等の非数値データが入るため

C-4: 面積フィールドの単位 対応済み

  • 対応内容:
    • 共済マスタ・中山間マスタの area は IntegerFieldm2に統一
    • 共済インポート時に ODS のアール値を m2 に変換 (×100)
    • PDF テンプレートの面積表示を m2 に修正
  • 対応日: 2026-02-17
  • 発見したバグ: ODS カラム名 本地面積 (m2) のスペース有無でインポートが失敗し全件 area=0 になっていた → 修正済み

C-5: 作物マスタの初期データ 対応済み

  • 対応内容: init_crops.py を削除。作物・品種は管理画面やUIから登録する運用
  • 対応日: 2026-02-17D-2 と同時対応)

C-6: 申請書の出力形式CSV vs PDF 対応済み

  • 対応内容: 全ドキュメントを PDF に統一
  • 対応日: 2026-02-17

C-7: Django バージョン 対応済み

  • 対応内容: ドキュメントを Django 5.2 に更新
  • 対応日: 2026-02-17

C-8: DEFAULT_PERMISSION_CLASSES 対応済み

  • 対応内容: AllowAnyIsAuthenticated に変更
  • 対応日: 2026-02-17D-4 と同時対応)
  • 確認: Playwright E2E テストで未認証時 401 を検証済み

D. 潜在的な不具合

D-1: PDF生成時の variety/crop が null でクラッシュ 修正済み

  • 修正内容: plan.crop.name if plan.crop else '未設定' / plan.variety.name if plan.variety else '' の null チェック追加
  • 修正日: 2026-02-17
  • 確認: Playwright E2E テストで PDF 生成200 応答)を検証済み

D-2: init_crops.py の不正データ 修正済み

  • 修正内容: init_crops.py 自体を削除
  • 修正日: 2026-02-17

D-3: settings.py の二重定義 修正済み

  • 修正内容: 前の LANGUAGE_CODE = 'en-us' / TIME_ZONE = 'UTC' を削除。LANGUAGE_CODE = 'ja' / TIME_ZONE = 'Asia/Tokyo' のみ残す
  • 修正日: 2026-02-17

D-4: AllowAny で全API公開 修正済み

  • 修正内容: DEFAULT_PERMISSION_CLASSESIsAuthenticated に変更
  • 修正日: 2026-02-17
  • 確認: Playwright E2E テストで検証済み

E. 追加で修正の要望

E-1: PDF帳票フォーマットの再設計 対応済み

対応日: 2026-02-17

対応内容:

  • E-1a: 水稲共済細目書 PDF — A4 縦、表形式1行1区画、@page 設定、ページ番号、日本語タイトルに修正
  • E-1b: 中山間交付金 PDF — A4 横、表形式1行1区画、@page 設定、ページ番号、日本語タイトルに修正
  • E-1c: OfficialChusankanField モデル拡張 — 6→17 フィールドに拡張マイグレーション0006
  • 中山間インポート修正 — ODS 17 列すべて読み込み対応
  • 共済インポートバグ修正 — 面積カラム名スペース不一致 + アール→m2 変換(×100)
  • reports/views.py — ロジック全面書き直しフラットテーブル、null 安全、prefetch_related
  • シリアライザ — OfficialChusankanFieldSerializer に 11 フィールド追加

確認: Playwright E2E テストPDF 200 応答、中山間 17 フィールド返却、共済面積 > 0で検証済み


E-2: 対応付け可視化・紐づけ管理機能

  • 背景: 3つのODSデータファイル吉田農地台帳 → Field、水稲共済細目用 → OfficialKyosaiField、中山間 → OfficialChusankanField間のM:N対応関係を確認・編集する手段がない
  • 状態: 🚧 一部実装済み

実装済み:

  • バックエンドAPI 6本共済/中山間マスタ一覧、紐づけ追加・解除)
  • 圃場詳細画面(/fields/[id]: +追加ボタン、×解除ボタン、検索付きモーダル、面積参考表示
  • 圃場一覧 通常モード: 「共済」「中山間」件数列

未実装:

  • 🔜 圃場一覧「対応表」モード: 漢字地名・所在地を一覧表示し、直接紐づけ追加・解除できる表示モード(仕様は画面設計書 画面4 に記載済み)

対応状況サマリー

カテゴリ 項目 状態
A-1 ダッシュボード画面 🔜 未着手
A-2 チェックボックス一括操作 🔜 未着手
A-3 前年度コピーボタン 🔜 未着手
A-4 品種インライン追加・削除 🔜 未着手
A-5 PDFプレビュー 🔜 未着手
A-6 エクスポート機能 🔜 未着手
A-7 検索・フィルタ 🔜 未着手
A-8 圃場詳細 共済/中山間表示 完了
B-1〜B-5 ドキュメント追記 完了
C-1〜C-8 ドキュメント/実装の食い違い修正 全件完了
D-1〜D-4 不具合修正 全件完了
E-1 PDF帳票再設計 完了
E-2 対応付け可視化・紐づけ管理 🚧 一部実装済み(対応表モード未実装)