Skip to content

Автоматизированная система сбора производственных данных через REST API с последующей обработкой, агрегацией и формированием управленческих отчетов в Excel.

Notifications You must be signed in to change notification settings

AlishAzimov/Automated_Production_Data_Processing_REST_API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

Automated_Production_Data_Processing_REST_API

Автоматизированная система сбора производственных данных через REST API с последующей обработкой, агрегацией и формированием управленческих отчетов в Excel.

Все производственные данные формируются и хранятся на внутреннем сайте суточных рапортов.
Была поставлена задача автоматически собирать данные по бурению, формировать отчет по простоям (НПВ), анализировать причины простоев по регионам, заказчикам и ответственным подразделениям.

Скрипт реализован на Python с использованием REST API.


Цель проекта

  • Автоматизировать сбор производственных данных
  • Исключить ручную выгрузку отчетов
  • Формировать сводные отчеты по простоям (НПВ)
  • Сравнивать план и факт
  • Анализировать производственные показатели по регионам и заказчикам

Используемые технологии

  • Python
  • REST API (requests)
  • Pandas / NumPy
  • tqdm (прогресс-бар)
  • OpenPyXL (формирование Excel)
  • argparse (CLI запуск)

Архитектура решения

  1. Подключение к REST API через токен авторизации
  2. Пагинационная загрузка суточных рапортов
  3. Получение справочной информации (скважины, кусты, заказчики, регионы и т.д.)
  4. Нормализация JSON-структур
  5. Объединение данных в единый DataFrame
  6. Расчет производственных показателей
  7. Формирование сводных таблиц
  8. Автоматическая генерация Excel-отчета

Основной функционал

1. Получение данных через API

  • Загрузка суточных рапортов
  • Пагинация по страницам
  • Ограничение по дате
  • Загрузка справочных таблиц
  • Обработка ошибок HTTP

2. Сбор и объединение данных

  • Объединение фактических и плановых данных
  • Расчет проходки
  • Обогащение данных справочной информацией
  • Нормализация вложенных JSON (construction elements)

3. Расчет производственных показателей

Формируются:

  • Проходка
  • Календарное время
  • Время сплошного бурения
  • Время НПВ
  • Коммерческая скорость
  • Механическая скорость

4. Формирование сводных отчетов

  • Распределение часов НПВ по регионам
  • Распределение НПВ по заказчикам
  • Детализация по ответственным подразделениям
  • Сравнение план / факт
  • Итоговые агрегаты по кварталам

5. Автоматическая генерация Excel-файла

Создаются листы:

  • Свод по НПВ
  • Итоги план–факт
  • Распределение суточных рапортов
  • Распределение плана

Применяется автоформатирование:

  • оформление заголовков
  • автоматическая ширина колонок
  • аккуратная структура отчета

Пример запуска

python sr_reports.py 2025-08-01 2025-08-20

или

python sr_reports.py 2025-08-01

Если дата окончания не указана — используется текущая дата.


Основные сложности и решения

1. Пагинация и ограничение API

API возвращал данные постранично.
Реализована логика:

  • ограничение по максимальному количеству страниц
  • контроль даты последнего рапорта
  • остановка загрузки при достижении даты окончания

Это позволило избежать перегрузки и лишних запросов.


2. Разрозненная структура данных

Данные по скважинам, регионам, заказчикам и конструктивным элементам находились в разных endpoint.

Решение:

  • отдельные функции получения справочной информации
  • объединение через ключи
  • нормализация вложенных структур JSON
  • очистка лишних полей

3. Расчет проходки

Для расчета проходки использовалось смещение предыдущего значения забоя по каждой скважине.

Реализовано:

  • сортировка по дате
  • groupby + shift
  • контроль отрицательных значений
  • сохранение исходного порядка строк

4. Расчет НПВ

Требовалось:

  • выделить только НПВ
  • сгруппировать по регионам и заказчикам
  • детализировать по ответственным подразделениям

Решение:

  • использование pivot_table
  • многоуровневые индексы
  • формирование итоговых агрегатов

5. Формирование сложного Excel-отчета

Отчет должен был содержать:

  • несколько сводных блоков на одном листе
  • аккуратное форматирование
  • читабельную структуру

Реализовано:

  • универсальная функция записи блоков
  • динамическое определение ширины колонок
  • автоматическое форматирование заголовков

Примечание

В целях корпоративной безопасности реальные токены и производственные данные в публичной версии проекта скрыты.


Пример работы скрипта

photo_2026-02-17_15-48-10


Пример формированного отчета

photo_2026-02-17_16-42-56

photo_2026-02-17_16-45-14

About

Автоматизированная система сбора производственных данных через REST API с последующей обработкой, агрегацией и формированием управленческих отчетов в Excel.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages