ποΈ Arquitetura - ecosif-reports
π VisΓ£o Geral
ecosif-reports Γ© um microserviΓ§o Spring Boot especializado na geraΓ§Γ£o de relatΓ³rios contΓ‘beis utilizando JasperReports. Este serviΓ§o processa dados contΓ‘beis e os transforma em relatΓ³rios formatados em PDF, CSV ou TXT.
π― Objetivo do ServiΓ§o
- β GeraΓ§Γ£o de relatΓ³rios contΓ‘beis em mΓΊltiplos formatos
- β Templates reutilizΓ‘veis usando JasperReports
- β Performance para grandes volumes de dados
- β Consultas de dados para alimentar relatΓ³rios
ποΈ Arquitetura em Camadas
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Controllers (REST) β
β β’ ReportsController (11 endpoints) β
β β’ PlanoSaldoController (3 endpoints) β
β β’ LancamentoContabilController (1 endpoint) β
β β’ PreferenciasController (2 endpoints) β
ββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Services (LΓ³gica) β
β β’ PrintReportService β
β β’ ProcedureBalanceteGeralService β
β β’ ProcedureBalanceteMensalService β
β β’ ProcedureRazaoService β
β β’ RelatorioDiarioGeralService β
β β’ ... (13 services) β
ββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Repositories (JPA) β
β β’ AccountbalanceRepository β
β β’ MonthlyAccountBalanceRepository β
β β’ ChartOfAccountsRepository β
β β’ ... (31 repositories) β
ββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ecosif-database (Biblioteca) β
β β’ Entry β’ Balance β’ ChartOfAccounts β
β β’ Document β’ Batch β’ CompanyOptions β
β β’ ... (52+ entidades) β
ββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PostgreSQL Database β
β β’ Tabelas contΓ‘beis β
β β’ Procedures de agregaΓ§Γ£o β
ββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β JasperReports Templates β
β β’ 36+ templates (.jrxml) β
β β’ Compilados (.jasper) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π¦ Estrutura de Pacotes
io.ecosif.reports
βββ controller/ # 5 controllers REST
β βββ ReportsController.java
β βββ PlanoSaldoController.java
β βββ LancamentoContabilController.java
β βββ PreferenciasController.java
β βββ TesteController.java
βββ service/ # Services de geraΓ§Γ£o
β βββ PrintReportService.java
β βββ ProcedureBalanceteGeralService.java
β βββ ProcedureBalanceteMensalService.java
β βββ ProcedureRazaoService.java
β βββ ... (13 services)
βββ repository/ # Repositories JPA (31)
βββ model/ # Models e DTOs
β βββ dto/ # 31 DTOs
β βββ ... (models temporΓ‘rios)
βββ helpers/ # Helpers de exportaΓ§Γ£o
β βββ ExportReportsHelper.java
βββ config/ # ConfiguraΓ§Γ΅es Spring
β βββ OpenApiConfig.java
β βββ JasperReportsConfig.java
β βββ WebSecurityConfig.java
βββ procedures/ # Procedures de banco
π§ Tecnologias e DependΓͺncias
Core
- Spring Boot 2.7.18 - Framework base
- Spring Data JPA - PersistΓͺncia
- Hibernate - ORM
- PostgreSQL 15+ - Banco de dados
GeraΓ§Γ£o de RelatΓ³rios
- JasperReports 6.19.1 - Engine de relatΓ³rios
- iText 2.1.7 - GeraΓ§Γ£o de PDF
- Batik 1.14 - RenderizaΓ§Γ£o SVG
- Apache POI - GeraΓ§Γ£o de Excel (via JasperReports)
API e DocumentaΓ§Γ£o
- SpringDoc OpenAPI 3.0 - DocumentaΓ§Γ£o API
SeguranΓ§a
- Spring Security - AutenticaΓ§Γ£o/autorizaΓ§Γ£o
- JWT (JJWT 0.11.5) - Tokens JWT
UtilitΓ‘rios
- Lombok 1.18.30 - ReduΓ§Γ£o de boilerplate
- ModelMapper 3.1.0 - Mapeamento DTO β Entity
Monitoramento
- Spring Actuator - Health checks e mΓ©tricas
- Prometheus - MΓ©tricas
- Datadog APM - Application Performance Monitoring
π Componentes Principais
Controllers (5)
| Controller | Endpoints | Responsabilidade |
|---|---|---|
ReportsController |
11 | GeraΓ§Γ£o de relatΓ³rios |
PlanoSaldoController |
3 | Consultas de saldos |
LancamentoContabilController |
1 | Consultas de lanΓ§amentos |
PreferenciasController |
2 | PreferΓͺncias de usuΓ‘rio |
TesteController |
6 | Endpoints de teste |
Services (13+)
Principais services:
PrintReportService- ServiΓ§o principal de geraΓ§Γ£oProcedureBalanceteGeralService- Balancete geralProcedureBalanceteMensalService- Balancete mensalProcedureBalanceteDiarioService- Balancete diΓ‘rioProcedureBalancetePatrimonialService- BalanΓ§o patrimonialProcedureRazaoService- RazΓ£o contΓ‘bilRelatorioDiarioGeralService- DiΓ‘rio geralProcedureTermoService- Termos de abertura/encerramentoLancamentoContabilService- Consulta de lanΓ§amentosPlanoSaldoService- Consulta de saldosPreferenciasUsuarioService- PreferΓͺncias
Repositories (31)
AccountbalanceRepository- Saldos de contasMonthlyAccountBalanceRepository- Saldos mensaisChartOfAccountsRepository- Plano de contasEntryRepository- LanΓ§amentos- ... (27 mais)
π Templates JasperReports
O serviΓ§o possui 36+ templates organizados por tipo:
- Balancetes - Mensal, diΓ‘rio, geral
- Patrimonial - BalanΓ§o patrimonial, DRE
- RazΓ£o - RazΓ£o contΓ‘bil
- DiΓ‘rio Geral - DiΓ‘rio geral completo
- LanΓ§amentos - Listagem de lanΓ§amentos
- COSIF/CVM - Formatos regulatΓ³rios
LocalizaΓ§Γ£o: src/main/resources/templates/*.jrxml
π Fluxo de GeraΓ§Γ£o de RelatΓ³rio
- Controller recebe requisiΓ§Γ£o com parΓ’metros
- Service valida dados e busca informaΓ§Γ΅es do banco
- Repository executa queries/procedures
- Service prepara dados (DTOs, projections)
- JasperReports compila template (.jrxml β .jasper)
- JasperReports preenche template com dados
- ExportHelper exporta para formato solicitado (PDF/CSV/TXT)
- Controller retorna relatΓ³rio em base64
Γltima AtualizaΓ§Γ£o: 2025-12-01