Техническое задание на доработку системы управления сборкой заказов
Контекст проекта
Существует рабочая система для управления товарами и поставками на маркетплейсы. Технологический стек: фронтенд на React (Vite + Ant Design), бэкенд на NestJS с использованием Sequelize ORM и PostgreSQL в качестве БД. Сервер развернут с использованием nginx. Уже реализованы базовые интеграции с маркетплейсами (товары и поставки), справочники, модуль пользователей и раздел "Склад" (требует доработки).
Основные задачи для реализации
1. Модуль "Сборочные задания"
- Отображение списка поставок с маркетплейсов. Реализация фильтрации по ролям - каждый сотрудник видит только свои задания.
- Детальная карточка поставки с отображением по каждой позиции: фотография, цвет, размер, артикул, идентификаторы товара (nmId/sku), номер задания.
- Внедрение постадийного контроля через чекбоксы: "Напечатал" (Печать), "Прижал" (Пресс), "Упаковал" (Упаковка).
- Обработка статусов "Отмена" / "Отсутствует" - такие позиции автоматически перемещаются в раздел "Неподбор".
- Реализация массовых операций над заданиями и ведение журнала изменений.
- Функционал пересборки (рекомплектации) поставок на основе заданных фильтров.
2. Модуль "Неподбор" (Буферная зона)
- Создание буфера для позиций, которые не подошли под фильтры автоматической сборки или отмечены как отсутствующие.
- Таблица с указанием причины попадания в буфер.
- Действия над позициями: "Перераспределить" (запуск пересборки), "Назначить вручную", мастер создания нового правила фильтрации на основе конкретной позиции.
- Система гибких фильтров для формирования поставок: маркетплейс, категория/группа товара, цвет/размер, бренд, префиксы артикула, теги, привязка к отделу, приоритет, лимит на размер партии.
3. Система ролевого доступа (RBAC)
- Определение ролей: Печать, Пресс, Упаковка, Склад, Оператор, Администратор.
- Реализация авторизации на бэкенде с использованием JWT и защитой маршрутов (Guards).
- Адаптация фронтенда: скрытие разделов интерфейса и действий, не доступных текущей роли пользователя.
4. Доработка модуля "Склад"
- Исправление логики списаний.
- Автоматическое резервирование товара при создании сборочного задания.
- Фактическое списание при подтверждении этапа "Упаковал". Возврат резерва при отмене задания.
- Внедрение защиты от образования отрицательных остатков на складе.
- Проектирование и доработка структуры таблиц:
stock_items (остатки), stock_reservations (резервы), stock_movements (движения).
- Обеспечение идемпотентности складских операций для предотвращения дублирования.
5. Интеграция с системой маркировки "Честный ЗНАК" (КИЗ)
- Создание системы шаблонов для печати этикеток в зависимости от категории товара.
- Функционал печати этикеток в формате PDF или напрямую на принтер.
- Механизм привязки уникальных кодов маркировки (КИЗ) к позициям в заказах.
- Организация списания кодов из оборота при печати или упаковке (требует уточнения логики).
- Ведение полного аудита всех операций с кодами маркировки.
Технические требования
- Фронтенд: React + Vite + Ant Design (используется алиас @ для путей).
- Бэкенд: NestJS + Sequelize (ORM) + PostgreSQL.
- Инфраструктура: nginx в качестве веб-сервера.
- Код должен быть чистым, документированным и соответствовать принципам выбранных фреймворков.