VRt.Agro [AG] (6.20.2289)

Veeroute Support Team: servicedesk@veeroute.comLicense: Proprietary

Программный интерфейс для Veeroute Agro.

Описание

Сервис предназначен для расчета плана работ производственных объектов.

Общая схема

objects

Поле

  • производит определенную сельскохозяйственную культуру определенной влажности
  • продукция с поля может перемещаться только на Элеватор или Завод

Элеватор (Ток)

  • состоит из Ворот, Сушилок, краткосрочных и долгосрочных мест хранения
  • сушит зерно (если влажность культуры больше допустимой)
  • хранит сухое зерно в краткосрочных местах хранения (складах), при этом допускается выгрузка и загрузка зерна в рамках одних суток
  • хранит сухое зерно в долгосрочных местах хранения (рукавах, траншеях, курганах)
  • при хранении в одном хранилище может находится только один вид культуры
  • продает излишки зерна на Рынок
  • производственные процессы внутри объекта: сушка, загрузка/выгрузка в место хранения, хранение

Завод

  • состоит из Ворот, Сушилок, Бункеров, Потребителей
  • [если присутствует сушка] сушит зерно (если влажность культуры больше допустимой)
  • хранит сухое зерно в Бункерах (краткосрочное хранилище, привязанное к определенной культуре)
  • поддерживает в Бункерах минимальный запас зерна для потребления
  • потребляет зерно из Бункеров
  • закупает недостающее зерно с Рынка
  • производственные процессы внутри объекта: сушка, загрузка/выгрузка в место хранения, хранение, потребление

Рынок

  • закупает зерно у Элеваторов
  • продает зерно Заводам

Проект

Проект отражает запланированную последовательность операций над сельскохозяйственными культурами, ниже описаны типы операций.

HARVEST

Уборка сельскохозяйственной культуры:

  • между производственными объектами (Полем и Элеватором или Заводом)
  • операция происходит внутри одного дня
  • на Поле происходит определение влажности зерна
Объект (target_key)Подобъект (target_detail_key)
Источник (source)Поле-
Назначение (destination)Элеватор или ЗаводВорота

DRY

Сушка культуры:

  • внутри производственного объекта (Элеватора или Завода)
  • длительность операции - сутки
  • в процессе сушки меняется масса и тип влажности (WET -> DRY)
  • в источнике указывается масса сырой культуры
  • в назначении указывается полученная масса сухой культуры
Объект (target_key)Подобъект (target_detail_key)
Источник (source)Элеватор или ЗаводВорота
Назначение (destination)Элеватор или ЗаводСушилка

LOAD

Загрузка культуры с Ворот в Место хранения (долгосрочное, краткосрочное, бункер):

  • между частями одного производственного объекта (Элеватора или Завода)
  • операция происходит внутри одного дня
Объект (target_key)Подобъект (target_detail_key)
Источник (source)Элеватор или ЗаводВорота или Сушилка
Назначение (destination)Элеватор или ЗаводМесто хранения (долгосрочное, краткосрочное, бункер)

UNLOAD

Выгрузка культуры из места хранения на Ворота:

  • между частями одного производственного объекта (Элеватора)
  • операция происходит внутри одного дня
Объект (target_key)Подобъект (target_detail_key)
Источник (source)ЭлеваторМесто хранения (долгосрочное, краткосрочное, бункер) или Сушилка
Назначение (destination)ЭлеваторВорота

STORE

Хранение культуры:

  • место хранения не меняется
  • длительность операции - сутки
  • операция происходит через ночь
Объект (target_key)Подобъект (target_detail_key)
Источник (source)Элеватор или ЗаводМесто хранения (долгосрочное, краткосрочное, бункер)
Назначение (destination)Элеватор или ЗаводТо же самое место хранения

RELOCATE

Перевозка между производственными объектами:

  • между производственными объектами (Элеватором и Заводом)
  • операция происходит внутри одного дня
Объект (target_key)Подобъект (target_detail_key)
Источник (source)ЭлеваторВорота
Назначение (destination)ЗаводВорота

CONSUMPTION

Потребление культуры заводом:

  • между частями одного производственного объекта (Завода)
  • операция происходит внутри одного дня
  • потребление идет из Бункера
  • дополнительно можем потреблять прямо с Ворот или Сушилки без закладки в Бункер
Объект (target_key)Подобъект (target_detail_key)
Источник (source)ЗаводБункер или Ворота или Сушилка
Назначение (destination)ЗаводПотребитель

SELL

Продажа культуры:

  • между производственными объектами (Элеватором и Рынком)
  • операция происходит внутри одного дня
