Skip to main content

Техническое задание на разработку Системы планирования и диспетчеризации поставок жидкого цемента «CementFlow»

1. ВВЕДЕНИЕ

1.1. Наименование проекта

Система автоматизированного планирования и диспетчеризации поставок жидкого цемента «CementFlow» с поддержкой каскадного перерасчёта.

1.2. Краткое описание

Разрабатываемая система предназначена для оптимального распределения грузовиков-миксеров для выполнения заказов на доставку жидкого цемента в течение 12-часовой рабочей смены. Система обеспечивает автоматическое планирование поставок, мониторинг исполнения в реальном времени и интеллектуальный перерасчёт расписания при возникновении сбоев (поломки техники, ДТП, задержки).

1.3. Область применения

Система предназначена для использования:

  • Бетонными заводами и производственными комплексами

  • Логистическими компаниями, специализирующимися на перевозке строительных материалов

  • Диспетчерскими службами строительных компаний

1.4. Цели разработки

  1. Повышение эффективности использования парка машин на 25-30%

  2. Снижение простоев грузовиков-миксеров на 35-40%

  3. Минимизация потерь бетона из-за превышения времени жизни

  4. Обеспечение 95% своевременности доставок

  5. Сокращение времени реакции на сбои с 30-60 минут до 5-10 минут

2. ОБЩИЕ ТРЕБОВАНИЯ

2.1. Функциональное назначение

Система должна обеспечивать:

2.1.1. Основные функции:

  1. Планирование смены - формирование оптимального расписания поставок на 12-часовую смену

  2. Распределение грузовиков - автоматический подбор машин для выполнения поставок

  3. Мониторинг исполнения - отслеживание статуса поставок в реальном времени

  4. Каскадный перерасчёт - автоматическое перепланирование при возникновении сбоев

  5. Визуализация - отображение расписания в виде интерактивной диаграммы Ганта

2.1.2. Вспомогательные функции:

  1. Управление справочниками (машины, водители, клиенты, объекты)

  2. Формирование отчётности и аналитика

  3. Интеграция с внешними системами (GPS, ERP, CRM)

  4. Уведомления и оповещения

2.2. Пользователи системы



Роль пользователяОсновные функцииДоступ
ДиспетчерПолный доступ ко всем функциям планирования и мониторингаВеб-интерфейс
Руководитель сменыПросмотр, утверждение расписания, анализ эффективностиВеб-интерфейс
ВодительПолучение заданий, отметка о выполнении этапов, сообщение о проблемахМобильное приложение
АдминистраторУправление пользователями, настройка системы, техническая поддержкаВеб-интерфейс
Клиент (опционально)Просмотр статуса своего заказа, получение уведомленийВеб-портал/SMS

3. ТЕХНОЛОГИЧЕСКИЕ ТРЕБОВАНИЯ

3.1. Архитектурные требования

  1. Микросервисная архитектура с разделением на независимые модули

  2. Событийно-ориентированная архитектура для обработки событий в реальном времени

  3. REST API для интеграции с внешними системами

  4. Веб-сокеты для обновления интерфейса в реальном времени

  5. Поддержка горизонтального масштабирования

3.2. Технологический стек

КомпонентТехнологии
Бэкенд.NET 8, C# 12, ASP.NET Core
ФронтендReact 18 + TypeScript, Redux Toolkit/ Svelte SvelteKit + TypeScript
База данныхPostgreSQL 16 (основная), Redis 7 (кэш)
Очереди сообщенийRabbitMQ или Azure Service Bus
КонтейнеризацияDocker, Docker Compose
ОркестрацияKubernetes (опционально)
МониторингGrafana, Prometheus
CI/CDGitLab CI/CD или GitHub Actions

3.3. Требования к производительности



ПараметрТребование
Время отклика API≤ 200 мс для 95% запросов
Время планирования смены≤ 30 секунд для 100 заказов
Время каскадного перерасчёта≤ 10 секунд
Поддержка одновременных пользователей≥ 50 диспетчеров
Доступность системы99.5% (SLA)
Время восстановления≤ 15 минут

