VRt.Universal [UV] (7.17.2697)

Veeroute Support Team: servicedesk@veeroute.com License: Proprietary Terms of Service

描述

用于通用航班规划的软件接口。

功能

  • 支持从任意地点提取货物
  • 支持在任意地点卸货
  • 多种类型的配对申请:PICKUP(装载)、DROP(卸载)
  • 多种类型的独立申请:DROP_FROM_BOX(卸载已在车厢内的货物)、PICKUP_TO_BOX(将货物装入车厢且不后续卸载)、WORK(在无货物移动的地点工作)
  • 复合订单可包含任意数量和类型的申请
  • 运输工具与执行者分为独立实体,规划时自动优化分配执行者到运输工具
  • 运输工具拥有多个隔间,每个隔间可容纳货物并具备独立特性
  • 根据货物尺寸(长、宽、高及容量参数)验证货物与运输工具的兼容性
  • 验证货物与运输隔间的兼容性(隔间特性如冷藏、保温袋、固定装置等)
  • 替代申请——可选择基于地理位置和时间窗口的替代申请执行

支持的限制条件

执行者的限制:

  • 起始/结束位置
  • 考虑执行者前往运输工具起始点的移动
  • 执行者可用时间表——可执行移动或地点工作的时段列表
  • 执行者在特定时间段内的最大工作时长

运输工具的限制:

  • 起始/结束位置
  • 运输工具可用时间表——可执行移动的时段列表
  • 路线最大长度
  • 多个隔间,每个隔间有独立参数
  • 总容量上限(重量、体积、订单数、申请数)

订单的限制:

  • 严格时间窗口
  • 可指定地点工作窗口与申请执行窗口的不同允许范围
  • 路线内申请执行顺序的验证
  • 期望执行时间窗口列表(每个窗口对应不同成本)

兼容性验证

若一实体的属性列表完全覆盖另一实体的要求列表,则视为兼容(performer_blacklist 相反——列表不得重叠)。

支持的兼容性:

名称 要求 属性
订单 - 执行者 order.performer_restrictions performer.performer_features
订单 - 非执行者 order.performer_blacklist performer.performer_features
货物 - 隔间 order.cargo.box_restrictions transport.box.box_features
地点 - 运输工具 location.transport_restrictions transport.transport_features
运输工具 - 执行者 transport.performer_restrictions performer.performer_features
执行者 - 运输工具 performer.transport_restrictions transport.transport_features
订单 - 订单 order.order_restrictions order.order_features
货物 - 货物 cargo.cargo_restrictions cargo.cargo_features

业务规则示例:

名称 业务规则示例
订单 - 执行者 执行订单的驾驶员需持有特殊许可证
订单 - 非执行者 黑名单中的驾驶员
货物 - 隔间 运输冷冻产品需配备特殊温控隔间
地点 - 运输工具 运输工具高度限制
运输工具 - 执行者 驾驶货运车辆需持有 C 类驾照
执行者 - 运输工具 驾驶员仅允许操作特定运输工具
订单 - 订单 禁止在同一隔间同时运输鱼类和水果
货物 - 货物 两件货物不可同时置于同一隔间,但可顺序放置

分配机制

分配机制(hardlinks)用于指定订单、执行者和运输工具必须处于同一航班的要求。

分配仅保证实体处于同一航班,不保证实际规划结果。例如,若执行者无法按时完成订单,则不会被规划,但仍会被分配至航班(进入 waitlist)。

分配不覆盖已定义的兼容性(及兼容性违规的惩罚)。例如,若订单无法由执行者完成,则不会被规划,但仍会被分配至航班(进入 waitlist)。

货物在车厢内的放置

支持以下旋转方式(以 90 度为步长):

  • ALL——可绕任意轴多次旋转
  • YAW——可绕垂直轴(自转轴)旋转一次
  • PITCH——可绕横向轴(垂直方向)旋转一次
  • ROLL——可绕纵向轴(侧放)旋转一次

rotation

航班模型

航班通过执行者状态列表描述,执行者可同时处于多个状态(例如在地点工作窗口内并在同一地点执行订单)。

地理位置标志(可同时多个生效):

  • AROUND_LOCATION——执行者位于地点附近(正在停车或驶离)
  • INSIDE_LOCATION——执行者位于地点内

时间窗口标志(可同时多个生效):

  • INSIDE_WORKING_WINDOW——执行者处于工作时段内
  • INSIDE_LOCATION_WINDOW——执行者处于地点开放时段内
  • INSIDE_EVENT_HARD_WINDOW——执行者处于硬性时间窗口内
  • INSIDE_EVENT_SOFT_WINDOW——执行者处于柔性时间窗口内

动作标志(仅一个生效):

  • ON_DEMAND——执行者开始处理申请
  • WAITING——执行者开始等待
  • RELOCATING——执行者开始移动至下一站点
  • BREAK——执行者开始休息
  • REST——执行者开始长时间休息
  • ARRIVAL——执行者开始停车
  • DEPARTURE——执行者完成驶离

逻辑状态标志:

  • DURING_ROUNDTRIP——执行者正在执行循环航班

多状态路线示例

