Commit f498eb9068570c1460761e705d077c28153d520a

Authored by Guilherme Andrade Del Cantoni
1 parent 2fc5620f

Correção de problema com processos travados no status 3 - Metadados Recebidos

rn/PendenciasTramiteRN.php
@@ -7,6 +7,7 @@ error_reporting(E_ALL); @@ -7,6 +7,7 @@ error_reporting(E_ALL);
7 class PendenciasTramiteRN extends InfraRN { 7 class PendenciasTramiteRN extends InfraRN {
8 8
9 const TIMEOUT_SERVICO_PENDENCIAS = 300; 9 const TIMEOUT_SERVICO_PENDENCIAS = 300;
  10 + const RECUPERAR_TODAS_PENDENCIAS = true;
10 11
11 private static $instance = null; 12 private static $instance = null;
12 private $strEnderecoServicoPendencias = null; 13 private $strEnderecoServicoPendencias = null;
@@ -121,7 +122,7 @@ class PendenciasTramiteRN extends InfraRN { @@ -121,7 +122,7 @@ class PendenciasTramiteRN extends InfraRN {
121 //Obter todos os trâmites pendentes antes de iniciar o monitoramento 122 //Obter todos os trâmites pendentes antes de iniciar o monitoramento
122 $arrPendenciasRetornadas = array(); 123 $arrPendenciasRetornadas = array();
123 $objProcessoEletronicoRN = new ProcessoEletronicoRN(); 124 $objProcessoEletronicoRN = new ProcessoEletronicoRN();
124 - $arrObjPendenciasDTO = $objProcessoEletronicoRN->listarPendencias(false) or array(); 125 + $arrObjPendenciasDTO = $objProcessoEletronicoRN->listarPendencias(self::RECUPERAR_TODAS_PENDENCIAS) or array();
125 126
126 $this->gravarLogDebug("Recuperado todas pendências de trâmite do PEN: " . count($arrObjPendenciasDTO), 2); 127 $this->gravarLogDebug("Recuperado todas pendências de trâmite do PEN: " . count($arrObjPendenciasDTO), 2);
127 128
@@ -235,7 +236,8 @@ class PendenciasTramiteRN extends InfraRN { @@ -235,7 +236,8 @@ class PendenciasTramiteRN extends InfraRN {
235 break; 236 break;
236 237
237 default: 238 default:
238 - throw new Exception('Situação do trâmite não pode ser identificada.'); 239 + $strStatus = $objPendencia->getStrStatus();
  240 + InfraDebug::getInstance()->gravar("Situação do trâmite ($strStatus) não pode ser tratada.");
239 break; 241 break;
240 } 242 }
241 243
rn/ProcessoEletronicoRN.php
@@ -652,8 +652,8 @@ class ProcessoEletronicoRN extends InfraRN { @@ -652,8 +652,8 @@ class ProcessoEletronicoRN extends InfraRN {
652 652
653 653
654 //TODO: Tratar a exceção de recebimento de um trâmite que já havia sido tratado no sistema 654 //TODO: Tratar a exceção de recebimento de um trâmite que já havia sido tratado no sistema
655 - protected function cadastrarTramiteDeProcessoInternoControlado(ProcessoEletronicoDTO $parObjProcessoEletronicoDTO) {  
656 - 655 + protected function cadastrarTramiteDeProcessoInternoControlado(ProcessoEletronicoDTO $parObjProcessoEletronicoDTO)
  656 + {
657 if(!isset($parObjProcessoEletronicoDTO)) { 657 if(!isset($parObjProcessoEletronicoDTO)) {
658 throw new InfraException('Parâmetro $parObjProcessoEletronicoDTO não informado.'); 658 throw new InfraException('Parâmetro $parObjProcessoEletronicoDTO não informado.');
659 } 659 }
rn/ReceberProcedimentoRN.php
@@ -1636,7 +1636,7 @@ static function comparacaoOrdemDocumentos($parDocumento1, $parDocumento2) @@ -1636,7 +1636,7 @@ static function comparacaoOrdemDocumentos($parDocumento1, $parDocumento2)
1636 } 1636 }
1637 1637
1638 1638
1639 -public function receberTramitesRecusados($parNumIdentificacaoTramite) 1639 +protected function receberTramitesRecusadosControlado($parNumIdentificacaoTramite)
1640 { 1640 {
1641 try { 1641 try {
1642 if (empty($parNumIdentificacaoTramite)) { 1642 if (empty($parNumIdentificacaoTramite)) {
@@ -1659,53 +1659,55 @@ public function receberTramitesRecusados($parNumIdentificacaoTramite) @@ -1659,53 +1659,55 @@ public function receberTramitesRecusados($parNumIdentificacaoTramite)
1659 $objTramiteBD = new TramiteBD(BancoSEI::getInstance()); 1659 $objTramiteBD = new TramiteBD(BancoSEI::getInstance());
1660 $objTramiteDTO = $objTramiteBD->consultar($objTramiteDTO); 1660 $objTramiteDTO = $objTramiteBD->consultar($objTramiteDTO);
1661 1661
1662 - if(!isset($objTramiteDTO)){  
1663 - throw new InfraException("Não foi encontrado no sistema o trâmite de número {$parNumIdentificacaoTramite} para realizar a ciência da recusa");  
1664 - }  
1665 -  
1666 - SessaoSEI::getInstance(false)->simularLogin('SEI', null, null, $objTramiteDTO->getNumIdUnidade()); 1662 + if(isset($objTramiteDTO)){
  1663 + //throw new InfraException("Não foi encontrado no sistema o trâmite de número {$parNumIdentificacaoTramite} para realizar a ciência da recusa");
  1664 + SessaoSEI::getInstance(false)->simularLogin('SEI', null, null, $objTramiteDTO->getNumIdUnidade());
1667 1665
1668 //Busca os dados do procedimento 1666 //Busca os dados do procedimento
1669 - $this->gravarLogDebug("Buscando os dados de procedimento com NRE " . $tramite->NRE, 2);  
1670 - $objProcessoEletronicoDTO = new ProcessoEletronicoDTO();  
1671 - $objProcessoEletronicoDTO->setStrNumeroRegistro($tramite->NRE);  
1672 - $objProcessoEletronicoDTO->retDblIdProcedimento();  
1673 - $objProcessoEletronicoBD = new ProcessoEletronicoBD($this->getObjInfraIBanco());  
1674 - $objProcessoEletronicoDTO = $objProcessoEletronicoBD->consultar($objProcessoEletronicoDTO); 1667 + $this->gravarLogDebug("Buscando os dados de procedimento com NRE " . $tramite->NRE, 2);
  1668 + $objProcessoEletronicoDTO = new ProcessoEletronicoDTO();
  1669 + $objProcessoEletronicoDTO->setStrNumeroRegistro($tramite->NRE);
  1670 + $objProcessoEletronicoDTO->retDblIdProcedimento();
  1671 + $objProcessoEletronicoBD = new ProcessoEletronicoBD($this->getObjInfraIBanco());
  1672 + $objProcessoEletronicoDTO = $objProcessoEletronicoBD->consultar($objProcessoEletronicoDTO);
1675 1673
1676 //Busca a última atividade de trâmite externo 1674 //Busca a última atividade de trâmite externo
1677 - $this->gravarLogDebug("Buscando última atividade de trâmite externo do processo " . $objProcessoEletronicoDTO->getDblIdProcedimento(), 2);  
1678 - $objAtividadeDTO = new AtividadeDTO();  
1679 - $objAtividadeDTO->setDblIdProtocolo($objProcessoEletronicoDTO->getDblIdProcedimento());  
1680 - $objAtividadeDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO));  
1681 - $objAtividadeDTO->setNumMaxRegistrosRetorno(1);  
1682 - $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC);  
1683 - $objAtividadeDTO->retNumIdAtividade();  
1684 - $objAtividadeBD = new AtividadeBD($this->getObjInfraIBanco());  
1685 - $objAtividadeDTO = $objAtividadeBD->consultar($objAtividadeDTO); 1675 + $this->gravarLogDebug("Buscando última atividade de trâmite externo do processo " . $objProcessoEletronicoDTO->getDblIdProcedimento(), 2);
  1676 + $objAtividadeDTO = new AtividadeDTO();
  1677 + $objAtividadeDTO->setDblIdProtocolo($objProcessoEletronicoDTO->getDblIdProcedimento());
  1678 + $objAtividadeDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO));
  1679 + $objAtividadeDTO->setNumMaxRegistrosRetorno(1);
  1680 + $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC);
  1681 + $objAtividadeDTO->retNumIdAtividade();
  1682 + $objAtividadeBD = new AtividadeBD($this->getObjInfraIBanco());
  1683 + $objAtividadeDTO = $objAtividadeBD->consultar($objAtividadeDTO);
1686 1684
1687 //Busca a unidade de destino 1685 //Busca a unidade de destino
1688 - $this->gravarLogDebug("Buscando informações sobre a unidade de destino", 2);  
1689 - $objAtributoAndamentoDTO = new AtributoAndamentoDTO();  
1690 - $objAtributoAndamentoDTO->setNumIdAtividade($objAtividadeDTO->getNumIdAtividade());  
1691 - $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO');  
1692 - $objAtributoAndamentoDTO->retStrValor();  
1693 - $objAtributoAndamentoBD = new AtributoAndamentoBD($this->getObjInfraIBanco());  
1694 - $objAtributoAndamentoDTO = $objAtributoAndamentoBD->consultar($objAtributoAndamentoDTO); 1686 + $this->gravarLogDebug("Buscando informações sobre a unidade de destino", 2);
  1687 + $objAtributoAndamentoDTO = new AtributoAndamentoDTO();
  1688 + $objAtributoAndamentoDTO->setNumIdAtividade($objAtividadeDTO->getNumIdAtividade());
  1689 + $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO');
  1690 + $objAtributoAndamentoDTO->retStrValor();
  1691 + $objAtributoAndamentoBD = new AtributoAndamentoBD($this->getObjInfraIBanco());
  1692 + $objAtributoAndamentoDTO = $objAtributoAndamentoBD->consultar($objAtributoAndamentoDTO);
1695 1693
1696 //Monta o DTO de receber tramite recusado 1694 //Monta o DTO de receber tramite recusado
1697 - $this->gravarLogDebug("Preparando recebimento de trâmite " . $parNumIdentificacaoTramite . " recusado", 2);  
1698 - $objReceberTramiteRecusadoDTO = new ReceberTramiteRecusadoDTO();  
1699 - $objReceberTramiteRecusadoDTO->setNumIdTramite($parNumIdentificacaoTramite);  
1700 - $objReceberTramiteRecusadoDTO->setNumIdProtocolo($objProcessoEletronicoDTO->getDblIdProcedimento());  
1701 - $objReceberTramiteRecusadoDTO->setNumIdUnidadeOrigem(null);  
1702 - $objReceberTramiteRecusadoDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_RECUSADO));  
1703 - $objReceberTramiteRecusadoDTO->setStrMotivoRecusa(utf8_decode($tramite->justificativaDaRecusa));  
1704 - $objReceberTramiteRecusadoDTO->setStrNomeUnidadeDestino($objAtributoAndamentoDTO->getStrValor()); 1695 + $this->gravarLogDebug("Preparando recebimento de trâmite " . $parNumIdentificacaoTramite . " recusado", 2);
  1696 + $objReceberTramiteRecusadoDTO = new ReceberTramiteRecusadoDTO();
  1697 + $objReceberTramiteRecusadoDTO->setNumIdTramite($parNumIdentificacaoTramite);
  1698 + $objReceberTramiteRecusadoDTO->setNumIdProtocolo($objProcessoEletronicoDTO->getDblIdProcedimento());
  1699 + $objReceberTramiteRecusadoDTO->setNumIdUnidadeOrigem(null);
  1700 + $objReceberTramiteRecusadoDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_RECUSADO));
  1701 + $objReceberTramiteRecusadoDTO->setStrMotivoRecusa(utf8_decode($tramite->justificativaDaRecusa));
  1702 + $objReceberTramiteRecusadoDTO->setStrNomeUnidadeDestino($objAtributoAndamentoDTO->getStrValor());
1705 1703
1706 //Faz o tratamento do processo e do trâmite recusado 1704 //Faz o tratamento do processo e do trâmite recusado
1707 - $this->gravarLogDebug("Atualizando dados do processo " . $objProcessoEletronicoDTO->getDblIdProcedimento() ." e do trâmite recusado " . $parNumIdentificacaoTramite, 2);  
1708 - $this->receberTramiteRecusadoInterno($objReceberTramiteRecusadoDTO); 1705 + $this->gravarLogDebug("Atualizando dados do processo " . $objProcessoEletronicoDTO->getDblIdProcedimento() ." e do trâmite recusado " . $parNumIdentificacaoTramite, 2);
  1706 + $this->receberTramiteRecusadoInterno($objReceberTramiteRecusadoDTO);
  1707 + }
  1708 +
  1709 + $this->gravarLogDebug("Notificando serviços do PEN sobre ciência da recusa do trâmite " . $parNumIdentificacaoTramite, 4);
  1710 + $this->objProcessoEletronicoRN->cienciaRecusa($parNumIdentificacaoTramite);
1709 1711
1710 } catch (Exception $e) { 1712 } catch (Exception $e) {
1711 $mensagemErro = InfraException::inspecionar($e); 1713 $mensagemErro = InfraException::inspecionar($e);
@@ -1763,9 +1765,6 @@ protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusad @@ -1763,9 +1765,6 @@ protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusad
1763 $objProtocolo->setStrSinObteveRecusa('S'); 1765 $objProtocolo->setStrSinObteveRecusa('S');
1764 $objProtocoloBD = new ProtocoloBD($this->getObjInfraIBanco()); 1766 $objProtocoloBD = new ProtocoloBD($this->getObjInfraIBanco());
1765 $objProtocoloBD->alterar($objProtocolo); 1767 $objProtocoloBD->alterar($objProtocolo);
1766 -  
1767 - $this->gravarLogDebug("Notificando serviços do PEN sobre ciência da recusa do trâmite " . $objReceberTramiteRecusadoDTO->getNumIdTramite(), 4);  
1768 - $this->objProcessoEletronicoRN->cienciaRecusa($objReceberTramiteRecusadoDTO->getNumIdTramite());  
1769 } 1768 }
1770 1769
1771 1770