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 governametal 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.
- Java EE 8;
- Maven 3.3.9 (ou superior);
- Git 2.15.0 (ou superior);
- Certificado Digital ICP-Brasil A1 válido (obrigatório mesmo para testes).
Atualmente, o esocial-jt-service é testado principalmente com PostgreSQL. Os parâmetros de conexão devem ser passados no arquivo de configuração, como explicado mais adiante.
Os scripts de preparação de banco encontram-se em: src/esocial-jt-service/src/main/resources/db/migration.
TODO: Descrver o uso básico do flyway
git clone https://github.com/tst-labs/esocial.git
Os seguintes parâmetros de configuração (camiho do arquivo do certificado digital e conexão com o banco de dados) devem ser passado 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=
esocialjt.proxyServer=
esocialjt.proxyPort=
esocialjt.proxyUser=
esocialjt.proxyPassword=
Obs.: Como qualquer aplicação Spring Boot, existem outras maneiras de sobreescrever os parâmetros de configuraçã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-0.0.1-SNAPSHOT.jar
Verifique se a aplicação está no ar acessando a url
http://localhost:8080/esocial-jt-service/actuator/health
Alternativamente, é possível gerar um .war
que pode ser implantado no servidor de aplicação, utilizando o profile war.
cd src
mvn clean package -P war
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
É possível apagar os dados enviados para o ambiente de produção restrita por comando via POST
/esocial-jt-service/producao-restrita/acoes/limpar
Ver documentação na raiz do projeto.