作成: 2026-05-15
最終更新: 2026-05-22
対象機能: 実績を考慮した残計画の再配置・再編成
実装状況: 実装完了(2026-05-17)
関連 Issue:#72(supersedes#65),#63,#70
関連方針:docs/00_設計ポリシー_生産履歴中心設計.md
実績が一部入ったあとに、「残りの計画をどう組み直すか」を支援する共通フロー。
田植え計画・施肥計画・運搬計画など、作業種別ごとに別々の再編UIを作るのではなく、
複数計画を横に並べ、未割り当てを含めて残りを再配置する という 1 パターンに寄せる。
このフローの目的は「過去の実績を書き換えること」ではなく、
実績確定済みのものをロックしたうえで、未実績分の予定だけを組み直すこと にある。
docs/00_設計ポリシー_生産履歴中心設計.md に基づき、次を守る。
実績モデル自体は計画 FK に従属しない設計でも、
候補抽出UIが計画エントリだけに絞られていると、実運用では計画外実績を登録できない。
このフローでは、
という関係を前提にする。
単一計画の編集画面だけでは、次の操作が不自然になる。
そのため、計画単体編集とは別に、年度・作業種別をまたぐ調整画面 を持つ。
[年度] [品種/資材/作業条件フィルタ] [グループ] [実績状況] [やり直し] [確定]
────────────────────────────────────────────────────────
[計画A] [計画B] [未割り当て]
ほ場1 ✅ ほ場3 ○ ほ場7 [計画に追加]
ほ場2 ○ [移動] ほ場4 ○ [移動] ほ場8 [計画に追加]
田植え品種フィルターの候補ソース:
品種フィルターにはRiceTransplantPlan(田植え計画)とPlan(作付け計画、水稲のみ)の両方から品種を収集する。
田植え計画がまだ存在しない品種でも、作付け計画に水稲として登録済みであればフィルターボタンに出る。
これにより、シーズン初頭の「田植え計画をこれから作る」状態でも品種フィルターが機能する。
すべて / 未実績のみ / 確定済みのみ(単一選択)| 状態 | 意味 | 操作 |
|---|---|---|
| 実績入力済み | 実際の作業が記録済み | 変更不可(バックエンドで強制) |
| 完了マーク済み | 実績は未入力だが、この調整セッション中は触らない | 変更不可(フロント側 UI 状態のみ) |
| 未実績 | まだ作業前 | 移動・削除可 |
| 未割り当て | どの計画にも属していない | 追加可 |
ロック判断の分担:
変更はクライアント側で保持する
サーバー側ドラフト保存は当面持たない
やり直し で初期状態へ戻せる
canceled などの状態で残すplanned 状態の新規エントリとして作る| 作業種別 | ロック判定 |
|---|---|
| 田植え計画 | 田植え実績が入力済み |
| 施肥計画 | 散布実績が入力済み |
| 運搬計画 | 運搬実績が入力済み |
| トラクター作業関連計画 | トラクター作業実績が入力済み |
全4種別の調整画面を実装済み(2026-05-17):
| 作業種別 | 画面 | ロック根拠 |
|---|---|---|
| 田植え計画 | RiceTransplantAdjustmentPage |
田植え実績 |
| トラクター作業 | TractorWorkAdjustmentPage |
トラクター作業実績 |
| 運搬計画 | DeliveryAdjustmentPage |
運搬トリップの運搬日確定 |
| 施肥計画 | FertilizationAdjustmentPage |
散布実績 |
初回適用では次を満たす。
RiceTransplantPlan を並べて表示できる反当苗箱数 × 面積(反) を初期値として再計算できるplanned / canceled を基本に表現する詳細は docs/16_マスタードキュメント_田植え計画編.md を参照。
設計原則からの意図的な逸脱を以下に記録する。
田植え・トラクター作業はステータスフィールドを持つため、設計原則通り canceled / NOT_NEEDED に変更する。
施肥(FertilizationEntry)・運搬(DeliveryPlanField)はモデルにステータスフィールドがないため、
調整時の除外は物理削除+再追加のパターンを採用している。いずれも実績データには一切触れない。
設計段階では「作業種別をパラメータとして受け取る共通コンポーネント」を想定していたが、
各作業種別でデータ構造・表示内容・操作が十分に異なるため(苗箱数の有無、袋数マトリクスなど)、
作業種別ごとに独立したコンポーネントとして実装した。設計パターン(ドラフト状態・確定フロー・差分確認モーダル)は統一されている。
設計では「施肥: 品種、必要に応じて肥料」としていたが、品種・グループフィルタのみを実装している。
施肥調整画面での肥料フィルタは優先度が低いと判断し省略した。
docs/16_マスタードキュメント_田植え計画編.mddocs/13_マスタードキュメント_施肥計画編.mddocs/14_マスタードキュメント_分配計画編.mddocs/15_マスタードキュメント_トラクター作業編.md改善案/72_計画横断調整フロー_設計.md