O painel mostra a fila da unidade, e o guichê só chama os serviços do próprio grupo
[!NOTE] Resumo Executivo (DEV-2026-102): O botão de chamar parecia quebrado enquanto o painel e o monitor mostravam senhas esperando. O código estava certo, e faltava a tela explicar a diferença entre as duas filas.
🚨 O Desafio Técnico / Contexto
O atendente clicava em chamar e nada acontecia, com senhas visíveis no painel. As senhas eram de um serviço que o grupo dele não atende, e ninguém logado atendia aquele serviço.
💡 Principais Lições Aprendidas & Descobertas
- 💡 Duas telas podem mostrar recortes diferentes da mesma fila. Se quem olha não vê a diferença, o comportamento correto parece defeito.
- 💡 A mensagem de fila vazia agora diz quais serviços têm gente esperando e quantas senhas: ‘Aguardando em serviços que você não atende: Financeiro (2).’
- 💡 O monitor ganhou a coluna Atendentes (guichê aberto, fora de pausa, com o serviço no grupo) e o aviso ‘sem atendente’ quando há senha esperando e ninguém disponível.
- 💡 Diagnosticar antes de corrigir evitou mudar o distribuidor, que estava certo.
🛠️ Especificação Técnica & Código-Chave
// A fila da unidade pode ter senhas de serviços que o grupo não atende
$meus = array_keys(app(Distribuidor::class)->servicosDo($u));
$fora = Senha::with('servico')->where('unidade_id', $u->unidade_id)
->where('status', Senha::AGUARDANDO)
->whereDate('data', now()->toDateString())
->whereNotIn('servico_id', $meus)->get()
->groupBy(fn ($s) => $s->servico->nome)->map->count();
📈 Impacto no Ecossistema & Valor Prático
A supervisão vê a falta de atendente no monitor, e o atendente sabe por que não veio nenhuma senha.
- Projetos Relacionados:
lorentz-atp - Registro de Origem:
_data/daily.dev-17.yml
Publicado originalmente como parte do Diário de Desenvolvimento 2026 do ecossistema Artes do Sul & Araguaci.