🚀 Как работает система управления топливом

Полное руководство по алгоритмам, формулам и процессам

🚀 Руководство по быстрому старту

Начните работу за 5 минут

1

Загрузите данные

Импортируйте базовую информацию о станциях, депо и текущих остатках

📥 Импорт данных
2

Настройте параметры

Установите критические уровни и потребление для каждой станции

⚙️ Параметры
3

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

Система автоматически создаст рекомендации по заказам и трансферам

📊 Панель управления

✅ Чек-лист первичной настройки

Импортировать структуру станций и депо
Загрузить текущие остатки топлива
Настроить критические уровни
Установить параметры потребления
Добавить поставщиков
Проверить первые рекомендации

📅 Ежедневный рабочий процесс

Оптимальный рабочий процесс для ежедневной работы

👤 Рабочий процесс пользователя

🏠

Открытие дашборда

Проверка общей картины

👁️

Анализ критических зон

Оценка рисков

📋

Просмотр рекомендаций

Список задач

🖱️

Клик на рекомендацию

Выбор действия

Подтверждение заказа

Финализация

📊

Мониторинг выполнения

Контроль процессов

🌅 Утро (9:00-10:00)

Проверка панели управления

  • ✓ Уровни заполнения станций
  • ✓ Статус системы
  • ✓ Критические зоны

Срочные задачи

  • 🚨 CATASTROPHE
  • ⚠️ CRITICAL
  • ⚡ MUST ORDER
⏱️ ~15 минут
☀️ День (12:00-14:00)

Создание заказов

  • ✓ Нажмите на рекомендацию
  • ✓ Проверьте количество
  • ✓ Подтвердите заказ

Выполнение трансферов

  • ✓ Выберите донора
  • ✓ Подтвердите количество
  • ✓ Проверьте заказы
⏱️ ~30 минут
🌆 Вечер (17:00-18:00)

Проверка выполнения

  • ✓ Заказы на завтра
  • ✓ Текущие статусы
  • ✓ Нет блокировок

Финальная проверка

  • ✓ Все критические закрыты?
  • ✓ Нет новых КАТАСТРОФ?
  • ✓ План готов?
⏱️ ~10 минут

⏱️ Общее время

~1 час в день

для управления всеми станциями

🎯 Обзор системы

Комплексная платформа для управления топливными запасами железнодорожных станций с функциями прогнозирования, автоматических рекомендаций и управления заказами.

📊

Прогнозирование

Математические модели для расчета будущих уровней топлива с учетом потребления и поставок

🤖

Автоматические рекомендации

ИИ-алгоритмы определяют когда и сколько топлива нужно заказать или перебросить

🔄

Управление процессами

Полный цикл от прогнозирования до выполнения заказов с мониторингом статусов

📊 Система прогнозирования топлива

Математические модели и формулы для точного расчета будущих уровней топлива

🧮 Основные формулы

Конвертация литров в тонны

Тонны = Литры ÷ 1000 × Плотность

Формула прогноза

Уровень_день_N = Уровень_день_(N-1) - Потребление_день_N + Поставки_день_N

⚗️ Плотности топлива

Автобензины

0.75 кг/л

🚛

ДТ

0.84 кг/л

🔥

Газ

0.55 кг/л

📅 Вариации потребления по дням недели

⚠️

Функция временно отключена

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

📊 Текущий режим: Стандартное потребление (100% каждый день)

🎯 Планы: Создание таблицы consumption_multipliers для настройки коэффициентов через интерфейс

🛒 Система рекомендаций по заказам

Интеллектуальные алгоритмы определения необходимости и количества заказов

🚨 Уровни срочности

🚨

CATASTROPHE

≤ 7 дней до критической ситуации

⚠️

CRITICAL

8-15 дней до критической ситуации

MUST ORDER

16-29 дней до критической ситуации

NORMAL

30+ дней до критической ситуации

🧠 Гибридная логика расчета количества

🔴 Критическая ситуация

Уровень_после_доставки ≤ Критический_уровень

Заказываем: Критический_уровень - Уровень_после_доставки

📝 Пояснение формулы:
Уровень_после_доставки = сколько топлива будет на станции, когда придет новый заказ
Критический_уровень = минимальный безопасный уровень топлива
Разница = сколько именно нужно заказать, чтобы подняться до безопасного уровня

Пример: Если через 40 дней будет 200 тонн, а критический уровень 300 тонн → заказываем 300 - 200 = 100 тонн

🔵 Профилактическая ситуация

Уровень_после_доставки > Критический_уровень

Заказываем до 80% от максимальной емкости

📅 Как календарь рассчитывает "Уровень_после_доставки"

1
Расчет времени доставки

