Перейти к содержанию

API генерации отчетов

Микросервис генерации отчетов, входящий в состав решения по подсчету объектов, предоставляет возможность создавать отчеты на основе данных, собранных функциональным решением. Отчеты формируются асинхронно: запрос на генерацию отправляется через API, после чего микросервис обрабатывает данные и сохраняет результат в хранилище. В зависимости от типа отчета поддерживаются csv и xlsx форматы.

Структура объекта отчета и запроса на его создание универсальна, но типы отчетов (kind) и фильтры зависят от конкретного функционального решения и описаны в соответствующем разделе.

Объект отчета

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

{
    "name": "string", // (1)!
    "kind": "string", // (2)!
    "output_type": "xlsx", // (3)!
    "filters": {}, // (4)!
    "csv_settings": null, //(5)!
    "xlsx_settings": { // (6)!
        "image_type": "link", // (7)!
        "image_width": 0, // (8)!
        "default_row_width": 0, // (9)!
        "headers_format": { // (10)!
            "row_height": 0, // (11)!
            "bold": false, // (12)!
            "bottom": 0, // (13)!
            "border": 0, // (14)!
            "align": "center", // (15)!
            "valign": "vcenter", // (16)!
            "text_wrap": false, // (17)!
            "bg_color": "string", // (18)!
            "font_color": "string" // (19)!
        },
        "data_format": { // (20)!
            "row_height": 0, // (21)!
            "bold": false, // (22)!
            "bottom": 0, // (23)!
            "border": 0, // (24)!
            "align": "center", // (25)!
            "valign": "vcenter", // (26)!
            "text_wrap": false, // (27)!
            "bg_color": "string", // (28)!
            "font_color": "string" // (29)!
        }
    },
    "id": "string", // (30)!
    "created_at": "1970-01-01T00:00:00.000Z", // (31)!
    "updated_at": "1970-01-01T00:00:00.000Z", // (32)!
    "status": "created", // (33)!
    "status_msg": "string", // (34)!
    "org_id": "string", // (35)!
    "blober_path": "string" // (36)!
}
  1. Название отчета, задаваемое пользователем для удобства идентификации
  2. Тип отчета, уникальный для каждого функционального решения
  3. Формат вывода отчета.
  4. Фильтры для выборки данных. Структура и доступные ключи зависят от kind и описаны в разделе конкретного ФР
  5. Настройки для формата CSV.
  6. Настройки для формата Excel.
  7. Тип отображения изображений в Excel: "link", "image"
  8. Ширина изображения в пикселях. Применяется, если в отчете используются изображения
  9. Ширина строки по умолчанию в таблице Excel
  10. Форматирование заголовков таблицы в Excel
  11. Высота строки заголовков в пикселях
  12. Жирный шрифт для заголовков
  13. Толщина нижней границы заголовков
  14. Толщина общей границы заголовков
  15. Горизонтальное выравнивание текста в заголовках
  16. Вертикальное выравнивание текста в заголовках
  17. Перенос текста в заголовках
  18. Цвет фона заголовков в формате HEX
  19. Цвет шрифта заголовков в формате HEX
  20. Форматирование данных таблицы в Excel
  21. Высота строки данных в пикселях
  22. Жирный шрифт для данных
  23. Толщина нижней границы данных
  24. Толщина общей границы данных
  25. Горизонтальное выравнивание текста в данных
  26. Вертикальное выравнивание текста в данных
  27. Перенос текста в данных
  28. Цвет фона данных в формате HEX
  29. Цвет шрифта данных в формате HEX
  30. Уникальный идентификатор отчета, генерируемый системой
  31. Дата и время создания запроса в формате ISO 8601
  32. Дата и время последнего обновления статуса в формате ISO 8601
  33. Статус выполнения отчета: "created", "inprogress", "success", "error"
  34. Сообщение о статусе, например, описание ошибки
  35. Идентификатор организации, для которой формируется отчет
  36. Ссылка на готовый отчет в blob storage. Заполняется после завершения генерации
{
    "name": "string", // (1)!
    "kind": "string", // (2)!
    "output_type": "csv", // (3)!
    "filters": {}, // (4)!
    "csv_settings": { // (5)!
        "delimiter": "string" // (6)!
    },
    "xlsx_settings": null // (7)!
    "id": "string", // (8)!
    "created_at": "1970-01-01T00:00:00.000Z", // (9)!
    "updated_at": "1970-01-01T00:00:00.000Z", // (10)!
    "status": "created", // (11)!
    "status_msg": "string", // (12)!
    "org_id": "string", // (13)!
    "blober_path": "string" // (14)!
}
  1. Название отчета, задаваемое пользователем для удобства идентификации
  2. Тип отчета, уникальный для каждого функционального решения
  3. Формат вывода отчета. Поддерживаемые значения: "csv" (CSV-файл) или "xlsx" (Excel-файл)
  4. Фильтры для выборки данных. Структура и доступные ключи зависят от kind и описаны в разделе конкретного ФР
  5. Настройки для формата CSV.
  6. Разделитель полей в CSV-файле (например, ",", ";")
  7. Настройки для формата Excel.
  8. Уникальный идентификатор отчета, генерируемый системой
  9. Дата и время создания запроса в формате ISO 8601
  10. Дата и время последнего обновления статуса в формате ISO 8601
  11. Статус выполнения отчета: "created", "inprogress", "success", "error"
  12. Сообщение о статусе, например, описание ошибки
  13. Идентификатор организации, для которой формируется отчет
  14. Ссылка на готовый отчет в blob storage. Заполняется после завершения генерации

Поля csv_settings и xlsx_settings заполняются в зависимости от значения output_type. Если используется csv, то xlsx_settings может быть null, и наоборот.

Создание отчета

При создании отчета в системе формируется специальное сообщение для сервиса генерации отчетов функционального решения. Структура запроса аналогична объекту отчета, но содержит только поля, необходимые для запуска генерации:

{
    "name": "string", // (1)!
    "kind": "string", // (2)!
    "output_type": "xlsx", // (3)!
    "filters": {}, // (4)!
    "xlsx_settings": { // (5)!
        "image_type": "link", // (6)!
        "image_width": 0, // (7)!
        "default_row_width": 0, // (8)!
        "headers_format": { // (9)!
            ...
        },
        "data_format": { // (10)!
            ...
        }
    }
}
  1. Название отчета
  2. Тип отчета
  3. Формат вывода: "csv" или "xlsx"
  4. Фильтры данных
  5. Настройки для Excel
  6. Тип изображений: "link" или "image"
  7. Ширина изображения
  8. Ширина строки
  9. Формат заголовков
  10. Формат данных