Implementação de notificação via e-mail e meu acesso no SID
Data de elaboração |
|
---|---|
Responsável pelo estudo |
|
Equipe do estudo |
João Pedro Rocha Brito (Assessor) José Henrique dos Santos Nogueira (Assessor) José Lucas da Silva Costa (Analista de Desenvolvimento Full-Stack) Jônatas Neves Legal (Técnico emTecnologia da Informação e Comunicação) |
Alvo | Sistema Integrado de Descanso. |
Origem |
Implementação: Notificação via e-mail e meu acesso no SID. |
Objetivo |
Revisar o sistema de forma preventiva para evitar que problemas durante o período de marcação do planejamento anual. |
Documentação Correlata | Sem documentação correlata. |
Observações |
Sem observações. |
- API - Application Programming Interface (interface de Programação de Aplicações).
- CDS - Cargo de Direção Superior.
- ELASTICSEARCH - é um mecanismo de pesquisa e análise de código aberto distribuído.
- IP - Internet Protocol (protocolo de rede).
- KPIs - Key Performance Indicators - são os Indicadores-Chave de Desempenho observados por um negócio.
- KIBANA - Plugin de visualização de dados de fonte aberta para o Elasticsearch.
- PAF - Planejamento Anual de Férias.
- PPE - Plataforma de Publicação Eletrônica.
- RH - Recursos Humanos.
- SID - Sistema Integrado de Descanso.
2. Introdução
O SID (Sistema Integrado de Descanso) éé responsáresponsável pelo controle de féférias dos servidores do poder executivo do Estado De RondôRondônia. O fluxo principal deste sistema funciona basicamente todos os anos no mêmês de setembro, onde todos os servidores devem indicar suas preferêpreferências de períperíodo de féférias para o ano subsequente. Acontece que durante esse períperíodo éé comum ocorrer problemas tétécnicos, principalmente problemas relacionados ao sistema e as outras vezes por situaçãsituação cadastral irregular. O time TitãTitãs assumiu a responsabilidade das manutençõmanutenções referente ao SID e vem fazendo correçõcorreções de extrema importâimportância para que nãnão aconteçaconteçam imprevistos durante o períperíodo de marcaçãmarcação do planejamento anual. O objetivo deste estudo éé realizar uma revisãrevisão do sistema de forma preventiva para evitar que problemas nesta fase prejudique o andamento do feito.
2.3. Desenvolvimento
O SID por complexidade começcomeça seu fluxo para o planejamento anual de féférias atravéatravés do portal do servidor, a partir deste momento o servidor iráirá informar quais sãsão os períperíodos deseja solicitar para suas féférias, o sistema iráirá verificar se existem datas disponídisponíveis ou atéaté mesmo conflitantes. HáHá casos de servidores que ainda nãnão completaram 1 ano de trabalho e nãnão podem exercer tal direito. Visto o prosseguimento do feito, o chefe imediato tem a funçãfunção de avaliar se a solicitaçãsolicitação de féférias estáestá de acordo com interesse púpúblico, nãnão podem haver conflitos entre servidores que exercem funçõfunções similares. Caso o períperíodo solicitado haja algum tipo de conflito poderápoderá seráserá reprovado pelo chefe imediato. Prosseguindo o processo, o chefe da pasta, tem a atribuiçãatribuição de acrescentar todas as solicitaçõsolicitações aprovadas em bloco de assinatura para portariar. Por fim o sistema conclui todo o fluxo agendamento a publicaçãpublicação para homologar as féférias do servidor. Vejamos o processo ilustrado graficamente a seguir:
2.3.2. PossíPossíveis problemas
Anteriormente o SID nãnão possuípossuía uma ferramenta de monitoramento de falhas, acontece que para o novo PAF (Planejamento Anual de FéFérias) do ano de 2022 seráserá possípossível realizar uma anáanálise criteriosa dos possípossíveis problemas que acontecerem nesta etapa. Atualmente a SETIC conta com a integraçãintegração ferramenta tecnolótecnológica do Kibana + Elasticsearch.
De acordo com o site oficial da empresa temos por definiçãdefinição o Kibana como:
Comece explorando seus dados com
visualizaçõvisualizações impressionantes no Kibana, desdegrágráficos de waffle e mapas de caloratéatéanáanálise deséséries temporais e muito mais. Use dashboardsprépré-configurados para suas diversas fontes de dados, crieapresentaçõapresentações ao vivo para destacar KPIs e gerencie aimplantaçãimplantação em umaúúnica UI.
JáJá em outro trecho do mesmo site temos a definiçãdefinição conjunta do Elasticsearch:
Independentemente de
vocêvocê estar procurandoaçõações de umendereçendereço IPespecíespecífico, analisando um pico nassolicitaçõsolicitações detransaçãtransação ou querendo achar uma pizzaria no raio de umquilôquilômetro, os problemas que todosnónós estamos tentando resolver com os dados se resumemàà busca. O Elasticsearch permite armazenar, buscar e analisar com facilidade e em escala.
Essas ferramentas serãserão de grande ajuda durante o novo PAF 2022, pois ajudam a encontrar a razãrazão de problemas de forma tétécnica e incisiva, categorizando melhor os problemas que sãsão graves ou problemas menores e isolados.
No PAF de 2021 foram feitas correçõcorreções importantes para as portarias anuais (https://app.pipefy.com/open-cards/457696905), uma delas objetivou corrigir problemas de duplicidade nas portarias, os servidores envolvidos neste tipo de problema tinham seus nomes duplicados na portaria oficial da escala anual de féférias e isso ocasionava uma sésérie de problemas para os emissores deste documento.
Em decorrêdecorrência do problema anterior, existiam alguns servidores que por diversas razõrazões, nãnão estariam presentes na portaria da escala anual de féférias, estes servidores posteriormente devem ser integrados no mesmo PAF do ano corrente, acontece que o sistema nãnão contemplava tal situaçãsituação no PAF de 2021, entãentão agora para o PAF de 2022 esperamos que tal problema nãnão ocorra jájá que foi resolvido e que os servidores remanescentes consigam serem enquadrados em outra portaria com suas respectivas marcaçõmarcações de féférias.
Os servidores com cargo de PROCURADOR se tornaram uma demanda frequente para a equipe de desenvolvimento do time TITÃTITÃS, este tipo de cargo tem direito a duas féférias de 30 dias, ou seja, 60 dias totais. Acontece que grande parte dos PROCURADORES possuem outras matrímatrículas devido as ocupaçõocupações em cargos CDS (Cargo de DireçãDireção Superior).
Houve certa dificuldade da equipe em entender o que o sistema deveria fazer neste cenácenário, afinal de contas se um procurador tem duas matrímatrículas, ele teria 60 dias de féférias da matrímatrícula do cargo de PROCURADOR e mais 30 dias de féférias da matrímatrícula de CDS. Em consulta ao RH da SETIC o que ficou entendido éé que mesmo que ele tenha duas matrímatrículas, as féférias marcadas na matrímatrícula do CDS deve ser colidida com um dos períperíodos das féférias do cargo de PROCURADOR para que nãnão excedesse 60 dias de féférias.
Outro problema frequente no PAF de 2021 e tambétambém nas remarcaçõremarcações de féférias foi a ausêausência de períperíodos nas solicitaçõsolicitações. Isso ocasionava a existêexistência de solicitaçõsolicitações no banco de dados sem períperíodo e incidia em períperíodos de féférias.
Uma situaçãsituação mais crícrítica que pode ocasionar problemas no PAF de 2022 éé a assinatura e agendamento de portarias, no ano de 2022 houveram mudançmudanças no PPE (Plataforma de PublicaçãPublicação EletrôEletrônica) que ocasionaram problemas ao SID. Esse problema foi corrigido e se espera que nãnão ocorra mais para o ano corrente.
Visto todas as situaçõsituações abordadas fica exposto a seguir o cócódigo responsáresponsável por realizar a recepçãrecepção do planejamento anual vista todas as refatoraçõrefatorações jájá efetuadas no SID:
[HttpPost]
public async Task<IActionResult> PostSolicitacao(ReceberSolicitacaoDto solicitacaoDTO)
{
if (solicitacaoDTO.DatasIniciaisDasFerias.Any(x => x.DataInicial.Date == DateTime.MinValue.Date))
{
return Response("Ocorreu um erro, alguma das datas informadas éé inváinválida!");
}
var servidor = await servidorRepository.BuscarPorMatricula(solicitacaoDTO.MatriculaDoServidor);
var mensagemErro = injecaoDeDependencia.validacaoDaSolicitacaoService.ValidarServidorDaSolicitacao(servidor, solicitacaoDTO);
if (!string.IsNullOrEmpty(mensagemErro))
return Response(mensagemErro);
var quantidadeDeFeriasMarcadas = await context.Solicitacao
.Include(x => x.Servidor)
.CountAsync(x => x.Servidor.Matricula == solicitacaoDTO.MatriculaDoServidor &&
x.AnoAquisitivo == solicitacaoDTO.AnoAquisitivo &&
(x.Status == StatusDaSolicitacao.Deferida || x.Status == StatusDaSolicitacao.AguardandoHomologacao));
var podeMarcarMaisDeUmaSolicitacao = servidor.PossuiCargoDeProcurador() || servidor.PossuiCargoDeRaioX();
if (podeMarcarMaisDeUmaSolicitacao && quantidadeDeFeriasMarcadas > 1)
{
return Response("Ocorreu um erro, o servidor jájá possui féférias marcadas nessa matrímatrícula!");
}
if (!podeMarcarMaisDeUmaSolicitacao && quantidadeDeFeriasMarcadas > 0)
{
return Response("Ocorreu um erro, o servidor jájá possui féférias marcadas nessa matrímatrícula!");
}
Solicitacao solicitacao = null;
if (solicitacaoDTO.FormaDoPeriodoDeFerias == FormaDoPeriodoDeFerias.Outros.ToString())
solicitacao = SolicitacaoFactory.MontarSolicitacaoDeFeriasPendentes(
solicitacaoDTO.DatasIniciaisDasFerias.First().DataInicial,
solicitacaoDTO.QuantidadeDeDiasPendentes,
servidor,
solicitacaoDTO.AnoAquisitivo);
else
solicitacao = SolicitacaoFactory.MontarSolicitacaoParaEnviarParaHomologacao(solicitacaoDTO, servidor);
mensagemErro = await injecaoDeDependencia.validacaoDaSolicitacaoService.ValidarSolicitacao(solicitacao, solicitacaoDTO);
if (!string.IsNullOrEmpty(mensagemErro))
return Response(mensagemErro);
if (!string.IsNullOrWhiteSpace(solicitacaoDTO.CpfDoUsuarioQueHomologou))
solicitacao.Deferir(solicitacaoDTO.CpfDoUsuarioQueHomologou);
await context.Solicitacao.AddAsync(solicitacao);
context.SaveChangesAsync().Wait();
if (solicitacao.Id == 0)
return ErroContateOAdministrador();
var ehUmaEdicaoDeSolicitacao = solicitacaoDTO.Id != 0;
if (ehUmaEdicaoDeSolicitacao)
await RemoverSolicitacaoAntiga(solicitacaoDTO);
return Response("SolicitacãSolicitacão enviada com sucesso", solicitacao.Id);
}
2.3.3. Valor agregado
A revisãrevisão no processo de PAF beneficia os desenvolvedores do time TITÃTITÃS e amplia o entendimento de todos os membros do time sobre os aspectos do desenvolvimento do produto. TambéTambém beneficia os servidores em geral por melhorar a eficiêeficiência e reduzir erros dispendiosos no processo de planejamento das féférias. Mais importante ainda, a revisãrevisão de cócódigo garante otimizaçãotimização de cócódigo de alta qualidade por meio do trabalho em equipe interno.
4. 3. ConclusãConclusão
O presente ESTUDO TÉTÉCNICO PRELIMINAR, elaborado pelos integrantes TÉTÉCNICOS do time TITÃTITÃS, considerando a anáanálise dos desafios tétécnicos envolvidos e citados, conclui pela VIABILIDADE DO PLANEJAMENTO ANUAL DO ANO DE 2022, uma vez que foram considerados potenciais problemas que afetem a disponibilidade do serviçserviço. Em complemento, os contratempos identificados sãsão administráadministráveis, pelo que RECOMENDAMOS o prosseguimento da demanda.