运输计划
创建任务
创建运输计划任务, 该接口为异步操作,返回任务ID,任务的状态及结果请通过查询任务详情接口获取。
URI
POST /v2/{project_id}/optverse/route-planning/tasks
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
project_id | 是 | String | 用户项目ID,获取方法请参见获取项目ID。 |
请求参数
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
Content-Type | 是 | String | 该字段填为“application/json”。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
name | 是 | String | 数据名 |
type | 是 | String | 问题类型 |
vehicle_infos | 是 | 所有车辆信息 | |
node_infos | 是 | 节点信息 | |
depot_node | 是 | Array of integers | 仓库/车场结点编号集 |
explicit_edge_weight | 是 | 各节点间的距离成本矩阵,行号(列号)对应nodeList中的序号 | |
time_weight | 是 | 各节点间的时间矩阵,行号(列号)对应nodeList中的序号 | |
objective_cost | 是 | 目标函数 | |
option | 是 | 路径规划类型可选项 | |
parameters | 是 | 算法参数 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
vehicle_type | 是 | String | 车辆型号名称 |
available_num | 是 | Integer | 车辆可用数 |
capacity | 是 | Integer | 容量,默认为100000 |
shift_start_time | 否 | Double | 车辆作业班次开始时间,默认为0 |
shift_end_time | 否 | Double | 车辆作业班次结束时间,默认为100000 |
start_node | 是 | String | 出发节点id |
end_node | 否 | String | 返回节点id |
max_distance | 否 | Double | 车辆允许的最大行驶距离,默认为1000000 |
max_duration | 否 | Double | 车辆允许的最大工作时长,默认为1000000 |
max_node_number | 否 | Integer | 车辆允许服务的最大节点数,默认为10000 |
unit_distance_cost | 否 | Double | 单位距离运输成本。默认为1 |
unit_duration_cost | 否 | Double | 单位时间工作成本。默认为1 |
vehicle_load_time | 否 | Double | 车辆的装货时间,单位分钟,默认为0 |
vehicle_unload_time | 否 | Double | 车辆的卸货时间,单位分钟,默认为0 |
fixed_cost | 否 | Double | 车辆的固定使用成本,单位元,默认为0 |
multiple_trips | 否 | Boolean | 是否允许在一个工作周期内,多次往返出发点进行配送任务(多车程),默认为false |
merge_rule | 是 | String | 同一顾客存在多个订单是如何合并订单,计算顾客的卸车时间;"sum"为使用所有订单的卸车时间之和为顾客的卸车时间,"max"为使用所有订单的最大卸车时间为顾客的卸车时间 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
node_id | 否 | Integer | 节点编号 |
demand | 是 | Integer | 配送量,默认0 |
split_order | 否 | Boolean | 配送量是否可以拆分配送,默认为false |
pickup | 否 | Integer | 取货量,默认0 |
time_windows | 否 | Array<Array<Number>> | 节点作业/服务时间窗,最早/晚到达时间(单位:分钟),以基准时刻为0开始计时 |
service_load_time | 否 | Double | 装车服务时间,单位分钟,默认为0 |
service_unload_time | 否 | Double | 卸车服务时间,单位分钟,默认为0 |
depot_load_time | 否 | Integer | 配送客户所需配送量在仓库的装车时间,默认为0 |
release_time | 否 | Double | 配送该节点的车辆最早从仓库发出的时间,配送货物齐套时间 |
slack_max | 否 | Double | 允许等待时间上限,单位分钟,默认为10000 |
penalty | 否 | Integer | 跳过站点的惩罚成本,默认为10000000 |
depot_capacity | 否 | Integer | 可以同时装或卸的最大车辆数, 默认值为1000 |
pickup_order_index | 否 | Integer | 从哪里取货,必选,默认为-1,表示不需要指定来源 |
delivery_order_index | 否 | Integer | 往哪里送货,必选,默认为-1,表示不存在送货 |
backhauls | 否 | Boolean | 该站点任务是否为回程任务,true为回程,false为去程(默认) |
periodic | 否 | Integer | 周期场景下的一个周期内需要到达的次数/频率 |
demand_volume | 否 | Integer | 需求体积量(可加体积),默认为0 |
pickup_volume | 否 | Integer | 取货体积量(可加体积),默认为0 |
响应参数
状态码: 201
参数 | 参数类型 | 描述 |
|---|---|---|
task_id | String | 任务编号。 |
create_time | String | 任务创建时间 |
estimated_start_time | String | 预估开始时间 |
status | String | 任务状态,包括:
|
请求示例
{
"input_json": {
"depot_node": [
1
],
"explicit_edge_weight": [
0.0,
33.0,
...
],
"name": "A-n36-k5",
"node_infos": [
{
"backhauls": false,
"delivery_order_index": -1,
"demand": 0.0,
"depot_capacity": 0,
"node_id": 1,
"penalty": 0.0,
"periodic": 1,
"pickup": 0.0,
"pickup_order_index": -1,
"release_time": 0.0,
"service_load_time": 0.0,
"service_unload_time": 0.0,
"slack_max": 0.0,
"split_order": false,
"time_windows": []
},
...
],
"objective_cost": {
"cumulative_cost": 0.0,
"edge_weight_cost": 1.0,
"fixed_cost": 0.0,
"load_dependent_cost": 0.0
},
"option": {
"periodic": 1
},
"parameter": {
"time_limit": 60
},
"time_weight": [],
"type": "CVRP",
"vehicle_infos": [
{
"available_num": 35,
"capacity": 100.0,
"end_node": 1,
"fixed_cost": 0.0,
"max_distance": 1000000.0,
"max_duration": 2147483647,
"max_node_number": 10000,
"multiple_trips": false,
"shift_end_time": 1000000,
"shift_start_time": 0,
"start_node": 1,
"unit_distance_cost": 1,
"unit_duration_cost": 1,
"vehicle_load_time": 0.0,
"vehicle_type": "V1",
"vehicle_unload_time": 0.0
}
]
}
} 响应示例
状态码: 201
OK
{
"task_id": "40axxxx-701a-47cf-8b56-648xxxxxxd25,
"create_time": "2025-08-13T08:58:51.479Z",
"estimated_start_time": null,
"status": "Pending"
} 查询任务
该API用于查询并显示异形件-服装切割任务详情。
URI
GET /v2/{project_id}/optverse/route-planning/tasks/{task_id}
响应参数
状态码:200
参数 | 参数类型 | 描述 |
|---|---|---|
task_id | String | 任务编号。 |
input_json | String | 输入数据,当前为null |
status | String | 任务状态,包括:
|
progress | String | 返回任务进度 |
output_json | Array of objects | 任务处理结果,json格式,任务状态为finished时携带。具体数据结构参见routePlanningResultDetail |
start_time | String | 任务开始时间 |
end_time | String | 任务结束时间 |
create_time | String | 任务创建时间 |
响应示例
状态码: 200
OK
{
"task_id": "02419df7-8a55-41e3-955b-a3693c8f2bac",
"input_json": null,
"status": "Succeeded",
"progress": "",
"output_json": {
"objective": 6294.877,
"schedule_plan": [
{
"route_id": "",
"node_list": [
{
"node_id": 25,
"wait_time": 0,
"arrive_time": 28800,
"departure_time": 30780
},
...
],
"total_cost": 57.69199999999999,
"total_time": 12391,
"total_weight": 57.69199999999999,
"vehicle_type": "1",
"periodic_list": []
},
...
]
},
"estimated_start_time": null,
"start_time": "2025-07-22T08:29:21.805Z",
"end_time": "2025-07-22T08:29:36.457Z",
"create_time": "2025-07-22T08:29:20.988Z"
} 
