Tabela de conteúdos

~~ODT~~

Última atualização: 2017/08/16 15:26 por allan.bueno

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 (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:

São disponíveis também as seguintes opções de visualização para o relatório no formato analítico:

O relatório analítico é gerado seguindo o modelo:

Tempo Médio de Tramitação

Processo Assunto Data de Cadastro Arquivamento Tempo de Tramitação
Tipo ou Assunto(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(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/Assunto Quantidade Tempo Médio
TIPO DE PROCESSO OU [Código Conarq] - ASSUNTO (RN06) 999 9999.9 DIAS HH:MM:SS
—— —— ——
—— —— ——
—— —— ——

Principais Regras de Negócio

  1. 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.
  2. RN02 - O período será aplicado para a data de cadastro do processo.
  3. RN03 - O preenchimento do campo unidade é opcional.
  4. 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
  5. 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
  6. 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.
  7. 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

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:

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 = <IDENTIFICADOR> 
     AND PROCESSOC.DATA_CADASTRO BETWEEN '<INÍCIO PERÍODO: Formato - AAAA-MM-DD>' AND '<FINAL PERÍODO: Formato - AAAA-MM-DD>'
     AND PROCESSOC.ID_TIPO_PROCESSO = TIPO_PROCESSO.IDTIPOPROCESSO 
     AND ( PROCESSOC.ID_TIPO_PROCESSO IN ( '<IDENTIFICADOR>','<IDENTIFICADOR>' , [...]) ) 
     AND PROCESSOC.ID_UNIDADE_ORIGEM = <IDENTIFICADOR> 
ORDER BY TIPO_PROCESSO.DENOMINACAO 
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 = <IDENTIFICADOR> 
     AND PROCESSOC.DATA_CADASTRO BETWEEN '<INÍCIO PERÍODO: Formato - AAAA-MM-DD>' AND '<FINAL PERÍODO: Formato - AAAA-MM-DD>' 
     AND PROCESSOC.ID_TIPO_PROCESSO = TIPO_PROCESSO.IDTIPOPROCESSO 
     AND ( PROCESSOC.ID_TIPO_PROCESSO IN ( '<IDENTIFICADOR>','<IDENTIFICADOR>' , [...] ) ) 
     AND PROCESSOC.ID_UNIDADE_ORIGEM = <IDENTIFICADOR> 
GROUP BY PROCESSOC.ID_TIPO_PROCESSO, TIPO_PROCESSO.DENOMINACAO ORDER BY TIPO_PROCESSO.DENOMINACAO

Para o relatório sintético:

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 = <IDENTIFICADOR> 
     AND PROCESSOC.DATA_CADASTRO BETWEEN '<INÍCIO PERÍODO: Formato - AAAA-MM-DD>' AND '<FINAL PERÍODO: Formato - AAAA-MM-DD>' 
     AND PROCESSOC.ID_TIPO_PROCESSO = TIPO_PROCESSO.IDTIPOPROCESSO 
     AND ( PROCESSOC.ID_TIPO_PROCESSO IN ( '<IDENTIFICADOR>','<IDENTIFICADOR>' , [...] ) ) 
     AND PROCESSOC.ID_UNIDADE_ORIGEM = <IDENTIFICADOR> 
GROUP BY PROCESSOC.ID_TIPO_PROCESSO, TIPO_PROCESSO.DENOMINACAO 
ORDER BY TIPO_PROCESSO.DENOMINACAO 
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 = <IDENTIFICADOR> 
     AND PROCESSOC.DATA_CADASTRO BETWEEN '<INÍCIO PERÍODO: Formato - AAAA-MM-DD>' AND '<FINAL PERÍODO: Formato - AAAA-MM-DD>' 
     AND PROCESSOC.ID_CLASSIFICACAO_CONARQ = CLASSIFICACAO_CONARQC.ID_CLASSIFICACAO_CONARQ 
     AND ( CLASSIFICACAO_CONARQC.ID_CLASSIFICACAO_CONARQ IN ( '<IDENTIFICADOR>','<IDENTIFICADOR>' , [...] ) ) 
     AND PROCESSOC.ID_UNIDADE_ORIGEM = <IDENTIFICADOR> 
GROUP BY PROCESSOC.ID_CLASSIFICACAO_CONARQ, CLASSIFICACAO_CONARQC.CODIGO, CLASSIFICACAO_CONARQC.NOME_COMPLETO 
ORDER BY PROCESSOC.ID_CLASSIFICACAO_CONARQ, CLASSIFICACAO_CONARQC.NOME_COMPLETO