Class ProcessamentoNotificador

java.lang.Object
br.com.vantroba.bi.transporte.processamento.ProcessamentoNotificador

@Singleton public class ProcessamentoNotificador extends Object
Formata e dispara as notificações Telegram do pipeline de processamento. Conhece o domínio (ProcessamentoXls, MesclaResumo) e o transforma em texto; o envio em si fica no TelegramService (transporte). Separar formatação de transporte mantém comum livre de dependência de feature.
  • Constructor Details

    • ProcessamentoNotificador

      public ProcessamentoNotificador(TelegramService telegram, AppConfig app)
      Parameters:
      telegram - transporte Telegram
      app - configuração app.*; app.base-url em branco usa o fallback
  • Method Details

    • notificarSucesso

      public void notificarSucesso(ProcessamentoXls proc, MesclaResumo resumo)
      Notifica sucesso silenciando quando o upload foi idempotente (resumo.totalAlteracoes() == 0 em ambas as tabelas — spec 004 fase 5). Quando resumo é null, cai no comportamento legado (sempre notifica sem detalhamento de métricas).
      Parameters:
      proc - processamento concluído com sucesso
      resumo - métricas da mescla por tabela; null aciona o comportamento legado
    • notificarErro

      public void notificarErro(ProcessamentoXls proc)
      Notifica a falha de um processamento.
      Parameters:
      proc - processamento que terminou em erro
    • notificarResumoConjunto

      public void notificarResumoConjunto(ConjuntoLote lote, List<ProcessamentoXls> procs)
      Envia o resumo de um lote (.zip) completo: uma linha por arquivo com o status, e a contagem de duplicados/não-processados do lote. Chamado uma vez, pelo thread que fecha o lote (ConjuntoLoteService).
      Parameters:
      lote - o lote fechado
      procs - os processamentos do lote (pode ser vazio se todos foram duplicata/rejeitados)
    • montarTextoResumo

      public String montarTextoResumo(ConjuntoLote lote, List<ProcessamentoXls> procs)
      Monta o texto do resumo do lote. Exposto para testes unitários.
    • montarTextoSucesso

      public String montarTextoSucesso(ProcessamentoXls proc, MesclaResumo resumo)
      Monta o texto da mensagem de sucesso. Quando resumo não é nulo, inclui o detalhamento das 4 métricas por tabela (spec 004 fase 5). Exposto para testes unitários.
      Parameters:
      proc - processamento concluído com sucesso
      resumo - métricas da mescla por tabela; null omite o detalhamento
      Returns:
      o texto formatado da notificação de sucesso
    • montarTextoErro

      public String montarTextoErro(ProcessamentoXls proc)
      Monta o texto da mensagem de falha no processamento. Exposto para testes unitários.
      Parameters:
      proc - processamento que terminou em erro
      Returns:
      o texto formatado da notificação de erro