Importação IPL via API — ecosif-moviments

Objetivo

Este documento descreve a atualização do processo de importação IPL no ecosif-moviments. O objetivo é manter o mesmo comportamento funcional adotado no ecosif-automations para validação, relatório de importação, interpretação de débito/crédito e tratamento de contrapartida, mas com execução iniciada exclusivamente pelo consumo da API Java.

Inicialização do processo

O processo de importação neste serviço é iniciado somente pelo endpoint:

POST /importMoviment/{company}/{branch}/{fname}
Content-Type: text/plain

O corpo da requisição deve conter o conteúdo textual do arquivo IPL. Este módulo não deve iniciar a importação por gatilho de Lambda, evento S3 ou fila. Caso o arquivo tenha sido recebido por outro componente, esse componente deve chamar a API acima.

Regras de layout IPL

Cada linha válida deve possuir 156 caracteres. As posições relevantes são:

As regras aplicadas são as mesmas do ecosif-automations:

Geração de lançamentos

No fluxo Java, a regra central fica em IplImportRules e é consumida pelo ImportReportController e pelo ImportReportDetailsServiceImpl.

Para lançamento simples (tipo 1), o serviço gera uma linha em ct_lancamento:

Para lançamento com contrapartida (tipo 2), o serviço gera duas linhas em ct_lancamento:

Nesse caso, o valor totaliza tanto em débito quanto em crédito no lote.

Relatório e validações

O ecosif-moviments deve registrar o relatório de importação com as mesmas decisões de validação adotadas no ecosif-automations:

Testes e cobertura

O processo de teste atualizado fica em src/test/java e cobre:

O Maven usa JaCoCo para exigir cobertura mínima de 60% nas classes críticas do processo:

Comandos:

mvn test
mvn verify

O relatório HTML fica em:

target/site/jacoco/index.html

mvn verify falha caso a cobertura mínima configurada em import.coverage.minimum fique abaixo de 0.60.