4. ДЕТАЛЬНОЕ ОПИСАНИЕ ФУНКЦИОНАЛА

4.1. Модуль управления заказами

4.1.1. Создание и редактирование заказов

  • Форма создания заказа с полями:

    • Клиент (выбор из справочника)

    • Объект доставки (адрес, контактное лицо, телефон)

    • Объём бетона (м³)

    • Марка бетона, подвижность

    • Желаемое время доставки (окно или точное время)

    • Приоритет (нормальный, высокий, критический)

    • Особые требования (непрерывная заливка, бетононасос и т.д.)

4.1.2. Автоматическое разбиение заказов на поставки

  • Алгоритм разбиения учитывает:

    • Вместимость доступных машин

    • Требование непрерывной заливки

    • Оптимальное заполнение миксера (минимизация остатков)

4.2. Модуль планирования

4.2.1. Алгоритм первоначального распределения

Входные данные:

  • Список всех заказов смены

  • Парк доступных машин с характеристиками

  • Расписание работы завода

Этапы алгоритма:

  1. Группировка заказов по приоритету и временным окнам

  2. Разбиение на поставки с учётом непрерывности заливки

  3. Распределение по машинам по критериям:

    • Минимизация порожнего пробега

    • Максимальное использование вместимости

    • Учёт приоритета клиента

  4. Расчёт временных окон с учётом:

    • Времени жизни бетона (90-120 минут)

    • Времени на погрузку, путь, разгрузку, возврат

    • Буфера на форс-мажор (10-15%)

  5. Формирование диаграммы Ганта

4.2.2. Критерии выбора машины

Формула оценки приоритета машины:

Score = (W1 × DistanceScore) + (W2 × CapacityUtilization) + (W3 × TimeWindowFit) + PriorityBonus

 

где:

  • DistanceScore - оценка расстояния до завода (ближе = лучше)

  • CapacityUtilization - коэффициент заполнения миксера

  • TimeWindowFit - соответствие временному окну клиента

  • PriorityBonus - бонус за приоритет клиента

  • W1, W2, W3 - весовые коэффициенты (настраиваемые)

4.3. Модуль каскадного перерасчёта

4.3.1. Типы обрабатываемых событий

  1. Поломка машины - машина выходит из строя

  2. ДТП - авария с участием машины

  3. Задержка на разгрузке - превышение планового времени разгрузки

  4. Пробки - увеличение времени в пути

  5. Изменение заказа - корректировка клиентом

  6. Новая доступная машина - ввод машины в эксплуатацию

4.3.2. Алгоритм перерасчёта

Шаг 1: Анализ воздействия

  • Определение всех затронутых поставок

  • Оценка степени влияния на график

Шаг 2: Локализация проблемы

  • Ограничение области перерасчёта ближайшими поставками

  • Сохранение неизменными поставок, которые не затрагиваются

Шаг 3: Перераспределение

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

  • Использование резервного времени и буферов

  • Приоритизация критических поставок

Шаг 4: Каскадный сдвиг

  • Последовательный сдвиг зависимых поставок

  • Контроль накопления задержек

  • Проверка соблюдения времени жизни бетона

Шаг 5: Эскалация

  • Если автоматическое решение невозможно → уведомление диспетчера

  • Предложение вариантов для ручного выбора

4.4. Модуль визуализации

4.4.1. Диаграмма Ганта

Требования к отображению:

  • По горизонтали - временная шкала смены (12 часов)

  • По вертикали - список машин

  • Для каждой машины - цветные блоки поставок

  • Цветовая индикация статуса:

    • Зелёный - выполняется по плану

    • Жёлтый - есть риски/небольшие отклонения

    • Красный - критические отклонения/просрочки

    • Серый - завершено

