~~ODT~~ echo "
"; echo "Última atualização: "; ver('', false); echo "
";
====== Tempo Médio de Tramitação ====== Um processo possui um tempo de vida desde sua criação até o seu arquivamento. Este caso de uso tem como finalidade gerar relatório do tempo de vida de um processo agrupado por assunto em um dado período de tempo. Existem duas opções de relatórios. O primeiro se trata de um relatório analítico onde, de acordo com as informações fornecidas, são mostrados os processos com seu tempo de vida agrupados por tipo de processo ou assunto. O tipo de dado a ser agrupado irá depender do tipo da unidade a que o usuário pertença ([[desenvolvimento:especificacoes:sipac:protocolo:casos_de_uso:consultas_relatorios:relatorios:tempo_medio_de_tramitacao#Principais Regras de Negócio |RN06]]). O relatório Sintético apresenta a quantidade de processos por tipo e tempo médio de vida para aquele tipo de processo. Os dados a serem exibidos dependerá dos filtros aplicados pelo usuário. Esses relatórios podem ser gerados por qualquer usuário do sistema. ===== Descrição do Caso de Uso ===== O caso de uso começa mostrando as opções para a geração dos relatórios. O usuário pode escolher o tipo de relatório que deseja pela opção: * **Tipo de Relatório** ([[desenvolvimento:especificacoes:sipac:protocolo:casos_de_uso:consultas_relatorios:relatorios:tempo_medio_de_tramitacao#Principais Regras de Negócio |RN01]]): Formato: Analítico | Sintético, Tipo - LÓGICO. * **Apenas Processos Arquivados** ([[desenvolvimento:especificacoes:sipac:protocolo:casos_de_uso:consultas_relatorios:relatorios:tempo_medio_de_tramitacao#Principais Regras de Negócio |RN07]]): Formato: Analítico | Sintético, Tipo - LÓGICO. * **Período de Cadastro** ([[desenvolvimento:especificacoes:sipac:protocolo:casos_de_uso:consultas_relatorios:relatorios:tempo_medio_de_tramitacao#Principais Regras de Negócio |RN02]]): Formato - DD/MM/AAAA à DD/MM/AAAA, Tipo - DATA. * **Unidade** ([[desenvolvimento:especificacoes:sipac:protocolo:casos_de_uso:consultas_relatorios:relatorios:tempo_medio_de_tramitacao#Principais Regras de Negócio |RN03]]): Formato - CÓDIGO DA UNIDADE | NOME DA UNIDADE, Tipo - NUMÉRICO e TEXTO. * **Tipo de Processo** ([[desenvolvimento:especificacoes:sipac:protocolo:casos_de_uso:consultas_relatorios:relatorios:tempo_medio_de_tramitacao#Principais Regras de Negócio |RN04]]): Tipo: TEXTO. * **Assunto do Processo** ([[desenvolvimento:especificacoes:sipac:protocolo:casos_de_uso:consultas_relatorios:relatorios:tempo_medio_de_tramitacao#Principais Regras de Negócio |RN05]]): Tipo: TEXTO. São disponíveis também as seguintes opções de visualização para o relatório no formato analítico: * **Ordenar por**: Formato - são apresentadas as opções ''Número de Protocolo'', ''Assunto Detalhado'' e ''Data de Cadastro'', Tipo - TEXTO. * **Ordenação**: Formato - são apresentadas as opções ''Crescente'' e ''Decrescente'', Tipo - TEXTO. O relatório analítico é gerado seguindo o modelo: **Tempo Médio de Tramitação** * **__Tipo de Relatório__**: Formato: Analítico | Sintético, Tipo - TEXTO. * **__Apenas Processos Arquivados__**: Formato: Sim| Não, Tipo - TEXTO. * **__Período de Cadastro__**: Formato - DD/MM/AAAA à DD/MM/AAAA, Tipo - DATA. * **__Unidade__**: Formato - NOME DA UNIDADE (CÓDIGO DA UNIDADE), Tipo - TEXTO e NUMÉRICO. ^ Processo ^ Assunto ^ Data de Cadastro ^ Arquivamento ^ Tempo de Tramitação ^ | **Tipo ou Assunto([[desenvolvimento:especificacoes:sipac:protocolo:casos_de_uso:consultas_relatorios:relatorios:tempo_medio_de_tramitacao#Principais Regras de Negócio |RN06]]): TIPO OU ASSUNTO** ||||| | 23077.999999/AAAA - 99 | ASSUNTO DO PROCESSO | DD/MM/AAAA HH:MM | DD/MM/AAAA HH:MM | 9999.9 DIAS HH:MM:SS | | 23077.999999/AAAA - 99 | ASSUNTO DO PROCESSO | DD/MM/AAAA HH:MM | DD/MM/AAAA HH:MM | 9999.9 DIAS HH:MM:SS | | **Tempo Médio** | **9999.9 DIAS HH:MM:SS** ||||| | **Total de Processos** | **999999** ||||| | ---- ||||| | **Tipo ou Assunto([[desenvolvimento:especificacoes:sipac:protocolo:casos_de_uso:consultas_relatorios:relatorios:tempo_medio_de_tramitacao#Principais Regras de Negócio |RN06]]): TIPO OU ASSUNTO** ||||| | 23077.999999/AAAA - 99 | ASSUNTO DO PROCESSO | DD/MM/AAAA HH:MM | DD/MM/AAAA HH:MM | 9999.9 DIAS HH:MM:SS | | 23077.999999/AAAA - 99 | ASSUNTO DO PROCESSO | DD/MM/AAAA HH:MM | DD/MM/AAAA HH:MM | 9999.9 DIAS HH:MM:SS | | **Tempo Médio** | **9999.9 DIAS HH:MM:SS** ||||| | **Total de Processos** | **999999** ||||| | ---- ||||| Já o relatório sintético segue o seguinte modelo: **Tempo Médio de Tramitação** * **__Tipo de Relatório__**: Formato: Analítico | Sintético, Tipo - TEXTO. * **__Apenas Processos Arquivados__**: Formato: Sim| Não, Tipo - TEXTO. * **__Período de Cadastro__**: Formato - DD/MM/AAAA à DD/MM/AAAA, Tipo - DATA. * **__Unidade__**: Formato - NOME DA UNIDADE (CÓDIGO DA UNIDADE), Tipo - TEXTO e NUMÉRICO. ^ Tipo/Assunto ^ Quantidade ^ Tempo Médio ^ | TIPO DE PROCESSO OU [Código Conarq] - ASSUNTO ([[desenvolvimento:especificacoes:sipac:protocolo:casos_de_uso:consultas_relatorios:relatorios:tempo_medio_de_tramitacao#Principais Regras de Negócio |RN06]]) | 999 | 9999.9 DIAS HH:MM:SS| | ------ | ------ | ------ | | ------ | ------ | ------ | | ------ | ------ | ------ | ===== Principais Regras de Negócio ===== - **RN01** - O formato do relatório que será exibido irá depender da seleção do tipo de relatório. O Valor padrão é o Sintético. - **RN02** - O período será aplicado para a data de cadastro do processo. - **RN03** - O preenchimento do campo unidade é opcional. - **RN04** - O preenchimento do campo Tipo do Processo é opcional. Esse filtro só aparecerá na tela quando a unidade gestora do usuário utilizar o atributo **Tipo de Processo** - **RN05** - O preenchimento do campo Assunto é opcional. Esse filtro só aparecerá na tela quando a unidade gestora do usuário utilizar o atributo **Classificação CONARQ** - **RN06** - O resultado poderá ser exibido de formas distintas de acordo com o usuário que acessa o sistema. O resultado só será agrupado por **Tipo de Processo**, caso a unidade do usuário logado não possuir **Classificação CONARQ**. Caso contrário, será agrupado por **Assunto**. - **RN07** - Ao selecionar sim para a opção //Apenas Processos Arquivados// o relatório considera apenas os processos com status **Arquivado**, caso contrário o relatório considera também os processos com outros status. Para o último caso o tempo de tramitação do processo será calculado da data de cadastro até a data de geração do relatório. ==== Resoluções/Legislações Associadas ==== Não se Aplica. ===== Classes Persistentes e Tabelas Envolvidas ===== ^ Classe ^ Tabela ^ | br.ufrn.sipac.protocolo.dominio.Movimento | administrativo.protocolo.movimento | | br.ufrn.sipac.protocolo.dominio.Processo | administrativo.protocolo.processo | | br.ufrn.sipac.protocolo.dominio.MudancaProcesso | administrativo.protocolo.mudanca_processo | | br.ufrn.sipac.arquitetura.dominio.Parametro | comum.parametro | ====== Plano de Teste ====== Sistema: SIPAC Módulo: PROTOCOLOS Link(s): Módulos -> Protocolo -> Consultas/Relatórios -> Relatórios -> Tempo Médio de Tramitação Usuário: marcilia, jbb, paulinho Papel que usuário deve ter: Ser usuário do **SIPAC**. ===== Cenários de Teste ===== * **Atenção:** verificar as ([[desenvolvimento:especificacoes:sipac:protocolo:casos_de_uso:consultas_relatorios:relatorios:tempo_medio_de_tramitacao#Principais Regras de Negócio |RN04]]) e ([[desenvolvimento:especificacoes:sipac:protocolo:casos_de_uso:consultas_relatorios:relatorios:tempo_medio_de_tramitacao#Principais Regras de Negócio |RN05]]). Apenas um tipo de classificação deverá estar ativo durante os testes, utilizar o script SQL fornecido na seção [[desenvolvimento:especificacoes:sipac:protocolo:casos_de_uso:consultas_relatorios:relatorios:tempo_medio_de_tramitacao#Dados para o Teste |Dados para o Teste]] para alternar o tipo de classificação. * Gerar diversos realtórios com diferentes parâmentros com objetivo de verificar se os realtórios retornados estão de acordo. * Para verificar os movimentos dos processos e suas datas de envio e recebimento acesse: Módulos -> Protocolo -> Consultas/Relatórios -> Consultas -> Processo Detalhado * Alternar o tipo de classificação e realizando testes com os filtros //Assunto do Processo// e //Tipo do Processo//. ===== Dados para o Teste ===== Alternar o tipo de classificação (banco sistemas_comum): UPDATE comum.parametro SET valor = 'true' WHERE nome = 'UTILIZA_TIPO_PROCESSO'; UPDATE comum.parametro SET valor = 'false' WHERE nome = 'UTILIZA_CLASSIFICACAO_CONARQ'; Para o relatório analítico: * Processos agrupados por tipo de processo, no período informado, pela consulta: SELECT DISTINCT PROCESSOC.ID_TIPO_PROCESSO, TIPO_PROCESSO.DENOMINACAO, PROCESSOC.ASSUNTO,PROCESSOC.RADICAL, PROCESSOC.NUM_PROTOCOLO, PROCESSOC.ANO, PROCESSOC.DV, PROCESSOC.ID_PROCESSO, PROCESSOC.STATUS, ( SELECT DISTINCT MUDANCA_PROCESSOC.DATA FROM PROTOCOLO.MUDANCA_PROCESSO AS MUDANCA_PROCESSOC WHERE ( PROCESSOC.ID_PROCESSO = MUDANCA_PROCESSOC.ID_PROCESSO ) ORDER BY MUDANCA_PROCESSOC.DATA DESC LIMIT 1) AS DATA_ARQUIVAMENTO, PROCESSOC.DATA_CADASTRO, ( SELECT DISTINCT MUDANCA_PROCESSOC.DATA FROM PROTOCOLO.MUDANCA_PROCESSO AS MUDANCA_PROCESSOC WHERE ( PROCESSOC.ID_PROCESSO = MUDANCA_PROCESSOC.ID_PROCESSO ) ORDER BY MUDANCA_PROCESSOC.DATA DESC LIMIT 1) - PROCESSOC.DATA_CADASTRO AS TEMPO_ARQUIVAMENTO , NOW() - PROCESSOC.DATA_CADASTRO AS TEMPO FROM PROTOCOLO.PROCESSO AS PROCESSOC, PROTOCOLO.MUDANCA_PROCESSO AS MUDANCA_PROCESSO , PROTOCOLO.TIPOPROCESSO AS TIPO_PROCESSO WHERE PROCESSOC.ID_PROCESSO = MUDANCA_PROCESSO.ID_PROCESSO AND PROCESSOC.STATUS = AND PROCESSOC.DATA_CADASTRO BETWEEN '' AND '' AND PROCESSOC.ID_TIPO_PROCESSO = TIPO_PROCESSO.IDTIPOPROCESSO AND ( PROCESSOC.ID_TIPO_PROCESSO IN ( '','' , [...]) ) AND PROCESSOC.ID_UNIDADE_ORIGEM = ORDER BY TIPO_PROCESSO.DENOMINACAO * Processos agrupados por Classificação CONARQ, no período informado, pela consulta: SELECT DISTINCT PROCESSOC.ID_TIPO_PROCESSO, TIPO_PROCESSO.DENOMINACAO, COUNT(DISTINCT PROCESSOC.ID_PROCESSO) AS QUANTIDADE, AVG( ( SELECT DISTINCT MUDANCA_PROCESSOC.DATA FROM PROTOCOLO.MUDANCA_PROCESSO AS MUDANCA_PROCESSOC WHERE ( PROCESSOC.ID_PROCESSO = MUDANCA_PROCESSOC.ID_PROCESSO ) ORDER BY MUDANCA_PROCESSOC.DATA DESC LIMIT 1) - PROCESSOC.DATA_CADASTRO ) AS TEMPO FROM PROTOCOLO.PROCESSO AS PROCESSOC, PROTOCOLO.MUDANCA_PROCESSO AS MUDANCA_PROCESSO , PROTOCOLO.TIPOPROCESSO AS TIPO_PROCESSO WHERE PROCESSOC.ID_PROCESSO = MUDANCA_PROCESSO.ID_PROCESSO AND PROCESSOC.STATUS = AND PROCESSOC.DATA_CADASTRO BETWEEN '' AND '' AND PROCESSOC.ID_TIPO_PROCESSO = TIPO_PROCESSO.IDTIPOPROCESSO AND ( PROCESSOC.ID_TIPO_PROCESSO IN ( '','' , [...] ) ) AND PROCESSOC.ID_UNIDADE_ORIGEM = GROUP BY PROCESSOC.ID_TIPO_PROCESSO, TIPO_PROCESSO.DENOMINACAO ORDER BY TIPO_PROCESSO.DENOMINACAO Para o relatório sintético: * Quantidade e o tempo médio de tramitação de processos agrupado por Tipo de Processo, no período informado, pela consulta: SELECT DISTINCT PROCESSOC.ID_TIPO_PROCESSO, TIPO_PROCESSO.DENOMINACAO, COUNT(DISTINCT PROCESSOC.ID_PROCESSO) AS QUANTIDADE, AVG( ( SELECT DISTINCT MUDANCA_PROCESSOC.DATA FROM PROTOCOLO.MUDANCA_PROCESSO AS MUDANCA_PROCESSOC WHERE ( PROCESSOC.ID_PROCESSO = MUDANCA_PROCESSOC.ID_PROCESSO ) ORDER BY MUDANCA_PROCESSOC.DATA DESC LIMIT 1) - PROCESSOC.DATA_CADASTRO ) AS TEMPO FROM PROTOCOLO.PROCESSO AS PROCESSOC, PROTOCOLO.MUDANCA_PROCESSO AS MUDANCA_PROCESSO , PROTOCOLO.TIPOPROCESSO AS TIPO_PROCESSO WHERE PROCESSOC.ID_PROCESSO = MUDANCA_PROCESSO.ID_PROCESSO AND PROCESSOC.STATUS = AND PROCESSOC.DATA_CADASTRO BETWEEN '' AND '' AND PROCESSOC.ID_TIPO_PROCESSO = TIPO_PROCESSO.IDTIPOPROCESSO AND ( PROCESSOC.ID_TIPO_PROCESSO IN ( '','' , [...] ) ) AND PROCESSOC.ID_UNIDADE_ORIGEM = GROUP BY PROCESSOC.ID_TIPO_PROCESSO, TIPO_PROCESSO.DENOMINACAO ORDER BY TIPO_PROCESSO.DENOMINACAO * Podemos obter a quantidade e o tempo médio de tramitação de processos agrupado por Classificação CONARQ, no período informado, pela consulta: SELECT DISTINCT PROCESSOC.ID_CLASSIFICACAO_CONARQ, CLASSIFICACAO_CONARQC.CODIGO, CLASSIFICACAO_CONARQC.NOME_COMPLETO, COUNT(DISTINCT PROCESSOC.ID_PROCESSO) AS QUANTIDADE, AVG( ( SELECT DISTINCT MUDANCA_PROCESSOC.DATA FROM PROTOCOLO.MUDANCA_PROCESSO AS MUDANCA_PROCESSOC WHERE ( PROCESSOC.ID_PROCESSO = MUDANCA_PROCESSOC.ID_PROCESSO ) ORDER BY MUDANCA_PROCESSOC.DATA DESC LIMIT 1) - PROCESSOC.DATA_CADASTRO ) AS TEMPO FROM PROTOCOLO.PROCESSO AS PROCESSOC, PROTOCOLO.MUDANCA_PROCESSO AS MUDANCA_PROCESSO , PROTOCOLO.CLASSIFICACAO_CONARQ AS CLASSIFICACAO_CONARQC WHERE PROCESSOC.ID_PROCESSO = MUDANCA_PROCESSO.ID_PROCESSO AND PROCESSOC.STATUS = AND PROCESSOC.DATA_CADASTRO BETWEEN '' AND '' AND PROCESSOC.ID_CLASSIFICACAO_CONARQ = CLASSIFICACAO_CONARQC.ID_CLASSIFICACAO_CONARQ AND ( CLASSIFICACAO_CONARQC.ID_CLASSIFICACAO_CONARQ IN ( '','' , [...] ) ) AND PROCESSOC.ID_UNIDADE_ORIGEM = GROUP BY PROCESSOC.ID_CLASSIFICACAO_CONARQ, CLASSIFICACAO_CONARQC.CODIGO, CLASSIFICACAO_CONARQC.NOME_COMPLETO ORDER BY PROCESSOC.ID_CLASSIFICACAO_CONARQ, CLASSIFICACAO_CONARQC.NOME_COMPLETO