Ir para o conteúdo principal

Divergências na exibição das frequências no portal do servidor

Data de elaboração

05/04/2022

Responsável pelo estudo

José Lucas da Silva Costa


Equipe do estudo

João Pedro Rocha Brito

Carlos Eduardo Carvalho do Viso
Daniel Ribeiro Camboim de Oliveira
José Henrique dos Santos Nogueira

Alvo Portal do Servidor e Sistema Integrado de Frequência
Origem

Questionamentos levantados pelo Product Owner sobre divergência das frequências registradas no SIF que estariam sendo apresentadas no e-Estado. 

Objetivo

Revisar o Portal do Servidor e tentar encontrar as fontes das frequências que estão sendo exibidas, buscando ampliar o conhecimento desta integração.
Documentação Correlata Sem documentação.

Observações

Sem observações.


1. Glossário de termos


  1. API Application Programming Interface (interface de Programação de Aplicações).
  2. SIF - Sistema Integrado de Frequência.

2. Introdução


A integração entre sistemas é uma abordagem comumente adotada para otimizar e facilitar o gerenciamento de informações em diversas áreas. No caso específico do Governo do Estado de Rondônia, onde o sistema SIF (Sistema Integrado de Frequência) é utilizado para acompanhar a frequência dos servidores, a integração com o portal do servidor é uma maneira eficiente de fornecer aos funcionários acesso imediato aos seus registros de ponto. No entanto, a ocorrência de divergências entre as informações apresentadas pelo SIF e pelo portal do servidor está trazendo uma série de problemas e complicações. Essas divergências podem surgir devido a várias razões, como falhas no processo de integração, inconsistências nos dados armazenados nos sistemas, erros humanos ou até mesmo problemas técnicos. Independentemente da causa, as consequências dessas divergências podem ter impactos significativos tanto para os servidores quanto para a administração pública. 

3. Impactos das divergências nas frequências

Alguns dos possíveis problemas decorrentes dessas divergências são:

  • Perda de confiança dos servidores: Quando um servidor público se depara com diferenças entre as informações apresentadas no SIF e no portal do servidor, isso pode gerar desconfiança e frustração. Afinal, os servidores dependem desses registros de frequência para a contabilização de suas horas trabalhadas, salários e benefícios. A falta de confiança nesses sistemas pode minar a relação entre os servidores e a administração pública, afetando o clima organizacional e comprometendo a motivação dos funcionários.
  • Desgaste operacional e retrabalho: Quando ocorrem divergências entre o SIF e o portal do servidor, é necessário investir tempo e recursos para identificar a fonte do problema e corrigi-lo. Isso pode demandar esforços consideráveis da equipe responsável pela manutenção dos sistemas, resultando em um desgaste operacional e no retrabalho necessário para resolver as inconsistências. Além disso, o tempo gasto na correção dessas divergências pode atrasar outras atividades importantes, impactando a eficiência e produtividade dos setores envolvidos.
  • Aumento de dúvida dos servidores: Quando o sistema que o RH possui acesso apresenta as frequências corretas e no portal do servidor apresenta dados diferentes ou falsos faltantes, isso pode ocasionar o servidor a abrir chamados desnecessários.

3. Análise técnica do cenário atual


Em análise técnica primária do código identificamos que existem duas alternativas para ser exibidas as frequências no portal do servidor, vejamos:

