Pular para o conteúdo principal

Work Order (Ordem de Servico)

Modulo central de gestao de manutencao do Facter Truck. Gerencia o ciclo de vida completo de ordens de servico, desde a entrada na fila ate a finalizacao.


Maquina de Status

┌─────────┐
┌──────────>│ Fila │<──────────┐
│ └────┬────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────┐ │
│ │ Manutencao │ │
│ └────────┬─────────┘ │
│ │ │
│ ┌────┴────┐ │
│ │ │ │
│ ▼ ▼ │
│ ┌───────────┐ ┌──────────┐ │
│ │ Aguardando│ │Finalizada│ │
│ │ Peca │ └──────────┘ │
│ └─────┬─────┘ │
│ │ │
│ └───────────────────────┘

│ ┌──────────┐
└───────────│ Cancelada│
└──────────┘
StatusDescricaoTransicoes possiveis
FilaAguardando inicioManutencao, Cancelada
ManutencaoEm execucaoAguardandoPeca, Finalizada, Cancelada
AguardandoPecaParada por falta de pecasManutencao, Cancelada
FinalizadaConcluida (terminal)-
CanceladaCancelada (terminal)-

Entidades Principais

EntidadeDescricao
WorkOrderOS principal com status, prioridade, timestamps, custos
WorkOrderAssetVinculo da OS com veiculos/carretas (multi-asset)
ServiceAssignmentServico atribuido a OS com localizacao no ativo
EmployeeServiceAssignmentFuncionario alocado ao servico
PartRequestSolicitacao de peca vinculada a OS/servico
NoteObservacoes da OS
EventHistorico de mudancas (legado, migrando para Activity)

Domain Events

EventoTriggerEfeito
WORK_ORDER_MAINTENANCE_STARTEDIniciar manutencaoActivity log
WORK_ORDER_MAINTENANCE_FINISHEDFinalizar manutencaoActivity log
WORK_ORDER_WAITING_PARTSAguardar pecasActivity log
WORK_ORDER_CANCELLEDCancelar OSActivity log

Use Cases

Use CaseDescricao
CreateWorkOrderUseCaseCriar OS com veiculos e servicos
StartMaintenanceUseCaseIniciar manutencao (Fila -> Manutencao)
FinishMaintenanceUseCaseFinalizar (Manutencao -> Finalizada)
WaitingPartsUseCasePausar para pecas (Manutencao -> AguardandoPeca)
ResumeMaintenanceUseCaseRetomar (AguardandoPeca -> Manutencao)
CancelWorkOrderUseCaseCancelar OS
UpdateWorkOrderUseCaseAtualizar dados da OS

Timestamps de Controle

A OS registra timestamps automaticos para calcular metricas:

CampoQuando preenchido
queueEntryTimeAo criar a OS
maintenanceStartTimeAo iniciar manutencao
maintenanceEndTimeAo finalizar
partsWaitStartTimeAo entrar em AguardandoPeca
partsWaitEndTimeAo retomar de AguardandoPeca

Metricas derivadas: tempo em fila, tempo de manutencao, tempo aguardando pecas, tempo total.


Prioridades

PrioridadeDescricao
BAIXAPode esperar
MEDIAPadrao
ALTAPriorizar
URGENTEAtender imediatamente

Integracao com Outros Modulos

ModuloRelacao
FleetOS vinculada a veiculos e carretas da frota
ServiceServicos atribuidos a OS com localizacao no ativo
PartSolicitacoes de pecas vinculadas a OS/servico
EmployeeFuncionarios alocados aos servicos
ChecklistChecklists podem gerar OS automaticamente
Activity SystemEventos de dominio para rastreabilidade
Maintenance PlanOS gerada a partir de agendamentos preventivos

Seguranca

  • Guards em cadeia: JwtAuthGuard -> CompanyGuard -> PolicyGuard
  • Todo request filtra por companyId (multi-tenant)
  • Policies: work-order:create, work-order:read, work-order:update, work-order:delete

Frontend

Componentes Principais

A tela de Work Order usa compound components para modularidade:

  • WorkOrderListPage: Listagem paginada com filtros (status, prioridade, busca)
  • WorkOrderDetailsPage: Detalhes com tabs (servicos, pecas, historico)
  • MaintenanceDataCard: Card com dados do ativo e servicos
  • ServiceAssignmentList: Lista de servicos com acoes inline
  • PartRequestList: Lista de solicitacoes de pecas

State Management

Zustand stores para gerenciamento de dialogs e estado local da feature. TanStack Query para dados do servidor.


Referencias