Container Hub — User Guide / Инструкция пользователя¶
Обзор модуля¶
Container Hub — модуль управления контейнерным терминалом (сухой порт, морской порт, ж/д терминал). Включает учёт контейнеров, gate-операции, управление двором, ж/д операции, демередж, инвентаризацию и аналитику.
Зависимости от других модулей¶
Container Hub использует справочники из Essentials и Logistic:
| Модуль | Справочник | Зачем нужен |
|---|---|---|
| Essentials | Валюты (Currency) | Тарифы, ставки демереджа, расчёты |
| Essentials | Контрагенты (Client) | Shipping lines, транспортные компании, грузополучатели |
| Logistic | Типы контейнеров (ContainerType) | Классификация ISO (20DC, 40HC и т.д.) |
| Fleet | Точки геолокации (LocationPoint) | Привязка терминалов к точкам на карте |
| Fleet | Транспорт (Vehicle), Водители (Driver) | Ввоз/вывоз контейнеров (необязательно) |
Перед началом работы убедитесь, что в Essentials заведены валюты (минимум USD) и хотя бы несколько контрагентов.
Порядок заведения справочников¶
Шаг 1. Типы контейнеров (Logistic → Container Types)¶
Путь: Logistic → References → Container Types
Заведите стандартные ISO типы:
| Код | Название | Длина (ft) | Тара (кг) | Груз (кг) | Объём (м³) | Рефрижератор |
|---|---|---|---|---|---|---|
| 20DC | 20' Dry Container | 20 | 2,230 | 28,270 | 33.2 | Нет |
| 40DC | 40' Dry Container | 40 | 3,780 | 26,700 | 67.7 | Нет |
| 40HC | 40' High Cube | 40 | 3,940 | 26,560 | 76.3 | Нет |
| 45HC | 45' High Cube | 45 | 4,800 | 25,680 | 86.1 | Нет |
| 20RF | 20' Reefer | 20 | 3,080 | 27,400 | 28.3 | Да |
| 40RF | 40' Reefer | 40 | 4,800 | 27,700 | 59.3 | Да |
| 20OT | 20' Open Top | 20 | 2,350 | 28,130 | 32.5 | Нет |
| 40OT | 40' Open Top | 40 | 3,900 | 26,580 | 65.9 | Нет |
| 20FR | 20' Flat Rack | 20 | 2,560 | 27,940 | — | Нет |
| 40FR | 40' Flat Rack | 40 | 4,200 | 39,300 | — | Нет |
| 20TK | 20' Tank Container | 20 | 3,070 | 26,910 | 24.0 | Нет |
Шаг 2. Терминалы (Container Hub → Master Data → Terminals)¶
Путь: Container Hub → Master Data → Terminal Infrastructure → Terminals
Заведите терминал(ы):
| Поле | Пример |
|---|---|
| Код | ODESSA-CT |
| Название | Odessa Container Terminal |
| Название (UA) | Одеський контейнерний термінал |
| Тип | Sea Port / Dry Port / Rail Terminal |
| Ёмкость (TEU) | 5000 |
| Телефон | +380 48 123-45-67 |
| ops@odessa-ct.ua | |
| Режим работы | 24/7 |
Шаг 2.1. Зоны двора (Yard Zones) — подтаблица терминала¶
В карточке терминала на вкладке Yard Zones заведите зоны:
| Код зоны | Тип | Ряды | Бухты | Ярусы | Розетки | Ж/д |
|---|---|---|---|---|---|---|
| A | Import | 10 | 20 | 5 | Нет | Да |
| B | Import | 8 | 15 | 5 | Нет | Да |
| C | Export | 10 | 20 | 5 | Нет | Нет |
| D | Export | 8 | 15 | 4 | Нет | Нет |
| E | Empty Containers | 12 | 25 | 4 | Нет | Нет |
| R | Reefer | 4 | 10 | 3 | Да | Нет |
| H | Dangerous Goods | 3 | 8 | 3 | Нет | Нет |
| T | Transshipment | 6 | 12 | 5 | Нет | Да |
| I | Inspection | 2 | 5 | 2 | Нет | Нет |
| W | Repair | 2 | 5 | 2 | Нет | Нет |
Ёмкость зоны = ряды × бухты × ярусы (рассчитывается автоматически).
Шаг 3. Морские линии (Container Hub → Master Data → Shipping Lines)¶
Путь: Container Hub → Master Data → Container Registry → Shipping Lines
| Код | SCAC | Название | Free days (import) | Free days (export) | Detention free days | Demurrage 20' | Demurrage 40' |
|---|---|---|---|---|---|---|---|
| MAEU | MAEU | Maersk | 14 | 10 | 7 | $50/день | $75/день |
| MSCU | MSCU | MSC | 14 | 10 | 7 | $45/день | $70/день |
| CMDU | CMDU | CMA CGM | 10 | 7 | 5 | $55/день | $80/день |
| COSU | COSU | COSCO | 14 | 14 | 7 | $40/день | $60/день |
| HLCU | HLCU | Hapag-Lloyd | 10 | 7 | 5 | $60/день | $85/день |
SCAC (Standard Carrier Alpha Code) — 4-символьный код морской линии. Free days — бесплатные дни хранения, после которых начисляется demurrage.
Шаг 4. Тарифы терминала (Container Hub → Master Data → Container Tariffs)¶
Путь: Container Hub → Master Data → Terminal Infrastructure → Container Tariffs
Для каждого терминала заведите тарифную сетку:
| Услуга | Размер | Статус загрузки | Ставка | Единица | Свободные дни |
|---|---|---|---|---|---|
| Storage | 20ft | Any | $5.00 | Per Day | 3 |
| Storage | 40ft | Any | $8.00 | Per Day | 3 |
| Storage | 45ft | Any | $10.00 | Per Day | 3 |
| Handling In | 20ft | Any | $80.00 | Per Operation | — |
| Handling In | 40ft | Any | $120.00 | Per Operation | — |
| Handling Out | 20ft | Any | $80.00 | Per Operation | — |
| Handling Out | 40ft | Any | $120.00 | Per Operation | — |
| Reefer Monitoring | 20ft | Any | $35.00 | Per Day | — |
| Reefer Monitoring | 40ft | Any | $50.00 | Per Day | — |
| Gate Fee | 20ft | Any | $15.00 | Per Operation | — |
| Gate Fee | 40ft | Any | $15.00 | Per Operation | — |
| Weighing | 20ft | Any | $25.00 | Per Operation | — |
| Weighing | 40ft | Any | $30.00 | Per Operation | — |
| Inspection | 20ft | Any | $40.00 | Per Operation | — |
| Inspection | 40ft | Any | $50.00 | Per Operation | — |
Укажите effective_from (дата начала действия тарифа). Тарифы без effective_to — бессрочные.
Шаг 5. Контейнеры (Container Hub → Master Data → Containers)¶
Путь: Container Hub → Master Data → Container Registry → Containers
| Поле | Описание | Пример |
|---|---|---|
| Container Number | ISO 6346 номер (4 буквы + 7 цифр) | MAEU1234567 |
| Container Type | Ссылка на тип (Шаг 1) | 40HC |
| Owner Type | own / leased / shipping_line / client | shipping_line |
| Shipping Line | Ссылка на линию (Шаг 3) | Maersk |
| Tare Weight | Масса тары (кг) | 3940 |
| Max Payload | Макс. полезная нагрузка (кг) | 26560 |
| Is Reefer | Рефрижератор? | Нет |
| Condition | new / good / damaged / needs_repair / scrapped | good |
| Current Terminal | Текущий терминал (Шаг 2) | Odessa CT |
| Current Zone | Текущая зона | A |
| Current Position | Позиция (ряд-бухта-ярус) | 03-12-2 |
Контейнеры обычно создаются автоматически при Gate-In, но можно завести заранее.
Шаг 6. Интеграции (Container Hub → Integrations) — опционально¶
Путь: Container Hub → Integrations → Integration Management → Integrations
| Поле | Пример |
|---|---|
| Terminal | Odessa CT |
| Type | EDI COPARN / BAPLIE / Customs / Shipping Portal / Railway EDI |
| Provider | Maersk |
| Protocol | REST API / SFTP / AS2 |
| API URL | https://api.maersk.com/... |
| Active | Нет (пока настройка) |
| Auto Sync | Нет |
Порядок ввода документов (транзакции)¶
После заведения всех справочников, работа с документами идёт в следующей последовательности:
Этап 1. Приём контейнеров¶
- Container Booking (необязательно) — предварительная запись (тайм-слот) на въезд/выезд
- Путь: Container Hub → Transactions → Gate Operations → Container Bookings
-
Указать: терминал, дату, время, номер контейнера, тип, транспортную компанию
-
Gate Transaction (Gate-In) — приём контейнера на терминал
- Путь: Container Hub → Transactions → Gate Operations → Gate Transactions
- Тип: Gate In
- Указать: контейнер, терминал, транспорт (truck/rail), состояние, пломба, груз/порожний, зона размещения, позиция
- При проведении (post) → запись в Container Ledger
Этап 2. Операции на дворе¶
- Container Movement — перемещение контейнера внутри двора
- Путь: Container Hub → Transactions → Yard Operations → Container Movements
- Указать: контейнер, откуда (зона/позиция), куда, причина (restack, consolidation, pre-marshalling...)
-
При проведении → запись в Container Ledger
-
Yard Inventory — инвентаризация (полная, зональная, точечная)
- Путь: Container Hub → Transactions → Yard Operations → Yard Inventories
- Генерация строк → сверка → фиксация расхождений
- При проведении → корректировки в Container Ledger
Этап 3. Ж/д операции¶
- Train Arrival — приход поезда с контейнерами
- Путь: Container Hub → Transactions → Railway Operations → Train Arrivals
- Указать: терминал, номер поезда, манифест (список контейнеров на платформах)
- После разгрузки → Gate-In для каждого контейнера
Этап 4. Отпуск контейнеров¶
- Gate Transaction (Gate-Out) — отпуск контейнера с терминала
- Тип: Gate Out
- При проведении → запись в Container Ledger
Этап 5. Финансовые операции¶
- Demurrage Calculation — расчёт демереджа/детеншена
- Путь: Container Hub → Transactions → Financial Operations → Demurrage Calculations
- Указать: контейнер, линию, период, Gate-In/Gate-Out
- Метод calculate() автоматически считает: total_days − free_days = chargeable_days × rate
- При проведении → запись в Storage Charge Ledger
Регистры (автоматические)¶
| Регистр | Что хранит | Заполняется из |
|---|---|---|
| Container Ledger | Все движения контейнеров (gate-in, gate-out, перемещения, корректировки) | Gate Transaction, Container Movement, Yard Inventory |
| Storage Charge Ledger | Все начисления (хранение, обработка, рефрижератор, gate fee, демередж) | Demurrage Calculation |
Регистры заполняются автоматически при проведении документов. Ручное редактирование не требуется.
Процессы¶
| Процесс | Назначение | Требует |
|---|---|---|
| Yard Map | 3D-визуализация двора: позиции контейнеров, цветовая кодировка по срочности | Данные Container Ledger |
| Stacking Optimizer | Рекомендации размещения, планы перестановки, pre-marshalling | Контейнеры + зоны |
| Gate Control (coming soon) | Панель управления воротами в реальном времени | Gate Transactions + Bookings |
| Inventory Dashboard | Трекер инвентаризации: прогресс, план vs факт | Yard Inventory |
| Demurrage Tracker | Контейнеры в зоне риска, активные начисления, массовый пересчёт | Demurrage Calculations |
Отчёты (аналитика)¶
| Отчёт | Что показывает |
|---|---|
| Terminal Occupancy | Заполненность по зонам, типам, линиям; heatmap |
| Container Turnover | Среднее время пребывания (dwell time), объёмы gate-in/out |
| Demurrage Report | Начисления по линиям/клиентам, топ нарушителей |
| Stacking KPIs | Коэффициент перестановок, средняя высота штабеля, эффективность |
| Inventory Accuracy | Точность учёта: подтверждено vs ожидалось, расхождения |
Типичный рабочий цикл (пример)¶
День 1: Получен COPARN от Maersk на приём 50 контейнеров
→ Создаём Bookings на gate-in (тайм-слоты)
День 2: Фуры приезжают
→ Gate-In для каждого контейнера
→ Stacking Optimizer подсказывает зону/позицию
→ Container Ledger обновляется
День 3-5: Контейнеры на хранении
→ Перемещения (Container Movement) при необходимости
→ Мониторинг рефрижераторов
День 6: Приход поезда
→ Train Arrival с манифестом
→ Разгрузка → Gate-In для ж/д контейнеров
День 7: Инвентаризация зоны A
→ Yard Inventory (zone type)
→ Сверка → фиксация расхождений
День 10: Вывоз контейнеров Maersk
→ Gate-Out
→ Demurrage Calculation (10 дней − 14 free = 0 chargeable)
День 20: Просроченные контейнеры MSC (20 дней, free = 14)
→ Demurrage Calculation (20 − 14 = 6 chargeable × $45 = $270)
→ Storage Charge Ledger обновляется
Конец месяца: Отчёты
→ Terminal Occupancy → анализ загруженности
→ Container Turnover → анализ оборачиваемости
→ Demurrage Report → сверка начислений с линиями
Команда заполнения тестовыми данными¶
cd c:\eswf\backend
# 1. Убедитесь, что essentials заполнены (валюты, контрагенты)
python manage.py seed essentials
# 2. Заполнить справочники Container Hub
python manage.py seed_containerhub
# 3. Заполнить с очисткой (если нужно пересоздать)
python manage.py seed_containerhub --clear
# 4. Для конкретного тенанта
python manage.py seed_containerhub --tenant 1