时间 激活标志组合 地点 / 订单 / 申请 / 事件 备注
10:00 INSIDE_LOCATION
AROUND_LOCATION
2 / - / - / - 起始地点
10:05 AROUND_LOCATION
DEPARTURE
2 / - / - / - 驶离停车点
10:10 RELOCATING
DEPARTURE
2 / - / - / - 前往第一个订单
10:20 AROUND_LOCATION
ARRIVAL
2 / - / - / - 到达第一个订单地点
10:40 AROUND_LOCATION
INSIDE_LOCATION
WAITING
2 / - / - / - 完成停车
11:00 AROUND_LOCATION
INSIDE_LOCATION
INSIDE_LOCATION_WINDOW
WAITING
INSIDE_EVENT_HARD_WINDOW
2 / - / - / - 等待地点开放与订单可用时间重叠
11:25 AROUND_LOCATION
INSIDE_LOCATION
INSIDE_LOCATION_WINDOW
ON_DEMAND
INSIDE_WORKING_WINDOW
INSIDE_EVENT_HARD_WINDOW
2 / 1 / 2 / 3 等待执行者切换
11:30 AROUND_LOCATION
INSIDE_LOCATION
INSIDE_LOCATION_WINDOW
ON_DEMAND
INSIDE_WORKING_WINDOW
INSIDE_EVENT_HARD_WINDOW
INSIDE_EVENT_SOFT_WINDOW
2 / 1 / 2 / 3 工作中触发柔性窗口
11:40 AROUND_LOCATION
INSIDE_LOCATION
INSIDE_LOCATION_WINDOW
INSIDE_WORKING_WINDOW
2 / - / - / - 完成工作
11:45 AROUND_LOCATION
DEPARTURE
INSIDE_WORKING_WINDOW
2 / - / - /- 驶离停车点
11:45 RELOCATING
INSIDE_WORKING_WINDOW
- / - / - / - 前往下一订单

循环航班

航班由一个或多个循环航班组成。

循环航班标志 DURING_ROUNDTRIP 在开始处理申请时激活,并在以下三种情况之一解除:

  • 执行者到达某地点以停止使用运输工具
  • 执行者到达分割循环航班的地点
  • 执行者在非分割点地点完成其他操作后停止使用运输工具

两个循环航班之间不可插入 RELOCATING 状态,但允许插入 WAITINGBREAKREST

分割航班循环的地点需满足以下条件之一:

  • 地点设置了通行能力限制 timetable.limits(可能有多个分割点)
  • 地点同时是所有执行者、运输工具及 PICKUP 类型申请的起止点(仅一个分割点)

示例分割点(根据任务设定):

  • 配送中心(长途运输至商店或仓库)
  • 商店或仓库(最后一公里配送至客户)
  • 垃圾填埋场(垃圾清运任务)

规划配置

每个规划任务可指定配置,以定义目标函数、路线质量与计算速度。

规划配置名称通过字段 trips_settings.configuration 传递。

主要配置:

名称 目标
optimize_distance 尽可能安排更多订单,然后优化总里程(根据里程选择运输工具数量),默认配置
optimize_transports 尽可能安排更多订单,同时最小化运输工具使用量,条件相同时优化执行者工作时间
optimize_locality_grouping 尽可能安排更多订单,同时优化路线的视觉分组(不减少路线数量)
optimize_cars_then_distance 尽可能安排更多订单,先优化运输工具数量,再优化里程
optimize_time 尽可能安排更多订单,然后优化执行者总工作时间
optimize_cars_then_time 尽可能安排更多订单,先优化运输工具数量,再优化执行者总工作时间
optimize_money 优化“利润-成本”(基于订单奖励与执行者、运输工具成本,确保非负)

附加配置:

名称 目标
visual_grouping 尽可能安排更多订单,同时最小化运输工具并使路线视觉分组
optimize_visual_grouping 尽可能安排更多订单,然后根据交通可达区域均匀分配订单(视觉分组逻辑不同)
optimize_cars_then_locality_grouping 尽可能安排更多订单,先优化运输工具数量,再优化路线视觉分组
optimize_cars_then_single_location_grouping_sequenced 尽可能安排更多订单,先优化运输工具数量,再优化可靠性

可根据客户业务流程定制目标函数(申请配置)。

开发推荐使用 optimize_cars_then_distance,因该配置无需详细设置费率与订单成本。

数据验证

输入数据验证包含以下步骤:

1. 模式检查

若请求不符合模式,则规划整体终止,返回 400 错误及 schema_errors

建议在发送前通过模式(或 YAML 文件)验证请求。

2. 逻辑错误检查(阻止规划继续)

符合模式的数据将检查是否存在使规划无法进行的逻辑错误。

示例错误:引用空实体、所有订单与执行者不兼容等。返回 400 错误及 logical_errors

3. 实体单独检查

未通过检查的实体将从规划任务中移除。

根据 treat_warnings_as_errors 设置,结果以 400 错误返回至 warnings 或包含在规划结果中。

4. 规划过程中的检查

部分检查仅在规划过程中执行(例如根据费率与交通预测无法到达某地点)。结果返回至 warnings 或规划结果中。

实体关系图

erd

Plan

规划——根据订单、表演者和交通数据,制定考虑到所有指定限制的行程。

调度请求可以以同步(用于测试)和异步(用于一般用途)模式执行。

要获取原始任务上的 run-plan-refine 操作的结果,请使用 run-plan-refine

Planning (ASYNC)

Starting trip planning - after loading and checking the data, the process_code is returned.

Using the process_code, you can find out calculation state and get result, and also cancel calculation and delete temporary data (otherwise they will be automatically deleted according to the ttl specified in the calculation settings).

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Launching the asynchronous planning.

