Техническое задание на доработку системы управления сборкой заказов

Контекст проекта

Существует рабочая система для управления товарами и поставками на маркетплейсы. Технологический стек: фронтенд на 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 в качестве веб-сервера.
  • Код должен быть чистым, документированным и соответствовать принципам выбранных фреймворков.

Разработка раздела КЖ для фундаментной плиты под два здания

Требуется разработать конструкторский раздел (КЖ) для фундаментной плиты по заданным параметрам. Необходимо предусмотреть размещение двух зданий на одной плите или на двух, разделенных деформационным швом.