Files
keinasystem/document/06_ドキュメントvs実装_差異レポート.md
Akira 103331f761 更新内容のサマリー
1. 04_画面設計書.md — 画面5 拡張
圃場詳細画面に追加した仕様(E-2):

共済/中山間セクションに [+追加]ボタン → モーダルで全マスタから検索・複数選択して紐づけ
各行に [×]ボタン → 確認ダイアログ付きで紐づけ解除
面積整合性チェック: 圃場面積 vs 紐づけ区画の合計面積を比較し、一致 / ⚠️差異ありを表示
PC/スマホ両方のレイアウト定義
必要なAPI 6本の定義(紐づけ追加・解除の CRUD)
圃場一覧画面にも追加:

「共済」「中山間」の紐づけ件数列
未紐づけ・面積不一致の ⚠️ 警告表示
2. 06_差異レポート.md — E-2 追加
新タスク E-2: 対応付け可視化・紐づけ管理機能 をサマリーテーブルに追加

3. CLAUDE.md — 次タスク更新
完了済みタスク(A-8, D-1〜D-4, E-1)を既知の課題から除外
E-2を最優先タスクに設定
2026-02-18 13:44:40 +09:00

11 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対応関係を確認・編集する手段がない
  • 現状: 圃場詳細画面に共済/中山間の読み取り専用テーブルはあるA-8完了が、紐づけの追加・解除ができない。面積の整合性チェックもない
  • 状態: 🔜 未着手

対応方針(仕様は画面設計書 画面5 に記載済み):

  1. 圃場詳細画面(/fields/[id])の拡張:

    • 共済/中山間セクションに [+追加] ボタンを追加
    • 追加モーダル: 全マスタ一覧から検索・選択して紐づけ追加(チェックボックス複数選択)
    • 各行に [×] ボタンで紐づけ解除(確認ダイアログ付き)
    • 面積整合性チェック: 圃場面積 vs 紐づけ区画合計面積の比較表示( 一致 / ⚠️ 差異あり)
  2. 圃場一覧画面(/fieldsの拡張:

    • 「共済」「中山間」列を追加し、紐づけ件数を表示
    • 未紐づけ圃場は ⚠️ 警告表示
    • 面積不一致がある場合も ⚠️ 表示
  3. 必要なバックエンドAPI:

    • GET /api/kyosai-fields/ — 共済マスタ全件取得
    • GET /api/chusankan-fields/ — 中山間マスタ全件取得
    • POST /api/fields/{id}/kyosai-links/ — 共済紐づけ追加
    • DELETE /api/fields/{id}/kyosai-links/{kyosai_id}/ — 共済紐づけ解除
    • POST /api/fields/{id}/chusankan-links/ — 中山間紐づけ追加
    • DELETE /api/fields/{id}/chusankan-links/{chusankan_id}/ — 中山間紐づけ解除

対応状況サマリー

カテゴリ 項目 状態
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 対応付け可視化・紐づけ管理 🔜 未着手