[HttpPost]
        public async Task<IActionResult> Detalhes(FiltroFrequenciaViewModel filtroDafrequenciaViewModel)
        {
            await CarregarViewBags();
            if (!ModelState.IsValid)
            {
                return RedirectToAction("Detalhes");
            }

            ViewBag.periodo = string.Format("{0:mm}-{1:yyyy}", filtroDafrequenciaViewModel.Periodo.GetValueOrDefault().Month.ToString("00"), filtroDafrequenciaViewModel.Periodo.GetValueOrDefault().Year.ToString("0000"));
            
            if (ModelState.IsValid)
            {
                var cpf = userService.ObterCpf();
                var servidorDetalhado = await apiServidores.BuscarPorMatricula(filtroDafrequenciaViewModel.Matricula, cpf);

                if (servidorDetalhado is null)
                    return RedirectToAction("Detalhes");

                if (servidorDetalhado.plantonista.HasValue && servidorDetalhado.plantonista.Value)
                {
                    var detalhesFrequenciaViewModel = frequenciaAppService.ObterFrequenciaDoPlantonistaPorMatricula(filtroDafrequenciaViewModel.Matricula.ToString(), filtroDafrequenciaViewModel.Periodo.ToString());
                    filtroDafrequenciaViewModel.FrequenciaDoPlantonista = detalhesFrequenciaViewModel;
                    return View(filtroDafrequenciaViewModel);
                }
                else
                {
                    var detalhesFrequenciaViewModel = frequenciaAppService.ObterFrequenciaPorMatricula(filtroDafrequenciaViewModel.Matricula.ToString(), filtroDafrequenciaViewModel.Periodo.ToString());
                    filtroDafrequenciaViewModel.DetalhesFrequenciaViewModel = detalhesFrequenciaViewModel;
                    return View(filtroDafrequenciaViewModel);
                }
            }

            return RedirectToAction("Detalhes");
        }

Nas linhas de código 22 e 28, as frequências podem vir de um servidor comum ou de servidor plantonista, onde caso vai ser tratado conforme suas particularidades.

Essas linhas são remetidas para as seguintes chamadas na origem do SIF:

        public FrequenciaDto ObterFrequenciaPorMatricula(string matricula, string data)
        {
            var _client = new RestClient(UrlSif);
            var rest = $"api/frequencia/matricula?matricula={matricula}&data={data}";
            var request = new RestRequest(rest, Method.GET);
            var response = _client.Execute(request);
            if (response.ContentType.Contains("html")) return null;
            return JsonConvert.DeserializeObject<FrequenciaDto>(response.Content);
        }

        public FrequenciaDoPlantonistaDto ObterFrequenciaDoPlantonistaPorMatricula(string matricula, string data)
        {
            var _client = new RestClient(UrlSif);
            var rest = $"api/frequencia/plantonista?matricula={matricula}&data={data}";
            var request = new RestRequest(rest, Method.GET);
            var response = _client.Execute(request);
            if (response.ContentType.Contains("html")) return null;
            return JsonConvert.DeserializeObject<FrequenciaDoPlantonistaDto>(response.Content);
        }

Nota-se também que houve uma refatoração recentemente, vejamos a alteração na API:

image.png

No entanto, após essa análise minuciosa, não foram encontrados problemas ou anomalias que justificassem as divergências levantadas, entendemos alguma integração do SIF como por exemplo o e-Estado não estaria funcionando no momento que foi relatado o problema deva ter ocorrido. Foram conduzidos testes extensivos, revisamos o código e os registros e logs do sistema.

Mesmo assim, deve-se dar atenção especial a esse caso e continuar realizando todas as etapas necessárias de investigação, a fim de garantir a integridade dos nossos sistemas.

4. Conclusão


Após uma análise criteriosa deste estudo, foi identificado que o problema que causava as divergências já foi corrigido pelos técnicos da SETIC-RO, entre as informações apresentadas pelo sistema SIF e pelo portal do servidor do estado de Rondônia. Essa ação corretiva foi fundamental para restabelecer a integridade e a confiabilidade dos registros de frequência dos servidores públicos.

Com a resolução desse problema, espera-se que os servidores possam agora contar com informações consistentes e precisas em relação às suas frequências de ponto. Isso não apenas fortalece a confiança dos funcionários no sistema, mas também garante uma gestão mais eficiente dos recursos humanos por parte da administração pública.

A correção do problema também traz benefícios operacionais significativos. Com a eliminação das divergências, a equipe responsável pela manutenção dos sistemas pode redirecionar seus esforços para outras atividades relevantes, sem a necessidade de gastar tempo e recursos na identificação e correção constante dessas inconsistências.

5. Referências


  • https://documentos.sistemas.ro.gov.br/books/sif-sistema-de-frequencia