Files
keinasystem/document/06_ドキュメントvs実装_差異レポート.md
Akira 619bd7886e 修正完了です。変更のポイント:
警告アイコン(⚠️/)を全て除去 — M:Nの特性上、面積が一致しないのが正常なので
合計面積はセクション見出しにグレー小文字で併記するのみ — 「共済情報 (2件 / 計800m2)」の形式
圃場一覧の紐づけ列も控えめに — 0件は「-」のグレー表示、警告なし
面積情報は「見ようと思えば見える」程度の存在感にしました。画面がうるさくならないはずです。
2026-02-18 13:49:51 +09:00

269 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ドキュメント 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~~ ✅ 対応済み
- **対応内容**: `AllowAny``IsAuthenticated` に変更
- **対応日**: 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_CLASSES``IsAuthenticated` に変更
- **修正日**: 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])の拡張**:
- 共済/中山間セクションに [+追加] ボタンを追加
- 追加モーダル: 全マスタ一覧から検索・選択して紐づけ追加(チェックボックス複数選択)
- 各行に [×] ボタンで紐づけ解除(確認ダイアログ付き)
- 面積参考表示: セクション見出しに合計面積を小さく併記M:Nの特性上不一致が通常なので、警告は出さない
2. **圃場一覧画面(/fieldsの拡張**:
- 「共済」「中山間」列を追加し、紐づけ件数を表示
- 0件の場合は「-」をグレー表示(警告アイコンは使わない)
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 | 対応付け可視化・紐づけ管理 | 🔜 未着手 |