Commit 0f1e24cec1abfcd07d8d03964762d0ad6e3f80f3

Authored by eduardo.batista
1 parent d21e9296
Exists in master and in 1 other branch desenv

[Refact] Refactoring de performance critico.

Esta alteração pode acarretar em instabilidade no mecanismo de verificação de acesso a documento.
Showing 1 changed file with 15 additions and 60 deletions   Show diff stats
rn/MdWsSeiDocumentoRN.php
... ... @@ -46,6 +46,17 @@ class MdWsSeiDocumentoRN extends DocumentoRN {
46 46 $ret = $relProtocoloProtocoloRN->listarRN0187($relProtocoloProtocoloDTOConsulta);
47 47 $arrDocumentos = array();
48 48 if($ret){
  49 + $unidadeDTO = new UnidadeDTO();
  50 + $unidadeDTO->setBolExclusaoLogica(false);
  51 + $unidadeDTO->retStrSinProtocolo();
  52 + $unidadeDTO->retStrSinOuvidoria();
  53 + $unidadeDTO->retStrSinArquivamento();
  54 + $unidadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual());
  55 +
  56 + $unidadeRN = new UnidadeRN();
  57 + $unidadeDTO = $unidadeRN->consultarRN0125($unidadeDTO);
  58 + $bolFlagProtocolo = ($unidadeDTO->getStrSinProtocolo() == 'S');
  59 +
49 60 $documentoDTOConsulta = new DocumentoDTO();
50 61 $documentoDTOConsulta->retStrStaNivelAcessoLocalProtocolo();
51 62 $documentoDTOConsulta->retDblIdDocumento();
... ... @@ -114,7 +125,7 @@ class MdWsSeiDocumentoRN extends DocumentoRN {
114 125 $resultPublicacao = $publicacaoRN->listarRN1045($publicacaoDTOConsulta);
115 126 $documentoPublicado = $resultPublicacao ? 'S' : 'N';
116 127 $ciencia = $relProtocoloProtocoloDTO->getStrSinCiencia();
117   - $podeVisualizarDocumento = $this->podeVisualizarDocumento($documentoDTO);
  128 + $podeVisualizarDocumento = $this->podeVisualizarDocumento($documentoDTO, $bolFlagProtocolo);
118 129  
119 130 $result[] = array(
120 131 'id' => $documentoDTO->getDblIdDocumento(),
... ... @@ -409,72 +420,16 @@ class MdWsSeiDocumentoRN extends DocumentoRN {
409 420 /**
410 421 * Verifica se o documento pode ser visualizado
411 422 * @param DocumentoDTO $documentoDTO
  423 + * @param bool $bolFlagProtocolo
412 424 * @return bool
413 425 */
414   - protected function podeVisualizarDocumento(DocumentoDTO $documentoDTO)
  426 + protected function podeVisualizarDocumento(DocumentoDTO $documentoDTO, $bolFlagProtocolo = false)
415 427 {
416 428 $podeVisualizar = false;
417   - $strStaProtocoloProtocolo = $documentoDTO->getStrStaProtocoloProtocolo();
418   - $bolFlagProtocolo = false;
419   - $numCodigoAcesso = 0;
420   -
421   - $strNos = '';
422   - $strNosAcao = '';
423   - $strJsArrPastas = '';
424   - $numNo = 0;
425   - $numNoAcao = 0;
426   - $strOcultarAbrirFechar = '';
427   - $strNumPastasAbertas = '';
428   - $bolFlagAberto = false;
429   - $bolFlagAnexado = false;
430   - $bolFlagProtocolo = false;
431   - $bolFlagArquivo = false;
432   - $bolFlagTramitacao = false;
433   - $bolFlagSobrestado = false;
434   - $bolFlagBloqueado = false;
435   - $bolErro = false;
436   - $numCodigoAcesso = 0;
437   - $strNoProc = "";
438   -
439   - $objProcedimentoDTO = ProcedimentoINT::montarAcoesArvore(
440   - $documentoDTO->getDblIdProcedimento(),
441   - SessaoSEI::getInstance()->getNumIdUnidadeAtual(),
442   - $bolFlagAberto,
443   - $bolFlagAnexado,
444   - $bolFlagProtocolo,
445   - $bolFlagArquivo,
446   - $bolFlagTramitacao,
447   - $bolFlagSobrestado,
448   - $bolFlagBloqueado,
449   - $numCodigoAcesso,
450   - $numNo,
451   - $strNos,
452   - $numNoAcao,
453   - $strNosAcao,
454   - $strNoProc,
455   - $bolErro);
456   -
457   - $arrRelProtocoloProtocoloDTO = $objProcedimentoDTO->getArrObjRelProtocoloProtocoloDTO();
458   - $arrIdRelProtocoloProtocolo = InfraArray::converterArrInfraDTO($arrRelProtocoloProtocoloDTO ,'IdRelProtocoloProtocolo');
459   -
460   - $procedimentoDTOConsulta = new ProcedimentoDTO();
461   - $procedimentoDTOConsulta->setDblIdProcedimento($documentoDTO->getDblIdProcedimento());
462   - $procedimentoDTOConsulta->setArrObjRelProtocoloProtocoloDTO(InfraArray::gerarArrInfraDTO('RelProtocoloProtocoloDTO','IdRelProtocoloProtocolo',$arrIdRelProtocoloProtocolo));
463   - $procedimentoDTOConsulta->setStrSinDocTodos('S');
464   - $procedimentoDTOConsulta->setStrSinDocAnexos('S');
465   - $procedimentoDTOConsulta->setStrSinConteudoEmail('S');
466   - $procedimentoDTOConsulta->setStrSinProcAnexados('S');
467   - $procedimentoDTOConsulta->setStrSinDocCircular('S');
468   - $procedimentoDTOConsulta->setStrSinArquivamento('S');
469   - $procedimentoRN = new ProcedimentoRN();
470   - $arrProcedimentoDTO = $procedimentoRN->listarCompleto($procedimentoDTOConsulta);
471   - $procedimentoDTO = $arrProcedimentoDTO[0];
472   - $arrRelProtocoloProtocoloDTO = $procedimentoDTO->getArrObjRelProtocoloProtocoloDTO();
473   -
474 429 $pesquisaProtocoloDTO = new PesquisaProtocoloDTO();
475 430 $pesquisaProtocoloDTO->setStrStaTipo(ProtocoloRN::$TPP_TODOS);
476 431 $pesquisaProtocoloDTO->setStrStaAcesso(ProtocoloRN::$TAP_TODOS);
477   - $pesquisaProtocoloDTO->setDblIdProtocolo(InfraArray::converterArrInfraDTO($arrRelProtocoloProtocoloDTO,'IdProtocolo2'));
  432 + $pesquisaProtocoloDTO->setDblIdProtocolo($documentoDTO->getDblIdDocumento());
478 433 $protocoloRN = new ProtocoloRN();
479 434 $arrProtocoloDTO = InfraArray::indexarArrInfraDTO($protocoloRN->pesquisarRN0967($pesquisaProtocoloDTO), 'IdProtocolo');
480 435 $protocoloDTODocumento = $arrProtocoloDTO[$documentoDTO->getDblIdDocumento()];
... ...