Время_доставки = Дни_поставщика + Буфер_безопасности (14 дней)
Например: 26 дней + 14 дней = 40 дней до получения заказа

2
Расчет потребления за период

Потребление_за_период = Ежедневное_потребление × Время_доставки
Например: 100 тонн/день × 40 дней = 4000 тонн будет потрачено

3
Учет заказов в дороге

Система проверяет ВСЕ заказы, которые придут РАНЬШЕ времени доставки нового заказа.
Если есть заказы в дороге - они добавляются к текущему уровню перед расчетом.

4
Итоговый расчет

Уровень_после_доставки = (Текущий_уровень + Заказы_в_дороге) - Потребление_за_период
Это и есть ключевое значение для принятия решения!

💡 Пример расчета:

Исходные данные:

• Текущий уровень: 500 тонн

• Ежедневное потребление: 100 тонн/день

• Заказы в дороге: 200 тонн (придут через 10 дней)

• Время доставки нового заказа: 40 дней

• Критический уровень: 300 тонн

Расчет:

1. Через 10 дней: 500 - (100×10) + 200 = 600 тонн

2. Через 40 дней: 600 - (100×30) = 300 тонн

3. Уровень_после_доставки = 300 тонн

4. 300 ≤ 300 (критический уровень) → КРИТИЧЕСКАЯ СИТУАЦИЯ!

🚛 Система трансферов между станциями

Интеллектуальная логика переброски топлива между станциями

🔍 Условия для трансфера между станциями

🚨 Уже критическая ситуация

Текущий_уровень < Критический_уровень

Трансфер нужен немедленно для предотвращения остановки работы станции

⚠️ Прогноз показывает критическую ситуацию

Дни_до_критического < Дни_до_ближайшей_поставки

Поставка придет слишком поздно - нужен трансфер

🔄 Процесс трансфера

1
Расчет количества трансфера

Система рассчитывает минимальное количество топлива, необходимое для того, чтобы станция с критическим уровнем "дожила" до следующей поставки

2
Выполнение трансфера

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

💡 Пример расчета:

Станция А (критическая): получает трансфер 50 тонн

Станция Б (донор): отдает 50 тонн

Результат: критическая ситуация решена, дополнительные заказы создаются только при необходимости

🛡️ Логика безопасности донора

1

Проверка текущего уровня

Донор должен иметь топливо выше критического уровня

2

60-дневный прогноз без трансфера

Строим прогноз с учетом всех заказов донора

3

Проверка запаса безопасности

Минимальный уровень в прогнозе должен быть выше критического + 10%

4

Безопасная сумма трансфера

Берем только 40% от безопасного излишка для защиты от непредвиденных ситуаций

🖥️ Пользовательский интерфейс

Интуитивный интерфейс для управления всеми процессами

📊 Компоненты дашборда

📈

График прогноза

Визуализация уровня топлива по дням с цветовой индикацией статусов

📋

Таблица рекомендаций

Приоритизированный список задач с возможностью быстрого выполнения

📅

Календарь заказов

Визуализация поставок по датам с детальной информацией

👤 Рабочий процесс пользователя

🏠
Открытие дашборда
👁️
Анализ критических зон
📋
Просмотр рекомендаций
🖱️
Клик на рекомендацию
Подтверждение заказа
📊
Мониторинг выполнения

🔄 Детальные процессы

Пошаговое описание всех алгоритмов и процессов

📝 Процесс создания заказа

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

Проверка обязательных полей: станция, тип топлива, количество, поставщик

2. Расчет даты доставки

Дата_заказа + Время_доставки_поставщика = Дата_доставки

3. Конвертация единиц

Тонны × 1000 ÷ Плотность_топлива = Литры

4. Сохранение в базу

Заказ создается со статусом 'planned'

🚛 Процесс выполнения трансфера

Компенсирующий заказ для донора

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

Заказ для получателя

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

🏷️ Управление статусами заказов

📋
planned
Запланированный
confirmed
Подтвержденный
🚛
in_transit
В пути
📦
upcoming
Ожидается
🎯
delivered
Доставлен

⚙️ Параметры системы

Что можно настраивать и где это делать

🎛️ Основные настройки

🏗️ Уровни запасов

Настройка критических, минимальных и максимальных уровней топлива для каждой станции

Где: Страница "Параметры" → вкладка "Остатки и продажи"

Что: Критический, минимальный, максимальный уровни (в % от емкости)

Как: Ввод в процентах, система автоматически пересчитывает в литры

📊 Потребление топлива

Установка ежедневного потребления топлива по станциям и депо

Где: Страница "Параметры" → вкладка "Consumption"

Что: Литры в день для каждого депо и типа топлива

Как: Ввод числового значения, система суммирует по станциям

🏭 Поставщики

Настройка времени доставки и других параметров поставщиков

