Skip to content

Commit

Permalink
chore: adicionar rota correta nos arquivos de exemplo da configuraçãoPEN
Browse files Browse the repository at this point in the history
  • Loading branch information
Glaydson Rodrigues committed Sep 27, 2024
1 parent 0d8fc6e commit 5546d38
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 98 deletions.
78 changes: 5 additions & 73 deletions src/rn/ExpedirProcedimentoRN.php
Original file line number Diff line number Diff line change
Expand Up @@ -589,7 +589,7 @@ public function construirProcessoREST($dblIdProcedimento, $arrIdProcessoApensado

$objProcesso = $this->atribuirDadosInteressadosREST($objProcesso, $dblIdProcedimento);

// $this->adicionarProcessosApensadosREST($objProcesso, $arrIdProcessoApensado);
$this->adicionarProcessosApensadosREST($objProcesso, $arrIdProcessoApensado);

$objProcesso = $this->atribuirDadosHistoricoREST($objProcesso, $dblIdProcedimento);

Expand Down Expand Up @@ -870,8 +870,6 @@ private function atribuirProdutorProcessoREST($objProcesso, $dblIdProcedimento,
throw new InfraException('Parâmetro $objProcesso não informado.');
}

// $objProcesso = [];

$objUsuarioProdutor = $this->consultarUsuario($dblIdProcedimento);
if (isset($objUsuarioProdutor)) {
// Dados do produtor do processo
Expand Down Expand Up @@ -908,7 +906,7 @@ private function atribuirDadosInteressadosREST($objProcesso, $dblIdProcedimento)
$arrParticipantesDTO = $this->listarInteressados($dblIdProcedimento);

if (isset($arrParticipantesDTO) && count($arrParticipantesDTO) > 0) {
$objProcesso['interessados'] = [];
$objProcesso['interessados'] = array();

foreach ($arrParticipantesDTO as $participanteDTO) {
$interessado = [
Expand Down Expand Up @@ -979,13 +977,13 @@ private function atribuirDocumentosREST($objProcesso, $dblIdProcedimento, $parOb
$documento['retirado'] = true;
}
if($documentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_RESTRITO){
$documento['hipoteseLegal'] = []; // Inicializando a chave 'hipoteseLegal' como um array
$documento['hipoteseLegal'] = array(); // Inicializando a chave 'hipoteseLegal' como um array
$documento['hipoteseLegal']['identificacao'] = $objPenRelHipoteseLegalRN->getIdHipoteseLegalPEN($documentoDTO->getNumIdHipoteseLegalProtocolo());
//TODO: Adicionar nome da hipótese legal atribuida ao documento
}
$documento['dataHoraDeProducao'] = $this->objProcessoEletronicoRN->converterDataWebService($documentoDTO->getDtaGeracaoProtocolo());
$documento['dataHoraDeRegistro'] = $this->objProcessoEletronicoRN->converterDataWebService($documentoDTO->getDtaGeracaoProtocolo());
$documento['produtor'] = []; // Inicializando a chave 'produtor' como um array
$documento['produtor'] = array(); // Inicializando a chave 'produtor' como um array
$usuarioDTO = $this->consultarUsuario($documentoDTO->getNumIdUsuarioGeradorProtocolo());
if(isset($usuarioDTO)) {
$documento['produtor']['nome'] = utf8_encode($this->objProcessoEletronicoRN->reduzirCampoTexto($usuarioDTO->getStrNome(), 150));
Expand Down Expand Up @@ -1293,62 +1291,6 @@ private function atribuirAssinaturaEletronica($objComponenteDigital, AssinaturaD
}
}

private function atribuirComponentesDigitais($objDocumento, DocumentoDTO $objDocumentoDTO, $dblIdProcedimento = null)
{
if(!isset($objDocumento)){
throw new InfraException('Parâmetro $objDocumento não informado.');
}

if(!isset($objDocumentoDTO)){
throw new InfraException('Parâmetro $objDocumentoDTO não informado.');
}

$arrObjDocumentoDTOAssociacao = $this->listarDocumentosRelacionados($dblIdProcedimento, $objDocumentoDTO->getDblIdDocumento());
$strStaAssociacao = count($arrObjDocumentoDTOAssociacao) == 1 ? $arrObjDocumentoDTOAssociacao[0]['StaAssociacao'] : null;
$arrObjDadosArquivos = $this->listarDadosArquivos($objDocumentoDTO, $strStaAssociacao);

$objDocumento->componenteDigital = array();
foreach ($arrObjDadosArquivos as $numOrdemComponente => $objDadosArquivos) {

if(!isset($objDadosArquivos) || count($objDadosArquivos) == 0){
throw new InfraException('Erro durante obtenção de informações sobre o componente digital do documento {$objDocumentoDTO->getStrProtocoloDocumentoFormatado()}.');
}

$strAlgoritmoHash = self::ALGORITMO_HASH_DOCUMENTO;
$hashDoComponenteDigital = $objDadosArquivos['HASH_CONTEUDO'];
$strAlgoritmoHash = $objDadosArquivos['ALGORITMO_HASH_CONTEUDO'];

//TODO: Revisar tal implementação para atender a gerao de hash de arquivos grandes
$objComponenteDigital = new stdClass();
$objComponenteDigital->ordem = $numOrdemComponente;
$objComponenteDigital->nome = utf8_encode($objDadosArquivos["NOME"]);
$objComponenteDigital->hash = new SoapVar("<hash algoritmo='{$strAlgoritmoHash}'>{$hashDoComponenteDigital}</hash>", XSD_ANYXML);
$objComponenteDigital->tamanhoEmBytes = $objDadosArquivos['TAMANHO'];

//TODO: Validar os tipos de mimetype de acordo com o WSDL do SEI
//Caso no identifique o tipo correto, informar o valor [outro]
$objComponenteDigital->mimeType = $objDadosArquivos['MIME_TYPE'];
$objComponenteDigital->tipoDeConteudo = $this->obterTipoDeConteudo($objDadosArquivos['MIME_TYPE']);
$objComponenteDigital = $this->atribuirDadosAssinaturaDigital($objDocumentoDTO, $objComponenteDigital, $hashDoComponenteDigital);

if($objDadosArquivos['MIME_TYPE'] == 'outro'){
$objComponenteDigital->dadosComplementaresDoTipoDeArquivo = $objDadosArquivos['dadosComplementaresDoTipoDeArquivo'];
}

//TODO: Preencher dados complementares do tipo de arquivo
//$objComponenteDigital->dadosComplementaresDoTipoDeArquivo = '';

//TODO: Carregar informações da assinatura digital
//$this->atribuirAssinaturaEletronica($objComponenteDigital, $objDocumentoDTO);

$objComponenteDigital->idAnexo = $objDadosArquivos['ID_ANEXO'];

$objDocumento->componenteDigital[] = $objComponenteDigital;
}

return $objDocumento;
}

private function atribuirComponentesDigitaisREST($objDocumento, DocumentoDTO $objDocumentoDTO, $dblIdProcedimento = null)
{
if(!isset($objDocumento)){
Expand Down Expand Up @@ -2078,20 +2020,10 @@ private function atribuirNumeracaoDocumentoREST($objDocumento, DocumentoDTO $par
return $objDocumento;
}

private function adicionarProcessosApensados($objProcesso, $arrIdProcessoApensado)
{
if(isset($arrIdProcessoApensado) && is_array($arrIdProcessoApensado) && count($arrIdProcessoApensado) > 0) {
$objProcesso->processoApensado = array();
foreach($arrIdProcessoApensado as $idProcedimentoApensado) {
$objProcesso->processoApensado[] = $this->construirProcesso($idProcedimentoApensado);
}
}
}

private function adicionarProcessosApensadosREST($objProcesso, $arrIdProcessoApensado)
{
if (isset($arrIdProcessoApensado) && is_array($arrIdProcessoApensado) && count($arrIdProcessoApensado) > 0) {
$objProcesso['processoApensado'] = [];
$objProcesso['processoApensado'] = array();

foreach ($arrIdProcessoApensado as $idProcedimentoApensado) {
$objProcesso['processoApensado'][] = $this->construirProcesso($idProcedimentoApensado);
Expand Down
35 changes: 16 additions & 19 deletions src/rn/ProcessoEletronicoRN.php
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ public function __construct()
$this->strEnderecoWebService = $strEnderecoWebService;
$parsed_url = parse_url($strEnderecoWebService);
$base_url = $parsed_url['scheme'] . '://' . $parsed_url['host'] . '/';
$this->strComumXSD = $base_url . 'interoperabilidade/soap/v3/?xsd=comum.xsd';;
$this->strComumXSD = $base_url . 'interoperabilidade/soap/v3/?xsd=comum.xsd';
$this->strLocalCert = $strLocalizacaoCertificadoDigital;
$this->strLocalCertPassword = $strSenhaCertificadoDigital;
$this->numTentativasErro = $numTentativasErro;
Expand Down Expand Up @@ -176,8 +176,6 @@ private function getObjPenWs()
$mensagem = "Falha de comunicação com o Tramita GOV.BR: " . $detalhes;
throw new \Exception($mensagem);
}

// return $this->objPenWs;
}


Expand Down Expand Up @@ -685,7 +683,7 @@ private function tratarFalhaWebService(Exception $fault)
}


public function construirCabecalhoREST($strNumeroRegistro, $idRepositorioOrigem, $idUnidadeOrigem, $idRepositorioDestino,
public function construirCabecalho($strNumeroRegistro, $idRepositorioOrigem, $idUnidadeOrigem, $idRepositorioDestino,
$idUnidadeDestino, $urgente = false, $motivoUrgencia = 0, $enviarTodosDocumentos = false, $dblIdProcedimento = null)
{

Expand Down Expand Up @@ -891,7 +889,7 @@ public function enviarComponenteDigital($parametros)


$conteudoByte = fread($conteudo, filesize($conteudo));

$endpoint = "tickets-de-envio-de-componente/{$idTicketDeEnvio}/protocolos/componentes-a-enviar?hashDoComponenteDigital={$hashDoComponenteDigital}&protocolo={$protocolo}";

$objConfiguracaoModPEN = ConfiguracaoModPEN::getInstance();
Expand All @@ -902,23 +900,23 @@ public function enviarComponenteDigital($parametros)

$strClientGuzzle = new GuzzleHttp\Client([
'base_uri' => $strBaseUri,
'timeout' => 5.0,
'cert' => [$strLocalizacaoCertificadoDigital, $strSenhaCertificadoDigital],
]);

'timeout' => 5.0,
'cert' => [$strLocalizacaoCertificadoDigital, $strSenhaCertificadoDigital],
]);

$arrOptions = [
'multipart' => [
[
'name' => 'conteudo',
[
'name' => 'conteudo',
'contents' => $conteudoByte,
'filename' => 'conteudo'
],
],
];

],
];
$response = $strClientGuzzle->request('PUT', $endpoint, $arrOptions);



} catch (\Exception $e) {
Expand Down Expand Up @@ -1432,9 +1430,9 @@ public function receberComponenteDigital($parNumIdentificacaoTramite, $parStrHas
'protocolo' => $parStrProtocolo,
];

// if (!is_null($parObjParteComponente)) {
// $endpoint = "tramites/{$parNumIdentificacaoTramite}/protocolos/componentes-digitais/partes/{$parObjParteComponente}";
// }
if (!is_null($parObjParteComponente)) {
$endpoint = "tramites/{$parNumIdentificacaoTramite}/protocolos/componentes-digitais/partes/{$parObjParteComponente}";
}

$this->post($endpoint, $identificacaoDoComponenteDigital);

Expand Down Expand Up @@ -1700,7 +1698,6 @@ public function enviarReciboDeTramite($parNumIdTramite, $parDthRecebimento, $par
$envioDeReciboDeTramite = [
'dataDeRecebimento' => $parDthRecebimento,
'hashDaAssinatura' => $strHashDaAssinaturaBase64,
// 'hashDaAssinaturaAsBytes' => $strHashDaAssinaturaBase64
];

$this->post($endpoint, $envioDeReciboDeTramite);
Expand Down
6 changes: 3 additions & 3 deletions tests_sei4/unitario/assets/config/ConfiguracaoModPEN.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@ public function getArrConfiguracoes()
"PEN" => array(
// Endereço do Web Service principal de integração com o Barramento de Serviços do PEN
// Os endereços disponíveis são os seguintes (verifique se houve atualizações durante o procedimento de instalação):
// - Homologação: https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/
// - Produção: https://api.conectagov.processoeletronico.gov.br/interoperabilidade/soap/v3/
"WebService" => "https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/",
// - Homologação: https://homolog.api.processoeletronico.gov.br/interoperabilidade/rest/v3/
// - Produção: https://api.conectagov.processoeletronico.gov.br/interoperabilidade/rest/v3/
"WebService" => "https://homolog.api.processoeletronico.gov.br/interoperabilidade/rest/v3/",

// Endereço do Web Service de monitoramente de pendências de trâmite no Barramento de Serviços do PEN
// Configuração necessária para que o envio e recebimento de processos sejam feitas de forma dinâmica pelo sistema
Expand Down
2 changes: 1 addition & 1 deletion tests_sei41/funcional/assets/config/ConfiguracaoModPEN.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public function getArrConfiguracoes()
// Endereço do Web Service principal de integração com o Barramento de Serviços do PEN
// Os endereços disponíveis são os seguintes (verifique se houve atualizações durante o procedimento de instalação):
// - Homologação: https://homolog.api.processoeletronico.gov.br/interoperabilidade/rest/v3/
// - Produção: https://api.conectagov.processoeletronico.gov.br/interoperabilidade/soap/v3/
// - Produção: https://api.conectagov.processoeletronico.gov.br/interoperabilidade/rest/v3/
"WebService" => "https://homolog.api.processoeletronico.gov.br/interoperabilidade/rest/v3/",

// Endereço do Web Service de monitoramente de pendências de trâmite no Barramento de Serviços do PEN
Expand Down
17 changes: 15 additions & 2 deletions tests_super/funcional/assets/config/ConfiguracaoModPEN.php
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public function getArrConfiguracoes()
// Os endereços disponíveis são os seguintes (verifique se houve atualizações durante o procedimento de instalação):
// - Homologação: https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/
// - Produção: https://api.conectagov.processoeletronico.gov.br/interoperabilidade/soap/v3/
"WebService" => "https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/",
"WebService" => "https://homolog.api.processoeletronico.gov.br/interoperabilidade/rest/v3/",

// Endereço do Web Service de monitoramente de pendências de trâmite no Barramento de Serviços do PEN
// Configuração necessária para que o envio e recebimento de processos sejam feitas de forma dinâmica pelo sistema
Expand Down Expand Up @@ -80,7 +80,20 @@ public function getArrConfiguracoes()

// Configuração padrão do Envio Parcial
"EnviarApenasComponentesDigitaisPendentes" => false
// "EnviarApenasComponentesDigitaisPendentes" => array(
// "1" => array( // 1 = Poder Executivo Federal
// "123456", // Id de estrutura de unidade X do Poder Executivo Federal
// "234567", // Id de estrutura de unidade Y do Poder Executivo Federal
// "345678" // Id de estrutura de unidade Z do Poder Executivo Federal
// ),
// "21" => array( // 2 = Poder Legislativo Federal
// "123456", // Id de estrutura de unidade X do Poder Executivo Federal
// "234567", // Id de estrutura de unidade Y do Poder Executivo Federal
// "345678" // Id de estrutura de unidade Z do Poder Executivo Federal
// )
// )

)
);
}
}
}

0 comments on commit 5546d38

Please sign in to comment.