🔄 Fluxos - ecosif-reports
📋 Visão Geral
Este documento descreve os principais fluxos de geração de relatórios do serviço ecosif-reports.
🔄 Fluxo 1: Gerar Balancete Mensal
Descrição
Geração de balancete mensal com saldos e movimentações do perÃodo.
Diagrama de Sequência
sequenceDiagram
participant Client as Cliente
participant Controller as ReportsController
participant Service as PrintReportService
participant ProcService as ProcedureBalanceteMensalService
participant Repo as MonthlyAccountBalanceRepository
participant JR as JasperReports
participant Export as ExportReportsHelper
participant DB as PostgreSQL
Client->>Controller: POST /reports/monthlyTrialBalance
Controller->>Service: getMonthlyTrialBalance(dto)
Service->>ProcService: buscarDados(dto)
ProcService->>Repo: findAccountBalanceByYearAndMonth(...)
Repo->>DB: SELECT * FROM ct_plano_saldo WHERE...
DB-->>Repo: List<MonthlyAccountBalance>
Repo-->>ProcService: Dados
ProcService-->>Service: Dados preparados
Service->>JR: compilarTemplate("balancete_mensal.jrxml")
JR-->>Service: CompiledReport
Service->>JR: preencherTemplate(report, dados)
JR-->>Service: JasperPrint
Service->>Export: exportarParaPDF(jasperPrint)
Export-->>Service: byte[] PDF
Service->>Service: converterParaBase64(PDF)
Service-->>Controller: RetornoGenerico (base64)
Controller-->>Client: 200 OK
🔄 Fluxo 2: Consultar Saldos Mensais
Descrição
Consulta paginada de saldos mensais do plano de contas.
Diagrama de Sequência
sequenceDiagram
participant Client as Cliente
participant Controller as PlanoSaldoController
participant Service as PlanoSaldoService
participant Repo as MonthlyAccountBalanceRepository
participant DB as PostgreSQL
Client->>Controller: GET /api/v1/saldos/plano-saldo?empresa=...&filial=...&ano=...&mes=...
Controller->>Controller: Criar PageRequest
Controller->>Service: buscarPlanoSaldo(empresa, filial, ano, mes, pageable)
Service->>Repo: findByEmpresaAndFilialAndYearAndMonth(..., pageable)
Repo->>DB: SELECT * FROM ct_plano_saldo WHERE ... LIMIT ... OFFSET ...
DB-->>Repo: Page<MonthlyAccountBalance>
Repo-->>Service: Page com dados
Service->>Service: Transformar em DTOs (PlanoSaldoResponse)
Service-->>Controller: PlanoSaldoResponse
Controller->>Controller: Embrulhar em RetornoGenerico
Controller-->>Client: 200 OK
🔄 Fluxo 3: Gerar Razão Contábil
Descrição
Geração de relatório de razão contábil com histórico detalhado.
Diagrama de Sequência
sequenceDiagram
participant Client as Cliente
participant Controller as ReportsController
participant Service as PrintReportService
participant RazaoService as ProcedureRazaoService
participant Repo as EntryRepository
participant JR as JasperReports
participant Export as ExportReportsHelper
participant DB as PostgreSQL
Client->>Controller: POST /reports/relatorioRazao
Controller->>Service: getReportRazao(dto)
Service->>RazaoService: buscarDados(dto)
RazaoService->>Repo: findEntriesByAccountAndPeriod(...)
Repo->>DB: SELECT com JOINs complexos
DB-->>Repo: List<Entry> com detalhes
Repo-->>RazaoService: Dados agregados
RazaoService-->>Service: Dados preparados (DTOs)
Service->>JR: compilarTemplate("razao.jrxml")
JR-->>Service: CompiledReport
Service->>JR: preencherTemplate(report, dados)
JR-->>Service: JasperPrint
Service->>Export: exportarParaPDF(jasperPrint)
Export-->>Service: byte[] PDF
Service->>Service: converterParaBase64(PDF)
Service-->>Controller: RetornoGenerico
Controller-->>Client: 200 OK
Última Atualização: 2025-12-01