Files
python_parser/python_parser/adapters/parsers/README_svodka_pm.md
2025-09-03 11:35:04 +03:00

2.9 KiB
Raw Blame History

Парсер Сводки ПМ

Описание

Парсер для обработки сводок ПМ (план и факт) с поддержкой множественных геттеров. Наследуется от ParserPort и реализует архитектуру hexagonal architecture.

Доступные геттеры

1. get_single_og

Получение данных по одному ОГ из сводки ПМ.

Обязательные параметры:

  • id (str): ID ОГ (например, "SNPZ", "KNPZ")
  • codes (list): Список кодов показателей (например, [78, 79, 81, 82])
  • columns (list): Список столбцов для извлечения (например, ["ПП", "БП", "СЭБ"])

Необязательные параметры:

  • search (str): Значение для поиска в столбцах

Пример использования:

parser = SvodkaPMParser()
params = {
    "id": "SNPZ",
    "codes": [78, 79, 81, 82],
    "columns": ["ПП", "БП", "СЭБ"]
}
result = parser.get_value("get_single_og", params)

2. get_total_ogs

Получение данных по всем ОГ из сводки ПМ.

Обязательные параметры:

  • codes (list): Список кодов показателей
  • columns (list): Список столбцов для извлечения

Необязательные параметры:

  • search (str): Значение для поиска в столбцах

Пример использования:

parser = SvodkaPMParser()
params = {
    "codes": [78, 79, 81, 82],
    "columns": ["ПП", "БП", "СЭБ"]
}
result = parser.get_value("get_total_ogs", params)

Поддерживаемые столбцы

  • ПП, БП: Данные из файлов плана
  • ТБ, СЭБ, НЭБ: Данные из файлов факта

Структура файлов

Парсер ожидает следующую структуру файлов:

  • data/pm_fact/svodka_fact_pm_{OG_ID}.xlsx или .xlsm
  • data/pm_plan/svodka_plan_pm_{OG_ID}.xlsx или .xlsm

Где {OG_ID} - это ID ОГ (например, SNPZ, KNPZ и т.д.)

Формат результата

Результат возвращается в формате JSON со следующей структурой:

{
  "ПП": {
    "78": 123.45,
    "79": 234.56
  },
  "БП": {
    "78": 111.11,
    "79": 222.22
  },
  "СЭБ": {
    "78": 333.33,
    "79": 444.44
  }
}

Обработка ошибок

  • Если файл плана/факта не найден, соответствующие столбцы будут пустыми
  • Если код показателя не найден, возвращается 0
  • Валидация параметров выполняется автоматически