required
Array of objects (location) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport) [ 1 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

Array of objects (hardlink_list) [ 0 .. 15001 ] items unique

Assignments list.

object (plan_settings)

Planning settings.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

process_code
required
string <uuid> (process_code)
Example: "11111111-2222-3333-4444-555555555555"

Process code - calculation identifier.

Request samples

Content type
application/json
Example
{
}

Response samples

Content type
application/json
{
}

Planning (SYNC)

Sync method for trip planning.

Use only for testing and manual plannings.

For production use async method.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

New planning request.

required
Array of objects (location) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport) [ 1 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

Array of objects (hardlink_list) [ 0 .. 15001 ] items unique

Assignments list.

object (plan_settings)

Planning settings.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

required
object or null (plan_statistics)

General statistics on the calculation result.

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (unplanned_items)

Information about unplanned essences.

object (removed_items)

Information about removed essences.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Request samples

Content type
application/json
Example
{
}

Response samples

Content type
application/json
Example
{
}

Cancel calculation

Cancel calculation by the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

唯一的进程标识符。

Responses

Response samples

Content type
application/json
{
}

Calculation state

Read calculation state by the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

唯一的进程标识符。

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response samples

Content type
application/json
{
}

Getting the result

Getting the planning result based on the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

唯一的进程标识符。

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

required
object or null (plan_statistics)

General statistics on the calculation result.

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (unplanned_items)

Information about unplanned essences.

object (removed_items)

Information about removed essences.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

required
object or null (plan_statistics)

General statistics on the calculation result.

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (unplanned_items)

Information about unplanned essences.

object (removed_items)

Information about removed essences.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response samples

Content type
application/json
Example
{
}

Result removal

Removal of the planning result by the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

唯一的进程标识符。

Responses

Response samples

Content type
application/json
{
}

Data validation

Check data before using.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Data for validation.

required
Array of objects (location) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport) [ 1 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

Array of objects (hardlink_list) [ 0 .. 15001 ] items unique

Assignments list.

object (plan_settings)

Planning settings.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

Request samples

Content type
application/json
Example
{
}

Response samples

Content type
application/json
{
}

Data refine

Cleaning up data for planning before calculation - entities that cannot participate in planning are removed from the original dataset:

  • Locations that no one references (depending on the remove_locations flag)
  • Orders that no performer can fulfill
  • Performers and transport that cannot fulfill any order
Authorizations:
ApiKeyAuth
query Parameters
remove_locations
boolean
Default: false
Example: remove_locations=true

Flag responsible for deleting a location when cleaning data. If true is specified, locations that are not referenced by any entity in the dataset are deleted.

Request Body schema: application/json
required

Data for refine.

required
Array of objects (location) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport) [ 1 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

Array of objects (hardlink_list) [ 0 .. 15001 ] items unique

Assignments list.

object (plan_settings)

Planning settings.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
object (plan_task)

Task for planning

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (removed_items)

Information about removed essences.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Calculation of statistics on trips

Calculation of statistics for existing trips

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

New request.

required
Array of objects (location) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport) [ 1 .. 15001 ] items unique

Available transports list.

Array of objects (hardlink_list) [ 0 .. 15001 ] items unique

Assignments list.

