運行日報(統合後の現行仕様)¶
ドライバーが入力し、事務が 1 日 1 枚で表示・印刷する法定記録です。ドライバー向けの
/driver/daily-report に出庫から帰庫までをまとめ、同じ vehicle_daily_logs の行へ段階的に保存します。
操作手順は operations-manual/11-driver-daily-report.md、
機械が守る不変条件は AGENTS.md の「運行日報」節にあります。ここでは設計意図を説明します。
点呼は 2026-07-31 に製品から撤去しました。 入力・表示・PDF 欄はなく、
driver_roll_callsは既存の法定記録を守るため休眠温存しています。
最終更新: 2026-08-05(mig174/176/179/180/187/197 と現行 PDF を反映)
車両種別による1ページ内のモード分岐(#512)¶
/driver/daily-report を単一入口とし、resolveDriverDailyMode が選択した車両の isSecondaryDedicated で表示モードを分けます。
二次搬出専用車(isSecondaryDedicated === true)は現行の 2 段運行日報、それ以外は復元した運行ログ
(DriverVehicleLogForm)です。運行ログはオドメーター・給油・メモだけを扱い、upsert は
departed_at / returned_at / *_at_source / 点検列を送信しません(mig176/180/187 の契約)。
旧 /driver/daily-log は /driver/daily-report への replace redirect として残します。
この図が答える問い¶
出庫から帰庫の2ステージ¶
この図は、点呼を含めず、出庫前には帰庫項目を表示しない2ステージの入力を示します。
出庫から帰庫の2ステージ。
17項目の出所¶
この図は、日報を新しい入力表に再コピーせず、17項目のうち11項目を既存データの原本として表示する設計判断を示します。
17項目の出所。
朝と帰社時で入力する項目が違うため、/driver/daily-report の 1 ページ内で、二次搬出専用車は
2 ステージ運行日報、それ以外の車両は運行ログへモード分岐します。
| ステージ | 入力 | 保存時の意味 |
|---|---|---|
| 出庫前 | 点検確認、出庫メーター | departed_at・odometer_out・departure_inspection_ok |
| 出庫後 | 軽油・アドブルー・ガソリン、入庫メーター、点検確認 | returned_at・odometer_in・給油 3 列・return_inspection_ok |
出庫前には帰庫側の入力欄を表示しません。帰庫登録が完了すると、その時点で提出済みになります。
走行距離は odometer_in - odometer_out の生成列を表示し、入力欄や画面内の再計算値は持ちません。
2. 既存データを再入力させない¶
紙の日報のうち、次の項目は既存表を原本として表示・印刷します。
- 運行年月日・ドライバー・車両 → 配車と
vehicle_daily_logs - 立ち寄り先 →
dispatch_stops - 品目・重量 →
weighing_items - 高速代 →
vehicle_cost_entriesのetc費目
総重量・高速代・走行距離を日報へ手入力させると計量実績や収支と乖離するため、入力元を増やしません。 給油は帰社時にだけ 3 種別を記録し、燃費はこの画面では表示しません。
3. 点検と連絡事項¶
点検は vehicle_daily_logs の departure_inspection_ok / return_inspection_ok の boolean 2 列だけです。
NULL は未確認、false は点検して異常ありを表します。過去行への backfill は行いません。
異常の内容は専用メモ列へ上書きせず、既存の driver_daily_notes に「異常・事故」として追記します。
点検未チェックでも出庫・帰庫の打刻は止めず、警告と連絡事項欄へのリンクを出します。これは異常があった
日に法定時刻そのものが記録されなくなることを防ぐためです。
連絡事項は本人と自テナントの事務だけが読み、append-only で訂正は新しい記録を追記します。
4. 提出状態¶
提出用の専用列は作りません。その日、そのドライバーの vehicle_daily_logs に returned_at が
1 件以上あれば提出済みです。複数車両の日も 1 台の帰庫で提出済みとします。
事務の日報画面には、その日に配車があったドライバー(配車がなくても vehicle_daily_logs の当日行があるドライバーを含む)の
提出状況を表示します。
- 提出済み:
returned_atがある - 運行中:
departed_atはあるがreturned_atがない - 未記録: 当日行がない、または出庫時刻がない
取得に失敗した場合は全員を未記録として表示せず、エラーを表示します。
時刻の記録元と削除¶
出庫・帰庫時刻の記録元は画面上で 3 状態に分かれます。ドライバーの打刻は「打刻」、事務などの訂正は「手入力」、 既存行で記録元が分からない場合は「不明」です。印は画面表示専用で、PDF には出ません。
vehicle_daily_logs は物理削除できません。誤登録の削除は admin 限定の soft_delete_vehicle_daily_log、
復元は restore_vehicle_daily_log を使う復元可能な soft-delete です。
5. 業務日・車両選択¶
業務日は resolveBusinessDay を使い、前日が出庫済み・未帰庫ならその日の続きとして扱います。
宵積みの 23:30 出庫と翌 01:00 帰庫を別日へ分断しません。
車両は filterMyFactoryVehicles で自工場車両(構内機器を除く)だけを表示し、専用車を既定にします。
他のドライバーが作成した当日行では出庫・帰庫・点検を無効化し、連絡事項だけを記録できます。
6. データ保護と印刷¶
出庫・帰庫時刻と点検列はドライバーの所有者ガードで守ります。オドメーター・給油・メモは既存の
代行入力契約を維持します。vehicle_daily_logs は拘束時間管理も読むため、日報専用表は作りません。
担当未設定の既存ログをドライバーが開いた場合は、claim_vehicle_daily_log が最初に成功した呼出元へ
先勝ちで担当を付けます。競合時は現在の担当者名を案内し、後から別ドライバーが上書きすることはできません。
claim の呼出元は role='driver' または can_drive=true の driver-capable profile に限ります。
mig197 により client 経路の新規ログは担当必須となり、担当未設定行の新規発生源を断ちます。事務の代行入力も
新規・既存訂正のどちらも担当ドライバー必須です。
事務画面の印刷は既存の pdf-lib + Noto Sans JP 基盤を使います。取得中・取得失敗・記録がない状態は 空の日報として印刷できません。過去の運行の車両ラベルは無効車も含めて取得し、車番・社内コード・車両名の識別子を保持します。取得できない車両や識別子が空の運行は印刷を拒否します(#716)。複数車両の日は車両ごとの出庫・帰庫・走行距離・給油をすべて並べます。
旧 /driver/daily-log はブックマーク互換の replace redirect を残し、入力画面は廃止しました。
事務の代理入力 /collector/fleet/daily-logs/new は全車両を扱う目的が違うため残します。