Integração do GSAN com o sistema SIGO

Documentação sobre a integração do GSAN com o sistema SIGO, cujo objetivo é definir a estrutura de troca de informações entre o GSAN e o sistema SIGO. Aqui é definida a estrutura dos payloads que será utilizada nas request para o sistema SIGO.

Estrutura dos Json de envio

Serão realizadas 2 (duas) requisições à API do sistema SIGO: A primeira, quando for informada a interrupção da rede na execução do serviço para um tipo de serviço no sistema GSAN. A segunda requisição se dá quando o serviço for encerrado em campo e as informações forem atualizadas no GSAN.

Requisição para Inserir Ordem Serviço no SIGO

O Json será constituído pelos campos abaixo descritos: id: identificador da requisição enviada. Campo inteiro. latitude: coordenada geográfica referente ao eixo x do endereço informado no serviço. Campo decimal de tamanho 24 com precisão 12. longitude: coordenada geográfica referente ao eixo y do endereço informado no serviço. Campo decimal de tamanho 24 com precisão 12. numeroOrdemServico: código da Ordem de Serviço. Campo inteiro. codigoTipoServico: código do serviço solicitado. Campo inteiro. descricaoTipoServico: descrição do serviço solicitado. Campo texto com no máximo 30 (trinta) caracteres. haveraInterrupcaoOperacaoRede: indicador se haverá interrupção ou não da rede. Campo booleano. dataPrevistaExecucao: data prevista para execução do serviço. Campo String contendo a data no formato dd/mm/aaaa. previsaoExecucao: tempo previsto para conclusão do serviço. Campo decimal de tamanho 13 e precisão 2. tipoPrevisao: código do tipo de previsão, onde 1 = Dias e 2 = Horas. Campo inteiro. Ficando assim definido a estrutura do Json para inserir a Ordem de Serviço no sistema SIGO:
{ id: Integer, latitude: decimal, longitude: decimal, numeroOrdemServico: Integer, codigoTipoServico: Integer, descricaoTipoServico: String, haveraInterrupcaoOperacaoRede: Boolean, dataPrevistaExecucao: String, previsaoExecucao: decimal, tipoPrevisao: Integer }

Exemplo:

{id: 1, latitude: 2.12312312, longitude: 2.112312, numeroOrdemServico: 123443, codigoTipoServico: 99999, descricaoTipoServico: 'SERVICO MANUTENCAO REDE', haveraInterrupcaoOperacaoRede: true, dataPrevistaExecucao: '15/07/2019', previsaoExecucao: 1.5, tipoPrevisao: 1 }

Requisição para Encerrar Ordem Serviço no SIGO

O Json será constituído pelos campos abaixo descritos: id: identificador da requisição de inserção enviada anteriormente. Campo inteiro. numeroOrdemServico: código da Ordem de Serviço. Campo inteiro. dataInicioExecucao: data/hora de início da execução do serviço. Campo String contendo a data/hora no formato dd/mm/aaaa h24:mm:ss. dataConclusaoExecucao: data/hora de conclusão da execução do serviço. Campo String contendo a data/hora no formato dd/mm/aaaa h24:mm:ss. situacaoOrdemServico: código da Situação da execução da Ordem de Serviço, onde 1 = Total, 2 = Parcial e 3 = Cancelada. Campo inteiro. equipe: equipe que executou o serviço em campo, o qual será composto por: código: código da equipe. Campo inteiro. nome: descrição da equipe. Campo String com no máximo 30 caracteres. componentes: lista de funcionários que compõem a equipe, sendo definidos pelos campos abaixo: matricula: matrícula do funcionário. Campo inteiro. nome: nome do funcionário. Campo texto com no máximo 45 (quarenta e cinco) caracteres. quantidadeHorasTrabalhadas: quantidade de horas de execução do serviço. Campo decimal com tamanho 13 e precisão 2. insumos: lista de materiais utilizados na execução do serviço, podendo ser uma lista vazia, onde: código: código do material. Campo inteiro. descrição: descrição do material. Campo texto com no máximo 30 (trinta) caracteres. quantidade: quantidade utilizada. Decimal com tamanho 13 e precisão 2. codigoTipoMaterialRede: código do tipo de material de rede. Campo inteiro; nulo caso não informado. descricaoTipoMaterialRede: descrição do tipo de material de rede. Campo texto com no máximo 30 (trinta) caracteres; nulo caso não informado. codigoDiametroRede: código do diâmetro da rede. Campo inteiro; nulo caso não informado. descricaoDiametroRede: descrição do diâmetro da rede. Campo texto com no máximo 30 (trinta) caracteres; nulo caso não informado. codigoProfundidadeRede: código da profundidade da rede. Campo inteiro; nulo caso não informado. descricaoProfundidadeRede: descrição da profundidade da rede. Campo texto com no máximo 30 (trinta) caracteres; nulo caso não informado. Ficando assim definido a estrutura do Json para encerrar a Ordem de Serviço no sistema SIGO:
{id: Integer, numeroOrdemServico: Integer, dataInicioServico: Date, dataConclusaoServico: Date, situacaoExecucaoServico: Integer, equipe: {id: Integer, nome: String(, componentes: [{ matricula: Integer nome: String(45) }, ... ] }, quantidadeHorasTrabalhadas: Integer, insumos: [{ codigo: Integer descricao: String(45) quantidade: decimal(13,2) }, ... ], codigoTipoMaterialRede: Integer, descricaoTipoMaterialRede: String, codigoDiametroRede: Integer, descricaoDiametroRede: String, codigoProfundidadeRede: Integer, descricaoProfundidadeRede: String }

Exemplo:

{id: 1, numeroOrdemServico: 123443, dataInicioServico: '15/07/2019 15:22:43', dataConclusaoServico: '15/07/2019 17:22:31', situacaoExecucaoServico: 1, equipe: { id: 1, nome: 'EQUIPE 01', componentes: [{ matricula: 1 nome: 'FUNCIONARIO 01' }, { matricula: 2 nome: 'FUNCIONARIO 02' } ] }, quantidadeHorasTrabalhadas: 2.0, insumos: [{ codigo: 1 descricao: 'MATERIAL 01' quantidade: 1.5 } ], codigoTipoMaterialRede: 1, descricaoTipoMaterialRede: 'MATERIAL REDE 01', codigoDiametroRede: null, descricaoDiametroRede: null, codigoProfundidadeRede: 1, descricaoProfundidadeRede: 'PROFUNDIDADE 01' }

Requisição de Retorno do SIGO

Para toda requisição que for enviada ao SIGO, semelhante requisição deve retornar um Json informando que a request foi recebida com sucesso. Este retorno deve conter os campos abaixo descritos: id: identificador da requisição enviada para processamento no SIGO. status: situação da requisição, onde 1 = recebido com sucesso. A estrutura do Json do retorno das requisições, fica assim definida:
{id: Integer status: Integer }

Exemplo:

{id: 1 status: 1 }

Clique AQUI para acessar outros serviços com os detalhes técnicos das integrações.