Class FundamentalAnalysisService

java.lang.Object
com.raphaelsalles.backend.domain.service.financial.FundamentalAnalysisService

@Service public class FundamentalAnalysisService extends Object
Serviço responsável pela geração de Análises Fundamentalistas a partir de dados contábeis brutos.

Papel na Arquitetura: Atua como um motor de cálculo e inteligência de negócio. Transforma dados frios (Balanço Patrimonial, DRE) em indicadores de decisão (Margem Líquida, ROE, Status de Saúde).

Responsabilidades Principais:
  • Cálculo de indicadores financeiros (ROE, Margem Líquida).
  • Classificação automática de saúde financeira ("EXCELENTE", "EM ALERTA").
  • Self-Healing: Capacidade de corrigir dados faltantes no demonstrativo principal buscando nas linhas detalhadas.
  • Persistência e atualização da entidade StockAnalysis.
  • Field Details

  • Constructor Details

  • Method Details

    • analyze

      @Transactional public StockAnalysis analyze(FinancialStatement statement)
      Realiza a análise fundamentalista de um demonstrativo financeiro.

      Este método é idempotente e resiliente: se faltarem dados sumarizados (ex: Lucro Líquido zerado no cabeçalho), ele varre as linhas detalhadas (AccountLines) para tentar encontrar o valor correto antes de calcular.

      Parameters:
      statement - O demonstrativo financeiro (DFP/ITR) a ser analisado.
      Returns:
      A entidade StockAnalysis atualizada e persistida.
    • resolveValue

      private BigDecimal resolveValue(FinancialStatement stmt, BigDecimal mainValue, String... targetCodes)
    • isZero

      private boolean isZero(BigDecimal val)