Перейти к основному содержимому

harness

🧱 Этап 1: Создание обвязки

  1. Создание структуры АРМа

    • Скопировать pages/arms/_armForCopypages/arms/sorting
    • Заменить все вхождения _armForCopysorting
    • Удалить ненужные заготовки
  2. Подключение API типизации

    • Использовать DTO из shared/api/generated/api.generated.ts:

      • SortingDocumentResponseDto
    • В pages/arms/sorting/model/type/api.ts:

      export type OperationResponseDto = SortingDocumentResponseDto;
  3. Настройка хуков

    • Создать pages/arms/sorting/lib/hooks/useSorting.ts
    • Реализовать в нём вызовы API, управление состоянием, побочные эффекты

🛣 Этап 2: Роутинг

  1. shared/const/router.ts

    • Добавить в AppRoutes, ArmRoutes, PageDescription
    • Использовать getArmRoute("sorting")
  2. app/router/config/routeConfig.tsx

    {
    path: getArmRoute('sorting'),
    element: <SortingArmPageWrapper />
    }

💾 Этап 3: Стейт и контексты

  1. Контекст

    • pages/arms/sorting/model/store/ArmContext.tsx
    • Включить: batchId, sorterId, список контейнеров, sku и т.п.
  2. Обёртка страницы

    • pages/arms/sorting/ui/SortingArmPageWrapper.tsx
    • Подключение контекста и FSM

🔄 Этап 5: Интеграция с API

Описывается раньше по авто доке

МетодОписание
GET /sorting/searchПоиск батча
POST /sorting/{batch}/joinСтарт сортировки
POST /sorting/{batch}/enter-barcodeКонтейнер, SORTER, SKU
POST /sorting/{batch}/enter-sku-batchВвод партии
POST /sorting/{batch}/enter-quantityКол-во
POST /sorting/{batch}/enter-serial-numberСериал
POST /sorting/{batch}/confirm-temp-containers-preparedВременные контейнеры
GET /sorting/{batch}/not-sortedТаб неотсортировано
POST /sorting/{batch}/item-not-availableЖалоба
POST /sorting/{batch}/upload-issue-photoФото жалобы
POST /sorting/{batch}/cancelОтмена позиции
POST /sorting/{batch}/leaveВыход из сортировки

🧪 Этап 6: UI-компоненты

  1. EnterBarcodeForm — ввод ШК батча
  2. SorterScanForm / TempContainerReady — выбор контейнера
  3. SkuScanForm, BatchInput, QuantityInput — товар
  4. SerialInput — серийный номер
  5. IssueForm — жалоба
  6. NotSortedTable — вкладка «неотсортировано»
  7. Кнопки выхода, отмены, проверки

🧪 Этап 7: Тестирование и отладка

  • Проверка FSM
  • Проверка переходов и API
  • Тестирование edge-кейсов
  • Обработка ошибок, блокировок, отмен и выхода