Package br.com.vantroba.bi.transporte.processamento


package br.com.vantroba.bi.transporte.processamento
Pipeline de processamento da planilha XLS — a feature central do app. Carrega todas as suas camadas: controllers REST + views, services (recebimento, execução assíncrona, recovery na inicialização, armazenamento do binário, notificação), repositórios JDBC e as entidades dos fatos bi_* e do controle xls_*.

O upload responde 202 Accepted na hora e o trabalho pesado roda num pool dedicado; o subpacote processing faz a leitura do Excel (FastExcel, em streaming) e o mapeamento de colunas, sem conhecer a camada HTTP.

  • Class
    Description
    Coordena o armazenamento do binário XLS entre o Postgres (coluna arquivo_bytes) e o object storage Garage, conforme o ArmazenamentoModo configurado em app.storage.modo.
    Projeção de coluna única: o binário legado arquivo_bytes.
    Conteúdo de um arquivo XLS recuperado do storage para download.
    Caminho idempotente UPSERT diff-aware + DELETE seletivo (spec 004).
    Fonte de verdade única das colunas relevantes ao caminho idempotente UPSERT diff-aware (spec 004 — § 4.2 e § 5.4).
    Tabela xls_conjunto_lote: rastreia um lote de arquivos enviados juntos num .zip.
    Persistência de ConjuntoLote (lote por zip).
    Coordena o ciclo de vida de um lote (.zip).
    Linha de faturamento importada da aba 20 do Excel — tabela bi_faturamento.
    Repositório CRUD de bi_faturamento.
    Resposta do POST /api/xls/processar: id do lote, total e status por entrada.
    Status de um arquivo do lote.
    Agregado das métricas de uma execução do orquestrador (spec 004 § 5.5): contém o UpsertResultado de cada tabela alvo.
    Linha de movimento contábil importada da aba 30 — tabela bi_movimento.
    Repositório CRUD de bi_movimento.
    Consultas de processamento: listagem paginada, detalhe, leitura do arquivo de log em disco e download do XLS original.
    Detalhe de um processamento para API e tela de detalhe (metadados, contagens e métricas de idempotência da spec 004; sem bytes do XLS).
    Resposta paginada do endpoint de listagem de processamentos.
    Formata e dispara as notificações Telegram do pipeline de processamento.
    Execução assíncrona do processamento (fora do ProcessamentoService para o @Async ser aplicado via proxy).
    Persistência JDBC de ProcessamentoXls e atualizações de status.
    Resposta do recebimento síncrono (o controller HTTP mapeia httpStatus para o status da resposta).
    Linha da lista de processamentos (JTE e GET /api/transporte/processamentos).
    Orquestra recepção de arquivos, deduplicação por checksum e agendamento do processamento assíncrono.
    Status de uma entrada .xlsx do lote (id nulo quando não gerou processamento).
    Resultado do recebimento de um lote (.zip).
    Estados de um processamento de XLS (xls_processamento.status).
    Operações transacionais sobre os dados do BI por período (evita problemas de proxy com @Async).
    Entidade da tabela xls_processamento: metadados do envio, referência ao objeto XLS no MinIO e resultado do job.
    Backfill dos blobs legados (arquivo_bytes) para o object storage Garage, dirigido pelo ArmazenamentoModo configurado em app.storage.modo: PSQL — não faz nada (tudo permanece no Postgres).
    API REST de transporte: envio de XLS (Bearer), listagem e consulta pública de processamentos.
    Métricas de uma operação UPSERT diff-aware + DELETE seletivo no caminho idempotente (spec 004 — § 4.7).
    Rotas HTML (JTE) para histórico e detalhe de processamentos — acesso anônimo conforme configuração de segurança.
    Porta única de envio de XLS — padrão da casa, idêntico entre todos os clientes.
    Desempacota o .zip de lote em suas entradas .xlsx (o zip É o lote).
    Uma entrada .xlsx do zip.