Skip to content

Antrian Produksi

Halaman layouter — kelola antrian masuk, staging keranjang, dan penugasan job ke mesin sebelum operator menjalankan batch.

Menu Antrian Produksi (/production/antrian) menampilkan board operasional untuk layouter (viewMode = antrian). Judul di UI: Antrian Produksi (DTF).

Hak akses: production.queue.view · aksi operasional: production.queue.manage

Baca juga: Overview Produksi · Proses Produksi · Daftar Order


Halaman dibagi menjadi tiga area utama:

AreaLabel UIFungsi
Kolom kiriIncoming queueDaftar job masuk — filter, claim layout, centang ke keranjang
Kanan atasProduction cart (Keranjang produksi)Staging job terpilih sebelum dikirim ke mesin
Kanan bawahMachine board (Papan mesin)Status per mesin — menunggu, berjalan, operator
Screenshot diperlukan

Antrian Produksi — Overview

Menu: Produksi → Antrian (/production/antrian)

Simpan sebagai: /images/produksi/antrian-overview.png

Yang di-capture: Board 3 area: incoming queue kiri (tab filter terlihat), keranjang staging kanan atas, machine board kanan bawah. Minimal 2–3 kartu job di incoming.


Tab filter (dengan hitungan per tab):

TabMenampilkan
SemuaSeluruh job sesuai scope layouter
Belum layoutJob yang belum punya dimensi layout (width/length)
Siap cetakLayout sudah terdefinisi, status QUEUED, siap ke mesin
PrioritasOrder dengan flag prioritas / due date ketat
WAPelanggan dengan nomor WhatsApp — aksi chat cepat
MarketplaceOrder dari channel marketplace

Scope layouter: Milik saya (job yang sudah Anda claim) vs Semua layouter (pool order baru dari POS yang belum diambil).

Filter tambahan: Pelanggan · Admin layouter (saat scope Semua layouter) · Sort Urutan antrian (drag-drop) vs Terbaru · Pencarian order/pelanggan/produk di header.

Urutan antrian: Mode sort Urutan antrian mengaktifkan drag-drop pada kartu job (ikon ). Hanya job yang memenuhi syarat reorder yang bisa diseret — biasanya job dalam scope layouter Anda yang belum dikirim ke mesin.


StatusArti untuk pengguna
QUEUEDJob menunggu — di antrian layout atau sudah di mesin tapi belum mulai cetak
IN_PROGRESSSedang diproses di mesin / dalam batch aktif
COMPLETEDSelesai — hilang dari antrian aktif; status produksi order terupdate

Label tahap di kartu (pill di footer kartu) melengkapi status API:

Label UIKeterangan
Belum diambilJob di pool — belum ada layouter claim
Layout (diambil)Layouter sudah claim — siap dikerjakan layout
Belum layoutDimensi layout (lebar/panjang) belum diisi
Siap cetak / Siap operatorLayout selesai atau sudah release ke operator
Jenjang N/MFase workflow aktif (phase_index / total_phases)
Di mesin (antri)Sudah assign mesin, menunggu mulai
Sedang diprosesStatus IN_PROGRESS di mesin

Split job & fase: Job dengan qty besar bisa di-split menjadi beberapa porsi (anak job di bawah induk). Induk split tidak bisa masuk keranjang — hanya anaknya. Fase workflow menentukan mesin yang valid di dropdown keranjang (intersection pemetaan resep per jenjang).

Layout width/length: Dimensi layout (layout_width_cm, layout_length_m) dari item order menentukan apakah job masuk tab Belum layout vs Siap cetak.


LangkahAksiIzin
1Buka tab / scope → pilih job di incoming queueview
2Klik Ambil job (claim layout)manage
3Siapkan layout — release ke operator jika perlumanage
4Centang job → masuk keranjang stagingmanage
5Pilih mesin + operator → Kirim ke mesin & mulai produksimanage
6Pantau papan mesin — batch berjalanview
Screenshot diperlukan

Kartu Job — Claim Layout

Menu: Produksi → Antrian → Incoming queue

Simpan sebagai: /images/produksi/antrian-claim.png

Yang di-capture: Kartu job dengan pill Layout (diambil) atau Belum diambil, tombol Ambil job / Lepas claim / Release ke operator terlihat pada kartu yang relevan.

Screenshot diperlukan

Keranjang & Kirim ke Mesin

Menu: Produksi → Antrian → Production cart

Simpan sebagai: /images/produksi/antrian-keranjang.png

Yang di-capture: Keranjang berisi 2+ order, dropdown Pilih mesin + Operator mesin, tombol Kirim ke mesin & mulai produksi aktif.

Aksi pada kartu job (butuh production.queue.manage kecuali lihat saja):

TombolFungsi
Ambil jobClaim layout — job masuk scope Milik saya
Lepas claimBatalkan claim layout (POST /jobs/:id/cancel-layout-claim)
Release ke operatorTandai layout selesai, siap ke tahap operator
CentangTambah/hapus job dari keranjang (job split induk tidak bisa)
SplitPecah job besar menjadi beberapa porsi
WhatsAppBuka chat pelanggan (tab WA)
EstimasiPopup perbandingan estimasi vs aktual material per job

Keranjang: Centang job di incoming → atur urutan di keranjang (drag) → pilih mesin Idle yang cocok dengan fase job → pilih operator mesinKirim ke mesin & mulai produksi. Semua order dalam keranjang masuk satu batch dan mulai bersamaan.

Dropdown mesin difilter ke aset yang dipetakan di resep untuk jenjang aktif semua job di keranjang. Jika tidak ada mesin idle, tunggu batch selesai di papan mesin.


Setiap mesin ditampilkan sebagai kartu accordion:

BagianIsi
Badge statusOnline (busy) · Idle · Maintenance
MenungguJob QUEUED yang sudah assign ke mesin — tombol Mulai (alur lama per job)
BerjalanJob IN_PROGRESS — untuk batch produksi, selesai lewat menu Proses Produksi
OperatorNama operator mesin dari master aset
Proses selesaiSelesaikan batch aktif di mesin ini (jika semua job batch siap)

Legenda warna: Online · Idle · Maintenance.


Antrian diperbarui otomatis tanpa refresh penuh lewat WebSocket /ws/production-queue (autentikasi token + branch_id cabang aktif).

Event yang memicu refresh UI antara lain: job.claimed, job.claim_released, job.assigned, job.started, job.finished, batch.completed, queue.reordered.

Jika koneksi terputus, klien mencoba reconnect setiap ~4 detik. Tombol Refresh tetap tersedia untuk muat ulang manual.


MasalahPenyebab umumSolusi
Tombol aksi tidak munculHanya punya production.queue.viewMinta admin tambahkan production.queue.manage pada role layouter
Tidak ada order di Milik sayaBelum claim jobPilih Semua layouter → Ambil job dari pool
Dropdown mesin kosongSemua mesin busy atau tidak ada pemetaan resepSelesaikan batch di Proses Produksi; cek Alat/Mesin dan BOM
Job tidak bisa ke keranjangInduk split job atau status tidak QUEUEDPilih job anak split; pastikan layout sudah release
Antrian tidak update otomatisWebSocket gagal / token expiredRefresh halaman; login ulang; cek koneksi jaringan
Belum ada mesinMaster aset kosong di cabangDaftarkan mesin di Alat / Mesin

Operator: Setelah batch terkirim, lanjutkan di Proses Produksi — request material dan selesaikan batch.