运输计划
创建任务
创建运输计划任务, 该接口为异步操作,返回任务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"
}