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 7 class PendenciasTramiteRN extends InfraRN {
8 8  
9 9 const TIMEOUT_SERVICO_PENDENCIAS = 300;
  10 + const RECUPERAR_TODAS_PENDENCIAS = true;
10 11  
11 12 private static $instance = null;
12 13 private $strEnderecoServicoPendencias = null;
... ... @@ -121,7 +122,7 @@ class PendenciasTramiteRN extends InfraRN {
121 122 //Obter todos os trâmites pendentes antes de iniciar o monitoramento
122 123 $arrPendenciasRetornadas = array();
123 124 $objProcessoEletronicoRN = new ProcessoEletronicoRN();
124   - $arrObjPendenciasDTO = $objProcessoEletronicoRN->listarPendencias(false) or array();
  125 + $arrObjPendenciasDTO = $objProcessoEletronicoRN->listarPendencias(self::RECUPERAR_TODAS_PENDENCIAS) or array();
125 126  
126 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 236 break;
236 237  
237 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 241 break;
240 242 }
241 243  
... ...
rn/ProcessoEletronicoRN.php
... ... @@ -652,8 +652,8 @@ class ProcessoEletronicoRN extends InfraRN {
652 652  
653 653  
654 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 657 if(!isset($parObjProcessoEletronicoDTO)) {
658 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 1636 }
1637 1637  
1638 1638  
1639   -public function receberTramitesRecusados($parNumIdentificacaoTramite)
  1639 +protected function receberTramitesRecusadosControlado($parNumIdentificacaoTramite)
1640 1640 {
1641 1641 try {
1642 1642 if (empty($parNumIdentificacaoTramite)) {
... ... @@ -1659,53 +1659,55 @@ public function receberTramitesRecusados($parNumIdentificacaoTramite)
1659 1659 $objTramiteBD = new TramiteBD(BancoSEI::getInstance());
1660 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 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 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 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 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 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 1712 } catch (Exception $e) {
1711 1713 $mensagemErro = InfraException::inspecionar($e);
... ... @@ -1763,9 +1765,6 @@ protected function receberTramiteRecusadoInternoControlado(ReceberTramiteRecusad
1763 1765 $objProtocolo->setStrSinObteveRecusa('S');
1764 1766 $objProtocoloBD = new ProtocoloBD($this->getObjInfraIBanco());
1765 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  
... ...