メインコンテンツまでスキップ

車両サービス時間 (Vehicle Service Time)

ノードの service_time は、その停車地での作業にかかる時間を表します。ただし、作業時間は停車地だけでなく車両によっても変わることがあります。たとえば、大型トラックはバンよりも駐車や荷台の開放に時間がかかり、テールリフトのない車両は荷降ろしに時間がかかります。車両サービス時間は、その車両がノードを担当するたびに、各ノード自身の service_time に車両ごとの時間を加算する機能です。

2つの要素 (Two components)​

車両に service_time を設定します。どちらの要素も任意で、組み合わせて使用できます。

フィールド加算されるタイミング用途
additive_per_node車両が担当するすべてのノード注文ごとに繰り返される作業(1件分の荷降ろしなど)
additive_per_location車両が訪問する地点ごとに1回停車ごとに1回だけ行う作業(駐車、荷室の開放など)

additive_per_location では、同じ座標で連続するノードは1つの地点として扱われ、車両が次の地点へ移動する前の最後のノードに時間が加算されます。

各要素には次のいずれかを指定します。

  • 秒数を表す数値:すべてのノードに適用されます。
  • pickup と dropoff を個別に指定するオブジェクト:ピックアップノードとドロップオフノードのみが対象です。省略したキーや null のキーは何も加算しません。

値は 0 以上である必要があります。その他のキーは受け付けられません。

"service_time": {
"additive_per_node": 60,
"additive_per_location": { "pickup": 300, "dropoff": 120 }
}

この設定の車両が同じ住所に3件の注文を配達する場合、各注文自身の service_time に加えて、注文ごとに 60 秒、さらにその住所に対して 1 回だけ 120 秒が加算されます。

Stateless API​

リクエスト内の各車両に service_time を設定します。additive_per_node の数値形式は、ウェイポイントを含むデポ以外のすべてのノードに適用されます。デポノードには additive_per_location も加算されません。

複数の注文を1つのノードにまとめる場合は、そのノードの additive_per_node_vehicle_service_time_multiplier にまとめた注文数を設定してください。これにより、additive_per_node がまとめたノード単位ではなく注文単位で加算されます。スキーマの詳細は Stateless API リファレンス を参照してください。

Integration API​

service_time は 車両 と 車両タイプ の両方のフィールドで、デフォルトは null です。

  • 継承:vehicle_type を指定し、自身の service_time を設定せずに作成した車両は、作成時に車両タイプの値を引き継ぎます。作成後に車両タイプを変更しても、既存の車両は更新されません。
  • 一括タスク:車両の一括アップロードは service_time を受け付けますが、車両の一括更新は受け付けません。
  • 適用範囲:車両とともに最適化エンジンへ送信されるほか、手動編集でルートを再スケジュールする際にも適用されます。グループ化された注文を1つのノードとして送信する場合、SWAT が乗数をグループのサイズに自動で設定します。
  • 結果:各ノードには、車両サービス時間を含めて実際にスケジュールされたサービス時間が、読み取り専用の scheduled_service_time に保存されます。ノードの割り当てが解除されると null に戻ります。

POST /api/v2/microservices/calculate_scheduled_ts は、車両の設定を vehicle_service_time として受け取り、各ノードについて算出された estimated_service_time を返します。このエンドポイントでは、additive_per_node の数値形式は送信したシーケンス内のすべてのノードに適用されます。