Skip to content

Commit 8e8969d

Browse files
committed
Altera fonte dos dados do CNPJ
1 parent a62771f commit 8e8969d

14 files changed

Lines changed: 52026 additions & 52458 deletions

File tree

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,11 @@ Gera uma base consolidada SQLite a partir dos arquivos disponilizados pela PGFN.
3030

3131
`DividaPGFN filtro -d=<diretório base> -b=<base CNPJ> -c=<consulta SQL de filtro>`
3232

33-
Com o uso da [base auxiliar do CNPJ](https://bit.ly/3hZOPnh) disponibilizada pelo projeto [qsacnpj](https://github.com/georgevbsantiago/qsacnpj), exporta arquivos extraídos da base da dívida, para análises posteriores. Os registros que serão filtrados no banco de dados dependem de consulta SQL definida pelo usuário, que é realizada na base auxiliar do CNPJ.
33+
Com o uso da base auxiliar do CNPJ disponibilizada pelo projeto [cnpj-sqlite](https://github.com/rictom/cnpj-sqlite), exporta arquivos extraídos da base da dívida, para análises posteriores. Os registros que serão filtrados no banco de dados dependem de consulta SQL definida pelo usuário, que é realizada na base auxiliar do CNPJ.
3434

3535
* saida\divida.csv: Registros desagregados da dívida como dispobilizados pela PGFN;
3636
* saida\corresponsaveis.csv: Dados complementares de corresponsáveis pelas dívidas que foram extraídas da base;
3737
* saida\cnpj.csv: Extração da base do CNPJ com os estabelecimentos extraídos;
38-
* saida\cnae_secundaria.csv: Dados complementares de CNAE secundária dos estabelecimentos presentes no arquivo de CNPJs;
3938
* saida\socios.csv: Sócios das empresas constantes no arquivo de CNPJs.
4039

4140
### Metodologia

examples/clubes/arquivos/cnae_secundaria.csv

Lines changed: 0 additions & 2440 deletions
This file was deleted.

examples/clubes/arquivos/cnpj.csv

Lines changed: 5182 additions & 5063 deletions
Large diffs are not rendered by default.

examples/clubes/arquivos/corresponsaveis.csv

Lines changed: 560 additions & 563 deletions
Large diffs are not rendered by default.

examples/clubes/arquivos/divida.csv

Lines changed: 39673 additions & 37638 deletions
Large diffs are not rendered by default.
399 KB
Binary file not shown.

examples/clubes/arquivos/socios.csv

Lines changed: 6290 additions & 6331 deletions
Large diffs are not rendered by default.
Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
1-
select distinct substr(cnpj,1,8) as cnpj_matriz
2-
from cnpj_dados_cadastrais_pj c
3-
left outer join tab_cnae cnae on c.cnae_fiscal = cnae.cod_cnae
4-
left outer join tab_natureza_juridica nj on c.codigo_natureza_juridica = nj.cod_subclass_natureza_juridica
5-
6-
-- Deve ser estabelecimento matriz
7-
where c.identificador_matriz_filial = '1'
8-
-- CNAE principal ou secundária = 'clubes sociais, esportivos ou similares'
9-
and (c.cnae_fiscal = '9312300' or c.cnpj in (select cnpj from cnpj_dados_cnae_secundario_pj where cnae_secundario = '9312300'))
10-
-- CNAE principal deve estar neste conjunto
11-
and c.cnae_fiscal in ('7490105','7721700','8591100','9311500','9312300','9319101','9319199','9329899','9412099','9499500')
12-
-- Exclui natureza jurídica de administração pública e algumas outras
13-
and c.codigo_natureza_juridica not like '1%'
14-
and c.codigo_natureza_juridica not in ('2011','2143','3085','3115','3131','3220','3247','3271')
1+
select
2+
distinct emp.cnpj_basico
3+
--emp.cnpj_basico, est.cnpj, emp.razao_social, est.nome_fantasia, emp.natureza_juridica, est.cnae_fiscal, est.cnae_fiscal_secundaria
4+
from empresas emp
5+
left outer join estabelecimento est on emp.cnpj_basico = est.cnpj_basico
6+
--left outer join natureza_juridica nj on emp.natureza_juridica = nj.codigo
7+
--left outer join cnae cnae on est.cnae_fiscal = cnae.codigo
8+
9+
-- Deve ser estabelecimento matriz
10+
where est.matriz_filial = '1'
11+
-- CNAE principal ou secundária = 'clubes sociais, esportivos ou similares'
12+
and (est.cnae_fiscal = '9312300' or est.cnae_fiscal_secundaria like '%9312300%')
13+
-- CNAE principal deve estar neste conjunto
14+
and est.cnae_fiscal in ('7490105','7721700','8591100','9311500','9312300','9319101','9319199','9329899','9412099','9499500')
15+
-- Exclui natureza jurídica de administração pública e algumas outras
16+
and emp.natureza_juridica not like '1%'
17+
and emp.natureza_juridica not in ('2011','2143','3085','3115','3131','3220','3247','3271')
18+
--limit 10

pom.xml

Lines changed: 53 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,21 @@
66

77
<groupId>com.ric</groupId>
88
<artifactId>dividapgfn</artifactId>
9-
<version>1.0.1</version>
9+
<version>2.0.0</version>
1010
<packaging>jar</packaging>
1111

1212
<name>dividapgfn</name>
1313
<url>https://github.com/rsribeiro/dividaPGFN</url>
1414

1515
<properties>
1616
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
17-
<maven.compiler.release>11</maven.compiler.release>
18-
<graalvm.version>20.2.0</graalvm.version>
19-
<sqlite.version>3.34.0</sqlite.version>
20-
<picocli.version>4.6.1</picocli.version>
21-
<jansi.version>2.2.0</jansi.version>
17+
<maven.compiler.release>17</maven.compiler.release>
18+
<graalvm.version>21.3.0</graalvm.version>
19+
<native.maven.plugin.version>0.9.7.1</native.maven.plugin.version>
20+
<sqlite.version>3.36.0.3</sqlite.version>
21+
<picocli.version>4.6.2</picocli.version>
22+
<jansi.version>2.4.0</jansi.version>
23+
<opencsv.version>5.5.2</opencsv.version>
2224
</properties>
2325

2426
<dependencies>
@@ -43,8 +45,13 @@
4345
<version>${graalvm.version}</version>
4446
<scope>provided</scope>
4547
</dependency>
48+
<dependency>
49+
<groupId>com.opencsv</groupId>
50+
<artifactId>opencsv</artifactId>
51+
<version>${opencsv.version}</version>
52+
</dependency>
4653
</dependencies>
47-
54+
4855
<build>
4956
<plugins>
5057
<plugin>
@@ -93,26 +100,45 @@
93100
</execution>
94101
</executions>
95102
</plugin>
96-
<plugin>
97-
<groupId>org.graalvm.nativeimage</groupId>
98-
<artifactId>native-image-maven-plugin</artifactId>
99-
<version>${graalvm.version}</version>
100-
<executions>
101-
<execution>
102-
<goals>
103-
<goal>native-image</goal>
104-
</goals>
105-
<phase>package</phase>
106-
</execution>
107-
</executions>
108-
<configuration>
109-
<skip>false</skip>
110-
<imageName>DividaPGFN</imageName>
111-
<buildArgs>
112-
--no-fallback --static -jar ..\target\DividaPGFN.jar -H:Class="com.ric.dividaspgfn.DividaPGFN" -H:IncludeResources="db/.*|static/.*|templates/.*|.*.yml|.*.xml|.*/org/sqlite/.*|org/sqlite/.*" -H:JNIConfigurationFiles="../native-image/sqlite-jni.json" -H:Optimize=2 -Dfile.encoding=UTF-8 -Duser.country=BR -Duser.language=pt
113-
</buildArgs>
114-
</configuration>
115-
</plugin>
116103
</plugins>
117104
</build>
105+
106+
<profiles>
107+
<profile>
108+
<id>native</id>
109+
<build>
110+
<plugins>
111+
<plugin>
112+
<groupId>org.graalvm.buildtools</groupId>
113+
<artifactId>native-maven-plugin</artifactId>
114+
<version>${native.maven.plugin.version}</version>
115+
<extensions>true</extensions>
116+
<executions>
117+
<execution>
118+
<id>build-native</id>
119+
<goals>
120+
<goal>build</goal>
121+
</goals>
122+
<phase>package</phase>
123+
</execution>
124+
<execution>
125+
<id>test-native</id>
126+
<goals>
127+
<goal>test</goal>
128+
</goals>
129+
<phase>test</phase>
130+
</execution>
131+
</executions>
132+
<configuration>
133+
<skip>false</skip>
134+
<imageName>DividaPGFN</imageName>
135+
<buildArgs>
136+
--no-fallback --static -jar ..\target\DividaPGFN.jar -H:Class="com.ric.dividaspgfn.DividaPGFN" -H:IncludeResources="db/.*|static/.*|templates/.*|.*.yml|.*.xml|.*/org/sqlite/.*|org/sqlite/.*" -H:JNIConfigurationFiles="../native-image/sqlite-jni.json" -H:Optimize=2 -Dfile.encoding=UTF-8 -Duser.country=BR -Duser.language=pt -H:DefaultLocale=pt-BR --initialize-at-build-time="com.ric"
137+
</buildArgs>
138+
</configuration>
139+
</plugin>
140+
</plugins>
141+
</build>
142+
</profile>
143+
</profiles>
118144
</project>

src/main/java/com/ric/dividaspgfn/BasePGFN.java

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
@Command(name = "base_pgfn", aliases = "base", description = "Cria base em formato SQLite a partir dos arquivos disponibilizados pela PGFN")
1919
final class BasePGFN implements Callable<Integer> {
20-
2120
@Option(names = { "-d", "--dir" }, required = true, description = "Diretório base")
2221
private Path dirBase;
2322

@@ -94,6 +93,8 @@ public Integer call() throws Exception {
9493
System.out.println("Índice criado.");
9594
}
9695

96+
Common.mensagemProgresso("Execução finalizada com sucesso.");
97+
9798
return 0;
9899
}
99100

@@ -195,23 +196,23 @@ public BatchAux(PreparedStatement stmt) {
195196

196197
public void appendLinha(LinhaPGFN linha) {
197198
try {
198-
this.stmt.setString(1, linha.getCpfCnpj().replace(".", "").replace("/", "").replace("-", "").strip());
199-
this.stmt.setString(2, linha.getTipoPessoa().strip());
200-
this.stmt.setString(3, linha.getTipoDevedor().strip());
201-
this.stmt.setString(4, linha.getNomeDevedor().strip());
202-
this.stmt.setString(5, linha.getUfUnidadeResponsavel().strip());
203-
this.stmt.setString(6, linha.getUnidadeResponsavel().strip());
204-
this.stmt.setString(7, linha.getEntidadeResponsavel().strip());
205-
this.stmt.setString(8, linha.getUnidadeInscricao().strip());
206-
this.stmt.setString(9, linha.getNumeroInscricao().strip());
207-
this.stmt.setString(10, linha.getTipoSituacaoInscricao().strip());
208-
this.stmt.setString(11, linha.getSituacaoInscricao().strip());
209-
this.stmt.setString(12, linha.getReceitaPrincipal().strip());
210-
this.stmt.setString(13, linha.getTipoCredito().strip());
211-
this.stmt.setString(14, linha.getDataInscricao().strip());
212-
this.stmt.setString(15, linha.getIndicadorAjuizado().strip());
213-
this.stmt.setBigDecimal(16, linha.getValor());
214-
this.stmt.setString(17, linha.getArquivoOrigem().strip());
199+
this.stmt.setString(1, linha.cpfCnpj().replace(".", "").replace("/", "").replace("-", "").strip());
200+
this.stmt.setString(2, linha.tipoPessoa().strip());
201+
this.stmt.setString(3, linha.tipoDevedor().strip());
202+
this.stmt.setString(4, linha.nomeDevedor().strip());
203+
this.stmt.setString(5, linha.ufUnidadeResponsavel().strip());
204+
this.stmt.setString(6, linha.unidadeResponsavel().strip());
205+
this.stmt.setString(7, linha.entidadeResponsavel().strip());
206+
this.stmt.setString(8, linha.unidadeInscricao().strip());
207+
this.stmt.setString(9, linha.numeroInscricao().strip());
208+
this.stmt.setString(10, linha.tipoSituacaoInscricao().strip());
209+
this.stmt.setString(11, linha.situacaoInscricao().strip());
210+
this.stmt.setString(12, linha.receitaPrincipal().strip());
211+
this.stmt.setString(13, linha.tipoCredito().strip());
212+
this.stmt.setString(14, linha.dataInscricao().strip());
213+
this.stmt.setString(15, linha.indicadorAjuizado().strip());
214+
this.stmt.setBigDecimal(16, linha.valor());
215+
this.stmt.setString(17, linha.arquivoOrigem().strip());
215216
this.stmt.addBatch();
216217

217218
this.index += 1;

0 commit comments

Comments
 (0)