Envio de Avisos por SMS e Push
Analisando o código Java fornecido, posso descrever o funcionamento do sistema em termos de regras de negócio, com base no processo de verificação e envio de alertas de veículos.
Fluxo de Negócio: Sistema de Notificações para Veículos Monitorados
Este sistema gerencia o envio de notificações sobre eventos de veículos através de diferentes canais de comunicação (SMS, Push e Central de Monitoramento) seguindo estas regras de negócio:
1. Identificação de Avisos Pendentes
- O sistema consulta periodicamente um banco de dados para identificar avisos de veículos que ainda não foram processados para envio de SMS ou notificações Push
- São selecionados até 10.000 avisos pendentes por ciclo de processamento
2. Processamento Paralelo de Localização
- Para cada aviso pendente, o sistema obtém informações de localização utilizando processamento paralelo
- Estas informações de localização são essenciais para contextualizar os alertas enviados
3. Carregamento de Configurações de Notificação
- O sistema carrega as configurações de notificação específicas para cada veículo
- Essas configurações determinam quais tipos de alertas cada veículo deve receber e através de quais canais
4. Regras de Envio de Notificações Push
- Para cada aviso, o sistema verifica se deve enviar notificação Push com base nas configurações do veículo
- Se autorizado, a notificação Push é enviada através do serviço FCM (Firebase Cloud Messaging)
5. Regras de Envio de SMS
- O sistema aplica várias regras para determinar se um SMS deve ser enviado:
- Verifica se o SMS está habilitado nas configurações do veículo
- Confirma se o envio é permitido (controle de frequência/excesso)
- Verifica se há saldo disponível na conta do cliente
- Valida se existem destinatários com números válidos para receber o SMS
- Se todas as condições forem atendidas, o SMS é enviado via serviço InfoBip
6. Regras para Monitoramento pela Central
- Para cada aviso, o sistema determina se deve ser encaminhado para uma central de monitoramento
- Avisos que não exigem monitoramento são marcados como encerrados
- Avisos que requerem monitoramento são encaminhados para a central
7. Atualização do Status dos Avisos
- Após o processamento, o sistema atualiza o status de cada aviso no banco de dados:
- Registra se o SMS foi enviado com sucesso ou qual foi o motivo da falha
- Registra quais avisos foram encaminhados para a central de monitoramento
- Marca os avisos que foram considerados como encerrados/não monitoráveis
8. Controles Específicos
- O sistema mantém controle sobre tipos específicos de alertas como:
- Excesso de velocidade
- Saída de cerca virtual (geocerca)
- Outros alertas personalizados (avisoAux0-3)
- Alertas de sensores conectados ao veículo
9. Gestão de Recursos
- O sistema implementa controles para gerenciar recursos:
- Limita o número de processamentos paralelos
- Monitora o saldo de créditos de SMS dos clientes
- Gerencia conexões com serviços externos
10. Rastreabilidade
- Todo o processo é registrado em logs para permitir auditoria e solução de problemas:
- Número de avisos processados
- Quantidade de SMS e Push enviados
- Erros ocorridos durante o processamento
Este sistema integra monitoramento de veículos com múltiplos canais de comunicação, seguindo regras específicas de negócio para garantir que as notificações corretas sejam enviadas aos destinatários adequados por meio dos canais apropriados.