Был разработан и реализован проект Telegram-бота для управляющей компании логистического центра «Т Инжиниринг» с системой управления заявками, уведомлениями в реальном времени и админ-панелью. Решение позволяет клиентам (собственникам, арендаторам, представителям) создавать заявки по различным категориям (охрана, инженерная служба, офис), отслеживать их статусы, общаться с сотрудниками через комментарии с файлами, а также оставлять обратную связь. Сотрудники и администраторы получают уведомления о новых заявках, могут обрабатывать их, менять статусы, добавлять комментарии и управлять пользователями.
Основные задачи проекта
1. Создание системы регистрации и верификации пользователей с подтверждением администратором.
2. Реализация многошагового процесса создания заявок с использованием FSM (Finite State Machine) для различных категорий:
- Охрана (пропуск человека, пропуск транспорта, постоянный пропуск)
- Инженерная служба (неисправности, аварии, техническое обслуживание)
- Офис (документы, справки, договоры)
3. Реализация системы управления складами и секциями с автоматической генерацией складов по линиям (A-01 до J-04).
4. Добавление функционала работы с файлами (фото, видео, документы) при создании заявок и комментариев.
5. Интеграция системы уведомлений в реальном времени для сотрудников и администраторов при создании новых заявок, комментариев и обратной связи.
6. Реализация системы ролей и прав доступа:
- Роли клиентов: Собственник, Арендатор, Представитель
- Роли сотрудников: Администратор, Охрана, Эксплуатация, Офис
7. Создание админ-панели для управления пользователями, назначения ролей, просмотра всех заявок с фильтрацией и экспорта в Excel.
8. Реализация системы обратной связи с уведомлениями администратору в реальном времени.
9. Обработка ошибок и автоматический fallback при проблемах с Telegram API (например, при редактировании удаленных сообщений).
10. Поддержка развертывания на сервере с systemd-сервисом для автоматического запуска и управления.
. Система создания заявок (FSM)
Реализован многошаговый процесс создания заявок с использованием FSM для каждой категории:
- Охрана:
- Пропуск человека: выбор типа (постоянный/разовый), ФИО, дата рождения, компания, дата/время, примечание
- Пропуск транспорта: выбор типа, тип транспорта, номер, ФИО водителя, телефон, дата/время
- Постоянный пропуск: выбор человек/транспорт, затем соответствующий процесс
- Инженерная служба:
- Выбор типа заявки (неисправность, авария, техническое обслуживание)
- Выбор склада и секции (если склад разделен)
- Описание проблемы
- Выбор приоритета (обычный, высокий, авария)
- Прикрепление фото/видео/документов
- Офис:
- Выбор типа заявки (документы, справки, договоры)
- Выбор склада
- Описание
- Прикрепление вложений (платежки, письма, акты)
2. Система уведомлений
При создании новой заявки автоматически отправляются уведомления:
- Всем сотрудникам с соответствующей ролью (SECURITY, MAINTENANCE, OFFICE)
- Администраторам (для категории OFFICE — всегда, даже если нет ответственного сотрудника)
- Уведомления включают полную информацию о заявке, приоритет, склад/секцию, вложения
При добавлении комментария уведомления отправляются:
- Автору заявки (если комментарий от сотрудника)
- Всем сотрудникам, участвующим в заявке (если комментарий от клиента)
- С поддержкой вложений (фото, видео, документы)
3. Система комментариев с файлами
Реализована возможность добавления комментариев с файлами как для клиентов, так и для сотрудников:
- Поддержка множественных файлов (фото, видео, документы)
- Текстовые комментарии или только файлы, или комбинация
- Команда /done для завершения добавления файлов
- Автоматическая отправка уведомлений участникам заявки с вложениями
4. Админ-панель
Полнофункциональная админ-панель с возможностями:
- Управление регистрациями: просмотр неподтвержденных пользователей, подтверждение/отклонение
- Управление пользователями: просмотр всех пользователей, назначение ролей сотрудников, удаление ролей
- Просмотр всех заявок: фильтрация по категории, статусу, складу, дате, пользователю, типу
- Обработка заявок: изменение статусов (принять, уточнить, в работу, выполнить, отклонить), добавление комментариев
- Экспорт в Excel: экспорт всех заявок или отдельной заявки с полной информацией
- Обратная связь: просмотр всех отзывов, оценок, жалоб и предложений
5. Система обратной связи
Клиенты могут оставлять обратную связь трех типов:
- Оценка работы (с рейтингом от 1 до 5)
- Жалоба
- Предложение
Администратор получает уведомления в реальном времени при получении обратной связи и может просматривать все отзывы через меню.
6. Управление складами
Автоматическая генерация складов по линиям (A-J) с номерами:
- Поддержка складов, разделенных на секции
- Выбор склада и секции при создании заявки
- Фильтрация заявок по складу в админ-панели
7. Обработка ошибок и надежность
Реализована обработка ошибок Telegram API:
- Fallback при редактировании удаленных сообщений (используется answer вместо edit_text)
- Проверка существования связанных объектов перед доступом к атрибутам
- Явная загрузка связанных объектов через SQLAlchemy для предотвращения AttributeError
- Логирование всех операций в файл и консоль
В итоге получена полноценная система управления заявками для управляющей компании логистического центра:
- Клиенты могут:
- Зарегистрироваться и пройти верификацию
- Создавать заявки по трем категориям с прикреплением файлов
- Отслеживать статусы своих заявок
- Добавлять комментарии с файлами к заявкам
- Оставлять обратную связь (оценки, жалобы, предложения)
- Получать уведомления об изменениях в заявках
- Сотрудники могут:
- Получать уведомления о новых заявках в реальном времени
- Просматривать заявки своей категории
- Изменять статусы заявок (принять, уточнить, в работу, выполнить, отклонить)
- Добавлять комментарии с файлами
- Видеть историю всех взаимодействий по заявке
- Администраторы могут:
- Управлять регистрациями пользователей
- Назначать роли сотрудников
- Просматривать все заявки с расширенной фильтрацией
- Обрабатывать заявки любой категории (включая OFFICE, даже если нет ответственного сотрудника)
- Экспортировать заявки в Excel для отчетности
- Просматривать обратную связь от клиентов
- Получать уведомления о новых заявках категории OFFICE и обратной связи
- Система обеспечивает:
- Надежную работу с обработкой ошибок Telegram API
- Масштабируемость (легко добавить новые категории заявок или типы)
- Удобное развертывание на сервере с автозапуском
- Полное логирование всех операций
- Безопасность через систему ролей и верификацию пользователей
Проект обеспечивает эффективное управление заявками в логистическом центре и может использоваться как основа для дальнейшего развития системы автоматизации управляющей компании.