改善案/issue_3_計画始動後の作付け変更_調査.md#L428 (line 428)
田植え計画 | 施肥と同様に対応 という決定表現が、下の詳細仕様と少しズレています。詳細では #L463 (line 463) 以降で「現時点では全件移動」と明記されているので、表も「現時点では全件移動、将来実績連携後に再設計」くらいに合わせた方が誤読されません。 改善案/issue_3_計画始動後の作付け変更_調査.md#L444 (line 444) actual_bags = 0 は現行 services.py では null に丸められる は少し断定が強いです。現行の再集計ロジックでは未該当なら NULL になりやすい、という理解は良いのですが、将来だけでなくデータ補正や手動更新でも 0 が入り得ます。仕様書上は「未散布判定は NULL または 0 を未散布扱いとするかどうか」を明示した方が安全です。
This commit is contained in:
@@ -425,7 +425,7 @@ RESERVE 付け替えもこの方針と整合する。
|
||||
| 移動先計画の命名 | `{year}年度 {品種名} 施肥計画(品種変更移動)` |
|
||||
| 変更履歴 | **PlanVarietyChange モデルを新設** |
|
||||
| 圃場グループ | **対応不要**(現在値扱いのまま) |
|
||||
| 田植え計画 | **施肥と同様に対応**(実装は施肥の後) |
|
||||
| 田植え計画 | **現時点では全件移動**(実績概念なし)。将来の実績連携実装後に再設計(実装は施肥の後) |
|
||||
|
||||
### 9-2. 品種変更時の自動処理フロー
|
||||
|
||||
@@ -441,8 +441,11 @@ RESERVE 付け替えもこの方針と整合する。
|
||||
- actual_bags IS NULL → 未散布(移動対象)
|
||||
- actual_bags IS NOT NULL かつ actual_bags < bags → 一部散布済み(移動不可・旧計画に残す)
|
||||
- actual_bags >= bags → 散布完了(移動不可・旧計画に残す)
|
||||
※ actual_bags = 0 は現行 services.py では null に丸められるため実運用上は出ないが、
|
||||
将来のロジック変更に備えて「is NULL」単独ではなく上記3区分で判定する
|
||||
※ actual_bags = 0 の扱いは明示的に決定しておく必要がある。
|
||||
現行 services.py では SUM = 0 のとき NULL に丸めるが、
|
||||
データ補正や手動更新で 0 が直接セットされる可能性は排除できない。
|
||||
本仕様では actual_bags IS NULL を未散布と判定し、0 は一部散布済みと同様に扱う
|
||||
(移動不可・旧計画に残す)とする。
|
||||
|
||||
対象: FertilizationPlan.variety=A かつ year=変更年度 かつ
|
||||
FertilizationEntry.field=変更圃場 かつ actual_bags IS NULL(未散布)
|
||||
|
||||
Reference in New Issue
Block a user