Программный интерфейс для Veeroute Packer.
Моно-поддон
Если поддон полностью укомплектован одинаковым товаром, то такой поддон называется моно-поддон, такой поддон имеет следующие правила загрузки:
Разделенный на зоны поддон
После формирования моно-поддонов оставшаяся часть товаров того же артикула размещается на на следующем поддоне, который делится при помощи картонной перегородки на зоны таким образом, чтобы в каждой зоне был размещен товар только одного артикула, при этом зоны имеют следующие ограничения:
Если на описанных выше этапах не удается разместить номенклатуру таким образом, чтобы поддон был необходимой высоты или веса, используются миксбоксы:
Загруженные поддоны укладываются в стопки друг на друга, слот - это место установки стопки поддонов. У слота нет физического тела - поэтому размеры body
слота нулевые.
Для указания местоположение упаковок и товаров используется локальная система координат, в которой координаты конкретного объекта указываются относительно ближнего левого нижнего угла родительского объекта, при этом:
Соотношение осей товаров и упаковок:
Планирование оптимального размещения.
Данные для расчета.
required | Array of objects (product) [ 1 .. 70001 ] items unique Список товаров, которые необходимо упаковать. |
required | Array of objects (package) [ 1 .. 11 ] items unique Список доступных упаковок. Обязательно наличие хотя бы одной упаковки каждого типа (SLOT, PALLET, MIXBOX). |
object (pack_settings) Настройки упаковки. |
required | object (tracedata) Данные используемые для трассировки запросов. |
required | Array of objects (blueprint) [ 0 .. 70001 ] items План размещения товаров в виде списка расположений упаковок. На первом уровне находится список стопок поддонов. |
required | object (pack_statistics) Общая статистика по схеме упаковки. |
Array of objects (entity_warning_list) [ 0 .. 70001 ] items Список предупреждений. В зависимости от флага | |
object (unpacked_items) Список неупакованных товаров и не используемых упаковок. | |
progress required | integer<int32> (calculation_progress) [ 0 .. 100 ] Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов. |
required | object (calculation_info) Информация о расчете. |
{- "products": [
- {
- "key": "product_1",
- "count": 1,
- "dimensions": {
- "length": 1200,
- "width": 800,
- "height": 150,
- "mass": 60000
}
}
], - "packages": [
- {
- "key": "slot_default",
- "type": "SLOT",
- "body_dimensions": {
- "length": 0,
- "width": 0,
- "height": 0,
- "mass": 0
}, - "container_dimensions": {
- "length": 1200,
- "width": 800,
- "height": 1800,
- "mass": 1000000
}, - "container_coordinates": {
- "x": 0,
- "y": 0,
- "z": 0
}
}, - {
- "key": "pallet_default",
- "type": "PALLET",
- "body_dimensions": {
- "length": 1200,
- "width": 800,
- "height": 150,
- "mass": 10000
}, - "container_dimensions": {
- "length": 1200,
- "width": 800,
- "height": 1650,
- "mass": 650000
}, - "container_coordinates": {
- "x": 0,
- "y": 0,
- "z": 150
}
}, - {
- "key": "mixbox_default",
- "type": "MIXBOX",
- "body_dimensions": {
- "length": 580,
- "width": 380,
- "height": 200,
- "mass": 0
}, - "container_dimensions": {
- "length": 580,
- "width": 380,
- "height": 200,
- "mass": 60000
}, - "container_coordinates": {
- "x": 0,
- "y": 0,
- "z": 0
}
}
], - "pack_settings": {
- "calculation_settings": {
- "max_calculation_time": "PT10M",
- "max_waiting_time": "PT10M",
- "result_ttl": "PT10M",
- "treat_warnings_as_errors": false
}
}
}
{- "tracedata": {
- "code": "69c507e4-7c2a-46fd-a862-a503cf27b1a3",
- "client": "veeroute_|_example",
- "server": "Packer:leo",
- "service": "PACKER",
- "operation": "runPackCalculation",
- "time": "2024-02-21T16:55:35.370332Z"
}, - "blueprint": [
- {
- "package_key": "slot_default",
- "coordinates": {
- "x": 0,
- "y": 0,
- "z": 0
}, - "dimensions": {
- "length": 1200,
- "width": 800,
- "height": 300,
- "mass": 70000
}, - "product_group_layouts": [ ],
- "package_layouts": [
- {
- "package_key": "pallet_default",
- "coordinates": {
- "x": 0,
- "y": 0,
- "z": 0
}, - "dimensions": {
- "length": 1200,
- "width": 800,
- "height": 300,
- "mass": 70000
}, - "product_group_layouts": [
- {
- "product_key": "product_1",
- "coordinates": {
- "x": 0,
- "y": 0,
- "z": 150
}, - "dimensions": {
- "length": 1200,
- "width": 800,
- "height": 150,
- "mass": 60000
}, - "product_layouts": [
- {
- "product_key": "product_1",
- "coordinates": {
- "x": 0,
- "y": 0,
- "z": 0
}, - "dimensions": {
- "length": 1200,
- "width": 800,
- "height": 150,
- "mass": 60000
}
}
]
}
], - "package_layouts": [ ]
}
]
}
], - "statistics": {
- "products_count": 1,
- "packages_count": 2,
- "total_mass": 60,
- "total_volume": 0.144,
- "package_statistics": [
- {
- "package_key": "slot_default",
- "package_type": "SLOT",
- "count": 1,
- "max_container_mass": 60,
- "max_container_volume": 0.144,
- "utilization_by_mass": 0.06,
- "utilization_by_volume": 0.0833
}, - {
- "package_key": "pallet_default",
- "package_type": "PALLET",
- "count": 1,
- "max_container_mass": 60,
- "max_container_volume": 0.144,
- "utilization_by_mass": 0.0923,
- "utilization_by_volume": 0.0909
}
]
}, - "progress": 100,
- "info": {
- "status": "FINISHED_IN_TIME",
- "result_version": 1,
- "preparing_time": "PT1M10S",
- "business_validation_time": "PT1M10S",
- "math_validation_time": "PT1M10S",
- "waiting_time": "PT15S",
- "calculation_time": "PT1M10S"
}, - "warnings": [ ],
- "unpacked_items": {
- "product_keys": [ ],
- "package_keys": [
- "mixbox_default"
]
}
}
Данные для расчета.
required | Array of objects (product) [ 1 .. 70001 ] items unique Список товаров, которые необходимо упаковать. |
required | Array of objects (package) [ 1 .. 11 ] items unique Список доступных упаковок. Обязательно наличие хотя бы одной упаковки каждого типа (SLOT, PALLET, MIXBOX). |
object (pack_settings) Настройки упаковки. |
required | object (tracedata) Данные используемые для трассировки запросов. |
id required | string<uuid> (calculation_id) Идентификатор расчета. |
{- "products": [
- {
- "key": "product_1",
- "count": 1,
- "dimensions": {
- "length": 1200,
- "width": 800,
- "height": 150,
- "mass": 60000
}
}
], - "packages": [
- {
- "key": "slot_default",
- "type": "SLOT",
- "body_dimensions": {
- "length": 0,
- "width": 0,
- "height": 0,
- "mass": 0
}, - "container_dimensions": {
- "length": 1200,
- "width": 800,
- "height": 1800,
- "mass": 1000000
}, - "container_coordinates": {
- "x": 0,
- "y": 0,
- "z": 0
}
}, - {
- "key": "pallet_default",
- "type": "PALLET",
- "body_dimensions": {
- "length": 1200,
- "width": 800,
- "height": 150,
- "mass": 10000
}, - "container_dimensions": {
- "length": 1200,
- "width": 800,
- "height": 1650,
- "mass": 650000
}, - "container_coordinates": {
- "x": 0,
- "y": 0,
- "z": 150
}
}, - {
- "key": "mixbox_default",
- "type": "MIXBOX",
- "body_dimensions": {
- "length": 580,
- "width": 380,
- "height": 200,
- "mass": 0
}, - "container_dimensions": {
- "length": 580,
- "width": 380,
- "height": 200,
- "mass": 60000
}, - "container_coordinates": {
- "x": 0,
- "y": 0,
- "z": 0
}
}
], - "pack_settings": {
- "calculation_settings": {
- "max_calculation_time": "PT10M",
- "max_waiting_time": "PT10M",
- "result_ttl": "PT10M",
- "treat_warnings_as_errors": false
}
}
}
{- "tracedata": {
- "code": "11111111-2222-3333-4444-555555555555",
- "client": "company_|_username",
- "server": "server_name",
- "service": "UNIVERSAL",
- "operation": "run_plan_calculation",
- "time": "2024-02-21T09:30:00+03:00"
}, - "id": "11111111-2222-3333-4444-555555555555"
}
Получение состояния расчета по идентификатору расчета.
id required | string<uuid> (calculation_id) Example: 11111111-2222-3333-4444-555555555555 Идентификатор расчета. |
required | object (tracedata) Данные используемые для трассировки запросов. |
progress required | integer<int32> (calculation_progress) [ 0 .. 100 ] Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов. |
required | object (calculation_info) Информация о расчете. |
{- "tracedata": {
- "code": "11111111-2222-3333-4444-555555555555",
- "client": "company_|_username",
- "server": "server_name",
- "service": "UNIVERSAL",
- "operation": "run_plan_calculation",
- "time": "2024-02-21T09:30:00+03:00"
}, - "progress": 52,
- "info": {
- "status": "FINISHED_IN_TIME",
- "result_version": 133,
- "preparing_time": "P1Y1M1DT2H12M34.3S",
- "business_validation_time": "P1Y1M1DT2H12M34.3S",
- "math_validation_time": "P1Y1M1DT2H12M34.3S",
- "waiting_time": "P1Y1M1DT2H12M34.3S",
- "calculation_time": "P1Y1M1DT2H12M34.3S"
}
}
Отмена процесса планирования по идентификатору расчета.
id required | string<uuid> (calculation_id) Example: 11111111-2222-3333-4444-555555555555 Идентификатор расчета. |
{- "tracedata": {
- "code": "11111111-2222-3333-4444-555555555555",
- "client": "company_|_username",
- "server": "server_name",
- "service": "UNIVERSAL",
- "operation": "run_plan_calculation",
- "time": "2024-02-21T09:30:00+03:00"
}, - "message": "bad task data",
- "schema_errors": [ ],
- "logical_errors": [
- {
- "type": "UNIQUE_IDS_VIOLATION",
- "info": "entity error",
- "entities": [
- {
- "entity_key": "order_0001",
- "entity_type": "TASK",
- "child_entity": { }
}
]
}
], - "warnings": [ ]
}
Получение результата расчета по идентификатору расчета.
id required | string<uuid> (calculation_id) Example: 11111111-2222-3333-4444-555555555555 Идентификатор расчета. |
required | object (tracedata) Данные используемые для трассировки запросов. |
required | Array of objects (blueprint) [ 0 .. 70001 ] items План размещения товаров в виде списка расположений упаковок. На первом уровне находится список стопок поддонов. |
required | object (pack_statistics) Общая статистика по схеме упаковки. |
Array of objects (entity_warning_list) [ 0 .. 70001 ] items Список предупреждений. В зависимости от флага | |
object (unpacked_items) Список неупакованных товаров и не используемых упаковок. | |
progress required | integer<int32> (calculation_progress) [ 0 .. 100 ] Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов. |
required | object (calculation_info) Информация о расчете. |
required | object (tracedata) Данные используемые для трассировки запросов. |
required | Array of objects (blueprint) [ 0 .. 70001 ] items План размещения товаров в виде списка расположений упаковок. На первом уровне находится список стопок поддонов. |
required | object (pack_statistics) Общая статистика по схеме упаковки. |
Array of objects (entity_warning_list) [ 0 .. 70001 ] items Список предупреждений. В зависимости от флага | |
object (unpacked_items) Список неупакованных товаров и не используемых упаковок. | |
progress required | integer<int32> (calculation_progress) [ 0 .. 100 ] Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов. |
required | object (calculation_info) Информация о расчете. |
{- "tracedata": {
- "code": "69c507e4-7c2a-46fd-a862-a503cf27b1a3",
- "client": "veeroute_|_example",
- "server": "Packer:leo",
- "service": "PACKER",
- "operation": "runPackCalculation",
- "time": "2024-02-21T16:55:35.370332Z"
}, - "blueprint": [
- {
- "package_key": "slot_default",
- "coordinates": {
- "x": 0,
- "y": 0,
- "z": 0
}, - "dimensions": {
- "length": 1200,
- "width": 800,
- "height": 300,
- "mass": 70000
}, - "product_group_layouts": [ ],
- "package_layouts": [
- {
- "package_key": "pallet_default",
- "coordinates": {
- "x": 0,
- "y": 0,
- "z": 0
}, - "dimensions": {
- "length": 1200,
- "width": 800,
- "height": 300,
- "mass": 70000
}, - "product_group_layouts": [
- {
- "product_key": "product_1",
- "coordinates": {
- "x": 0,
- "y": 0,
- "z": 150
}, - "dimensions": {
- "length": 1200,
- "width": 800,
- "height": 150,
- "mass": 60000
}, - "product_layouts": [
- {
- "product_key": "product_1",
- "coordinates": {
- "x": 0,
- "y": 0,
- "z": 0
}, - "dimensions": {
- "length": 1200,
- "width": 800,
- "height": 150,
- "mass": 60000
}
}
]
}
], - "package_layouts": [ ]
}
]
}
], - "statistics": {
- "products_count": 1,
- "packages_count": 2,
- "total_mass": 60,
- "total_volume": 0.144,
- "package_statistics": [
- {
- "package_key": "slot_default",
- "package_type": "SLOT",
- "count": 1,
- "max_container_mass": 60,
- "max_container_volume": 0.144,
- "utilization_by_mass": 0.06,
- "utilization_by_volume": 0.0833
}, - {
- "package_key": "pallet_default",
- "package_type": "PALLET",
- "count": 1,
- "max_container_mass": 60,
- "max_container_volume": 0.144,
- "utilization_by_mass": 0.0923,
- "utilization_by_volume": 0.0909
}
]
}, - "progress": 100,
- "info": {
- "status": "FINISHED_IN_TIME",
- "result_version": 1,
- "preparing_time": "PT1M10S",
- "business_validation_time": "PT1M10S",
- "math_validation_time": "PT1M10S",
- "waiting_time": "PT15S",
- "calculation_time": "PT1M10S"
}, - "warnings": [ ],
- "unpacked_items": {
- "product_keys": [ ],
- "package_keys": [
- "mixbox_default"
]
}
}
Удаление результата по идентификатору расчета.
id required | string<uuid> (calculation_id) Example: 11111111-2222-3333-4444-555555555555 Идентификатор расчета. |
{- "tracedata": {
- "code": "11111111-2222-3333-4444-555555555555",
- "client": "company_|_username",
- "server": "server_name",
- "service": "UNIVERSAL",
- "operation": "run_plan_calculation",
- "time": "2024-02-21T09:30:00+03:00"
}, - "message": "bad task data",
- "schema_errors": [ ],
- "logical_errors": [
- {
- "type": "UNIQUE_IDS_VIOLATION",
- "info": "entity error",
- "entities": [
- {
- "entity_key": "order_0001",
- "entity_type": "TASK",
- "child_entity": { }
}
]
}
], - "warnings": [ ]
}
Проверка данных перед отправкой на расчет.
Данные для расчета.
required | Array of objects (product) [ 1 .. 70001 ] items unique Список товаров, которые необходимо упаковать. |
required | Array of objects (package) [ 1 .. 11 ] items unique Список доступных упаковок. Обязательно наличие хотя бы одной упаковки каждого типа (SLOT, PALLET, MIXBOX). |
object (pack_settings) Настройки упаковки. |
required | object (tracedata) Данные используемые для трассировки запросов. |
required | Array of objects (entity_warning_list) [ 0 .. 70001 ] items Список предупреждений. В зависимости от флага |
{- "products": [
- {
- "key": "product_1",
- "count": 1,
- "dimensions": {
- "length": 1200,
- "width": 800,
- "height": 150,
- "mass": 60000
}
}
], - "packages": [
- {
- "key": "slot_default",
- "type": "SLOT",
- "body_dimensions": {
- "length": 0,
- "width": 0,
- "height": 0,
- "mass": 0
}, - "container_dimensions": {
- "length": 1200,
- "width": 800,
- "height": 1800,
- "mass": 1000000
}, - "container_coordinates": {
- "x": 0,
- "y": 0,
- "z": 0
}
}, - {
- "key": "pallet_default",
- "type": "PALLET",
- "body_dimensions": {
- "length": 1200,
- "width": 800,
- "height": 150,
- "mass": 10000
}, - "container_dimensions": {
- "length": 1200,
- "width": 800,
- "height": 1650,
- "mass": 650000
}, - "container_coordinates": {
- "x": 0,
- "y": 0,
- "z": 150
}
}, - {
- "key": "mixbox_default",
- "type": "MIXBOX",
- "body_dimensions": {
- "length": 580,
- "width": 380,
- "height": 200,
- "mass": 0
}, - "container_dimensions": {
- "length": 580,
- "width": 380,
- "height": 200,
- "mass": 60000
}, - "container_coordinates": {
- "x": 0,
- "y": 0,
- "z": 0
}
}
], - "pack_settings": {
- "calculation_settings": {
- "max_calculation_time": "PT10M",
- "max_waiting_time": "PT10M",
- "result_ttl": "PT10M",
- "treat_warnings_as_errors": false
}
}
}
{- "tracedata": {
- "code": "11111111-2222-3333-4444-555555555555",
- "client": "company_|_username",
- "server": "server_name",
- "service": "UNIVERSAL",
- "operation": "run_plan_calculation",
- "time": "2024-02-21T09:30:00+03:00"
}, - "warnings": [ ]
}
Проверка доступности сервиса.
health required | number<double> [ 0 .. 1 ] Текущий показатель здоровья сервиса. |
{- "health": 0.999
}
Получение версии сервиса.
major required | integer<int32> [ 1 .. 100 ] Версия продукта. В рамках одной версии гарантируется совместимость общих структур данных между сервисами. |
minor required | integer<int32> [ 0 .. 111 ] Минорная версия сервиса. Изменение версии указывает на новую функциональность. Обновление имеет обратную совместимость в рамках мажорной версии сервиса. |
build required | string [ 1 .. 64 ] characters Версия сборки. |
{- "major": 4,
- "minor": 4,
- "build": "1754RC"
}
Получение файла с документацией на этот сервис.
filename required | string [ 6 .. 128 ] characters Example: file_en.html Название файла. |
Файл с данными в формате HTML.
{- "resource_id": "resource_id",
- "detail": {
- "tracedata": {
- "code": "11111111-2222-3333-4444-555555555555",
- "client": "company_|_username",
- "server": "server_name",
- "service": "UNIVERSAL",
- "operation": "run_plan_calculation",
- "time": "2024-02-21T09:30:00+03:00"
}
}
}