Где: Страница "Параметры" → вкладка "Suppliers"

Что: Время доставки в днях, контактная информация

Как: Редактирование существующих или добавление новых поставщиков

⛽ Типы топлива

Настройка плотности топлива для правильного пересчета литры ↔ тонны

Где: Страница "Параметры" → вкладка "Типы топлива"

Что: Плотность топлива в кг/литр

Как: Изменение плотности влияет на все расчеты в тоннах

🏗️ Управление объектами системы

🚂 Железнодорожные станции

Создание и редактирование станций в системе

Где: Параметры → вкладка "Железнодорожные станции"

Создание: Кнопка "Добавить станцию" → заполнение формы

Редактирование: Кнопка "Edit" в таблице станций

Поля: Название, регион, код станции

⛽ Топливные депо

Управление депо и их параметрами

Где: Параметры → вкладка "Депо"

Создание: Кнопка "Добавить депо" → привязка к станции

Редактирование: Кнопка "Редактировать" в таблице депо

Поля: Название депо, станция, емкость

🔬 Виды топлива

Добавление и настройка типов топлива

Где: Параметры → вкладка "Типы топлива"

Создание: Кнопка "Добавить тип топлива" → ввод данных

Редактирование: Кнопка "Редактировать" в таблице типов

Поля: Название, плотность, единицы измерения

📈 Влияние параметров на систему

1

Критический уровень

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

2

Потребление топлива

Основной параметр для прогнозирования. Влияет на все расчеты: когда заказывать, сколько заказывать, нужен ли трансфер.

3

Время доставки

Определяет, насколько заранее нужно заказывать топливо. Влияет на расчет "Уровень_после_доставки".

4

Плотность топлива

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

🔧 Управление параметрами

📝

Редактирование

Все параметры можно редактировать через веб-интерфейс в разделе "Параметры"

💾

Сохранение

Изменения сохраняются в базу данных и сразу влияют на все расчеты системы

🔄

Обновление

Рекомендации и прогнозы обновляются автоматически при изменении параметров

❓ Часто задаваемые вопросы

Ответы на самые популярные вопросы

🔧 Решение проблем

Что делать если что-то пошло не так

Нет рекомендаций в таблице

Таблица "Рекомендуемые задачи" пустая

✓ Проверьте:

  • • Загружены ли текущие остатки топлива
  • • Установлены ли критические уровни
  • • Есть ли потребление в параметрах
  • • Нажмите "Обновить данные" на панели управления

График прогноза пустой

График прогноза не отображается

✓ Решение:

  • • Используйте фильтры: выберите конкретную станцию
  • • Проверьте параметры потребления (должны быть >0)
  • • Убедитесь что есть исторические данные
  • • Попробуйте другой период (30/90 дней)

Не могу выполнить трансфер

Кнопка "Выполнить трансфер" недоступна

✓ Возможные причины:

  • • У донора недостаточно избытка топлива
  • • Донор сам находится близко к критическому
  • • Выберите другую станцию-донора из списка
  • • Проверьте 60-дневный прогноз донора

Ошибка при импорте Excel

Файл не загружается

✓ Проверьте формат:

  • • Файл должен быть .xlsx или .csv
  • • Первая строка = заголовки колонок
  • • Нет пустых строк в начале файла
  • • Названия колонок на русском или английском

💬 Нужна помощь?

Если проблема не решена, свяжитесь с технической поддержкой

⚙️ Технические детали

Архитектура системы и структура данных

🗄️ Структура базы данных

Основные таблицы:

  • 🏗️ railway_stations - Железнодорожные станции
  • depots - Топливные депо
  • 🔬 fuel_types - Типы топлива с плотностями
  • 📊 stock_levels - Текущие уровни запасов
  • 📈 sales_params - Параметры потребления
  • 📅 orders_calendar - Календарь заказов
  • 🏭 suppliers - Поставщики
  • ⏱️ delivery_times - Времена доставки
  • 🚛 transfers - Трансферы между станциями

Ключевые связи:

• Станция → Множество депо
• Депо → Множество типов топлива
• Заказ → Станция + Поставщик + Тип топлива
• Поставщик → Времена доставки по станциям
• Трансфер → Станция-донор + Станция-получатель

🔌 API Endpoints

Основные API:

GET /api/get-forecast-data.php - Прогноз топлива
GET /api/get-order-recommendations.php - Рекомендации заказов
GET /api/get-orders-data.php - Данные заказов
POST /api/create-order.php - Создание заказа
POST /api/execute-transfer.php - Выполнение трансфера

Параметры запросов:

station_id - ID станции
fuel_type_id - ID типа топлива
days - Количество дней прогноза
region_id - ID региона
quantity - Количество топлива
supplier_id - ID поставщика