~~ODT~~
echo "";
echo "Última atualização: ";
ver('', false);
echo "
";
======= Nível de Atendimento Mensal das Ordens de Serviço =======
Este Caso de Uso permite o acompanhamento do atendimento mensal das ordens de serviço. Através desse relatório pode-se verificar a quantidade de Ordem de Serviço solicitadas em um dado mês, a quantidade que foi finalizada e o que está pendente, além do percentual de atendimento das ordens de serviço solicitadas. O relatório ainda mostra esses dados de maneira gráfica, fornecendo uma melhor compreensão dos dados ao usuário, possibilitando-o realizar uma comparação de atendimentos entre os meses do ano.
Este caso de uso se encontra na área de Infraestrutura e é utilizado pelos servidores da Diretoria de Projetos e Obras da Superintendência de Infraestrutura.
===== Descrição do Caso de Uso =====
O Caso de Uso inicia com a seleção dos parâmetros do relatório pelo usuário. O usuário pode gerar o relatório considerando apenas o ano ou indicar uma unidade requisitante das ordens de serviço. Para isso o usuário deve informar:
* **Unidade Requisitante**: Tipo - AUTOCOMPLETE, Formato - nome (código), Entrada de Dados - Código, Nome.
* **Ano** *: Tipo - NUMÉRICO.
Tendo selecionado a maneira como o relatório será gerado, o usuário solicita a construção do relatório. O sistema exibe os seguintes dados no relatório:
* **__Unidade Requisitante__**: Tipo - TEXTO (caso o usuário tenha selecionado alguma unidade)
* **__Ano__**: Tipo - TEXTO.
O Relatório gerado tem o seguinte formato:
Nível de Atendimento Mensal das Ordens de Serviço
|
Ano: |
2010
|
Unidade Requisitante: |
SUPERINTENDENCIA DE INFRA-ESTRUTURA (11.08)
|
{{:desenvolvimento:especificacoes:sipac:infra_estrutura:casos_de_uso:manutencao:relatorios:percentual_atendimento_diman.png|}}
{{:desenvolvimento:especificacoes:sipac:infra_estrutura:casos_de_uso:manutencao:relatorios:grafico_antendimento_dimam.png|}}
Após a exibição do relatório o caso de uso finaliza.
===== Principais Regras de Negócio =====
* **RN1**: A Solicitação Geral é a quantidade de ordens de serviço solicitadas no mês mais o total pendente.
* **RN2**: A Finalização Geral é a quantidade de ordens de serviço finalizadas no mês mais o finalizado pendente, onde finalizado pendente é a quantidade de ordens de serviço solicitadas no meses anteriores que foram atendidas no mês atual.
* **RN3**: O Atendimento Geral é igual a: ( Finalizado Geral / Solicitado Geral ) * 100.
* **RN4**: O Atendimento no Mês é igual a: ( Finalizado no Mês / Solicitado no Mês) * 100.
* **RN5**: A Pendência Anterior é igual a: Solicitação Geral - Solicitação Mês
* **RN6**: A Pendência Atendida é igual a quantidade de ordens de serviço que estavam pendentes nos meses anteriores e que foram atendidas no mês atual.
* **RN7**: A Pendência Restante é igual a: Pendência Anterior - Pendência Atendida.
* **RN8**: Solicitado no Mês = número de ordens de serviço solicitadas no mês.
* **RN9**: Finalizado no Mês = número de ordens de serviço finalizadas no mês.
* **RN10**: Pendente no Mês = Solicitado no Mês - Finalizado no Mês
* **RN11**: META = 70,00%
* **RN12**: Total Pendente = Pendência no Mês + Pendência Anterior
===== Classes Persistentes e Tabelas Envolvidas =====
^ Tabela^ Classe|
| sipac.infra.ordem_servico | br.ufrn.sipac.supinfra.manutencao.dominio.OrdemServico |
====== Plano de Teste ======
Sistema: SIPAC
Módulo: Superintendência de Infra-Estrutura
Link(s): Manutenção -> Relatórios -> Nível de Atendimento Mensal das Ordens de Serviço
Usuário: lane (gestor_obras), joca (gestor_manutencao)
Papel que usuário deve ter: SipacPapeis.GESTOR_OBRAS, SipacPapeis.GESTOR_MANUTENCAO
===== Cenários de Teste =====
- Testar a geração do relatório para diferentes períodos e observar se as quantidades textual e gráfica das ordens de serviço executadas estão correspondentes.
- Pode-se [[ desenvolvimento:especificacoes:sipac:infra_estrutura:casos_de_uso:manutencao:ordens_de_servico:gerar_ordem_de_servico | gerar uma ordem de serviço ]] para visualizar mudança nas quantidades exibidas no relatório.
- Verificar os dados do relatório observando os cálculos descritos nas regras de negócio.
===== Dados para o Teste =====
Para verificar as unidades que possuam ordens de serviço associadas, executar o seguinte script:
SELECT os.numero,
os.ano,
unidade.nome
FROM infra.ordem_servico os
LEFT JOIN infra.requisicao_supinfra requisicao
ON os.id_requisicao = requisicao.id
LEFT JOIN comum.unidade unidade
ON unidade.id_unidade = requisicao.id_unidade_req;
Para verificar a Regra de negócio [[ desenvolvimento:especificacoes:sipac:infra_estrutura:casos_de_uso:manutencao:relatorios:nivel_de_atemdimento_mensal_das_ordens_de_servicos#principais_regras_de_negócio |RN2]], executar o seguinte script e verificar a quantidade recuperada na consulta. O valor a ser retornado pelo script refere-se ao finalizado pendente, citado na regra de negócio RN2.
OBS: Observando da esquerda para a direita, a primeira interrogação deve ser substituída pelo ano que se deseja obter o total pendente. As outras duas interrogações devem ser substituídas pelo mês que se deseja obter o total pendente.
SELECT
SUM( os.id_status) AS quantidade
FROM infra.ordem_servico os
WHERE os.ano = ? AND EXTRACT ( MONTH FROM os.data_conclusao ) = ? AND EXTRACT ( MONTH FROM os.data_cadastro ) < ?