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.
-
ClassDescriptionCoordena o armazenamento do binário XLS entre o Postgres (coluna
arquivo_bytes) e o object storage Garage, conforme oArmazenamentoModoconfigurado emapp.storage.modo.Projeção de coluna única: o binário legadoarquivo_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).Tabelaxls_conjunto_lote: rastreia um lote de arquivos enviados juntos num .zip.Persistência deConjuntoLote(lote por zip).Coordena o ciclo de vida de um lote (.zip).Linha de faturamento importada da aba 20 do Excel — tabelabi_faturamento.Repositório CRUD debi_faturamento.Resposta doPOST /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 oUpsertResultadode cada tabela alvo.Linha de movimento contábil importada da aba 30 — tabelabi_movimento.Repositório CRUD debi_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 doProcessamentoServicepara o@Asyncser aplicado via proxy).Persistência JDBC deProcessamentoXlse atualizações de status.Resposta do recebimento síncrono (o controller HTTP mapeiahttpStatuspara o status da resposta).Linha da lista de processamentos (JTE eGET /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 tabelaxls_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 peloArmazenamentoModoconfigurado emapp.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.