Интерактивные возможности:

  • Drag-and-drop для ручного перемещения поставок

  • Масштабирование (часы/минуты)

  • Фильтрация по клиентам, объектам, статусам

  • Подсказки при наведении (детали поставки)

4.4.2. Карта перемещений

  • Отображение местоположения машин в реальном времени

  • Маршруты движения

  • Точки погрузки и разгрузки

  • Пробки и дорожная обстановка (интеграция с картами)

4.5. Модуль интеграций

4.5.1. Внешние системы

СистемаТип интеграцииНазначение
GPS/телематикаREST API/WebSocketОтслеживание местоположения, статуса машин
Картографические сервисыAPI (Яндекс.Карты/Google Maps)Расчёт маршрутов и времени в пути
ERP системаREST APIИмпорт заказов, экспорт выполненных работ
CRM системаREST APIПолучение информации о клиентах
СМС-сервисREST APIУведомления водителей и клиентов
Погодный сервисREST APIУчёт погодных условий в планировании

5. ТРЕБОВАНИЯ К ДАННЫМ

5.1. Структура базы данных

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

  1. Orders - заказы клиентов

  2. Deliveries - поставки (части заказов)

  3. Trucks - грузовики-миксеры

  4. Drivers - водители

  5. Clients - клиенты

  6. ConstructionSites - объекты строительства

  7. ScheduleSlots - слоты в расписании

  8. Events - события системы

  9. RoutePoints - точки маршрутов

5.1.2. Требования к хранению:

  • История изменений расписания - 90 дней

  • Архив выполненных поставок - 3 года

  • Логи событий - 30 дней

  • Оперативные данные - в кэше Redis

5.2. Форматы данных

5.2.1. JSON API форматы:

{
  "order": {
    "id": "ORD-2024-001",
    "client": {
      "id": "CL-001",
      "name": "ООО СтройГрад",
      "priority": "high"
    },
    "site": {
      "address": "ул. Строителей, 15",
      "coordinates": {"lat": 55.7558, "lng": 37.6176}
    },
    "details": {
      "volume": 15.0,
      "concreteGrade": "M300",
      "slump": 15,
      "requiredWindow": {
        "start": "2024-01-15T09:00:00",
        "end": "2024-01-15T12:00:00"
      },
      "continuousPouring": true,
      "maxInterval": "PT30M"
    }
  }
}

6. ТРЕБОВАНИЯ К ИНТЕРФЕЙСУ

6.1. Веб-интерфейс диспетчера

6.1.1. Основной экран:

  • Левая панель - список заказов с фильтрами

  • Центральная область - диаграмма Ганта

  • Правая панель - детали выбранного элемента, уведомления

  • Верхняя панель - управление сменой, поиск, настройки

6.1.2. Экран планирования:

  • Календарь смен

  • Форма массового планирования

  • Инструменты оптимизации

  • Предпросмотр нагрузки на завод

6.1.3. Экран мониторинга:

  • Карта с движением машин

  • Панель статусов в реальном времени

  • Графики загрузки и эффективности

  • Оповещения о проблемах

6.2. Мобильное приложение водителя

6.2.1. Основные экраны:

  1. Задания на день - список поставок

  2. Текущее задание - детали, карта маршрута

  3. Отметки о выполнении - кнопки для отметки этапов

  4. Сообщения - связь с диспетчером

  5. Проблемы - форма сообщения о сбоях

6.2.2. Функционал:

  • Авторизация по QR-коду или логину

  • Офлайн-работа с последующей синхронизацией

  • GPS-трекинг

  • Фотоотчётность (по требованию)

7. ТРЕБОВАНИЯ К НАДЁЖНОСТИ И БЕЗОПАСНОСТИ

7.1. Надёжность

  • Резервирование всех критических компонентов

  • Автоматическое восстановление после сбоев

  • Ежедневное резервное копирование с хранением 7 дней

  • Мониторинг доступности и производительности