Объект (target_key)Подобъект (target_detail_key)
Источник (source)ЭлеваторВорота
Назначение (destination)РынокКонтракт

BUY

Покупка культуры:

  • между производственными объектами (Рынком и Заводом)
  • операция происходит внутри одного дня
Объект (target_key)Подобъект (target_detail_key)
Источник (source)РынокКонтракт
Назначение (destination)ЗаводВорота

Диаграмма сущностей

erd

Plan

Расчет производственного плана.

Планирование (SYNC)

Расчет оптимального производственного плана.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Данные для расчета.

required
Array of objects (crop) [ 1 .. 501 ] items unique

Список сельскохозяйственных культур.

required
Array of objects (field) [ 1 .. 20001 ] items unique

Список полей, на которых произрастают сельскохозяйственные культуры.

Array of objects (elevator) [ 1 .. 501 ] items unique

Список токов - производственных объектов по подготовке и хранению зерна.

required
Array of objects (factory) [ 1 .. 501 ] items unique

Список заводов - потребителей зерна.

required
Array of objects (market) [ 1 .. 501 ] items unique

Список рынков.

required
Array of objects (movement_matrix) [ 1 .. 8040402 ] items unique

Матрица описывающая стоимость (в километрах и денежных единицах) перемещения зерна между объектами (в обе стороны). Если между объектами нет соответствующей записи в матрице - перемещение зерна между ними считается невозможным.

Array of objects (leftover) [ 0 .. 25001 ] items

Остатки зерна на текущий момент - в полях, хранилищах, сушилках.

required
object (plan_settings)

Настройки планирования.

Responses

Response Schema: application/json
required
object (tracedata)

Данные используемые для трассировки запросов.

required
Array of objects (project) [ 0 .. 1000001 ] items

Производственный план. Последовательность выполнения работ.

required
object (plan_statistics)

Общая статистика.

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

Список предупреждений. В зависимости от флага calculation_settings.treat_warnings_as_errors - сработавшие проверки интерпретируются как ошибки или приводят к удалению некорректных данных из расчета.

object (unplanned_items)

Список незапланированных сущностей.

progress
required
integer<int32> (calculation_progress) [ 0 .. 100 ]

Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов.

required
object (calculation_info)

Информация о расчете.

Request samples

Content type
application/json
{
  • "crops": [
    ],
  • "fields": [
    ],
  • "elevators": [
    ],
  • "factories": [
    ],
  • "markets": [
    ],
  • "movement_matrix": [
    ],
  • "leftovers": [
    ],
  • "plan_settings": {
    }
}

Response samples

Content type
application/json
{
  • "tracedata": {
    },
  • "project": [
    ],
  • "statistics": {
    },
  • "progress": 100,
  • "info": {
    },
  • "warnings": [ ]
}

Планирование (ASYNC)

Получение результата производится с помощью метода result, а удаление - с помощью delete.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Данные для расчета.

required
Array of objects (crop) [ 1 .. 501 ] items unique

Список сельскохозяйственных культур.

required
Array of objects (field) [ 1 .. 20001 ] items unique

Список полей, на которых произрастают сельскохозяйственные культуры.

Array of objects (elevator) [ 1 .. 501 ] items unique

Список токов - производственных объектов по подготовке и хранению зерна.

required
Array of objects (factory) [ 1 .. 501 ] items unique

Список заводов - потребителей зерна.

required
Array of objects (market) [ 1 .. 501 ] items unique

Список рынков.

required
Array of objects (movement_matrix) [ 1 .. 8040402 ] items unique

Матрица описывающая стоимость (в километрах и денежных единицах) перемещения зерна между объектами (в обе стороны). Если между объектами нет соответствующей записи в матрице - перемещение зерна между ними считается невозможным.

Array of objects (leftover) [ 0 .. 25001 ] items

Остатки зерна на текущий момент - в полях, хранилищах, сушилках.

required
object (plan_settings)

Настройки планирования.

Responses

Response Schema: application/json
required
object (tracedata)

Данные используемые для трассировки запросов.

id
required
string<uuid> (calculation_id)

Идентификатор расчета.

Request samples

Content type
application/json
{
  • "crops": [
    ],
  • "fields": [
    ],
  • "elevators": [
    ],
  • "factories": [
    ],
  • "markets": [
    ],
  • "movement_matrix": [
    ],
  • "leftovers": [
    ],
  • "plan_settings": {
    }
}

Response samples

Content type
application/json
{
  • "tracedata": {
    },
  • "id": "11111111-2222-3333-4444-555555555555"
}

Состояние расчета

Получение состояния расчета по идентификатору расчета.

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

Идентификатор расчета.

Responses

Response Schema: application/json
required
object (tracedata)

Данные используемые для трассировки запросов.

