B2B CRM System
CRM для сети филиалов B2B-компании. Расписание в реальном времени, строгий учёт материальных ценностей, медицинский допуск персонала, генерация PDF/Excel.
Сеть филиаловWebSocket real-timeПриказ МЗ РФ № 1144н
Бизнес-задача
Сеть филиалов нуждалась в единой системе управления: расписание, учёт специфических активов, медицинский допуск сотрудников, аналитика по клиентам. Все филиалы должны работать в единой системе с разделением доступа.
Ключевая задача
Предотвращение двойного бронирования при одновременном редактировании несколькими администраторами в реальном времени, строгий учёт материальных ценностей с неизменяемым журналом операций.
Расписание
WebSocket + STOMP для предотвращения двойного бронирования при одновременной работе нескольких администраторов.
- •Машина состояний: Черновик → Ожидание → Подтверждено → В процессе → Завершено
- •Черновики для незавершённых бронирований
Учёт активов
Учёт материальных ценностей по категориям.
- •Стоп-лист неисправных единиц
- •Выдача по заявке к мероприятию
- •Журнал операций: неизменяемый лог (кто, когда, что выдал/принял)
Медицинский допуск
Форма осмотра с автоматической PDF-генерацией.
- •Соответствие приказу МЗ РФ № 1144н
- •Статусы: Допущен / Не допущен / Опасность
Ролевая модель
Гранулярный доступ (полный → редактирование → просмотр → нет доступа) по модулям.
- •Владелец сети: управление всеми филиалами
- •Администратор: полный доступ к CRM
- •Специалист: работа с мероприятиями
- •Врач: медицинский допуск
- •Кладовщик: выдача активов
Генерация документов
- •PDF: медицинские заключения (iTextPDF)
- •Excel: расписание, статистика (Apache POI)
- •Email: автоматическая рассылка отчётов
Технологии
Backend
Java 21Spring Boot 3.4Spring SecuritySpring WebSocket + STOMPSpring Data JPA
Data
PostgreSQL 16LiquibaseJPA SpecificationsAudit Log (immutable)
Integrations
Amazon S3Telegram Bot APIiTextPDFApache POI
Моя роль
- Архитектура backend с нуля: нормализованная схема БД для строгого учёта материальных ценностей
- WebSocket + STOMP для предотвращения конфликтов при одновременном редактировании
- Гранулярная ролевая модель с динамическими правами по модулям
- Неизменяемый журнал операций с активами