8000 GitHub - thiagoacioly/esocial: O esocial é o projeto que reune as iniciativas do TST para atender às necessidades do sistema eSocial do Governo Federal.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

O esocial é o projeto que reune as iniciativas do TST para atender às necessidades do sistema eSocial do Governo Federal.

Notifications You must be signed in to change notification settings

thiagoacioly/esocial

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eSocial

Build Status

[PROJETO EM DESENVOLVIMENTO] Atenção! API ainda em desenvolvimento e portanto instável.

Guia rápido

Pré-requisitos

Download e construção

  1. Clone o projeto
$ git clone https://github.com/tst-labs/esocial.git
$ cd esocial
  1. Crie um arquivo src/docker/maven/settings.xml caso tenha alguma configuração específica do maven (essa configuração será copiada para o docker conseguir fazer a build)

  2. Construa as imagens docker

$ docker-compose build

Configuração

  1. Copie sua chave para a pasta ./config
$ cp local/da/chave/esocial.pfx ./config/esocial.pfx
  1. Edite o arquivo de configuração application.properties para ficar de acordo com seu ambiente
$ cp ./config/application.properties.example ./config/application.properties

Execução

docker-compose up

Obs: O docker-compose sobe um banco postgres e a aplicação Java

Verifique se a aplicação está no ar acessando a url

http://localhost:8080/esocial-jt-service/actuator/health

Características

O projeto é dividido nos seguintes módulos:

  • esocial-comunicacao: Pacote de mapeamento dos serviços do WSDL.
  • esocial-esquemas: Schemas WSDL do eSocial-GOV. [mais informações...]
  • esocial-jt-dominio: Modelos básicos do esocial-jt.
  • esocial-jt-service: API RESTful para comunicação com eSocial-GOV. [mais informações...]

O esocial-jt-service é o módulo principal do sistema eSocial na Justiça do Trabalho, que recebe dados de ocorrências da vida funcional dos trabalhadores/servidores e os comunica ao sistema eSocial governamental central eSocial-Gov.

O esocial-jt-service foi construído em Java 8 utilizando o framework Spring Boot. É uma aplicação primordialmente de backend que fornece API RESTful trafegando dados no formato JSON.

Em poucas palavras, este módulo recebe um JSON com os dados de uma ocorrência* dos sistemas de origem, tranforma em um evento do eSocial, cria e assina o arquivo XML, transmite para o eSocial-Gov e posteriormente consulta o resultado de processamento com eventuais erros. Além disso, fornece API para consulta do estado interno da aplicação.

Obs. 1: para não confundir os conceitos, os dados recebidos pelo esocial-jt-service são chamados de "ocorrencia" enquanto que os XMLs que são enviados para o eSocial-Gov são chamados de "eventos".

Obs. 2: Cada instituição deve alterar seus sitemas de origem (RH, Folha, etc) ou criar um conector para extrair os dados e enviar no formato JSON para o esocial-jt-service.

Instalação

Pré-requisitos

Banco de dados

Atualmente, o esocial-jt-service é testado com PostgreSQL mas em teoria é compatível com outros bancos. Os parâmetros de conexão devem ser passados no arquivo de configuração, como explicado mais adiante.

Criação/Atualização do banco de dados

Os scripts de criação do banco ficam localizados em src/esocial-jt-service/src/main/resources/db/migration/. Os scripts podem ser executados de forma manual, porém utilizamos o flyway para automatizar esse processo.

Execute o seguinte comando preenchendo os valores com a URL de conexão do banco, usuário e senha para criar / atualizar as tabelas no seu banco de dados.

$ cd src/esocial-jt-service
$ mvn flyway:migrate -Dflyway.url=... -Dflyway.user=... -Dflyway.password=...
# i.e: mvn flyway:migrate -Dflyway.url=jdbc:postgresql://localhost:5432/postgres -Dflyway.user=postgres -Dflyway.password=esocial

Download da aplicação

git clone https://github.com/tst-labs/esocial.git

Configuração

Os seguintes parâmetros de configuração (caminho do arquivo do certificado digital e conexão com o banco de dados) devem ser passados editando o arquivo config/application.properties.

esocialjt.cnpj-empregador=
esocialjt.arquivoCertificado=
esocialjt.senhaCertificado=

spring.datasource.url=
spring.datasource.username=
spring.datasource.password=
spring.datasource.driver-class-name=
spring.jpa.database-platform=

Obs.: Como qualquer aplicação Spring Boot, existem outras maneiras de sobreescrever os parâmetros de configuração.

