Class CvmGeneralClassifier

java.lang.Object
com.raphaelsalles.backend.domain.service.importer.strategy.CvmGeneralClassifier
All Implemented Interfaces:
AccountClassifier

@Component public class CvmGeneralClassifier extends Object implements AccountClassifier
Classificador Geral de Contas CVM.

Propósito: Implementação padrão da estratégia AccountClassifier. Identifica contas críticas (Receita, Lucro, Patrimônio) usando códigos padrão CVM e heurísticas de texto (normalização de strings) para lidar com variações.

  • Constructor Details

    • CvmGeneralClassifier

      public CvmGeneralClassifier()
  • Method Details

    • classify

      public void classify(FinancialStatement stmt, String code, String desc, BigDecimal val)
      Description copied from interface: AccountClassifier
      Analisa uma linha contábil e atualiza o statement se a conta for relevante.
      Specified by:
      classify in interface AccountClassifier
      Parameters:
      stmt - O demonstrativo financeiro sendo construído (Estado Mutável).
      code - O código da conta (ex: "3.01").
      desc - A descrição da conta (ex: "RECEITA DE VENDAS").
      val - O valor monetário já normalizado (escala corrigida).
    • shouldStoreDetail

      public boolean shouldStoreDetail(String code)
      Description copied from interface: AccountClassifier
      Determina se a linha deve ser armazenada detalhadamente no banco de dados.

      Filtra contas analíticas de baixo valor para otimizar o armazenamento, mantendo apenas contas sintéticas (agregadoras) e indicadores chave.

      Specified by:
      shouldStoreDetail in interface AccountClassifier
      Parameters:
      code - O código da conta.
      Returns:
      true se a linha deve ser persistida na tabela `account_lines`.
    • isZero

      private boolean isZero(BigDecimal val)
    • normalize

      private String normalize(String s)