スタッフ別1日ルート・作業時間確認ツール

No.route_app_1_3 プロトタイプ / ローカル HTML 単体 / Google Maps API(移動時間・キー設定時のみ・任意) / ローカル保存(localStorage)

通常(即保存)
順調 未入力 移動未取得(次まで未取得・到着未確定) 遅延(予想超過) 後半圧迫(次に食い込み) 空き枠
🆕 新規案件
移動割増:
・予想終了時間 = 到着予定 + 予想作業時間(分)+ バッファ時間(分)
・基準終了時間 = 実作業終了時間が入力されていればそれを優先、なければ予想終了時間
・「次へのルート」は https://www.google.com/maps/dir/?api=1&origin=…&destination=… の通常リンク(API キー不要)
・「このスタッフのルートを開く」は当日の全現場を経由地として 1 本のルートにまとめます
・localStorage 保存: キー route_app:YYYY-MM-DD(日別スケジュール・通常モードは即保存/形式 {schemaVersion, savedAt, staff})/ キー route_app:log(操作ログ・全日共通・直近50件リングバッファ)
・通常モードは入力・並び替え・状態チェックを即 localStorage 保存(確定ボタン不要)。データが壊れている場合は初期状態にフォールバックして画面が落ちないようにします
・「🔬 検証モード」: ルートを組み替えて試す時に押す(即保存OFF・各スタッフ枠が赤点滅)。「✓ 検証を確定して保存」で結果を保存して通常へ。検証ボタンを再度押すと開始時に戻して破棄(トグル)
・「元に戻す/やり直し」は進捗(状態チェック)の操作用
・Google Maps API はキー設定時のみ有効(GOOGLE_MAPS_API_KEY が空の場合は全 API 機能オフ・手入力フォールバック)
・移動時間(「次まで(分)」)は手入力・実移動どちらも手動上書きとして区間 from→to(id+出発/宛先住所)に紐付け。並び替え・住所編集等で区間が変わると自動解除(API再取得はしない)。行の「↺解除」で空に戻せます
・「⏱一般道 / ⏱高速道路」ボタン: この現場→次の現場の実移動時間を Google API で取得して「次まで(分)」に入れます。一般道=高速・有料を避ける/高速道路=高速・有料を避けない(必ず高速ではない)。検証モード中は取得不可(disabled)・通常モードで取得してください
・⑤「最短スタッフ計算」: 新規案件住所を入力して各スタッフの最終現場からの移動時間を一括取得(バッチAPI)してランキング表示。⑥経路モード(下道/高速)は新規案件パネルのみ適用
・移動時間(「次まで(分)」)を入力すると次の現場の到着時刻が自動反映されます
・日別タブ: 週ナビで2〜3か月先まで閲覧・編集できます
・スタッフ startTime(スタート時刻)/ cutoffTime(打診ストップ)はメモ欄です(ロジック未連動)
・「翌日に繰り越す」: スタッフ名・スタート/打診ストップ時刻のみ翌日にコピー(現場は空)
・顧客の個人情報(実名・電話番号・正確な番地)の入力は避けてください。アクセス制限(Cloudflare Access)の設定が完了するまでは特に、実データの入力を控えてください。
📋 操作ログ(直近50件・確定操作のみ)