7.2. Безопасность

  • Аутентификация по логину/паролю + 2FA для администраторов

  • Ролевая модель доступа (RBAC)

  • HTTPS для всех соединений

  • Защита от DDoS атак

  • Аудит действий пользователей

  • Шифрование конфиденциальных данных

8. ТРЕБОВАНИЯ К РАЗВЁРТЫВАНИЮ И ЭКСПЛУАТАЦИИ

8.1. Развёртывание

  • Контейнерная поставка всех компонентов

  • Автоматическое развёртывание через CI/CD

  • Документация по установке и настройке

  • Миграционные скрипты для обновлений

8.2. Эксплуатация

  • Техническая поддержка 24/7 для критических инцидентов

  • Обновления - 1 раз в месяц (патчи), 1 раз в квартал (версии)

  • Мониторинг - дашборды, алертинг, логирование

  • Резервное копирование - автоматическое, ежедневно

9. ЭТАПЫ РАЗРАБОТКИ

Этап 1: Прототип и архитектура (1-2 месяца)

  • Разработка архитектуры

  • Создание прототипа алгоритмов планирования

  • Проектирование БД и API

  • Базовый веб-интерфейс

Этап 2: Ядро системы (3-4 месяца)

  • Реализация основных модулей

  • Алгоритмы распределения и перерасчёта

  • Веб-интерфейс диспетчера

  • Интеграция с GPS/картами

Этап 3: Доработка и тестирование (2-3 месяца)

  • Мобильное приложение для водителей

  • Расширенная аналитика

  • Стресс-тестирование

  • Пилотная эксплуатация

Этап 4: Внедрение и поддержка (постоянно)

  • Внедрение у заказчика

  • Обучение пользователей

  • Техническая поддержка

  • Доработки по обратной связи

10. КРИТЕРИИ ПРИЁМКИ

10.1. Функциональные критерии

  1. Система корректно планирует смену для 100+ заказов

  2. Автоматический перерасчёт выполняется за ≤10 секунд

  3. Диаграмма Ганта отображает все поставки без пересечений

  4. Интеграция с GPS работает в реальном времени

  5. Мобильное приложение работает офлайн

10.2. Нефункциональные критерии

  1. Время отклика интерфейса ≤200 мс

  2. Система выдерживает нагрузку 50+ одновременных пользователей

  3. Доступность 99.5% в рабочее время

  4. Данные сохраняются при перезапуске системы

10.3. Приёмочные испытания

  1. Тестирование на тестовых данных - 7 дней

  2. Пилотная эксплуатация - 14 дней

  3. Стресс-тестирование - имитация сбоев и высокой нагрузки

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

11. ГАРАНТИИ И ПОДДЕРЖКА

11.1. Гарантийный период

  • 12 месяцев с момента подписания акта приёмки

  • Исправление критических багов - в течение 24 часов

  • Исправление некритических багов - в течение 5 рабочих дней

11.2. Техническая поддержка

  • Поддержка 24/7 для критических инцидентов

  • Консультации по использованию системы

  • Обновления и доработки по согласованию

  • Резервное копирование и восстановление данных

ПРИЛОЖЕНИЯ

Приложение A: Словарь терминов

  • Слот - временной интервал, выделенный машине для выполнения поставки

  • Каскадный перерасчёт - последовательное перепланирование зависимых поставок

  • Время жизни бетона - период от замеса до начала схватывания (90-120 минут)

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

Приложение B: Схемы интеграций

(Диаграммы последовательности и архитектурные схемы)

Приложение C: Макеты интерфейсов

(Визуальные макеты всех экранов системы)


ИСПОЛНИТЕЛЬ: [Наименование организации-исполнителя]

ЗАКАЗЧИК: [Наименование организации-заказчика]

СРОК РАЗРАБОТКИ: 8-12 месяцев

СТОИМОСТЬ РАЗРАБОТКИ: [Сумма] руб.

СРОК ДЕЙСТВИЯ ТЗ: до [Дата]


Документ утверждён:
[Подпись Заказчика] [Подпись Исполнителя]
[Дата] [Дата]