Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

pres:gerti:gestao_de_ativos:portal:er_007 [30/03/2026 20:19] – criada pramorimpres:gerti:gestao_de_ativos:portal:er_007 [30/03/2026 20:43] (atual) pramorim
Linha 1: Linha 1:
 ====== RF-007 Requisitos - Validação de Documentos ====== ====== RF-007 Requisitos - Validação de Documentos ======
-Permite que qualquer pessoa verifique a autenticidade de um documento processual do TCE-GO a partir de uma chave criptografada informada via URL ou digitada manualmente. Após validação via CAPTCHA, o sistema exibe o PDF do documento em nova aba. | Menu/Local de Acesso: `/validar-documento`+Permite que qualquer pessoa verifique a autenticidade de um documento processual do TCE-GO a partir de uma chave criptografada informada via URL ou digitada manualmente. Após validação via CAPTCHA, o sistema valida o documento e exibe o resultado; se válido, o cidadão pode abrir o PDF em nova aba. | Menu/Local de Acesso: `/validar-documento`
  
 ===== Atores ===== ===== Atores =====
Linha 10: Linha 10:
  
 ==== Tela 01 - Formulário de Validação ==== ==== Tela 01 - Formulário de Validação ====
 +
 +{{:pres:gerti:gestao_de_ativos:portal:pasted:20260330-203912.png}}
  
 ^ Elemento ^ Tipo ^ Obrigatório ^ Observação ^ ^ Elemento ^ Tipo ^ Obrigatório ^ Observação ^
Linha 15: Linha 17:
 | Confirmação CAPTCHA | Checkbox "Não sou um robô" | Sim | Padrão visual do projeto (simulado); deve ser resetado após abertura do PDF | | Confirmação CAPTCHA | Checkbox "Não sou um robô" | Sim | Padrão visual do projeto (simulado); deve ser resetado após abertura do PDF |
 | Botão "Consultar" | Ação | — | Submete o formulário; habilitado somente com CAPTCHA confirmado | | Botão "Consultar" | Ação | — | Submete o formulário; habilitado somente com CAPTCHA confirmado |
-| Botão "Limpar" | Ação | — | Limpa o campo remove mensagens de erro |+| Botão "Limpar" | Ação | — | Limpa o camporemove mensagens de erro e desmarca o CAPTCHA |
  
 ==== Tela 02 - Loading ==== ==== Tela 02 - Loading ====
Linha 23: Linha 25:
 | Texto informativo | Rótulo estático | "Validando documento..." | | Texto informativo | Rótulo estático | "Validando documento..." |
  
-==== Tela 03 - Erro Geral ====+==== Tela 03 - Sucesso ==== 
 + 
 +{{:pres:gerti:gestao_de_ativos:portal:pasted:20260330-203702.png}} 
 + 
 +^ Elemento ^ Tipo ^ Observação ^ 
 +| Faixa verde | Cabeçalho do card | Exibe ícone ShieldCheck + "Documento autêntico e válido"
 +| Metadados da consulta | Painel informativo | Exibe: chave consultada, data/hora da consulta e validade do link (10 minutos) | 
 +| Botão "Abrir Documento PDF" | Ação | Abre o PDF em nova aba via `window.open`; ao clicar, reseta o CAPTCHA | 
 +| Botão "Nova Consulta" | Ação | Retorna ao estado `form` com campos limpos | 
 + 
 +==== Tela 04 - Acesso Restrito (Sigilo) ==== 
 + 
 +{{:pres:gerti:gestao_de_ativos:portal:pasted:20260330-204032.png}} 
 +^ Elemento ^ Tipo ^ Observação ^ 
 +| Faixa amber | Cabeçalho do card | Exibe ícone Lock + "Acesso restrito — Processo em sigilo"
 +| Mensagem de sigilo | Texto | Mensagem retornada pela API (HTTP 403) | 
 +| Painel informativo | Bloco amber | Explica o sigilo processual e orienta o cidadão a contatar o TCE-GO | 
 +| Botão "Nova Consulta" | Ação | Retorna ao estado `form` com campos limpos | 
 + 
 +==== Tela 05 - Erro Geral ==== 
 + 
 +{{:pres:gerti:gestao_de_ativos:portal:pasted:20260330-204341.png}}
  
 ^ Elemento ^ Tipo ^ Observação ^ ^ Elemento ^ Tipo ^ Observação ^
