Class ProcessamentoTransactionalHelper
java.lang.Object
br.com.vantroba.bi.transporte.processamento.ProcessamentoTransactionalHelper
Operações transacionais sobre os dados do BI por período (evita problemas de proxy com
@Async).
Usa o caminho idempotente BulkUpserter (UPSERT diff-aware + DELETE seletivo) para
colapsar checkpoints PowerSync conforme spec 004. O caminho legado DELETE+COPY foi removido
na fase 6 da spec.
-
Constructor Summary
ConstructorsConstructorDescriptionProcessamentoTransactionalHelper(BulkUpserter bulkUpserter) Cria o helper transacional. -
Method Summary
Modifier and TypeMethodDescriptionmesclarDadosDoPeriodo(LocalDate periodoInicio, LocalDate periodoFim, List<Faturamento> faturamentos, List<Movimento> movimentos, Consumer<String> log) Mescla o lote do upload embi_faturamentoebi_movimentousando UPSERT diff-aware + DELETE seletivo (spec 004).
-
Constructor Details
-
ProcessamentoTransactionalHelper
Cria o helper transacional.- Parameters:
bulkUpserter- componente de UPSERT diff-aware usado na mescla dos dados
-
-
Method Details
-
mesclarDadosDoPeriodo
public MesclaResumo mesclarDadosDoPeriodo(LocalDate periodoInicio, LocalDate periodoFim, List<Faturamento> faturamentos, List<Movimento> movimentos, Consumer<String> log) Mescla o lote do upload embi_faturamentoebi_movimentousando UPSERT diff-aware + DELETE seletivo (spec 004). Preservaidexminpara linhas inalteradas — zero evento de WAL para reuploads idênticos.Primeira instrução:
BulkUpserter.adquirirLockMescla(Consumer)(advisory lock liberado no COMMIT desta transação) — serializa mesclas concorrentes e elimina deadlock 40P01 entre arquivos processados em paralelo. O parse do Excel (fase cara) continua paralelo; só a fase de banco enfileira.- Parameters:
periodoInicio- data inicial do período abrangido pelo loteperiodoFim- data final do período abrangido pelo lotefaturamentos- registros de faturamento a mesclarmovimentos- registros de movimento a mesclarlog- consumidor de mensagens de progresso- Returns:
MesclaResumocom métricas detalhadas por tabela.
-