Техническое задание на разработку Системы планирования и диспетчеризации поставок жидкого цемента «CementFlow»
1. ВВЕДЕНИЕ
1.1. Наименование проекта
Система автоматизированного планирования и диспетчеризации поставок жидкого цемента «CementFlow» с поддержкой каскадного перерасчёта.
1.2. Краткое описание
Разрабатываемая система предназначена для оптимального распределения грузовиков-миксеров для выполнения заказов на доставку жидкого цемента в течение 12-часовой рабочей смены. Система обеспечивает автоматическое планирование поставок, мониторинг исполнения в реальном времени и интеллектуальный перерасчёт расписания при возникновении сбоев (поломки техники, ДТП, задержки).
1.3. Область применения
Система предназначена для использования:
-
Бетонными заводами и производственными комплексами
-
Логистическими компаниями, специализирующимися на перевозке строительных материалов
-
Диспетчерскими службами строительных компаний
1.4. Цели разработки
-
Повышение эффективности использования парка машин на 25-30%
-
Снижение простоев грузовиков-миксеров на 35-40%
-
Минимизация потерь бетона из-за превышения времени жизни
-
Обеспечение 95% своевременности доставок
-
Сокращение времени реакции на сбои с 30-60 минут до 5-10 минут
2. ОБЩИЕ ТРЕБОВАНИЯ
2.1. Функциональное назначение
Система должна обеспечивать:
2.1.1. Основные функции:
-
Планирование смены - формирование оптимального расписания поставок на 12-часовую смену
-
Распределение грузовиков - автоматический подбор машин для выполнения поставок
-
Мониторинг исполнения - отслеживание статуса поставок в реальном времени
-
Каскадный перерасчёт - автоматическое перепланирование при возникновении сбоев
-
Визуализация - отображение расписания в виде интерактивной диаграммы Ганта
2.1.2. Вспомогательные функции:
-
Управление справочниками (машины, водители, клиенты, объекты)
-
Формирование отчётности и аналитика
-
Интеграция с внешними системами (GPS, ERP, CRM)
-
Уведомления и оповещения
2.2. Пользователи системы
| Роль пользователя | Основные функции | Доступ |
|---|---|---|
| Диспетчер | Полный доступ ко всем функциям планирования и мониторинга | Веб-интерфейс |
| Руководитель смены | Просмотр, утверждение расписания, анализ эффективности | Веб-интерфейс |
| Водитель | Получение заданий, отметка о выполнении этапов, сообщение о проблемах | Мобильное приложение |
| Администратор | Управление пользователями, настройка системы, техническая поддержка | Веб-интерфейс |
| Клиент (опционально) | Просмотр статуса своего заказа, получение уведомлений | Веб-портал/SMS |
3. ТЕХНОЛОГИЧЕСКИЕ ТРЕБОВАНИЯ
3.1. Архитектурные требования
-
Микросервисная архитектура с разделением на независимые модули
-
Событийно-ориентированная архитектура для обработки событий в реальном времени
-
REST API для интеграции с внешними системами
-
Веб-сокеты для обновления интерфейса в реальном времени
-
Поддержка горизонтального масштабирования
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/CD | GitLab 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. Алгоритм первоначального распределения
Входные данные:
-
Список всех заказов смены
-
Парк доступных машин с характеристиками
-
Расписание работы завода
Этапы алгоритма:
-
Группировка заказов по приоритету и временным окнам
-
Разбиение на поставки с учётом непрерывности заливки
-
Распределение по машинам по критериям:
-
Минимизация порожнего пробега
-
Максимальное использование вместимости
-
Учёт приоритета клиента
-
-
Расчёт временных окон с учётом:
-
Времени жизни бетона (90-120 минут)
-
Времени на погрузку, путь, разгрузку, возврат
-
Буфера на форс-мажор (10-15%)
-
-
Формирование диаграммы Ганта
4.2.2. Критерии выбора машины
Формула оценки приоритета машины:
Score = (W1 × DistanceScore) + (W2 × CapacityUtilization) + (W3 × TimeWindowFit) + PriorityBonus
где:
-
DistanceScore - оценка расстояния до завода (ближе = лучше)
-
CapacityUtilization - коэффициент заполнения миксера
-
TimeWindowFit - соответствие временному окну клиента
-
PriorityBonus - бонус за приоритет клиента
-
W1, W2, W3 - весовые коэффициенты (настраиваемые)
4.3. Модуль каскадного перерасчёта
4.3.1. Типы обрабатываемых событий
-
Поломка машины - машина выходит из строя
-
ДТП - авария с участием машины
-
Задержка на разгрузке - превышение планового времени разгрузки
-
Пробки - увеличение времени в пути
-
Изменение заказа - корректировка клиентом
-
Новая доступная машина - ввод машины в эксплуатацию
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. Основные таблицы:
-
Orders - заказы клиентов
-
Deliveries - поставки (части заказов)
-
Trucks - грузовики-миксеры
-
Drivers - водители
-
Clients - клиенты
-
ConstructionSites - объекты строительства
-
ScheduleSlots - слоты в расписании
-
Events - события системы
-
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. Основные экраны:
-
Задания на день - список поставок
-
Текущее задание - детали, карта маршрута
-
Отметки о выполнении - кнопки для отметки этапов
-
Сообщения - связь с диспетчером
-
Проблемы - форма сообщения о сбоях
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. Функциональные критерии
-
Система корректно планирует смену для 100+ заказов
-
Автоматический перерасчёт выполняется за ≤10 секунд
-
Диаграмма Ганта отображает все поставки без пересечений
-
Интеграция с GPS работает в реальном времени
-
Мобильное приложение работает офлайн
10.2. Нефункциональные критерии
-
Время отклика интерфейса ≤200 мс
-
Система выдерживает нагрузку 50+ одновременных пользователей
-
Доступность 99.5% в рабочее время
-
Данные сохраняются при перезапуске системы
10.3. Приёмочные испытания
-
Тестирование на тестовых данных - 7 дней
-
Пилотная эксплуатация - 14 дней
-
Стресс-тестирование - имитация сбоев и высокой нагрузки
-
Проверка безопасности - пентест
11. ГАРАНТИИ И ПОДДЕРЖКА
11.1. Гарантийный период
-
12 месяцев с момента подписания акта приёмки
-
Исправление критических багов - в течение 24 часов
-
Исправление некритических багов - в течение 5 рабочих дней
11.2. Техническая поддержка
-
Поддержка 24/7 для критических инцидентов
-
Консультации по использованию системы
-
Обновления и доработки по согласованию
-
Резервное копирование и восстановление данных
ПРИЛОЖЕНИЯ
Приложение A: Словарь терминов
-
Слот - временной интервал, выделенный машине для выполнения поставки
-
Каскадный перерасчёт - последовательное перепланирование зависимых поставок
-
Время жизни бетона - период от замеса до начала схватывания (90-120 минут)
-
Непрерывная заливка - требование минимального интервала между поставками на объект
Приложение B: Схемы интеграций
(Диаграммы последовательности и архитектурные схемы)
Приложение C: Макеты интерфейсов
(Визуальные макеты всех экранов системы)
ИСПОЛНИТЕЛЬ: [Наименование организации-исполнителя]
ЗАКАЗЧИК: [Наименование организации-заказчика]
СРОК РАЗРАБОТКИ: 8-12 месяцев
СТОИМОСТЬ РАЗРАБОТКИ: [Сумма] руб.
СРОК ДЕЙСТВИЯ ТЗ: до [Дата]
Документ утверждён:
[Подпись Заказчика] [Подпись Исполнителя]
[Дата] [Дата]