-Ícone de alerta Ícone (AlertTriangle) | Indicador visual de falha inesperada +Faixa vermelha | Cabeçalho do card Exibe ícone AlertTriangle + "Não foi possível processar a solicitação" 
-| Mensagem de erro | Texto | Mensagem retornada pela API |+| Mensagem de erro | Texto | Mensagem retornada pela API ou mensagem padrão de falha de conexão | 
 +| Painel de causas | Lista | Possíveis causas: falha de comunicação, serviço indisponível, tempo excedido |
 | Botão "Nova Consulta" | Ação | Retorna ao estado `form` com campos limpos | | Botão "Nova Consulta" | Ação | Retorna ao estado `form` com campos limpos |
  
Linha 65: Linha 89:
 | 06.3 | Demais tipos (andamento processual): integração com [[#rn11|serviço de andamento]] para verificar `FoiJulgado` ou `UltimaSituacaoId = 11` | RN11 | — | | 06.3 | Demais tipos (andamento processual): integração com [[#rn11|serviço de andamento]] para verificar `FoiJulgado` ou `UltimaSituacaoId = 11` | RN11 | — |
 | 06.4 | `tipoDocumento = K1`: caso andamento não encontrado, verifica andamento pai via `PRO_ANEXOS` | RN12 | — | | 06.4 | `tipoDocumento = K1`: caso andamento não encontrado, verifica andamento pai via `PRO_ANEXOS` | RN12 | — |
-| 07 | Processo em sigilo: o sistema interrompe fluxo e retorna erro | RN08 | Tela 03 +| 07 | Processo em sigilo: a API retorna HTTP 403; o sistema altera estado para `erro-sigilo` | RN08 | Tela 04 
-| 08 | Chave inválida ou documento inexistente: o sistema exibe mensagem inline: "O documento não é válido ou não existe." | RN03 | Tela 01 | +| 08 | Chave inválida ou documento inexistente: o sistema exibe mensagem inline: "O documento não é válido ou não existe." e retorna ao estado `form` | RN03 | Tela 01 | 
-| 09 | Documento não julgado: o sistema exibe mensagem inline: "Este documento só poderá ser visualizado após o julgamento." | RN04 | Tela 01 | +| 09 | Documento não julgado: o sistema exibe mensagem inline: "Este documento só poderá ser visualizado após o julgamento." e retorna ao estado `form` | RN04 | Tela 01 | 
-| 10 | Erro inesperado de API: o sistema altera o estado para `erro-geral` e exibe a mensagem retornada | | Tela 03 +| 10 | Erro de conexão (catch de rede): o sistema altera o estado para `erro-geral` com a mensagem "Não foi possível conectar ao servidor. Tente novamente." | | Tela 05 | 
-11 | Validação bem-sucedida: a API retorna `{ success: true, keyValid: <chave_temporaria> }` | RN05 | — | +| 11 | Erro inesperado de API: o sistema altera o estado para `erro-geral` e exibe a mensagem retornada | | Tela 05 
-12 | O sistema executa [[#fluxo_04_abertura_do_pdf|Fluxo 04]] | — |+12 | Validação bem-sucedida: a API retorna `{ success: true, keyValid: <chave_temporaria> }` | RN05 | — | 
 +13 | O sistema altera estado para `sucesso`, registra data/hora da consulta e aguarda ação do cidadão | | Tela 03 |
  
 ==== Fluxo 04 - Abertura do PDF ==== ==== Fluxo 04 - Abertura do PDF ====
  
 ^ Passo ^ Ação ^ Regra ^ Tela ^ ^ Passo ^ Ação ^ Regra ^ Tela ^
-| 01 | O sistema chama `window.open('/api/validar-documento/pdf?keyValid=<keyValid>', '_blank')` | RN05, RN06 | — | +| 01 | O cidadão clica em "Abrir Documento PDF" na Tela 03 | | Tela 03 | 
-02 | O backend descriptografa `keyValid` extraindo `idProcesso`, `idDocumento`, `tipoDocumento`, `dataLink` | | — | +| 02 | O sistema chama `window.open('/api/validar-documento/pdf?keyValid=<keyValid>', '_blank')` | RN05, RN06 | — | 
-03 | O backend verifica se `dataLink + 10 minutos > agora` | RN05 | — | +03 | O sistema reseta o CAPTCHA na tela de origem | RN06 | Tela 03 | 
-03.1 | Token expirado: o sistema retorna erro; o cidadão deve repetir o CAPTCHA para nova consulta | RN05 | Tela 01 +| 04 | O backend descriptografa `keyValid` extraindo `idProcesso`, `idDocumento`, `tipoDocumento`, `dataLink` | | — | 
-04 | O backend baixa os bytes do PDF conforme o tipo do documento | | — | +05 | O backend verifica se `dataLink + 10 minutos > agora` | RN05 | — | 
-04.1 | `tipoDocumento = GED`: integração com `DOC_DOCUMENTO + GER_ANEXO` via `DownloadDocumentoNaoProcessual` | | — | +05.1 | Token expirado: o sistema retorna erro; o cidadão deve iniciar nova consulta | RN05 | Tela 03 
-04.2 | `tipoDocumento = K1`: leitura do arquivo físico via `PRO_ANEXOS + GER_ANEXO` (fileserver) | | — | +06 | O backend baixa os bytes do PDF conforme o tipo do documento | | — | 
-04.3 | Demais tipos processuais: integração com `VWEB_BUSCADOCUMENTOS.TEXT_DOCASSINADO_B` via `DownloadDocumento` | | — | +06.1 | `tipoDocumento = GED`: integração com `DOC_DOCUMENTO + GER_ANEXO` via `DownloadDocumentoNaoProcessual` | | — | 
-05 | O backend retorna stream `application/pdf` | | — +06.2 | `tipoDocumento = K1`: leitura do arquivo físico via `PRO_ANEXOS + GER_ANEXO` (fileserver) | | — | 
-| 06 | O sistema reseta o CAPTCHA na tela de origem | RN06 | Tela 01 |+06.3 | Demais tipos processuais: integração com `VWEB_BUSCADOCUMENTOS.TEXT_DOCASSINADO_B` via `DownloadDocumento` | | — | 
 +07 | O backend retorna stream `application/pdf` | | — |
  
 ===== RN – Regras de Negócio ===== ===== RN – Regras de Negócio =====
Linha 94: Linha 120:
 | RN04 | Quando o documento existir mas não estiver liberado para visualização (não julgado), o sistema exibe a mensagem: "Este documento só poderá ser visualizado após o julgamento." | | RN04 | Quando o documento existir mas não estiver liberado para visualização (não julgado), o sistema exibe a mensagem: "Este documento só poderá ser visualizado após o julgamento." |
 | RN05 | O token `keyValid` possui validade de 10 minutos a partir da emissão. Após esse prazo, a requisição de PDF é bloqueada. O `keyValid` não deve ser armazenado em localStorage ou cookie. | | RN05 | O token `keyValid` possui validade de 10 minutos a partir da emissão. Após esse prazo, a requisição de PDF é bloqueada. O `keyValid` não deve ser armazenado em localStorage ou cookie. |
-| RN06 | Após a abertura do PDF em nova aba, o CAPTCHA deve ser resetado na tela de origem, exigindo nova confirmação para consulta subsequente. |+| RN06 | Após o cidadão clicar em "Abrir Documento PDF", o CAPTCHA deve ser resetado na tela de origem, exigindo nova confirmação para consulta subsequente. |
 | RN07 | O acesso à rota `/validar-documento` sem o parâmetro `?key` exibe o formulário com o campo vazio. Não há redirecionamento externo. | | RN07 | O acesso à rota `/validar-documento` sem o parâmetro `?key` exibe o formulário com o campo vazio. Não há redirecionamento externo. |
-| RN08 | Quando o processo estiver marcado como em sigilo (`INDR_BLOQUEIODOC_A = 'T'`), o sistema bloqueia validação e retorna erro. |+| RN08 | Quando o processo estiver marcado como em sigilo (`INDR_BLOQUEIODOC_A = 'T'`), a API retorna HTTP 403 e o sistema exibe Tela 04 (Acesso Restrito), distinta da Tela 05 (Erro Geral). |
 | RN09 | Para documentos do tipo `A`, `R` ou `H` (Acórdão, Resolução, Histórico), a liberação ocorre somente se existirem registros na consulta de decisões julgadas (`VWEB_BUSCADECISOES_DOE + VWEB_PROCJULGAMENTO WHERE JULGADO = 'JULGADO'`). Lista vazia bloqueia o documento. | | RN09 | Para documentos do tipo `A`, `R` ou `H` (Acórdão, Resolução, Histórico), a liberação ocorre somente se existirem registros na consulta de decisões julgadas (`VWEB_BUSCADECISOES_DOE + VWEB_PROCJULGAMENTO WHERE JULGADO = 'JULGADO'`). Lista vazia bloqueia o documento. |
 | RN10 | Para documentos do tipo `GED` (não-processual), a liberação ocorre somente se o documento existir e estiver ativo (`INDR_CANCELADO_N = 0` e `INDR_TIPOPROCESSUAL_N = 0`). | | RN10 | Para documentos do tipo `GED` (não-processual), a liberação ocorre somente se o documento existir e estiver ativo (`INDR_CANCELADO_N = 0` e `INDR_TIPOPROCESSUAL_N = 0`). |
  • pres/gerti/gestao_de_ativos/portal/er_007.1774901992.txt.gz
  • Última modificação: 30/03/2026 20:19
  • por pramorim