required
Array of objects (trip) [ 1 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

object (plan_settings)

Planning settings.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

required
object or null (plan_statistics)

General statistics on the calculation result.

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (unplanned_items)

Information about unplanned essences.

object (removed_items)

Information about removed essences.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
Example
{
}

Actualize

更新航班 - 根据事实更新完成订单的计划时间,而不更改绕行订单。

更新分为三个阶段进行——验证、事实应用、未完成航班状态的时间规划。

要获得清理结果并将事实应用于原始任务,请使用数据清理函数。

由此产生的航班不会改变表演者、运输或订单执行顺序,并且仅包含那些尚待完成的工作。

无法完成的订单仍分配给表演者并进入“等候名单”。

现有航班的核算:

  • 航班转变为“硬链接”目的地 - 即分配的表演者和交通班次不能用于其他航班。
  • 替换事件从请求中删除,并使用“precedence_in_trip”固定执行顺序,如果请求已经指定了执行顺序,则会被覆盖。

当前时间核算:

  • 如果数据中没有指定当前时间 actualize_settings.current_time,则使用服务器收到请求的时间。
  • 仅考虑在“actualize_settings.current_time”之前发生的事件。
  • 如果当前时间大于所有事件和移位的时间窗口的左边界,则将左边界移至当前时间。
  • 所有事件和班次的时间窗口右边界添加了允许延迟时间“actualize_settings.max_delay_duration”。
  • 仅当订单持续时间不允许订单在软时间窗口内完成时,才会调整软时间窗口。

考虑到改变位置“NEW_LOCATION”的事实:

  • 考虑到这一事实,“位置”列表必须包含一个描述表演者当前坐标的新位置。
  • 如果航班已经开始(实际时间晚于航班预定的开始时间)——运输工具被视为与表演者位于同一位置——即执行者和运输工具的“start_location_key”发生变化。
  • 如果航班尚未开始(实际时间早于航班预定的开始时间)——只有表演者的初始位置会发生变化,交通工具的位置仍保持原始数据。
  • 如果有多个事实,则仅考虑“时间”字段中最新的事实。

考虑订单“ORDER_DONE”完成的事实:

  • 订单、其请求以及与其相关的位置将从更新数据中删除。
  • 货物视为已从运输工具上卸下。

考虑到有关开始应用程序DEMAND_START工作的事实:

  • 每个航班只允许一个未关闭的“DEMAND_START”事实(由“DEMAND_DONE”事实关闭)——由于执行者一次只能满足一个请求,因此会考虑“时间”字段的最新事实。
  • 处理请求所花费的时间会减少已经花费的时间(计算为“DEMAND_START”事实和“actualize_settings.current_time”之间的间隔长度)。
  • 如果某个申请上存在与指定航班的计划顺序相矛盾的工作事实,则将首先完成该申请,然后继续按照计划顺序进行航班。
  • 有关订单的事实比有关该订单的申请的事实具有更高的优先级(如果有关申请的事实与有关订单的事实相矛盾,则不会予以考虑)。

考虑有关“DEMAND_DONE”订单部分履行的事实:

  • 如果订单的所有请求都得到满足,则认为订单完成(操作类似于处理事实“ORDER_DONE”)。
  • 如果“WORK”类型的请求已完成,则该请求将从订单中删除。
  • 如果执行了DROP类型的请求,则该请求及其货物,以及相应的PICKUP类型的请求都将从订单中删除。
  • 如果执行了类型为“DROP_FROM_BOX”的请求,则该请求及其货物将从订单中移除。
  • 如果订单中有PICKUP类型的请求,那么对应的DROP类型的请求将会被转换为DROP_FROM_BOX类型的请求。
  • 如果执行了 PICKUP_TO_BOX 类型的请求,则会删除请求和货物,并且相应隔间的运输容量会减少(在这种情况下,不会进行兼容性更改)。

Actualization (ASYNC)

Start updating existing trips - after loading and checking the data, the calculation identifier process_code is returned.

Using process_code you can find out calculation state and get result, and also cancel calculation and delete temporary data (otherwise they will be automatically deleted according to the ttl specified in the calculation settings).

An actualize task can be transformed into a planning task using data processing.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Starting the asynchronous actualize process.

required
Array of objects (location) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport) [ 1 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

required
Array of objects (trip) [ 1 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

Array of objects (fact_list) [ 0 .. 15001 ] items unique

Trip list. A fact is an event that has occurred that affects further trip operations.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

object (plan_settings)

Planning settings.

object (actualize_settings)

Actualize settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

process_code
required
string <uuid> (process_code)
Example: "11111111-2222-3333-4444-555555555555"

Process code - calculation identifier.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Actualization (SYNC)

Sync method for trips actualization.

Use only for testing and manual plannings.

For production use async method.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

New request for actualization.

required
Array of objects (location) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport) [ 1 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

required
Array of objects (trip) [ 1 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

Array of objects (fact_list) [ 0 .. 15001 ] items unique

Trip list. A fact is an event that has occurred that affects further trip operations.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

object (plan_settings)

Planning settings.

object (actualize_settings)

Actualize settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

required
object or null (plan_statistics)

General statistics on the calculation result.

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (unplanned_items)

Information about unplanned essences.

object (removed_items)

Information about removed essences.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Cancel calculation

Cancel calculation by the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

唯一的进程标识符。

Responses

Response samples

Content type
application/json
{
}

Calculation state

Read calculation state by the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

唯一的进程标识符。

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response samples

Content type
application/json
{
}

Getting the result

Getting the planning result based on the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

唯一的进程标识符。

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

required
object or null (plan_statistics)

General statistics on the calculation result.

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (unplanned_items)

Information about unplanned essences.

object (removed_items)

Information about removed essences.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

required
object or null (plan_statistics)

General statistics on the calculation result.

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (unplanned_items)

Information about unplanned essences.

object (removed_items)

Information about removed essences.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response samples

Content type
application/json
{
}

Result removal

Removal of the planning result by the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

唯一的进程标识符。

Responses

Response samples

Content type
application/json
{
}

Data validation

Check data before using.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Data for validation.

required
Array of objects (location) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport) [ 1 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

required
Array of objects (trip) [ 1 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

Array of objects (fact_list) [ 0 .. 15001 ] items unique

Trip list. A fact is an event that has occurred that affects further trip operations.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

object (plan_settings)

Planning settings.

object (actualize_settings)

Actualize settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Data refine

Cleaning data for actualization before calculation:

  • Entities that are not referenced by input trips are removed from the dataset - performers, transport, hardlinks, orders, facts.
  • If one entity is referenced by several facts, only the latest one by the time field is taken into account; if the time is the same, a random one is taken into account.
  • All facts that occurred later than actualize_settings.current_time are removed.

As a result, a task for planning is returned.

Authorizations:
ApiKeyAuth
query Parameters
remove_locations
boolean
Default: false
Example: remove_locations=true

Flag responsible for deleting a location when cleaning data. If true is specified, locations that are not referenced by any entity in the dataset are deleted.

Request Body schema: application/json
required

Data for refine.

required
Array of objects (location) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport) [ 1 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

required
Array of objects (trip) [ 1 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

Array of objects (fact_list) [ 0 .. 15001 ] items unique

Trip list. A fact is an event that has occurred that affects further trip operations.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

object (plan_settings)

Planning settings.

object (actualize_settings)

Actualize settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
object (plan_task)

Task for planning

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (removed_items)

Information about removed essences.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Replan

Replanning - creating new trips based on existing trips, taking into account the facts.

Replanning takes place in several stages - checking, applying facts and creating constraints for planning based on existing trips, planning.

To get the result of cleaning and applying facts to the original task, use data processing.

Depending on the replanning settings, the task can be reduced to planning (when everything is allowed reorder: true, plan_new_orders: true, create_new_trips: true) or to updating (when everything is prohibited reorder: false, plan_new_orders: false, create_new_trips: false).

Orders that cannot be completed remain assigned to the performer and end up in the waitlist.

Accounting for existing trips, current time and the order of applying facts - the logic from actualization is used, taking into account the selected strategy:

reorder
boolean
Default: false
Example: "true"

Activate trip actions reorder.

plan_new_orders
boolean
Default: false
Example: "true"

Activate new orders planning.

create_new_trips
boolean
Default: false
Example: "true"

Activate new trips creation.

{
}

Replanning (ASYNC)

Starting trip replanning - changing existing and creating new trips based on the facts and data about orders, performers and transport.

After loading and checking the data, the process_code is returned.

Using the process_code, you can find out calculation state and get result, and also cancel calculation and delete temporary data (otherwise they will be automatically deleted according to the ttl specified in the calculation settings).

An replan task can be transformed into a plan task using data processing.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Launching the asynchronous replanning.

required
Array of objects (location) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport) [ 1 .. 15001 ] items unique

Available transports list.

Array of objects (hardlink_list) [ 0 .. 15001 ] items unique

Assignments list.

required
Array of objects (trip) [ 1 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

Array of objects (fact_list) [ 0 .. 15001 ] items unique

Trip list. A fact is an event that has occurred that affects further trip operations.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

object (plan_settings)

Planning settings.

object (actualize_settings)

Actualize settings.

object (replan_settings)

Replanning settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

process_code
required
string <uuid> (process_code)
Example: "11111111-2222-3333-4444-555555555555"

Process code - calculation identifier.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Replanning (SYNC)

Sync method for trips replanning.

Use only for testing and manual plannings.

For production use async method.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

New replanning request.

required
Array of objects (location) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport) [ 1 .. 15001 ] items unique

Available transports list.

Array of objects (hardlink_list) [ 0 .. 15001 ] items unique

Assignments list.

required
Array of objects (trip) [ 1 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

Array of objects (fact_list) [ 0 .. 15001 ] items unique

Trip list. A fact is an event that has occurred that affects further trip operations.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

object (plan_settings)

Planning settings.

object (actualize_settings)

Actualize settings.

object (replan_settings)

Replanning settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

required
object or null (plan_statistics)

General statistics on the calculation result.

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (unplanned_items)

Information about unplanned essences.

object (removed_items)

Information about removed essences.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Cancel calculation

Cancel calculation by the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

唯一的进程标识符。

Responses

Response samples

Content type
application/json
{
}

Calculation state

Read calculation state by the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

唯一的进程标识符。

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response samples

Content type
application/json
{
}

Getting the result

Getting the replanning result based on the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

唯一的进程标识符。

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

required
object or null (plan_statistics)

General statistics on the calculation result.

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (unplanned_items)

Information about unplanned essences.

object (removed_items)

Information about removed essences.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

required
object or null (plan_statistics)

General statistics on the calculation result.

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (unplanned_items)

Information about unplanned essences.

object (removed_items)

Information about removed essences.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Calculation progress as a percentage. The progress displays the current number of completed steps.

required
object (calculation_info)

Calculation information.

Response samples

Content type
application/json
{
}

Result removal

Removal of the planning result by the calculation identifier.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

唯一的进程标识符。

Responses

Response samples

Content type
application/json
{
}

Data validation

Check data before using.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Data for validation.

required
Array of objects (location) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport) [ 1 .. 15001 ] items unique

Available transports list.

Array of objects (hardlink_list) [ 0 .. 15001 ] items unique

Assignments list.

required
Array of objects (trip) [ 1 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

Array of objects (fact_list) [ 0 .. 15001 ] items unique

Trip list. A fact is an event that has occurred that affects further trip operations.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

object (plan_settings)

Planning settings.

object (actualize_settings)

Actualize settings.

object (replan_settings)

Replanning settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Data refine

Cleaning up data for re-planning before calculation:

  • If one entity is referenced by several facts, only the latest one by the time field is taken into account; if the time is the same, a random one is taken into account.
  • All facts that occurred later than actualize_settings.current_time are deleted.
  • If plan_new_orders: false is specified - all orders that are not in the specified trips are removed from the original task.
  • If create_new_trips: false is specified - all performers and transport that are not in the specified trips are removed from the original task, and unplanned shifts of performers and transport that are in the specified trips are also removed.
  • Afterwards, cleaning up data for planning is performed.

As a result, a task for planning is returned.

Authorizations:
ApiKeyAuth
query Parameters
remove_locations
boolean
Default: false
Example: remove_locations=true

Flag responsible for deleting a location when cleaning data. If true is specified, locations that are not referenced by any entity in the dataset are deleted.

Request Body schema: application/json
required

Data for refine.

required
Array of objects (location) [ 1 .. 15001 ] items unique

List of locations used for orders and shifts.

required
Array of objects (order) [ 1 .. 15001 ] items unique

List of orders that need to be completed.

required
Array of objects (performer) [ 1 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

required
Array of objects (transport) [ 1 .. 15001 ] items unique

Available transports list.

Array of objects (hardlink_list) [ 0 .. 15001 ] items unique

Assignments list.

required
Array of objects (trip) [ 1 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

Array of objects (fact_list) [ 0 .. 15001 ] items unique

Trip list. A fact is an event that has occurred that affects further trip operations.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

object (plan_settings)

Planning settings.

object (actualize_settings)

Actualize settings.

object (replan_settings)

Replanning settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/json
required
object (tracedata)

Data for request tracing.

required
object (plan_task)

Task for planning

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Warning list.

object (removed_items)

Information about removed essences.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Convert

数据转换。

JSON >> XLSX

Used for conversion of data to the VRt.Universal XLSX format.

Authorizations:
ApiKeyAuth
query Parameters
timezone
integer <int32> (timezone) [ -12 .. 12 ]
Default: 0
Example: timezone=3

Target time zone.

Request Body schema: application/json
required

Conversion request to the XLSX.

Array of objects (location_list) [ 0 .. 15001 ] items unique

List of locations used for orders and shifts.

Array of objects (order_list) [ 0 .. 15001 ] items unique

List of orders that need to be completed.

Array of objects (performer_list) [ 0 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

Array of objects (transport_list) [ 0 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

Array of objects (hardlink_list) [ 0 .. 15001 ] items unique

Assignments list.

Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

Array of objects (fact_list) [ 0 .. 15001 ] items unique

Trip list. A fact is an event that has occurred that affects further trip operations.

object or null (plan_statistics)

General statistics on the calculation result.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

object (plan_settings)

Planning settings.

object (replan_settings)

Replanning settings.

object (actualize_settings)

Actualize settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: application/octet-stream
string <byte> (file_xlsx)

File with data in XLSX format.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

XLSX >> JSON

Used for data conversion from the VRt.Universal XLSX format to the VRt.Universal JSON format.

Authorizations:
ApiKeyAuth
Request Body schema: application/octet-stream
required

Conversion request to the JSON format.

string <byte> (file_xlsx)

File with data in XLSX format.

Responses

Response Schema: application/json
Array of objects (location_list) [ 0 .. 15001 ] items unique

List of locations used for orders and shifts.

Array of objects (order_list) [ 0 .. 15001 ] items unique

List of orders that need to be completed.

Array of objects (performer_list) [ 0 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

Array of objects (transport_list) [ 0 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

Array of objects (hardlink_list) [ 0 .. 15001 ] items unique

Assignments list.

Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

Array of objects (fact_list) [ 0 .. 15001 ] items unique

Trip list. A fact is an event that has occurred that affects further trip operations.

object or null (plan_statistics)

General statistics on the calculation result.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

object (plan_settings)

Planning settings.

object (replan_settings)

Replanning settings.

object (actualize_settings)

Actualize settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Response samples

Content type
application/json
{
}

JSON >> THRIFT

Used for conversion of input data to the THRIFT format.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Conversion request to the THRIFT.

Array of objects (location_list) [ 0 .. 15001 ] items unique

List of locations used for orders and shifts.

Array of objects (order_list) [ 0 .. 15001 ] items unique

List of orders that need to be completed.

Array of objects (performer_list) [ 0 .. 15001 ] items unique

Available performers list. The performer fulfills orders using transport.

Array of objects (transport_list) [ 0 .. 15001 ] items unique

Available transports list. Transport is used by the trip performer to fulfill orders.

Array of objects (hardlink_list) [ 0 .. 15001 ] items unique

Assignments list.

Array of objects (trip_list) [ 0 .. 15001 ] items unique

Trip list. A trip is a set of works planned to be performed by a specific performer on a specific transport, expressed through a change in the states of the performer.

Array of objects (fact_list) [ 0 .. 15001 ] items unique

Trip list. A fact is an event that has occurred that affects further trip operations.

object or null (plan_statistics)

General statistics on the calculation result.

Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique

List of matrices of times and distances for each type of transport that are indicated in the data. The matrix should describe all locations for each type of transport from the data. When specifying an external routing matrix external_routing, the plan_settings.geo_settings parameters are not taken into account.

object (plan_settings)

Planning settings.

object (replan_settings)

Replanning settings.

object (actualize_settings)

Actualize settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

The name of the dataset. A technical field that does not affect calculation.

Responses

Response Schema: text/plain
string (file_text)

File with data in text format.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

System

系统功能。 所有服务共有的辅助功能。

检查服务可用性

检查服务可用性。

Responses

Response Schema: application/json
health
required
number <double> [ 0 .. 1 ]
Example: "0.999"

The current health indicator of the service.

  • 0.0 means the service is not ready to perform tasks.
  • 1.0 means the service is fully ready to perform tasks.

Response samples

Content type
application/json
{
}

获取服务版本

获取服务版本。

Responses

Response Schema: application/json
major
required
integer <int32> [ 1 .. 100 ]
Example: "7"

产品版本。 在单个版本中,保证了服务之间通用数据结构的兼容性。 版本更改表示与以前版本的产品(和所有服务)不兼容的更改。

minor
required
integer <int32> [ 0 .. 111 ]
Example: "15"

服务的小版本。 版本更改表示新功能。 该更新向后兼容服务的主要版本。

build
required
string [ 1 .. 64 ] characters
Example: "3754RC"

构建版本。 包含向后兼容的错误修复和文档更新。

Response samples

Content type
application/json
{
}

检查服务可用性

检查服务可用性。

path Parameters
filename
required
string [ 6 .. 128 ] characters
Example: file_en.html

File name.

Responses

Response Schema:
string (file_html)

File with data in HTML format.

Response samples

Content type
application/json
{
}

XLSX Format

Description of VRt.Universal XLSX format for import / data export.

This format is a complete display of data JSON models and is used for:

  • initial data
  • process settings
  • calculation results
  • statistics on the calculation result

Below is a description of each sheet separately.

Data settings

The name of the sheet info.

Title Description
api_version API version at the time of XLSX generation
timezone Time zone, used in all times in the data
docs_ru Link to documentation (RU)
docs_en Link to documentation (EN)
docs_zh Link to documentation (ZH)

Locations

The name of the sheet locations.

List of locations that are used in orders and shifts.

The described object:

key
required
string [ 1 .. 1024 ] characters
Example: "location_01"

Location key, unique identifier.

required
object (geopoint)

Geographical point.

arrival_duration
string <duration> (time_duration) [ 3 .. 16 ] characters ^P(?!$)((\d+Y)|(\d+\.\d+Y$))?((\d+M)|(\d+\.\d...
Example: "PT1H45M"

Time for driving up to the location (or waiting time at parking lot) according to ISO 8601 duration.

departure_duration
string <duration> (time_duration) [ 3 .. 16 ] characters ^P(?!$)((\d+Y)|(\d+\.\d+Y$))?((\d+M)|(\d+\.\d...
Example: "PT1H45M"

Time to leave the location according to ISO 8601 duration.

Array of objects (location_timetable) [ 0 .. 30 ] items

Location timetable - time windows of availability and capacity restrictions. If the list is empty or not specified, the location works without restrictions.

object or null (location_compatibilities)

Location compatibilities.

name
string (name) [ 0 .. 128 ] characters
Example: "X1-ABC"

Name, information field.

Array of objects (attributes) [ 0 .. 250 ] items unique

Attributes. Used to add service information.

{
}

Performers

The name of the sheet is performers.

List of available performers.

The described object:

key
required
string [ 1 .. 1024 ] characters
Example: "performer0001"

Performer's key, unique identifier.

required
Array of objects (performer_shift) [ 1 .. 15001 ] items unique

List of working shifts of performer.

own_transport_type
string (transport_type)
Enum: "CAR" "TRUCK_1500" "TRUCK_3000" "TRUCK_5000" "TRUCK_10000" … 11 more
Example: "CAR"

The type of personal transport that the performer will use to get to his assigned work transport.

object or null (performer_compatibilities)

Performer compatibilities.

object or null (performer_limits)

The performer limitations.

name
string (name) [ 0 .. 128 ] characters
Example: "X1-ABC"

Name, information field.

Array of objects (attributes) [ 0 .. 250 ] items unique

Attributes. Used to add service information.

{
}

Transports

The name of the sheet transports.

List of available transport.

The described object:

key
required
string [ 1 .. 1024 ] characters
Example: "transport001"

Transport key, unique identifier.

required
Array of objects (transport_shift) [ 1 .. 15001 ] items unique

List of working shifts of transport.

transport_type
string (transport_type)
Enum: "CAR" "TRUCK_1500" "TRUCK_3000" "TRUCK_5000" "TRUCK_10000" … 11 more
Example: "CAR"

Transport types:

  • CAR - car
  • TRUCK_1500 - truck with permissible weight 1500 kg
  • TRUCK_3000 - truck with permissible weight 3000 kg
  • TRUCK_5000 - truck with permissible weight 5000 kg
  • TRUCK_10000 - truck with permissible weight 10000 kg
  • TRUCK_20000 - truck with permissible weight 20000 kg
  • TRUCK_10000_L75_H35_W24_6000 - a truck with a permitted weight of no more than 10,000 kg, dimensions of 7.5 x 3.5 x 2.4 meters, and a permissible axle load of 6,000 kg
  • TRUCK_18000_L95_H40_W26_11000 - a truck with a permitted weight of no more than 18,000 kg, dimensions of 9.5 x 4.0 x 2.6 meters, and a permissible axle load of 11,000 kg
  • TRUCK_26000_L120_H40_W26_8000 - a truck with a permitted weight of no more than 26,000 kg, dimensions of 12.0 x 4.0 x 2.6 meters, and a permissible axle load of 8000 kg
  • TRUCK_GARBAGE_1 - truck for transporting garbage (type 1)
  • TRUCK_GARBAGE_2 - truck for transporting garbage (type 2)
  • TUK_TUK - tuk-tuk
  • BICYCLE - bicycle
  • PEDESTRIAN - pedestrian
  • PUBLIC_TRANSPORT - public transport
  • TELEPORT - teleport (instant movement between points)

Permissible weight is the weight of the equipped transport with cargo and driver, set by the manufacturer as the maximum allowable.

Array of objects (box) [ 0 .. 100 ] items

A list of transport boxes that can accommodate the cargo.

object or null (transport_compatibilities)

Transport compatibilities.

object or null (transport_limits)

Transport load limits.

name
string (name) [ 0 .. 128 ] characters
Example: "X1-ABC"

Name, information field.

Array of objects (attributes) [ 0 .. 250 ] items unique

Attributes. Used to add service information.

{
}

Boxes

The name of the sheet is transports.boxes.

List of transport boxes that can accommodate the load. The table is mandatory if there are orders with applications of types of PICKUP and DROP. In the description of the boxes, those fields that describe cargo are required.

The described object:

key
required
string [ 1 .. 1024 ] characters
Example: "box01"

Unique box key used to identify the cargo placement in boxes.

object or null (capacity)

The box capacity, which limits the maximum amount for all capacity fields of all the cargoes.

object or null (box_compatibilities)

A transport box compatibilities.

object or null (box_limits)

Box limits.

{
}

Orders

The name of the sheet is orders.

List of orders.

The described object:

key
required
string [ 1 .. 1024 ] characters
Example: "order01"

Order key, unique identifier.

required
Array of objects (demand) [ 1 .. 1000 ] items unique

Demands list.

Array of objects (cargo) [ 0 .. 1000 ] items unique
Default: []

The list of cargoes referred to by the demands of this order. The list must be empty if all demands in the order are of type WORK.

object or null (order_compatibilities)
name
string (name) [ 0 .. 128 ] characters
Example: "X1-ABC"

Name, information field.

Array of objects (attributes) [ 0 .. 250 ] items unique

Attributes. Used to add service information.

{
}

Cargos

The name of the sheet is orders.cargos.

List of goods. It may contain one load for DROP, a list for PICKUP, empty for WORK. The table is not obligatory if all applications have the type WORK.

The described object:

key
required
string [ 1 .. 1024 ] characters
Example: "cargo01"

Cargo key, unique identifier.

object or null (capacity)

Cargo additive measures.

object or null (cargo_compatibilities)
target_box_key
string or null [ 1 .. 1024 ] characters
Default: null
Example: "box01"

The key of the transport box in which the cargo is already located. Applicable only for cargo that is in the order with the type DROP_FROM_BOX. For other order types, the key must be empty.

{
}

Trips

The name of the sheet trips.

List of trips.

The described object:

key
required
string [ 1 .. 1024 ] characters
Example: "trip-0000-9999"

Unique trip identifier.

required
object (assigned_performer)

Performer's shift assigned to the specified time (shift_time).

required
object (assigned_transport)

Transport's shift assigned to the specified time (shift_time).

required
Array of objects (trip_state_list) [ 0 .. 15001 ] items

List of performer's states.

waitlist
Array of strings (trip_waitlist) [ 0 .. 15001 ] items unique [ items [ 1 .. 1024 ] characters ]
Example: ["order02"]

List of order keys assigned to the performer, but not scheduled for a specific time and not taken into account in the transport load.

name
string (name) [ 0 .. 128 ] characters
Example: "X1-ABC"

Name, information field.

Array of objects (attributes) [ 0 .. 250 ] items unique

Attributes. Used to add service information.

{
}

Facts

The name of the sheet is facts.

List of facts.

The described object:

key
required
string [ 1 .. 1024 ] characters
Example: "fact_01"

Fact key.

time
required
string <date-time> (fact_time)
Example: "2025-03-21T09:30:00+03:00"

Fact creation time in the ISO 8601 format.

type
required
string (fact_type)
Enum: "NEW_LOCATION" "ORDER_DONE" "DEMAND_START" "DEMAND_DONE"
Example: "NEW_LOCATION"

Possible fact types:

  • NEW_LOCATION - the performer changed his location during the trip
  • ORDER_DONE - the performer has finished fulfilling the order (or the order has been cancelled), the cargo associated with the order is no longer in the transport box
  • DEMAND_START - performer started to fulfill the demand
  • DEMAND_DONE - performer finished to fulfill the demand
trip_key
required
string [ 1 .. 1024 ] characters
Example: "trip_01"

Trip key, to which the fact relates.

order_key
string or null [ 1 .. 1024 ] characters
Default: null
Example: "order_01"

Order key, required for facts with type ORDER_DONE.

demand_key
string or null [ 1 .. 1024 ] characters
Default: null
Example: "order_01_demand_01"

Demand key, required for facts with types DEMAND_DONE and DEMAND_START.

performer_key
string or null [ 1 .. 1024 ] characters
Default: null
Example: "performer_01"

Performer key, required for facts with type NEW_LOCATION.

location_key
string or null [ 1 .. 1024 ] characters
Default: null
Example: "location_01"

Location key, required for facts with type NEW_LOCATION.

Array of objects (attributes) [ 0 .. 250 ] items unique

Attributes. Used to add service information.

{
}

Plan settings

The name of the sheet plan_settings.

The described object:

object (trips_settings)

Trip creation settings.

object (geo_settings)

Geodata usage settings.

object (calculation_settings)

Calculation settings.

object (extension_settings)

Settings for using external extensions to adjust calculations.

{
}

Actualize settings

The name of the sheet is actualize_settings.

The described object:

current_time
string or null <date-time>
Example: "2025-03-21T09:30:00+03:00"

Current date and time according to the ISO 8601. If not specified, the current time when the request was received by the server is taken.

max_delay_duration
string <duration> [ 3 .. 16 ] characters ^P(?!$)((\d+Y)|(\d+\.\d+Y$))?((\d+M)|(\d+\.\d...
Default: "PT3H"
Example: "PT1H30M"

Acceptable delay. Affects the shift of the right boundaries of hard time windows of orders and time windows of work shifts of performers and transports.

{
}

Replan settings

The name of the sheet is replan_settings.

The described object:

object (replan_strategy)

Replan strategy.

{
}

Total Statistics

The name of the sheet is total_statistics.

Total Statistics.

The described object:

cost
required
number <double> [ 0 .. 1000000000000 ]
Example: "1231.1"

Total cost calculated based on the performer's and transport tariffs.

reward
required
number <double> [ 0 .. 1000000000000 ]
Example: "2343.3"

The total reward for orders fulfillment.

profit
required
number <double> [ -1000000000000 .. 1000000000000 ]
Example: "1231.1"

The total profit is equal to the difference between the total reward (reward) and cost (cost).

required
object (measurements)

Measurements of times and distances for aggregate and individual trips:

  • time_window - the start time of the first trip and the end time of the last, if there are no trips, the time of the left border of the planning horizon is returned, while the from \ to fields have the same value
  • driving_time - duration of driving time
  • waiting_time - total waiting time for all locations
  • working_time - total time of work execution at all locations included in the trip
  • break_time - total break time for all locations
  • rest_time - total rest time for all locations
  • arriving_time - total time to drive / park at locations
  • departure_time - total time for departure from locations
  • total_time - total time, composed of driving_time + waiting_time + working_time + break_time + rest_time + arriving_time + departure_time
  • distance - the total length of the roundtrip/trip/set of trips, in meters
trips_count
required
integer <int32> [ 0 .. 15001 ]
Example: "250"

The total number of planned trips.

performers_count
required
integer <int32> [ 0 .. 15001 ]
Example: "157"

The total number of performers involved in orders fulfillment.

orders_count
required
integer <int32> [ 0 .. 15001 ]
Example: "1700"

The total number of planned and assigned orders.

plan_orders_count
required
integer <int32> [ 0 .. 15001 ]
Example: "1003"

The total number of planned orders.

waitlist_orders_count
required
integer <int32> [ 0 .. 15001 ]
Example: "697"

The total number of assigned orders.

stops_count
required
integer <int32> [ 0 .. 15001000 ]
Example: "87"

The total number of stops (non-unique locations).

locations_count
required
integer <int32> [ 0 .. 15001000 ]
Example: "45"

The total number of unique locations within one trip. For general statistics - the sum of unique locations within each trip.

required
object (capacity_statistics_sum)

Total additive measures of the transported cargo.

required
object (capacity_statistics_ratio)

The ratio of the total additive measures of the transported cargo to the total capacity of the boxes. In fractions of a unit. It may be more than one.

required
object (capacity_statistics_load)

The ratio of the maximum load of boxes to the total capacity of boxes. In fractions of a unit. Cannot be greater than one.

average_speed
required
number <double> >= 0
Example: "43.1"

Average speed is the ratio of the total distance to the total time of movement, km/h.

round_trips_count
required
integer <int32> [ 0 .. 15001 ]
Example: "2"

Number of roundtrips within a trip.

average_roundtrip_distance
required
number <double> >= 0
Example: "23.4"

Average mileage per roundtrip is the ratio of the total mileage per trip to the number of roundtrips, in meters.

average_roundtrip_time
required
string <duration> (time_duration) [ 3 .. 16 ] characters ^P(?!$)((\d+Y)|(\d+\.\d+Y$))?((\d+M)|(\d+\.\d...
Example: "PT1H45M"

Average roundtrip time is the ratio of the total time to the number of roundtrips.

Array of objects (attributes) [ 0 .. 250 ] items unique

Attributes. Used to add service information.

{
}