progress
required
integer<int32> (calculation_progress) [ 0 .. 100 ]

Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов.

required
object (calculation_info)

Информация о расчете.

Response samples

Content type
application/json
{
  • "tracedata": {
    },
  • "progress": 52,
  • "info": {
    }
}

Отмена расчета

Отмена процесса планирования по идентификатору расчета.

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

Идентификатор расчета.

Responses

Response samples

Content type
application/json
{
  • "tracedata": {
    },
  • "message": "bad task data",
  • "schema_errors": [ ],
  • "logical_errors": [ ],
  • "warnings": [ ]
}

Получение результата

Получение результата расчета по идентификатору расчета.

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

Идентификатор расчета.

Responses

Response Schema: application/json
required
object (tracedata)

Данные используемые для трассировки запросов.

required
Array of objects (project) [ 0 .. 1000001 ] items

Производственный план. Последовательность выполнения работ.

required
object (plan_statistics)

Общая статистика.

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

Список предупреждений. В зависимости от флага calculation_settings.treat_warnings_as_errors - сработавшие проверки интерпретируются как ошибки или приводят к удалению некорректных данных из расчета.

object (unplanned_items)

Список незапланированных сущностей.

progress
required
integer<int32> (calculation_progress) [ 0 .. 100 ]

Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов.

required
object (calculation_info)

Информация о расчете.

Response Schema: application/json
required
object (tracedata)

Данные используемые для трассировки запросов.

required
Array of objects (project) [ 0 .. 1000001 ] items

Производственный план. Последовательность выполнения работ.

required
object (plan_statistics)

Общая статистика.

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

Список предупреждений. В зависимости от флага calculation_settings.treat_warnings_as_errors - сработавшие проверки интерпретируются как ошибки или приводят к удалению некорректных данных из расчета.

object (unplanned_items)

Список незапланированных сущностей.

progress
required
integer<int32> (calculation_progress) [ 0 .. 100 ]

Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов.

required
object (calculation_info)

Информация о расчете.

Response samples

Content type
application/json
{
  • "tracedata": {
    },
  • "project": [
    ],
  • "statistics": {
    },
  • "progress": 100,
  • "info": {
    },
  • "warnings": [ ]
}

Удаление результата

Удаление результата по идентификатору расчета.

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

Идентификатор расчета.

Responses

Response samples

Content type
application/json
{
  • "tracedata": {
    },
  • "message": "bad task data",
  • "schema_errors": [ ],
  • "logical_errors": [ ],
  • "warnings": [ ]
}

Валидация данных

Проверка данных перед отправкой на расчет.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Данные для расчета.

required
Array of objects (crop) [ 1 .. 501 ] items unique

Список сельскохозяйственных культур.

required
Array of objects (field) [ 1 .. 20001 ] items unique

Список полей, на которых произрастают сельскохозяйственные культуры.

Array of objects (elevator) [ 1 .. 501 ] items unique

Список токов - производственных объектов по подготовке и хранению зерна.

required
Array of objects (factory) [ 1 .. 501 ] items unique

Список заводов - потребителей зерна.

required
Array of objects (market) [ 1 .. 501 ] items unique

Список рынков.

required
Array of objects (movement_matrix) [ 1 .. 8040402 ] items unique

Матрица описывающая стоимость (в километрах и денежных единицах) перемещения зерна между объектами (в обе стороны). Если между объектами нет соответствующей записи в матрице - перемещение зерна между ними считается невозможным.

Array of objects (leftover) [ 0 .. 25001 ] items

Остатки зерна на текущий момент - в полях, хранилищах, сушилках.

required
object (plan_settings)

Настройки планирования.

Responses

Response Schema: application/json
required
object (tracedata)

Данные используемые для трассировки запросов.

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

Список предупреждений. В зависимости от флага calculation_settings.treat_warnings_as_errors - сработавшие проверки интерпретируются как ошибки или приводят к удалению некорректных данных из расчета.

Request samples

Content type
application/json
{
  • "crops": [
    ],
  • "fields": [
    ],
  • "elevators": [
    ],
  • "factories": [
    ],
  • "markets": [
    ],
  • "movement_matrix": [
    ],
  • "leftovers": [
    ],
  • "plan_settings": {
    }
}

Response samples

Content type
application/json
{
  • "tracedata": {
    },
  • "warnings": [ ]
}

Обрезка (SYNC)

Получение подзадачи из полной задачи на расчет.

Authorizations:
ApiKeyAuth
path Parameters
clip_key
required
string [ 1 .. 1024 ] characters
Example: crop_key_1

Ключ целевой сущности.

