VRt.Agro [AG] (7.9.2527)

Veeroute Support Team: servicedesk@veeroute.com License: 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)

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

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

Название набора данных. Техническое поле, не влияющее на расчет.

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)

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

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

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

required
object (calculation_info)

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

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Планирование (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)

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

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

Название набора данных. Техническое поле, не влияющее на расчет.

Responses

Response Schema: application/json
required
object (tracedata)

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

process_code
required
string <uuid> (process_code)
Example: "11111111-2222-3333-4444-555555555555"

Код процесса - идентификатор расчета.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

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

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

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

Уникальный идентификатор процесса.

Responses

Response samples

Content type
application/json
{
}

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

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

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

Уникальный идентификатор процесса.

Responses

Response Schema: application/json
required
object (tracedata)

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

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

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

required
object (calculation_info)

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

Response Schema: application/json
required
object (tracedata)

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

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

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

required
object (calculation_info)

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

Response samples

Content type
application/json
{
}

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

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

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
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)

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

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

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

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)

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

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

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

required
object (calculation_info)

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

Response samples

Content type
application/json
{
}

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

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

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

Уникальный идентификатор процесса.

Responses

Response samples

Content type
application/json
{
}

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

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

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)

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

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

Название набора данных. Техническое поле, не влияющее на расчет.

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
{
}

Response samples

Content type
application/json
{
}

Обрезка (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)

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

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

Название набора данных. Техническое поле, не влияющее на расчет.

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)

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

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

Название набора данных. Техническое поле, не влияющее на расчет.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

System

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

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

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

Responses

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

Текущий показатель здоровья сервиса.

  • 0.0 означает неготовность сервиса выполнять задачи.
  • 1.0 означает полную готовность сервиса для выполнения задач.

Response samples

Content type
application/json
{
}

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

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

Responses

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

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

minor
required
integer <int32> [ 0 .. 111 ]
Example: "5"

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

build
required
string [ 1 .. 64 ] characters
Example: "3754RC"

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

Response samples

Content type
application/json
{
}

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

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

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
{
}