Cargo — Ombor xodimi (WMS) BPMN diagrammasi
/api/v1/wms/ — Posilka qabul qilishdan tashuvchiga topshirish va yetkazishgacha
OMBOR XODIMI (WMS OPERATOR)
A. KIRISH
Boshlash
Kirish
phone + PIN kod
Ombor aniqlash
WarehouseOperator asosida avtomatik
Faqat o'z ombori
ko'rinadi (permission filter)
B. POSILKA QABUL QILISH (Receive)
Tracking code scan
POST /parcels/receive/
barcode / QR scanner
Tizimda
bormi?
Parcel topildi
Status → RECEIVED_AT_WAREHOUSE
current_warehouse yangilanadi
Ha
RECEIVED_AT_WAREHOUSE
Mijozni aniqlash
personal_code (Address Line 2)
orqali mijoz aniqlanadi
AVTOMATIK
Order → PROCESSING
Birinchi parcel qabul bo'lganda
Order avtomatik PROCESSING ga
AVTOMATIK
$?
Naqd to'lov qabul
POST /parcels/{id}/confirm-cash/
CASH
Payment OK
Order → PAID
To'langan yoki CARD/TRANSFER → davom
personal_code tekshirish
Address Line 2 = user's username
Mijoz qidiriladi
Yo'q
Mijoz
topildimi?
Mijoz topilmadi
Xatolik qaytariladi
Yo'q
Yangi Order yaratish
nomi, narxi, kategoriyasi
kiritiladi
Ha
is_over
sized?
L, W, H, Weight o'lchash
volumetric hisoblanadi
narx hisoblanadi
Ha
Faqat Weight kiritish
narx hisoblanadi
Yo'q
Yangi order → davom (o'lchash va tortish)
C. O'LCHASH VA TORTISH (Measure)
O'lchash va tortish
PATCH /parcels/{id}/measure/
actual_weight, L, W, H kiritish
Tizim hisoblaydi:
volumetric = (L * W * H) / 5000
chargeable = max(actual, volumetric)
is_oversized tekshiruv
MEASURED
kg
<=10%
Og'irlik farqi aniqlandi
Narx qayta hisoblanadi
Mijozga SMS bildirishnoma
>10%
Admin bildirishnomasi
Og'irlik farqi juda katta (>50%)
Admin tekshiruvi kerak
>50%
OS?
Oversized surcharge
Narx qayta hisoblanadi
Mijozga bildirishnoma
Ha
Davom (normal yoki oversized narx yangilangandan keyin)
Balansdan yechish
Wallet.balance dan
avtomatik yechiladi
WalletTransaction (OUT)
Tranzaksiya yaratildi
type=OUT, amount=narx
Bal
?
OK
Manfiy balans
Mijozga bildirishnoma:
balansingiz manfiy
Yetmaydi
D. SIFAT TEKSHIRUVI (Quality Control)
Sifat tekshiruvi
POST /parcels/{id}/qc/
Jismoniy tekshirish
QC
PASSED
O'tdi
DAMAGED
POST /parcels/{id}/mark-damaged/
Foto biriktirish, sabab
Shikast
PROHIBITED_ITEM_DETECTED
POST /parcels/{id}/mark-prohibited/
Avtomatik qaytarish boshlanadi
Taqiqlangan
Qaytarish jarayoni
POST /parcels/{id}/initiate-return/
Parcel → RETURNED
Mijozga bildirishnoma
●
Qaytarildi
E. SARALASH (Sort)
Posilkani saralash
POST /parcels/{id}/sort/
destination_bin tayinlash
SORTED
Yo'nalish bo'yicha guruhlash
Bir yo'nalishga ketadiganlar birga
+?
Yana posilka saralash
Tayyor
F. KONSOLIDATSIYA (Consolidate)
Posilkalarni shipmentga
POST /shipments/{id}/consolidate/
parcel_ids [] scan bilan
ShipmentParcel yaratildi
Har bir parcel → CONSOLIDATED
Shipment → CONSOLIDATING
CONSOLIDATED
All?
Yana parcel qo'shish
Hammasi
G. TASHUVCHIGA TOPSHIRISH (Handoff)
Tashuvchiga topshirish
POST /shipments/{id}/handoff/
carrier_id, departure_time
Shipment statusi yangilanadi
READY_FOR_DEPARTURE → IN_TRANSIT
Barcha parcellar → IN_TRANSIT
IN_TRANSIT
Order → IN_TRANSIT
Barcha parcellar shipmentda
Mijozga bildirishnoma
TrackingEvent yaratildi
"Jo'natma yo'lga chiqdi"
WebSocket yangilanish
✓
Jo'natildi
H. YETKAZISH TASDIQLASH (Filial — Destination Branch)
📦
Posilka yakuniy
Filialga yetdi
ARRIVED_AT_DESTINATION
Mijozga bildirishnoma
Bal
+?
DM
Ha
Yetkazish bloklangan
Mijoz to'lamaguncha topshirilmaydi
POST /parcels/{id}/confirm-cash/
Yo'q
Qabul qilish bloklangan
To'landi
Filialga kelish — oldi tasdiqi
POST /parcels/{id}/pickup-confirm/
Filial (servis-markaz) dan oladi
PICKUP
Kuryer yetkazdi tasdiqi
POST /parcels/{id}/delivery-confirm/
Imzo / foto
COURIER
Parcel → DELIVERED
TrackingEvent yaratildi
DELIVERED
Barcha parcellar DELIVERED?
Order → DELIVERED → 72h → COMPLETED
✓
Yakunlandi
I. OMMAVIY AMALLAR (Bulk Operations)
Ommaviy qabul
POST /parcels/bulk-receive/
tracking_codes [] scan
Ommaviy saralash
POST /parcels/bulk-sort/
[{code, dest_bin}]
Ommaviy status yangilash
POST /parcels/bulk-status-update/
[{code, status}]
Batch natijasi
success: N, failed: M
Xatolar ro'yxati
Bulk operatsiyalar alohida, asosiy oqimdan mustaqil ishlaydi
J. INVENTAR
Ombor inventari ko'rish
Ombor sig'imi tekshirish
GET /inventory/ | GET /inventory/capacity/ — istalgan vaqtda
Belgilar:
Boshlash
Muvaffaqiyat
Xato/Qaytarish
WMS amali
Tizim amali
Istisno
Ommaviy
Qaror
Oqimlar:
Normal
Muvaffaqiyat
Xato/Istisno