Skip to content

Commit

Permalink
Merge pull request #3 from anatelgovbr/v1.5.0
Browse files Browse the repository at this point in the history
Versão 1.5.0 final para publicação
  • Loading branch information
neijobson authored Mar 26, 2022
2 parents e6c6c4f + 6715b10 commit 3af0822
Show file tree
Hide file tree
Showing 5 changed files with 410 additions and 8 deletions.
13 changes: 9 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,16 @@
9. Após a execução com sucesso, com um usuário com permissão de Administrador no SEI, seguir os passos dispostos no tópico "Orientações Negociais" mais abaixo.

## Orientações Negociais
1. Imediatamente após a instalação com sucesso, com usuário com permissão de "Administrador" do SEI, acessar os menus de administração do Módulo pelo seguinte caminho: Administração > Controle de Desempenho.
2. O script de banco do SIP já cria todos os Recursos e Menus e os associam automaticamente ao Perfil "Básico" ou ao Perfil "Administrador".
1. NÃO ESCOPO DO MÓDULO, até a v1.5.0:
- Ainda não foi implementada a integração para envio de dados à API sobre PGDs disponibilizada pelo Ministério da Economia.
- O módulo ainda não possui menu/tela com relatórios para acompanhamento geral de cada membro Participante sobre Períodos de execução passados, sendo necessário implementar solução de BI própria para ter uma visão geral do acompanhamento do desempenho, especialmente sobre Períodos anteriores ao Período atual.
- Para Período atual, no menu Controle de Desempenho > Distribuição é possível realizar filtragem por "Membro Participante" e acompanhar os dados sobre "Total de Tempo Executado no Período", "Carga Horária Padrão no Período" e "Carga Horária Distribuída no Período".
- Até disponibilizarmos menu/tela com relatórios para acompanhamento geral de cada membro Participante sobre Períodos de execução passados, na pasta "bi_scripts" disponibilizamos três arquivos sql para extração de dados para uso em ferramenta de BI da instituição: "ExtracaoDados_historico.sql", "ExtracaoDados_tempo_executado.sql" e "ExtracaoDados_tempo_pendente.sql".
2. Imediatamente após a instalação com sucesso, com usuário com permissão de "Administrador" do SEI, acessar os menus de administração do Módulo pelo seguinte caminho: Administração > Controle de Desempenho.
3. O script de banco do SIP já cria todos os Recursos e Menus e os associam automaticamente ao Perfil "Básico" ou ao Perfil "Administrador".
- O script de banco do SIP também cria o Perfil "Gestor de Controle de Desempenho" e associa os Recursos e Menus correspondentes. O mencionado Perfil deve ser concedido aos Gestores de Controle de Desempenho indicados em Administração > Controle de Desempenho > Tipos de Controle de Desempenho.
- Independente da criação de outros Perfis, os recursos indicados para o Perfil "Básico" ou "Administrador" devem manter correspondência com os Perfis dos Usuários internos que utilizarão o Módulo e dos Usuários Administradores do Módulo.
- Tão quanto ocorre com as atualizações do SEI, versões futuras deste Módulo continuarão a atualizar e criar Recursos e associá-los apenas aos Perfis "Básico", "Administrador" e "Gestor de Controle de Desempenho".
- Todos os recursos do Módulo iniciam pelo sufix **"md_utl_"**.
3. Acesse no link a seguir o Manual de Administração [http://bit.ly/Manual_SEI_Mod_Utilidades_Admin](http://bit.ly/Manual_SEI_Mod_Utilidades_Admin "Clique e acesse")
4. Acesse no link a seguir o Manual do Usuário Interno: [http://bit.ly/Manual_SEI_Mod_Utilidades_Usuario](http://bit.ly/Manual_SEI_Mod_Utilidades_Usuario "Clique e acesse")
4. Acesse no link a seguir o Manual de Administração: Ainda em construção
5. Acesse no link a seguir o Manual do Usuário Interno: Ainda em construção
13 changes: 9 additions & 4 deletions sei/web/modulos/utilidades/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,16 @@
9. Após a execução com sucesso, com um usuário com permissão de Administrador no SEI, seguir os passos dispostos no tópico "Orientações Negociais" mais abaixo.

## Orientações Negociais
1. Imediatamente após a instalação com sucesso, com usuário com permissão de "Administrador" do SEI, acessar os menus de administração do Módulo pelo seguinte caminho: Administração > Controle de Desempenho.
2. O script de banco do SIP já cria todos os Recursos e Menus e os associam automaticamente ao Perfil "Básico" ou ao Perfil "Administrador".
1. NÃO ESCOPO DO MÓDULO, até a v1.5.0:
- Ainda não foi implementada a integração para envio de dados à API sobre PGDs disponibilizada pelo Ministério da Economia.
- O módulo ainda não possui menu/tela com relatórios para acompanhamento geral de cada membro Participante sobre Períodos de execução passados, sendo necessário implementar solução de BI própria para ter uma visão geral do acompanhamento do desempenho, especialmente sobre Períodos anteriores ao Período atual.
- Para Período atual, no menu Controle de Desempenho > Distribuição é possível realizar filtragem por "Membro Participante" e acompanhar os dados sobre "Total de Tempo Executado no Período", "Carga Horária Padrão no Período" e "Carga Horária Distribuída no Período".
- Até disponibilizarmos menu/tela com relatórios para acompanhamento geral de cada membro Participante sobre Períodos de execução passados, na pasta "bi_scripts" disponibilizamos três arquivos sql para extração de dados para uso em ferramenta de BI da instituição: "ExtracaoDados_historico.sql", "ExtracaoDados_tempo_executado.sql" e "ExtracaoDados_tempo_pendente.sql".
2. Imediatamente após a instalação com sucesso, com usuário com permissão de "Administrador" do SEI, acessar os menus de administração do Módulo pelo seguinte caminho: Administração > Controle de Desempenho.
3. O script de banco do SIP já cria todos os Recursos e Menus e os associam automaticamente ao Perfil "Básico" ou ao Perfil "Administrador".
- O script de banco do SIP também cria o Perfil "Gestor de Controle de Desempenho" e associa os Recursos e Menus correspondentes. O mencionado Perfil deve ser concedido aos Gestores de Controle de Desempenho indicados em Administração > Controle de Desempenho > Tipos de Controle de Desempenho.
- Independente da criação de outros Perfis, os recursos indicados para o Perfil "Básico" ou "Administrador" devem manter correspondência com os Perfis dos Usuários internos que utilizarão o Módulo e dos Usuários Administradores do Módulo.
- Tão quanto ocorre com as atualizações do SEI, versões futuras deste Módulo continuarão a atualizar e criar Recursos e associá-los apenas aos Perfis "Básico", "Administrador" e "Gestor de Controle de Desempenho".
- Todos os recursos do Módulo iniciam pelo sufix **"md_utl_"**.
3. Acesse no link a seguir o Manual de Administração [http://bit.ly/Manual_SEI_Mod_Utilidades_Admin](http://bit.ly/Manual_SEI_Mod_Utilidades_Admin "Clique e acesse")
4. Acesse no link a seguir o Manual do Usuário Interno: [http://bit.ly/Manual_SEI_Mod_Utilidades_Usuario](http://bit.ly/Manual_SEI_Mod_Utilidades_Usuario "Clique e acesse")
4. Acesse no link a seguir o Manual de Administração: Ainda em construção
5. Acesse no link a seguir o Manual do Usuário Interno: Ainda em construção
227 changes: 227 additions & 0 deletions sei/web/modulos/utilidades/bi_scripts/ExtracaoDados_historico.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,227 @@
SELECT
id_historico,
id_procedimento as id_protocolo,
id_fila,
id_tipo_controle,
id_unidade,
id_usuario,
id_usuario_distribuicao,
min(id_triagem) as id_triagem,
min(id_analise) as id_analise,
min(id_avaliacao) as id_avaliacao,
min(id_contestacao) as id_contestacao,
min(id_analise) as id_tarefa_analise,
min(id_acao) as id_acao,
cast(min(dth_atual) as datetime) as dth_atual,
min(id_atendimento) as id_atendimento,
tipo_acao as "Tipo Ação",
detalhe as Detalhe,
dth_prazo_tarefa,
sta_atendimento_dsmp,
sin_ultima_fila,
sin_ultimo_responsavel,
id_ajuste_prazo,
cast(dth_final as datetime) as dth_final,
sin_acao_concluida,
sta_atribuido,
tempo_execucao,
sta_tipo_presenca,
tempo_de_execucao_atribuido,
percentual_desempenho,
sta_tipo_presenca_participacao,
fator_desemp_diferenciado,
sta_tipo_jornada,
fator_reducao_jornada,
sum(pontos_ganhos) as pontos_ganhos,
sum(pontos_pendentes) as pontos_pendentes,
tipo_historico
FROM (
SELECT DISTINCT
hist_controle_dsmp.id_md_utl_hist_controle_dsmp as id_historico,
hist_controle_dsmp.id_procedimento,
hist_controle_dsmp.id_md_utl_adm_fila as id_fila,
hist_controle_dsmp.id_unidade,
hist_controle_dsmp.id_usuario,
hist_controle_dsmp.id_usuario_distribuicao,
hist_controle_dsmp.id_md_utl_adm_tp_ctrl_desemp as id_tipo_controle,
hist_controle_dsmp.id_md_utl_triagem as id_triagem,
hist_controle_dsmp.id_md_utl_analise as id_analise,
hist_controle_dsmp.id_md_utl_revisao as id_avaliacao,
hist_controle_dsmp.id_md_utl_contest_revisao as id_contestacao,
if(hist_controle_dsmp.tipo_acao = 'Triagem'
,hist_controle_dsmp.id_md_utl_triagem
,if(hist_controle_dsmp.tipo_acao = 'Análise'
,hist_controle_dsmp.id_md_utl_analise
,if(hist_controle_dsmp.tipo_acao = 'Avaliação'
,hist_controle_dsmp.id_md_utl_revisao
,if(hist_controle_dsmp.tipo_acao like 'Contestação%'
,hist_controle_dsmp.id_md_utl_contest_revisao
,null
)
)
)
) as id_acao,
cast(hist_controle_dsmp.dth_atual as datetime) as dth_atual,
hist_controle_dsmp.id_atendimento,
hist_controle_dsmp.tipo_acao,
hist_controle_dsmp.detalhe,
cast(hist_controle_dsmp.dth_prazo_tarefa as datetime) as dth_prazo_tarefa,
hist_controle_dsmp.sta_atendimento_dsmp,
hist_controle_dsmp.sin_ultima_fila,
hist_controle_dsmp.sin_ultimo_responsavel,
hist_controle_dsmp.id_md_utl_ajuste_prazo as id_ajuste_prazo,
cast(hist_controle_dsmp.dth_final as datetime) as dth_final,
hist_controle_dsmp.sin_acao_concluida,
hist_controle_dsmp.sta_atribuido,

#campos que mudam se for RO, DS ou HM.
hist_controle_dsmp.tempo_execucao,
hist_controle_dsmp.sta_tipo_presenca,
hist_controle_dsmp.tempo_de_execucao_atribuido,
hist_controle_dsmp.percentual_desempenho,

#Participação
adm_hist_prm_gr_usu.sta_tipo_presenca as sta_tipo_presenca_participacao,
adm_hist_prm_gr_usu.fator_desemp_diferenciado,
adm_hist_prm_gr_usu.sta_tipo_jornada,
adm_hist_prm_gr_usu.fator_reducao_jornada,

#Pontos Ganhos
case
when hist_controle_dsmp.tipo_acao = 'Triagem' then utl_triagem.tempo_de_execucao_atribuido
when hist_controle_dsmp.tipo_acao = 'Análise' then utl_analise.tempo_de_execucao_atribuido
when hist_controle_dsmp.tipo_acao = 'Avaliação' then utl_revisao.tempo_de_execucao_atribuido
when hist_controle_dsmp.tipo_acao = 'Avaliação'
and hist_controle_dsmp.detalhe in ('Retornar para Correção pelo mesmo Participante','Retornar para Correção por outro Participante na mesma Fila','Retornar para Correção por outro Participante') then -utl_revisao.tempo_de_execucao_atribuido
else 0
end as pontos_ganhos,

# Pontos Pentendes
0 as pontos_pendentes,

'Passado' as tipo_historico
FROM prod_sei3.md_utl_hist_controle_dsmp hist_controle_dsmp
LEFT JOIN prod_sei3.md_utl_adm_tp_ctrl_desemp adm_tp_ctrl_desemp on adm_tp_ctrl_desemp.id_md_utl_adm_tp_ctrl_desemp = hist_controle_dsmp.id_md_utl_adm_tp_ctrl_desemp
LEFT JOIN prod_sei3.md_utl_adm_hist_prm_gr_usu adm_hist_prm_gr_usu on (adm_hist_prm_gr_usu.id_md_utl_adm_prm_gr = adm_tp_ctrl_desemp.id_md_utl_adm_prm_gr and adm_hist_prm_gr_usu.id_usuario = hist_controle_dsmp.id_usuario)
LEFT JOIN prod_sei3.md_utl_triagem utl_triagem on utl_triagem.id_md_utl_triagem = hist_controle_dsmp.id_md_utl_triagem
LEFT JOIN prod_sei3.md_utl_analise utl_analise on utl_analise.id_md_utl_analise = hist_controle_dsmp.id_md_utl_analise
LEFT JOIN prod_sei3.md_utl_revisao utl_revisao on utl_revisao.id_md_utl_revisao = hist_controle_dsmp.id_md_utl_revisao
WHERE
1=1
and hist_controle_dsmp.id_usuario not in (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38) #usuários automáticos
and hist_controle_dsmp.id_md_utl_adm_tp_ctrl_desemp is not null
and hist_controle_dsmp.id_md_utl_adm_fila is not null
and cast(adm_hist_prm_gr_usu.dth_inicial as datetime) <= cast(hist_controle_dsmp.dth_atual as datetime)
and cast(if(isnull(adm_hist_prm_gr_usu.dth_final),now(),adm_hist_prm_gr_usu.dth_final) as datetime) >= cast(hist_controle_dsmp.dth_atual as datetime)
$(varMaxDate)
UNION
SELECT DISTINCT
hist_controle_dsmp.id_md_utl_controle_dsmp as id_historico,
hist_controle_dsmp.id_procedimento,
hist_controle_dsmp.id_md_utl_adm_fila as id_fila,
hist_controle_dsmp.id_unidade,
hist_controle_dsmp.id_usuario,
hist_controle_dsmp.id_usuario_distribuicao,
hist_controle_dsmp.id_md_utl_adm_tp_ctrl_desemp as id_tipo_controle,
hist_controle_dsmp.id_md_utl_triagem as id_triagem,
hist_controle_dsmp.id_md_utl_analise as id_analise,
hist_controle_dsmp.id_md_utl_revisao as id_avaliacao,
hist_controle_dsmp.id_md_utl_contest_revisao as id_contestacao,
if(hist_controle_dsmp.tipo_acao = 'Triagem'
,hist_controle_dsmp.id_md_utl_triagem
,if(hist_controle_dsmp.tipo_acao = 'Análise'
,hist_controle_dsmp.id_md_utl_analise
,if(hist_controle_dsmp.tipo_acao = 'Avaliação'
,hist_controle_dsmp.id_md_utl_revisao
,if(hist_controle_dsmp.tipo_acao like 'Contestação%'
,hist_controle_dsmp.id_md_utl_contest_revisao
,null
)
)
)
) as id_acao,
cast(hist_controle_dsmp.dth_atual as datetime) as dth_atual,
hist_controle_dsmp.id_atendimento,
hist_controle_dsmp.tipo_acao,
hist_controle_dsmp.detalhe,
cast(hist_controle_dsmp.dth_prazo_tarefa as datetime) as dth_prazo_tarefa,
hist_controle_dsmp.sta_atendimento_dsmp,
null as sin_ultima_fila,
null as sin_ultimo_responsavel,
hist_controle_dsmp.id_md_utl_ajuste_prazo as id_ajuste_prazo,
null as dth_final,
null as sin_acao_concluida,
hist_controle_dsmp.sta_atribuido,

#campos que mudam se for RO, DS ou HM.
hist_controle_dsmp.tempo_execucao,
hist_controle_dsmp.sta_tipo_presenca as sta_tipo_presenca_participacao,
hist_controle_dsmp.tempo_de_execucao_atribuido,
hist_controle_dsmp.percentual_desempenho,

#Participação
adm_hist_prm_gr_usu.sta_tipo_presenca,
adm_hist_prm_gr_usu.fator_desemp_diferenciado,
adm_hist_prm_gr_usu.sta_tipo_jornada,
adm_hist_prm_gr_usu.fator_reducao_jornada,

#Pontos Ganhos
case
when hist_controle_dsmp.tipo_acao = 'Triagem' then utl_triagem.tempo_de_execucao_atribuido
when hist_controle_dsmp.tipo_acao = 'Análise' then utl_analise.tempo_de_execucao_atribuido
when hist_controle_dsmp.tipo_acao = 'Avaliação' then utl_revisao.tempo_de_execucao_atribuido
when hist_controle_dsmp.tipo_acao = 'Avaliação'
and hist_controle_dsmp.detalhe in ('Retornar para Correção pelo mesmo Participante','Retornar para Correção por outro Participante na mesma Fila','Retornar para Correção por outro Participante') then -utl_revisao.tempo_de_execucao_atribuido
else 0
end as pontos_ganhos,

# Pontos Pentendes
case
when hist_controle_dsmp.sta_atendimento_dsmp in (4,10) and hist_controle_dsmp.tipo_acao = 'Retriagem' then hist_controle_dsmp.tempo_de_execucao_atribuido
when hist_controle_dsmp.sta_atendimento_dsmp in (10) and hist_controle_dsmp.tipo_acao <> 'Retriagem' then utl_analise.tempo_de_execucao_atribuido
when hist_controle_dsmp.id_usuario = hist_controle_dsmp.id_usuario_distribuicao then hist_controle_dsmp.tempo_de_execucao_atribuido
else 0
end as pontos_pendentes,

'Atual' as tipo_historico
FROM prod_sei3.md_utl_controle_dsmp hist_controle_dsmp
LEFT JOIN prod_sei3.md_utl_adm_tp_ctrl_desemp adm_tp_ctrl_desemp on adm_tp_ctrl_desemp.id_md_utl_adm_tp_ctrl_desemp = hist_controle_dsmp.id_md_utl_adm_tp_ctrl_desemp
LEFT JOIN prod_sei3.md_utl_adm_hist_prm_gr_usu adm_hist_prm_gr_usu on (adm_hist_prm_gr_usu.id_md_utl_adm_prm_gr = adm_tp_ctrl_desemp.id_md_utl_adm_prm_gr and adm_hist_prm_gr_usu.id_usuario = hist_controle_dsmp.id_usuario)
LEFT JOIN prod_sei3.md_utl_triagem utl_triagem on utl_triagem.id_md_utl_triagem = hist_controle_dsmp.id_md_utl_triagem
LEFT JOIN prod_sei3.md_utl_analise utl_analise on utl_analise.id_md_utl_analise = hist_controle_dsmp.id_md_utl_analise
LEFT JOIN prod_sei3.md_utl_revisao utl_revisao on utl_revisao.id_md_utl_revisao = hist_controle_dsmp.id_md_utl_revisao
WHERE
1=1
and hist_controle_dsmp.id_usuario not in (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38) #usuários automáticos
and hist_controle_dsmp.id_md_utl_adm_tp_ctrl_desemp is not null
and hist_controle_dsmp.id_md_utl_adm_fila is not null
and cast(adm_hist_prm_gr_usu.dth_inicial as datetime) <= cast(hist_controle_dsmp.dth_atual as datetime)
and cast(if(isnull(adm_hist_prm_gr_usu.dth_final),now(),adm_hist_prm_gr_usu.dth_final) as datetime) >= cast(hist_controle_dsmp.dth_atual as datetime)
) as historico
GROUP BY
id_historico,
id_procedimento,
id_fila,
id_tipo_controle,
id_unidade,
id_usuario,
id_usuario_distribuicao,
tipo_acao,
detalhe,
dth_prazo_tarefa,
sta_atendimento_dsmp,
sin_ultima_fila,
sin_ultimo_responsavel,
id_ajuste_prazo,
dth_final,
sin_acao_concluida,
sta_atribuido,
tempo_execucao,
sta_tipo_presenca,
tempo_de_execucao_atribuido,
percentual_desempenho,
sta_tipo_presenca_participacao,
fator_desemp_diferenciado,
sta_tipo_jornada,
fator_reducao_jornada,
tipo_historico
Loading

0 comments on commit 3af0822

Please sign in to comment.