Build e execução

Para fazer build do projeto, execute:

cd src
mvn clean package

E para iniciar:

java -jar src/esocial-jt-service/target/esocial-jt-service*.jar

Verifique se a aplicação está no ar acessando a url

http://localhost:8080/esocial-jt-service/actuator/health

Testando o primeiro envio

O esocial-jt-service foi projetado para receber dados de ocorrência via JSON a partir dos sistemas de origem ou de um conector. Porém, para um primeiro teste, no ambiente de Produção Restrita, é possível enviar manualmente dados para o esocial-jt-service. Para isso, faça uma cópia do arquivo /src/main/resources/exemplos/informacoes_empregador.json, edite com as informações referentes à instituição (o CNPJ deve ser o mesmo do proprietário do Certificado Digital) e envia usando o método POST (via linha de comando ou Postman) para o endpoint:

http://localhost:8080/esocial-jt-service/ocorrencias

O log da aplicação irá exibir o status da transmissão para o eSocial-Gov, e também será possível consultar pelo método GET em alguns instantes:

http://localhost:8080/esocial-jt-service/ocorrencias

Limpando o ambiente de Produção Restrita

É possível apagar os dados enviados para o ambiente de produção restrita por comando via POST

/esocial-jt-service/producao-restrita/acoes/limpar

API Rest

Ocorrências

Relacionado ao recebimento ou consulta de ocorrências

Eventos

Serve para forçar um reenvio de um evento para o eSocial-Gov

Lote

Controle manual da consulta do processamento no eSocial-Gov. Não precisa ser executado se a atualização automática está ativada.

Produção restrita

Comandos exclusivos para o ambiente de produção restrita

Automação

Controla, em tempo de execução, se a aplicação deve ou não executar tarefas automaticamente (envio para o eSocial-Gov, consulta do processamento, etc) . Também pode ser configurado no arquivo application.properties.

Status

Verifica o status da aplicação

Visão Geral

O Tribunal Superior do Trabalho está em uma fase avançada de desenvolvimento de uma solução para transmitir os dados da vida funcional dos seus servidores para o sistema eSocial do Governo Federal, atendendo às necessidades legais do Decreto N° 8.373, de 11 de Dezembro de 2014.

Essa iniciativa converge na publicação desse trabalho como projeto Open Source (OSS), uma vez que entendemos que essa solução pode ser reusada, trazendo economia de esforços em quaisquer entidades públicas ou privadas.

Escopo

O que esse software faz?

Esse pedaço da solução compreende:

  • Recepção de ocorrências provenientes dos sistemas de origem, via API RESTful;
  • Conversão dessas ocorrências em eventos do eSocial, no formato XML;
  • Consulta do resultado do processamento dos eventos enviados; e
  • Gerência dos detalhes de conexão com o eSocial-GOV (assinatura dos eventos, conexão com certificado, etc.).

O que esse software não faz?

Não tratamos nesse projeto de:

  • Extração e/ou transformação de dados dos sistemas finalísticos das organizações usuárias;
  • Manipulação de qualquer forma que seja dos dados recebidos; e
  • Validação semântica dos dados recebidos.

Estado atual

Atualmente, o sistema já é capaz de receber dados de grande parte dos eventos, transmitir de forma automática para o eSocial-GOV e exibir o resultado do processamento (sucesso ou mensagens de erro).

A priorização dos eventos a serem transmitidos foi feita com base na necessidade atual do TST e demais órgãos da Justiça do Trabalho. No entanto, o projeto pode ser estendido para quaisquer tipos de eventos especificados pelo eSocial-GOV.

Status por evento

0.1.0

Eventos de Tabelas

Evento Nome Evento Versão Situação Resultado do envio para a produção restrita
S-1000 Empregador/Contribuinte 2.4.02 Feito Processado com sucesso
S-1005 Estabelecimentos 2.4.02 Feito Processado com sucesso
S-1010 Rubricas 2.4.02 Feito Processado com sucesso
S-1020 Lotações Tributárias 2.4.02 Feito Processado com sucesso
S-1030 Cargos/Empregos Públicos 2.4.02 Feito Processado com sucesso
S-1035 Carreiras Públicas 2.4.02 Feito Processado com sucesso
S-1040 Funções/Cargos em Comissão 2.4.02 Feito Processado com sucesso
S-1050 Horários/Turnos de Trabalho 2.4.02 Feito Processado com sucesso
S-1060 Ambientes de Trabalho 2.4.02 Feito Evento não reconhecido pelo eSocial-GOV
S-1070 Processos Administrativos/Judiciais 2.4.02 Feito Processado com sucesso
S-1080 Operadores Portuários 2.4.02 NA NA

