~~ODT~~
Uma unidade pode movimentar vários processos de vários tipos durante um período.
Este caso de uso tem como finalidade gerar relatórios de movimentação de tipos de processos de uma ou mais unidades em dado período de tempo. O relatório apresentará a quantidade de processos do mesmo tipo movimentados em cada unidade e o tempo médio no qual estes processos permaneceram nesta unidade.
Esses relatórios podem ser gerados por qualquer usuário do sistema.
Esse caso de uso se inicia quando o usuário acessa o caminho: Módulos → Protocolo → Consultas/Relatórios → Relatórios → Processos Movimentados por Tipo (RN05)
O caso de uso mostra os critérios para a geração dos relatórios:
Caso o usuário deseje, também é possível detalhar o relatório pelos seguintes filtros:
O relatório é gerado seguindo o modelo:
RELATÓRIO DE PROCESSOS MOVIMENTADOS POR TIPO
Movimentações de Envio de Processo | ||
Unidade | Quantidade | Tempo Médio na Unidade |
---|---|---|
NOME DA UNIDADE (CÓDIGO DA UNIDADE) | ||
TIPO DO PROCESSO | 999 | 9 dia(s) 00:00:00 |
—— | —— | —— |
Total na Unidade | 999999 | 9 dia(s) 00:00:00 |
NOME DA UNIDADE (CÓDIGO DA UNIDADE) | ||
TIPO DO PROCESSO | 999 | 9 dia(s) 00:00:00 |
—— | —— | —— |
Total na Unidade | 999999 | 9 dia(s) 00:00:00 |
Total de Envio | 999999 | 9 dia(s) 00:00:00 |
Movimentações de Recebimento de Processo | ||
Unidade | Quantidade | Tempo Médio na Unidade |
---|---|---|
NOME DA UNIDADE (CÓDIGO DA UNIDADE) | ||
TIPO DO PROCESSO | 999 | 9 dia(s) 00:00:00 |
—— | —— | —— |
Total na Unidade | 999999 | 9 dia(s) 00:00:00 |
NOME DA UNIDADE (CÓDIGO DA UNIDADE) | ||
TIPO DO PROCESSO | 999 | 9 dia(s) 00:00:00 |
—— | —— | —— |
Total na Unidade | 999999 | 9 dia(s) 00:00:00 |
Total de Recebimento | 999999 | 9 dia(s) 00:00:00 |
Para o caso do tipo de movimentação selecionada pelo Usuário for “Ambos”, então teremos a tabela de totais no fim do relatório, seguindo o seguinte padrão
Totais | ||
Movimentação | Quantidade | Tempo Médio na Unidade |
---|---|---|
Envio | 999999 | 9 dia(s) 00:00:00 |
Recebimento | 999999 | 9 dia(s) 00:00:00 |
Total Geral | 999999 | 9 dia(s) 00:00:00 |
Não se Aplica.
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.TipoProcesso | administrativo.protocolo.tipoprocesso |
br.ufrn.sipac.cadastro.dominio.Unidade | administrativo.comum.unidade |
Sistema: SIPAC
Módulo: PROTOCOLOS
Link(s): Módulos → Protocolo → Consultas/Relatórios → Relatórios → Processos Movimentados por Tipo
Usuário: marcilia, jbb, paulinho
Papel que usuário deve ter: Ser usuário do SIPAC.
Verificar se as quantidades e tempos médios dos tipos de processo nas unidades, para o período informado, estejam corretos. Para verificar os movimentos dos processos e suas datas de envio e recebimento acesse:
SELECT uo.nome AS undiade_envio, COUNT (t.idtipoprocesso) AS qtd_enviada, t.denominacao AS tipo FROM protocolo.movimento mov INNER JOIN protocolo.processo p ON p.id_processo = mov.id_processo INNER JOIN protocolo.tipoprocesso t ON t.idtipoprocesso = p.id_tipo_processo INNER JOIN comum.unidade uo ON uo.id_unidade = mov.id_unidade_origem WHERE 1 = 1 AND t.idtipoprocesso = <ID DO TIPO DO PROCESSO> -- Opcional AND mov.id_unidade_origem = <ID DA UNIDADE QUE ENVIOU OS PROCESSOS> -- Opcional AND mov.data_envio_origem > '2012-01-01 00:00:00.00' -- Informar o período desejado AND mov.data_envio_origem < '2013-01-01 00:00:00.00' -- Informar o período desejado GROUP BY uo.nome, t.denominacao ORDER BY uo.nome, t.denominacao DESC
SELECT ud.nome AS undiade_destino, COUNT (t.idtipoprocesso) AS qtd_recebida, t.denominacao AS tipo FROM protocolo.movimento mov INNER JOIN protocolo.processo p ON p.id_processo = mov.id_processo INNER JOIN protocolo.tipoprocesso t ON t.idtipoprocesso = p.id_tipo_processo INNER JOIN comum.unidade ud ON ud.id_unidade = mov.id_unidade_destino WHERE 1 = 1 AND t.idtipoprocesso = <ID DO TIPO DO PROCESSO> -- Opcional AND mov.id_unidade_destino = <ID DA UNIDADE QUE RECEBEU OS PROCESSOS> -- Opcional AND mov.data_envio_origem > '2012-01-01 00:00:00.00' -- Informar o período desejado AND mov.data_envio_origem < '2013-01-01 00:00:00.00' -- Informar o período desejado GROUP BY ud.nome, t.denominacao ORDER BY ud.nome, t.denominacao DESC
O tempo no qual um processo permaneceu numa unidade é calculado a partir da diferença entre a data de saída, de envio, do processo da unidade pela última data de entrada, de recebimento, do processo nesta unidade. Assim, podemos calcular estas diferenças obtendo estas datas a partir da seguintes consultas:
SELECT uo.nome AS unidade_envio, t.denominacao AS tipo, (SELECT MAX(movReceb.data_recebimento_destino) FROM protocolo.movimento movReceb WHERE movReceb.id_processo = m.id_processo AND movReceb.id_movimento < m.id_movimento AND movReceb.data_recebimento_destino < m.data_envio_origem) AS data_recebimento_origem, m.data_envio_origem FROM protocolo.movimento m LEFT OUTER JOIN comum.UNIDADE uo ON m.id_unidade_origem = uo.id_unidade LEFT OUTER JOIN comum.UNIDADE ud ON m.id_unidade_destino = ud.id_unidade INNER JOIN protocolo.processo p ON m.id_processo = p.id_processo INNER JOIN protocolo.tipoprocesso t ON p.id_tipo_processo = t.idtipoprocesso WHERE 1=1 AND t.idtipoprocesso = <ID DO TIPO DO PROCESSO> -- Opcional AND m.id_unidade_origem = <ID DA UNIDADE QUE ENVIOU OS PROCESSOS> -- Opcional AND m.data_envio_origem >= '2012-01-01 00:00:00.00' -- Informar o período desejado AND m.data_envio_origem <= '2013-01-01 00:00:00.00' -- Informar o período desejado ORDER BY uo.nome, uo.id_unidade, t.denominacao
SELECT ud.nome AS unidade_envio, t.denominacao AS tipo, m.data_recebimento_destino, (SELECT MIN(movEnv.data_envio_origem) FROM protocolo.movimento movEnv WHERE movEnv.id_processo = m.id_processo AND movEnv.id_movimento > m.id_movimento AND movEnv.data_envio_origem > m.data_recebimento_destino) AS data_envio_destino -- Quando ele foi enviado, após recebido FROM protocolo.movimento m LEFT OUTER JOIN comum.UNIDADE uo ON m.id_unidade_origem = uo.id_unidade LEFT OUTER JOIN comum.UNIDADE ud ON m.id_unidade_destino = ud.id_unidade INNER JOIN protocolo.processo p ON m.id_processo = p.id_processo INNER JOIN protocolo.tipoprocesso t ON p.id_tipo_processo = t.idtipoprocesso WHERE 1=1 AND t.idtipoprocesso = <ID DO TIPO DO PROCESSO> -- Opcional AND m.id_unidade_destino = <ID DA UNIDADE QUE RECEBEU OS PROCESSOS> -- Opcional AND m.data_recebimento_destino >= '2012-01-01 00:00:00.00' -- Informar o período desejado AND m.data_recebimento_destino <= '2013-01-01 00:00:00.00' -- Informar o período desejado ORDER BY ud.nome, ud.id_unidade, t.denominacao