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