Eventos periódicos

Evento Nome Evento Versão Situação Resultado do envio para a produção restrita
S-1200 Remuneração de trabalhador vinculado ao Regime Geral de Previdência Social 2.4.02 Feito Processado com sucesso
S-1202 Remuneração de servidor vinculado a Regime Próprio de Previdência Social – RPPS 2.4.02 Feito Evento não reconhecido pelo eSocial-GOV
S-1207 Benefícios previdenciários - RPPS 2.4.02 Feito Evento não reconhecido pelo eSocial-GOV
S-1210 Pagamentos de Rendimentos do Trabalho 2.4.02 Feito Processado com sucesso
S-1250 Aquisição de Produção Rural 2.4.02 NA NA
S-1260 Comercialização da Produção Rural Pessoa Física 2.4.02 NA NA
S-1270 Contratação de Trabalhadores Avulsos Não Portuários 2.4.02 NA NA
S-1280 Informações Complementares aos Eventos Periódicos 2.4.02 NA NA
S-1295 Solicitação de Totalização para Pagamento em Contingência 2.4.02 Feito Processado com sucesso
S-1298 Reabertura dos Eventos Periódicos 2.4.02 Feito Processado com sucesso
S-1299 Fechamento dos Eventos Periódicos 2.4.02 Feito Processado com sucesso
S-1300 Contribuição Sindical Patronal 2.4.02 NA NA

Eventos não periódicos

Evento Nome Evento Versão Situação Resultado do envio para a produção restrita
S-2190 Admissão de Trabalhador - Registro Preliminar 2.4.02 NA NA
S-2200 Cadastramento Inicial do Vínculo e Admissão/Ingresso de Trabalhador 2.4.02 Feito Processado com sucesso
S-2205 Alteração de Dados Cadastrais do Trabalhador 2.4.02 Feito Processado com sucesso
S-2206 Alteração de Contrato de Trabalho 2.4.02 Feito Processado com sucesso
S-2210 Comunicação de Acidente de Trabalho 2.4.02 Impl. futura
S-2220 Monitoramento da Saúde do Trabalhador 2.4.02 Impl. futura
S-2230 Afastamento Temporário 2.4.02 Feito Processado com sucesso
S-2240 Condições Ambientais do Trabalho - Fatores de Risco 2.4.02 Impl. futura
S-2241 Insalubridade, Periculosidade e Aposentadoria Especial 2.4.02 Impl. futura
S-2250 Aviso Prévio 2.4.02 NA NA
S-2260 Convocação para Trabalho Intermitente 2.4.02 NA NA
S-2298 Reintegração 2.4.02 Feito Processado com sucesso
S-2299 Desligamento 2.4.02 Feito Processado com sucesso
S-2300 Trabalhador Sem Vínculo de Emprego/Estatutário - Início 2.4.02 Feito Processado com sucesso
S-2306 Trabalhador Sem Vínculo de Emprego/Estatutário - Alteração Contratual 2.4.02 Feito Processado com sucesso
S-2399 Trabalhador Sem Vínculo de Emprego/Estatutário - Término 2.4.02 Feito Processado com sucesso
S-2400 Cadastro de Benefícios Previdenciários - RPPS 2.4.02 Feito Evento não reconhecido pelo eSocial-GOV
S-3000 Exclusão de eventos 2.4.02 Feito Processado com sucesso
S-5001 Informações das contribuições sociais por trabalhador 2.4.02 Feito Evento totalizador gravado no formato XML
S-5002 Imposto de Renda Retido na Fonte 2.4.02 Feito Evento totalizador gravado no formato XML
S-5011 Informações das contribuições sociais consolidadas por contribuinte 2.4.02 Feito Evento totalizador gravado no formato XML
S-5012 Informações do IRRF consolidadas por contribuinte 2.4.02 Feito Evento totalizador gravado no formato XML

Como contribuir?

Leia nosso guia de contribuição em andamento.

About

O esocial é o projeto que reune as iniciativas do TST para atender às necessidades do sistema eSocial do Governo Federal.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.0%
  • 32D9 JavaScript 0.7%
  • SQLPL 0.2%
  • Groovy 0.1%
  • Shell 0.0%
  • Dockerfile 0.0%
0