Отчеты API¶
Раздел описывает методы для получения данных отчетности и бизнес-аналитики.
Получение заказов для BI¶
Метод возвращает данные заказов для системы бизнес-аналитики экспедитора.
Используйте метод, когда внешняя BI-система должна регулярно забирать измененные заказы из CARGO.RUN Загрузки и строить витрины, отчеты или аналитические показатели.
Query-параметры¶
| Параметр | Описание |
|---|---|
$filter |
Фильтр по полям модели. Для инкрементальной загрузки используйте фильтр по updatedAt |
$orderby |
Сортировка по полям модели. Для стабильной инкрементальной выгрузки рекомендуется updatedAt asc |
$top |
Ограничение количества записей |
$skip |
Смещение |
Пример запроса¶
Для регулярной синхронизации рекомендуется дополнительно сортировать результат по updatedAt asc:
GET /api/Orders/GetListForBI?$filter=updatedAt ge 2026-07-01T00:00:00Z&$orderby=updatedAt asc&$top=30&$skip=0
Правило инкрементальной загрузки¶
После обработки страницы BI-система должна сохранить самую позднюю дату updatedAt из полученных заказов и использовать ее в следующем запросе.
Не используйте время выполнения запроса как контрольную точку. Если взять текущее время клиента или сервера, можно пропустить заказ, который был обновлен до завершения запроса, но вернулся на текущей странице позже из-за пагинации или задержки обработки.
Рекомендуемый алгоритм:
- Выполнить запрос с фильтром по последней сохраненной контрольной точке
updatedAt. - Обработать все заказы из
data. - Найти максимальное значение
updatedAtсреди полученных заказов. - Сохранить это значение как новую контрольную точку.
- Использовать сохраненное значение в следующем запросе.
Если используется оператор ge, заказ с updatedAt, равным контрольной точке, может вернуться повторно. BI-система должна безопасно обрабатывать такие дубли, например по паре id + updatedAt.
Ответ¶
Метод возвращает объект:
| Поле | Тип | Описание |
|---|---|---|
data |
OrderListForBIModel[] |
Массив заказов |
totalCount |
long? |
Общее количество записей, подходящих под фильтр |
Если данных нет, data может быть пустым массивом.
Поля элемента data[]¶
| Поле | Описание | Тип |
|---|---|---|
id |
ID заказа | long |
externalId |
Внешний ID заказа | string |
externalNumber |
Внешний номер заказа | string |
loadPlanEnterTime |
Плановое время прибытия на погрузку | DateTimeOffset |
loadMaxPlanEnterTime |
Максимально допустимое время прибытия на погрузку | DateTimeOffset? |
unloadPlanEnterTime |
Плановое время прибытия на выгрузку | DateTimeOffset |
unloadMaxPlanEnterTime |
Максимально допустимое время прибытия на выгрузку | DateTimeOffset? |
orderStatus |
Статус заказа | OrderStatus |
externalOrderStatus |
Внешний статус заказа | ExternalOrderStatus? |
sourceType |
Источник заказа | SourceType |
loadsParserSourceType |
Источник из сервиса парсинга | SourceType? |
counterpartyId |
ID контрагента | long? |
counterpartyName |
Наименование контрагента | string |
counterpartyInn |
ИНН контрагента | string |
distanceKm |
Расстояние, км | double? |
regionFromId |
ID региона отправления | long? |
regionFromName |
Наименование региона отправления | string |
regionToId |
ID региона назначения | long? |
regionToName |
Наименование региона назначения | string |
locationFrom |
Локация отправления | string |
locationTo |
Локация назначения | string |
districtFrom |
Район отправления | string |
districtTo |
Район назначения | string |
trailerTypes |
Список типов прицепов | SelectListModel[] |
trailerTypes.id |
ID типа прицепа | long |
trailerTypes.name |
Наименование типа прицепа | string |
cargoTypeId |
ID типа груза | long? |
cargoTypeName |
Наименование типа груза | string |
volume |
Объем | double? |
cargoWeight |
Вес груза | double? |
orderCost |
Стоимость заказа | double? |
isGuaranteed |
Признак гарантированного заказа | bool? |
createdById |
ID пользователя, создавшего заказ | long |
createdByName |
Имя/ФИО пользователя, создавшего заказ | string |
authorId |
ID автора заказа | long? |
authorName |
Имя/ФИО автора заказа | string |
createdAt |
Дата создания | DateTimeOffset |
updatedAt |
Дата обновления | DateTimeOffset |
respondedUserId |
ID пользователя, который откликнулся | long? |
respondedUserName |
Имя/ФИО пользователя, который откликнулся | string |