Análise de Planos v2

Introdução à Análise de Planos v2

A análise de planos v2 foi desenvolvida em Laravel e funciona dentro do api-internal. A ideia dela funciona um pouco diferente do que funciona hoje a análise de planos v1 (que funciona junto ao Cloud, no dev):

Enquanto na análise v1:

Os planos são abertos considerando a dtPRE da drawequipplanos, ignorando alguns quesitos específicos de alguns planos, como por exemplo o 52 Semanas

Na análise v2:

Os planos são abertos considerando as execuções dos planos existentes na drawequipplanos_execucoes, onde tem uma definição mais clara e funcional das execuções dos planos.

Atualmente considera-se apenas pelas execuções visto que a Análise v2 está sendo usada por enquanto apenas para a abertura de planos 52 semanas, porém, a ideia é também migrar os planos normais para abertura via Análise v2.


O funcionamento básico da Análise v2

Diferente da Análise v1 que inicia 01h01, a Análise v2 funciona de outra forma. Este processo roda a todo momento, onde faz a verificação das previsões que deveriam ter sido abertas e as efetua, limitando-se a executar 30 aberturas por execução.

O processo roda como um Job dentro do API-Internal chamado Analysis52WeeksPlanJob, o qual chama o método AnaliseController::analysis_52_weeks(). Existe também um outro método que tem como objetivo registrar os bloqueios de abertura, chamado de Analysis52WeeksPlanBlocksJob que executa o método AnaliseController::analysis_52_weeks_blocks(), porém este executando a cada 5 minutos.

O objetivo do job Analysis52WeeksPlanJob é rodar o processo a todo momento de análise de abertura de planos, efetuando a abertura de planos quando necessário. Ele roda considerando a drawequipplanos_execucoes, ou seja, não roda ordenado pela idUN, mas pela id da tabela mesmo. Ele é agendado pelo processo de Schedule do API-Internal usando uma configuração efetuada em App\Console\Kernel.

Já o objetivo do Analysis52WeeksPlanBlocksJob é como resultado do processo, inserir os motivos de não abertura daquela previsão que existia para aquele dia. Se está pausado, ele armazena que o plano está pausado, se o plano está excluído, mesma coisa, e assim por diante.

Claro, todos os casos consideram as previsões de planos ativas (status = 1).