From 53890ed8c4409153a3066344b1e84d491cbe65ff Mon Sep 17 00:00:00 2001 From: Rafael Viva <02077014075> Date: Wed, 31 Jan 2018 12:41:08 -0200 Subject: [PATCH] ajuste --- controlador_ws.php | 15 ++++++++++++++- dto/MdWsSeiDocumentoDTO.php | 2 ++ externoAlterar.php | 41 +++++++++++++++++++++++++++++++++++++++++ rn/MdWsSeiDocumentoRN.php | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------ rn/MdWsSeiProcedimentoRN.php | 6 +++--- teste_requisicao.php | 3 ++- 6 files changed, 150 insertions(+), 17 deletions(-) create mode 100644 externoAlterar.php diff --git a/controlador_ws.php b/controlador_ws.php index 9ecbaa9..d8c9ec8 100644 --- a/controlador_ws.php +++ b/controlador_ws.php @@ -296,8 +296,17 @@ $app->group('/api/v1',function(){ $dados["grauSigilo"] = $request->getParam('grauSigilo'); $dados["observacao"] = $request->getParam('observacao'); - + $dados["nomeArquivo"] = $request->getParam('nomeArquivo'); + $dados["tipoConferencia"] = $request->getParam('tipoConferencia'); + if (array_key_exists("conteudoDocumento",$request->getParams())){ + $dados["conteudoDocumento"] = false; + if($request->getParam('conteudoDocumento')) $dados["conteudoDocumento"] = $request->getParam('conteudoDocumento'); + }else{ + $dados["conteudoDocumento"] = null; + } + + $rn = new MdWsSeiDocumentoRN(); return $response->withJSON( $rn->alterarDocumentoExterno($dados) @@ -407,6 +416,7 @@ $app->group('/api/v1',function(){ $rn = new MdWsSeiDocumentoRN(); $dto = new MdWsSeiDocumentoDTO(); $dto->setNumIdTipoDocumento($request->getParam('id')); + $dto->setNumIdTipoProcedimento($request->getParam('idTipoProcedimento')); return $response->withJSON($rn->pesquisarTemplateDocumento($dto)); }); @@ -464,6 +474,9 @@ $app->group('/api/v1',function(){ $dto->setArrRemetentes(json_decode($request->getParam('remetentes'), TRUE)); $dto->setStrConteudoDocumento($request->getParam('conteudoDocumento')); $dto->setStrObservacao($request->getParam('observacao')); + $dto->setNumTipoConferencia($request->getParam('tipoConferencia')); + + $dto->setStrObservacao($request->getParam('observacao')); $rn = new MdWsSeiDocumentoRN(); diff --git a/dto/MdWsSeiDocumentoDTO.php b/dto/MdWsSeiDocumentoDTO.php index 50582fc..3a4ea6c 100644 --- a/dto/MdWsSeiDocumentoDTO.php +++ b/dto/MdWsSeiDocumentoDTO.php @@ -21,6 +21,7 @@ class MdWsSeiDocumentoDTO extends InfraDTO{ $this->adicionarAtributo(InfraDTO::$PREFIXO_DTA, 'DataGeracaoDocumento'); $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'Numero'); $this->adicionarAtributo(InfraDTO::$PREFIXO_NUM, 'IdTipoDocumento'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_NUM, 'IdTipoProcedimento'); $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'Descricao'); $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'NomeArquivo'); $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'NivelAcesso'); @@ -32,6 +33,7 @@ class MdWsSeiDocumentoDTO extends InfraDTO{ $this->adicionarAtributo(InfraDTO::$PREFIXO_ARR, 'Remetentes'); $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'ConteudoDocumento'); $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'Observacao'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_NUM, 'TipoConferencia'); $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'NomeTipoDocumento'); $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'Favoritos'); diff --git a/externoAlterar.php b/externoAlterar.php new file mode 100644 index 0000000..6504b6f --- /dev/null +++ b/externoAlterar.php @@ -0,0 +1,41 @@ + '241', + 'data' => '31/01/2017', + 'idTipoDocumento' => '106', + 'numero' => '12321313', + 'nomeArquivo' => 'teste.pdf', + 'nivelAcesso' => '1', + 'hipoteseLegal' => '1', + 'grauSigilo' => '', + 'assuntos' => '[{"id": 79}]', + 'interessados' => '[{"id": 100000012 },{"id":100000044}]', + 'destinatarios' => '[{"id":100000044}]', + 'remetentes' => '[{"id":100000044}]', + 'conteudoDocumento' => $file, +// 'conteudoDocumento' => "", + 'observacao' => 'paçoca', + 'tipoConferencia' => '3', +); + +$headers = array(); + +curl_setopt($ch, CURLOPT_POSTFIELDS, $post); +curl_setopt($ch, CURLOPT_HTTPHEADER, array('token: YTRhZDBmOTEyYjUxY2MzYTgzNjc3NDMwNWNjM2JiMzFmY2U4ZTkxYmFUVnhUV2sxYnoxOGZHazFjVTFwTlc4OWZId3dmSHc9')); + +$data = curl_exec($ch); + +//Fecha a conexão para economizar recursos do servidor +curl_close($ch); + +var_dump($data); +die(); + +?> \ No newline at end of file diff --git a/rn/MdWsSeiDocumentoRN.php b/rn/MdWsSeiDocumentoRN.php index a9b7be3..d662dec 100644 --- a/rn/MdWsSeiDocumentoRN.php +++ b/rn/MdWsSeiDocumentoRN.php @@ -184,9 +184,8 @@ class MdWsSeiDocumentoRN extends DocumentoRN { */ protected function pesquisarTemplateDocumentoConectado(MdWsSeiDocumentoDTO $dto){ try{ -// $id_tipo_documento = 46; - $id_tipo_documento = $dto->getNumIdTipoDocumento(); - + $id_tipo_documento = $dto->getNumIdTipoDocumento(); + $idTipoProcedimento = $dto->getNumIdTipoProcedimento(); //Consulta os assuntos sugeridos para um tipo de documento $relSerieAssuntoDTO = new RelSerieAssuntoDTO(); $relSerieAssuntoDTO->setNumIdSerie($id_tipo_documento); // FILTRO PELO TIPO DE DOCUMENTO @@ -201,8 +200,8 @@ class MdWsSeiDocumentoRN extends DocumentoRN { if($arrRelSerieAssuntoDTO){ foreach ($arrRelSerieAssuntoDTO as $obj) { $assuntos[] = array( - "id" => $obj->getNumIdAssuntoProxy(), - "codigo" => $obj->getStrCodigoEstruturadoAssunto(), + "id" => $obj->getNumIdAssuntoProxy(), + "codigo" => $obj->getStrCodigoEstruturadoAssunto(), "descricao" => $obj->getStrDescricaoAssunto() ); } @@ -232,6 +231,42 @@ class MdWsSeiDocumentoRN extends DocumentoRN { "permiteDestinatarios" => $permiteDestinatarios ); + + //CONSULTA QUE LISTA TODOS OS NÍVES DE ACESSOS PERMITIDOS PARA OS TIPO DE PROCESSO + $nivelAcessoPermitidoDTO = new NivelAcessoPermitidoDTO(); + $nivelAcessoPermitidoDTO->setNumIdTipoProcedimento($idTipoProcedimento); // FILTRO PELO TIPO DE PROCESSO + $nivelAcessoPermitidoDTO->retStrStaNivelAcesso(); // ID DO NÍVEL DE ACESSO - ProtocoloRN::$NA_PUBLICO, ProtocoloRN::$NA_RESTRITO ou ProtocoloRN::$NA_SIGILOSO + + // A CONSULTA RETORNARÁ OS NÍVEL DE ACESSO PERMITIDOS PARA O TIPO DE PROCESSO ESPECIFICADO NO DTO. AQUELES QUE NÃO FOREM RETORNADOS NESSA + $nivelAcessoPermitidoRN = new NivelAcessoPermitidoRN(); + $arrNivelAcessoPermitido = $nivelAcessoPermitidoRN->listar($nivelAcessoPermitidoDTO); + if($arrNivelAcessoPermitido){ + foreach ($arrNivelAcessoPermitido as $nivel) { + if($nivel->getStrStaNivelAcesso() == ProtocoloRN::$NA_PUBLICO) $publico = true; + if($nivel->getStrStaNivelAcesso() == ProtocoloRN::$NA_RESTRITO) $restrito = true; + if($nivel->getStrStaNivelAcesso() == ProtocoloRN::$NA_SIGILOSO) $sigiloso = true; + } + } + $arrayRetorno["nivelAcessoPermitido"] = array( + "publico" =>$publico ? $publico : false, + "restrito" =>$restrito ? $restrito : false, + "sigiloso" =>$sigiloso ? $sigiloso : false, + ); + + + //CONSULTA NO PARÂMETRO QUE INFORMA SE A HIPÓTESE LEGAL É OBRIGATÓRIO PARA UM TIPO DE PROCESSO + $objInfraParametro = new InfraParametro(BancoSEI::getInstance()); + $obrigatoriedadeHipoteseLegal = $objInfraParametro->getValor('SEI_HABILITAR_HIPOTESE_LEGAL'); + + //CONSULTA NO PARÂMETRO QUE INFORMA SE UM GRAU DE SIGILO É OBRIGATÓRIO PARA UM TIPO DE PROCESSO + $objInfraParametro = new InfraParametro(BancoSEI::getInstance()); + $obrigatoriedadeGrauSigilo = $objInfraParametro->getValor('SEI_HABILITAR_GRAU_SIGILO'); + + $arrayRetorno["obrigatoriedadeHipoteseLegal"] = $obrigatoriedadeHipoteseLegal; + $arrayRetorno["obrigatoriedadeGrauSigilo"] = $obrigatoriedadeGrauSigilo; + + + return MdWsSeiRest::formataRetornoSucessoREST(null, $arrayRetorno); }catch (Exception $e){ return MdWsSeiRest::formataRetornoErroREST($e); @@ -262,6 +297,9 @@ class MdWsSeiDocumentoRN extends DocumentoRN { $hipoteseLegal = $dados['hipoteseLegal']; $grauSigilo = $dados['grauSigilo']; $observacao = $dados['observacao']; + $conteudoDocumento = $dados['conteudoDocumento']; + $nomeArquivo = $dados['nomeArquivo']; + $tipoConferencia = $dados['tipoConferencia']; //Altera os dados do documento @@ -334,23 +372,60 @@ class MdWsSeiDocumentoRN extends DocumentoRN { } } -// var_dump($arrRelProtocoloAssuntoDTO); -// die(); - $protocoloDTO->setArrObjRelProtocoloAssuntoDTO($arrRelProtocoloAssuntoDTO); //Edita a observação $observacaoDTO = new ObservacaoDTO(); $observacaoDTO->setStrDescricao($observacao); $protocoloDTO->setArrObjObservacaoDTO(array($observacaoDTO)); - + //Edita o tipo de documento e número $documentoDTO = new DocumentoDTO(); $documentoDTO->setDblIdDocumento($documento); $documentoDTO->setNumIdSerie($idTipoDocumento); $documentoDTO->setStrNumero($numero); $documentoDTO->setObjProtocoloDTO($protocoloDTO); - + $documentoDTO->setNumIdTipoConferencia($tipoConferencia); + + if($conteudoDocumento === false){ + $objAnexoDTO = new AnexoDTO(); + $objAnexoDTO->retNumIdAnexo(); + $objAnexoDTO->setDblIdProtocolo($documento); + + $objAnexoRN = new AnexoRN(); + $arrObjAnexoDTO = $objAnexoRN->listarRN0218($objAnexoDTO); + $objAnexoRN->excluirRN0226($arrObjAnexoDTO); + } + if($conteudoDocumento){ + $objAnexoDTO = new AnexoDTO(); + $objAnexoDTO->setStrNome($nomeArquivo); + $protocoloDTO->setArrObjAnexoDTO(array($objAnexoDTO)); + + $documentoDTO->setStrConteudo(null); + $documentoDTO->setStrStaDocumento(DocumentoRN::$TD_EXTERNO); + + $arrObjAnexoDTO = $documentoDTO->getObjProtocoloDTO()->getArrObjAnexoDTO(); + + //Adiciona o anexo + if (count($arrObjAnexoDTO) == 1) { + + if (!$arrObjAnexoDTO[0]->isSetNumIdAnexoOrigem()) { + $objAnexoRN = new AnexoRN(); + $strNomeArquivoUpload = $objAnexoRN->gerarNomeArquivoTemporario(); + + $fp = fopen(DIR_SEI_TEMP . '/' . $strNomeArquivoUpload, 'w'); + fwrite($fp, $conteudoDocumento); + fclose($fp); + + $arrObjAnexoDTO[0]->setNumIdAnexo($strNomeArquivoUpload); + $arrObjAnexoDTO[0]->setDthInclusao(InfraData::getStrDataHoraAtual()); + $arrObjAnexoDTO[0]->setNumTamanho(filesize(DIR_SEI_TEMP . '/' . $strNomeArquivoUpload)); + $arrObjAnexoDTO[0]->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); + } + } + } + + $documentoRN = new DocumentoRN(); $documentoRN->alterarRN0004($documentoDTO); @@ -603,6 +678,7 @@ class MdWsSeiDocumentoRN extends DocumentoRN { $arrRemetentes = $dto->getArrRemetentes(); $conteudoDocumento = $dto->getStrConteudoDocumento(); $observacao = $dto->getStrObservacao(); + $tipoConferencia = $dto->getNumTipoConferencia(); //Parâmetros de entrada @@ -621,7 +697,7 @@ class MdWsSeiDocumentoRN extends DocumentoRN { // $arrRemetentes = array(array('id' => 100000008)); // $conteudoDocumento = file_get_contents('/opt/sei/web/modulos/mod-wssei/codigo-fonte/mod-wssei/rn/c.pdf'); // DEVE CONTER O BINÁRIO DO ARQUIVO. ESSE FILE_GET_CONTENTS É UM EXEMPLO APENAS // $observacao = 'ewefwe'; - + //Popula os dados do documento para salvamento $objDocumentoDTO = new DocumentoDTO(); $objDocumentoDTO->setDblIdDocumento(null); @@ -630,7 +706,7 @@ class MdWsSeiDocumentoRN extends DocumentoRN { $objDocumentoDTO->setDblIdDocumentoEdoc(null); $objDocumentoDTO->setDblIdDocumentoEdocBase(null); $objDocumentoDTO->setNumIdUnidadeResponsavel(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); - $objDocumentoDTO->setNumIdTipoConferencia(null); + $objDocumentoDTO->setNumIdTipoConferencia($tipoConferencia); $objDocumentoDTO->setStrNumero($numero); //Popula os dados do protocolo do documento diff --git a/rn/MdWsSeiProcedimentoRN.php b/rn/MdWsSeiProcedimentoRN.php index 196813e..4bbdba4 100644 --- a/rn/MdWsSeiProcedimentoRN.php +++ b/rn/MdWsSeiProcedimentoRN.php @@ -205,9 +205,9 @@ class MdWsSeiProcedimentoRN extends InfraRN $tipoProcedimentoRN = new TipoProcedimentoRN(); $tipoProcedimentoDTO = $tipoProcedimentoRN->consultarRN0267($tipoProcedimentoDTO); - $arrayRetorno["nivelAcessoSugerido"] = $tipoProcedimentoDTO ? $tipoProcedimentoDTO->getStrStaNivelAcessoSugestao() : false; - $arrayRetorno["hipoteseLegalSugerida"] = $tipoProcedimentoDTO ? $tipoProcedimentoDTO->getNumIdHipoteseLegalSugestao() : false; - $arrayRetorno["grauSigiloSugerido"] = $tipoProcedimentoDTO ? $tipoProcedimentoDTO->getStrStaGrauSigiloSugestao() : false; +// $arrayRetorno["nivelAcessoSugerido"] = $tipoProcedimentoDTO ? $tipoProcedimentoDTO->getStrStaNivelAcessoSugestao() : false; +// $arrayRetorno["hipoteseLegalSugerida"] = $tipoProcedimentoDTO ? $tipoProcedimentoDTO->getNumIdHipoteseLegalSugestao() : false; +// $arrayRetorno["grauSigiloSugerido"] = $tipoProcedimentoDTO ? $tipoProcedimentoDTO->getStrStaGrauSigiloSugestao() : false; //CONSULTA NO PARÂMETRO QUE INFORMA SE A HIPÓTESE LEGAL É OBRIGATÓRIO PARA UM TIPO DE PROCESSO diff --git a/teste_requisicao.php b/teste_requisicao.php index 1f9e185..f085328 100644 --- a/teste_requisicao.php +++ b/teste_requisicao.php @@ -22,12 +22,13 @@ $post = array( 'remetentes' => '[{"id":100000044}]', 'conteudoDocumento' => $file, 'observacao' => 'documento Externo', + 'tipoConferencia' => '2', ); $headers = array(); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); -curl_setopt($ch, CURLOPT_HTTPHEADER, array('token: MTdkYjg4NjI2Y2UxMGQ2MzMyYWM3MzI1ZDBiY2U2OGU5MWQzYzViNmFUVnhUV2sxYnoxOGZHazFjVTFwTlc4OWZId3dmSHc9')); +curl_setopt($ch, CURLOPT_HTTPHEADER, array('token: YTRhZDBmOTEyYjUxY2MzYTgzNjc3NDMwNWNjM2JiMzFmY2U4ZTkxYmFUVnhUV2sxYnoxOGZHazFjVTFwTlc4OWZId3dmSHc9')); $data = curl_exec($ch); -- libgit2 0.21.2