query Parameters
clip_strategy
string (clip_strategy)
Example: clip_strategy=CROP_WITH_TRANSIT_ELEVATORS

Стратегия обрезки входных данных:

  • CROP_WITH_ALL_ELEVATORS - из target_key берется ключ культуры, отфильтровываются все объекты (поля, элеваторы, заводы и остатки), которые могут принимать участие в обработке данной культуры
  • CROP_WITH_TRANSIT_ELEVATORS - аналогично CROP_WITH_ALL_ELEVATORS, но остаются только те элеваторы, от которых есть путь проезда одновременно до поля и до завода
Request Body schema: application/json
required

Данные для обрезки.

required
Array of objects (crop) [ 1 .. 501 ] items unique

Список сельскохозяйственных культур.

required
Array of objects (field) [ 1 .. 20001 ] items unique

Список полей, на которых произрастают сельскохозяйственные культуры.

Array of objects (elevator) [ 1 .. 501 ] items unique

Список токов - производственных объектов по подготовке и хранению зерна.

required
Array of objects (factory) [ 1 .. 501 ] items unique

Список заводов - потребителей зерна.

required
Array of objects (market) [ 1 .. 501 ] items unique

Список рынков.

required
Array of objects (movement_matrix) [ 1 .. 8040402 ] items unique

Матрица описывающая стоимость (в километрах и денежных единицах) перемещения зерна между объектами (в обе стороны). Если между объектами нет соответствующей записи в матрице - перемещение зерна между ними считается невозможным.

Array of objects (leftover) [ 0 .. 25001 ] items

Остатки зерна на текущий момент - в полях, хранилищах, сушилках.

required
object (plan_settings)

Настройки планирования.

Responses

Response Schema: application/json
required
Array of objects (crop) [ 1 .. 501 ] items unique

Список сельскохозяйственных культур.

required
Array of objects (field) [ 1 .. 20001 ] items unique

Список полей, на которых произрастают сельскохозяйственные культуры.

Array of objects (elevator) [ 1 .. 501 ] items unique

Список токов - производственных объектов по подготовке и хранению зерна.

required
Array of objects (factory) [ 1 .. 501 ] items unique

Список заводов - потребителей зерна.

required
Array of objects (market) [ 1 .. 501 ] items unique

Список рынков.

required
Array of objects (movement_matrix) [ 1 .. 8040402 ] items unique

Матрица описывающая стоимость (в километрах и денежных единицах) перемещения зерна между объектами (в обе стороны). Если между объектами нет соответствующей записи в матрице - перемещение зерна между ними считается невозможным.

Array of objects (leftover) [ 0 .. 25001 ] items

Остатки зерна на текущий момент - в полях, хранилищах, сушилках.

required
object (plan_settings)

Настройки планирования.

Request samples

Content type
application/json
{
  • "crops": [
    ],
  • "fields": [
    ],
  • "elevators": [
    ],
  • "factories": [
    ],
  • "markets": [
    ],
  • "movement_matrix": [
    ],
  • "leftovers": [
    ],
  • "plan_settings": {
    }
}

Response samples

Content type
application/json
{
  • "crops": [
    ],
  • "fields": [
    ],
  • "elevators": [
    ],
  • "factories": [
    ],
  • "markets": [
    ],
  • "movement_matrix": [
    ],
  • "leftovers": [
    ],
  • "plan_settings": {
    }
}

System

Системные функции. Вспомогательный функционал, общий для всех сервисов.

Проверка доступности

Проверка доступности сервиса.

Responses

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

Текущий показатель здоровья сервиса.
0 означает неготовность сервиса выполнять задачи.
1 означает полную готовность сервиса для выполнения задач.

Response samples

Content type
application/json
{
  • "health": 0.999
}

Получение версии сервиса

Получение версии сервиса.

Responses

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

Версия продукта. В рамках одной версии гарантируется совместимость общих структур данных между сервисами.
Изменение версии указывает на несовместимые с предыдущими версиями продукта (и, соответственно, всех сервисов) изменения.

minor
required
integer<int32> [ 0 .. 111 ]

Минорная версия сервиса. Изменение версии указывает на новую функциональность. Обновление имеет обратную совместимость в рамках мажорной версии сервиса.

build
required
string [ 1 .. 64 ] characters

Версия сборки.
Изменяется при обновлении документации и исправлении ошибок.

Response samples

Content type
application/json
{
  • "major": 4,
  • "minor": 4,
  • "build": "1754RC"
}

Получение документации

Получение файла с документацией на этот сервис.

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

Название файла.

Responses

Response Schema:
string (file_html)

Файл с данными в формате HTML.

Response samples

Content type
application/json
{
  • "resource_id": "resource_id",
  • "detail": {
    }
}