﻿---
title: Загрузка склада
description: "Дашборд на Laravel + Filament: заполненность зон склада, ожидаемые поступления, пороги по типу зоны, ответственные и задачи на перераспределение."
---

## Что это за сервис

Дашборд для руководителя склада, начальников смен и операционного директора. Он показывает, насколько заполнена каждая зона склада, где скоро не останется места с учётом ожидаемых поступлений и какие зоны простаивают.

Без такого сервиса данные о загрузке живут в складской программе, таблицах и на планшете кладовщика, и ни один источник не совпадает с реальностью. Руководитель ходит по складу, чтобы проверить цифры системы. О переполненной зоне узнают, когда проезд заблокирован или паллету поставили не туда. Решения о перераспределении принимают раз в неделю на совещании, а отчёт собирают часами из свежей выгрузки.

## Что он делает

- **Сводит загрузку зон.** Вместимость, текущее заполнение и ожидаемые поступления видны по каждой зоне на одном экране.
- **Предупреждает о переполнении.** Зона, которая приближается к пределу, помечается до того, как начнутся заторы и задержки сборки.
- **Показывает недогруженные зоны.** Пустующие зоны выводятся рядом с переполненными, чтобы перераспределение учитывало всю картину.
- **Создаёт задачи на перераспределение.** При переходе порога ответственный за зону получает задачу с конкретной зоной и сроком.
- **Даёт текущий отчёт.** Загрузка по зонам и складам за период доступна без выгрузки и ручного оформления.

## Нюансы и особенности

- **WMS остаётся источником.** Размещение, ячейки и движения ведёт складская система или складской модуль 1С. Дашборд забирает данные через API, вебхуки или read-only подключение к базе и ничего не пишет обратно. Если штатные отчёты WMS показывают загрузку в нужном разрезе, отдельное приложение может быть лишним.
- **Реальное время не обязательно.** Большинству складов хватает синхронизации раз в час или раз в смену, чтобы увидеть проблему до того, как она разрастётся. Время последней загрузки показывают на экране; ручная выгрузка раз в день — плохой источник правды.
- **Вместимость измеряют по-разному.** Паллетоместа, ячейки, квадратные метры — у зон разные единицы. Их приводят к проценту заполнения или хранят как есть с порогом для каждой зоны.
- **Пороги зависят от типа зоны.** У холодильной, стеллажной и зоны отбора разная нормальная загрузка, поэтому пороги задают по типу зоны, а не одним числом для всего склада.
- **Сначала два предупреждения.** Начинают с переполнения и сильной недогрузки. Остальные сигналы добавляют, когда команда начнёт доверять первым, иначе предупреждения перестанут читать.
- **У каждой зоны есть ответственный.** Зоны без ответственного выводят в отдельную очередь, иначе задача на перераспределение никому не придёт. Закрытая задача содержит комментарий о принятых мерах, поэтому видно, помогло ли перемещение или зона снова переполнилась через день.
- **Доступ по ролям.** Начальник зоны видит свои зоны, начальник смены — весь склад, директор — сводку по нескольким складам. Ограничение действует на сервере.

## Как сгенерировать через ИИ-агентов

Промпты рассчитаны на AI-агента (Claude Code, Cursor и аналоги) в Laravel-проекте с установленным **Filament 4.x**. Отправляйте их по одному: каждый шаг даёт результат, который можно проверить до перехода к следующему.

### 1. Данные и модели

```text
Создай модели и миграции для загрузки склада: Warehouse, ZoneType
(название, единица вместимости, порог переполнения, порог недогрузки),
Zone (склад, тип, код, вместимость, ответственный), ZoneSnapshot (зона,
заполнение в единицах и в процентах, ожидаемые поступления, время
данных источника), InboundShipment (склад, зона назначения, объём,
ожидаемая дата), RebalanceTask (зона, исполнитель, причина, срок,
статус). Добавь фабрики с демо-данными для двух складов.
```

Проверьте, что пороги берутся из типа зоны, а не задаются одним числом.

### 2. Таблица зон

```text
Сгенерируй Filament-ресурс для Zone. В таблице покажи тип, заполнение
в процентах с цветовой индикацией относительно порогов, прогноз
с учётом ожидаемых поступлений, ответственного и время данных. Добавь
вкладки «Переполнение», «Недогрузка», «Без ответственного», «Данные
устарели» и фильтры по складу и типу зоны.
```

### 3. Синхронизация

```text
Сделай фоновую задачу по расписанию раз в час: загружай заполнение
зон и ожидаемые поступления из API складской системы, сохраняй
ZoneSnapshot с временем данных источника, при ошибке пиши журнал
и не перезаписывай прежние цифры пустыми значениями.
```

### 4. Пороги и задачи

```text
При переходе порога переполнения или недогрузки создавай RebalanceTask
ответственному за зону со сроком из конфига и отправляй уведомление.
Не создавай вторую задачу, пока первая открыта. Добавь действие
«Закрыть задачу» с обязательным комментарием о принятых мерах.
```

### 5. Роли и виджеты

```text
Настрой роли: начальник зоны видит свои зоны и задачи, начальник
смены — весь склад, директор — все склады. Добавь виджеты загрузки
по типам зон, динамики за неделю и экспорт отчёта о загрузке
за период.
```

Войдите под начальником зоны и убедитесь, что в виджетах нет чужих зон.

## Похожие сценарии

- [Дашборд складских остатков](https://wpcraft.ru/kb/stacks/filament/use-cases/operations/inventory-dashboard.md) — сколько товара осталось, а не сколько места он занимает.
- [График смен](https://wpcraft.ru/kb/stacks/filament/use-cases/operations/shift-scheduling-board.md) — хватает ли людей на смене для перераспределения.
- [Управление заказами](https://wpcraft.ru/kb/stacks/filament/use-cases/operations/order-management.md) — отгрузки, которые освобождают место в зонах.

## Материалы и источники

- [Refine: Warehouse Utilization Dashboard](https://refine.dev/use-cases/operations/warehouse-utilization-dashboard/)
- [Filament 4.x: ресурсы](https://filamentphp.com/docs/4.x/resources/overview)
- [Filament 4.x: фильтры таблиц](https://filamentphp.com/docs/4.x/tables/filters/overview)
- [Filament 4.x: виджеты](https://filamentphp.com/docs/4.x/widgets/overview)
- [Filament 4.x: уведомления](https://filamentphp.com/docs/4.x/notifications/overview)