From 97f63bbd39451d25abef443004146fe8e5f6f0e0 Mon Sep 17 00:00:00 2001 From: Mauro Costa Date: Wed, 5 Jun 2024 10:16:08 -0300 Subject: [PATCH] =?UTF-8?q?feat:=20reafatora=C3=A7=C3=A3o=20de=20tramite?= =?UTF-8?q?=20em=20bloco?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit feat: reafatoração de tramite em bloco --- Makefile | 35 +- src/PENIntegracao.php | 10 +- src/bd/PenBlocoProcessoBD.php | 14 + src/bd/PenMetaBD.php | 30 + .../verificar-reboot-fila-sem-supervisor.sh | 3 +- src/config/supervisor.exemplo.ini | 18 + src/dto/PenBlocoProcessoDTO.php | 83 +++ src/dto/PenExpedirLoteDTO.php | 43 -- src/dto/PenLoteProcedimentoDTO.php | 22 +- ...expedir_lote.php => pen_expedir_bloco.php} | 69 ++- src/pen_expedir_lote_listar.php | 214 ------- src/pen_procedimento_cancelar_expedir.php | 12 +- src/pen_tramita_em_bloco_protocolo_listar.php | 185 +++--- src/pen_tramite_bloco_listar.php | 27 +- ...en_tramite_processo_em_bloco_cadastrar.php | 63 +- src/rn/ExpedirProcedimentoRN.php | 39 +- src/rn/PENAgendamentoRN.php | 49 +- src/rn/PenBlocoProcessoRN.php | 547 ++++++++++++++++++ src/rn/PenExpedirLoteRN.php | 38 +- src/rn/PenLoteProcedimentoRN.php | 36 +- src/rn/PendenciasEnvioTramiteRN.php | 260 +++++++++ src/rn/PendenciasTramiteRN.php | 25 +- src/rn/ProcessarPendenciasRN.php | 137 +++-- src/rn/ReceberProcedimentoRN.php | 19 +- src/rn/ReceberReciboTramiteRN.php | 26 +- src/rn/TramitaEmBlocoProtocoloRN.php | 21 +- src/rn/TramiteEmBlocoRN.php | 7 +- src/rn/VerificadorInstalacaoRN.php | 3 +- src/scripts/MonitoramentoEnvioTarefasPEN.php | 38 ++ ...=> MonitoramentoRecebimentoTarefasPEN.php} | 2 +- .../sei_atualizar_versao_modulo_pen.php | 146 ++++- .../funcional/assets/config/supervisor.ini | 20 +- .../BlocoDeTramiteProtocoloFixture.php | 12 +- .../funcional/tests/CenarioBaseTestCase.php | 6 +- .../TramiteBlocoExternoLimiteAnexoTest.php | 14 +- .../tests/TramiteBlocoExternoLimiteTest.php | 3 +- ...coExternoProcessoJaIncluidoEmBlocoTest.php | 5 +- .../tests/TramiteBlocoExternoTest.php | 3 +- .../funcional/assets/config/supervisor.ini | 20 +- .../BlocoDeTramiteProtocoloFixture.php | 12 +- .../funcional/tests/CenarioBaseTestCase.php | 6 +- .../TramiteBlocoExternoLimiteAnexoTest.php | 12 +- .../tests/TramiteBlocoExternoLimiteTest.php | 3 +- ...coExternoProcessoJaIncluidoEmBlocoTest.php | 5 +- .../tests/TramiteBlocoExternoTest.php | 3 +- .../funcional/assets/config/supervisor.ini | 20 +- .../BlocoDeTramiteProtocoloFixture.php | 12 +- .../funcional/tests/CenarioBaseTestCase.php | 6 +- .../TramiteBlocoExternoLimiteAnexoTest.php | 12 +- .../tests/TramiteBlocoExternoLimiteTest.php | 3 +- ...coExternoProcessoJaIncluidoEmBlocoTest.php | 6 +- .../tests/TramiteBlocoExternoTest.php | 3 +- 52 files changed, 1680 insertions(+), 727 deletions(-) create mode 100644 src/bd/PenBlocoProcessoBD.php create mode 100644 src/dto/PenBlocoProcessoDTO.php delete mode 100755 src/dto/PenExpedirLoteDTO.php rename src/{pen_expedir_lote.php => pen_expedir_bloco.php} (88%) delete mode 100755 src/pen_expedir_lote_listar.php create mode 100644 src/rn/PenBlocoProcessoRN.php create mode 100644 src/rn/PendenciasEnvioTramiteRN.php create mode 100644 src/scripts/MonitoramentoEnvioTarefasPEN.php rename src/scripts/{MonitoramentoTarefasPEN.php => MonitoramentoRecebimentoTarefasPEN.php} (92%) diff --git a/Makefile b/Makefile index 9d1d085e9..2d692f38a 100755 --- a/Makefile +++ b/Makefile @@ -108,7 +108,8 @@ dist: @mv $(SEI_MODULO_DIR)/scripts/sei_atualizar_versao_modulo_pen.php $(SEI_SCRIPTS_DIR)/ @mv $(SEI_MODULO_DIR)/scripts/sip_atualizar_versao_modulo_pen.php $(SIP_SCRIPTS_DIR)/ @mv $(SEI_MODULO_DIR)/scripts/verifica_instalacao_modulo_pen.php $(SEI_SCRIPTS_DIR)/ - @mv $(SEI_MODULO_DIR)/scripts/MonitoramentoTarefasPEN.php $(SEI_SCRIPTS_DIR)/ + @mv $(SEI_MODULO_DIR)/scripts/MonitoramentoEnvioTarefasPEN.php $(SEI_SCRIPTS_DIR)/ + @mv $(SEI_MODULO_DIR)/scripts/MonitoramentoRecebimentoTarefasPEN.php $(SEI_SCRIPTS_DIR)/ @mv $(SEI_MODULO_DIR)/scripts/ProcessamentoTarefasPEN.php $(SEI_SCRIPTS_DIR)/ @mv $(SEI_MODULO_DIR)/config/ConfiguracaoModPEN.exemplo.php $(SEI_CONFIG_DIR)/ @mv $(SEI_MODULO_DIR)/config/supervisor.exemplo.ini $(SEI_CONFIG_DIR)/ @@ -518,26 +519,38 @@ atualizaSequencia: tramitar-pendencias: i=1; while [ "$$i" -le 2 ]; do \ echo "Executando T1 $$i"; \ - $(CMD_COMPOSE_FUNC) exec org1-http php /opt/sei/scripts/mod-pen/MonitoramentoTarefasPEN.php & \ - $(CMD_COMPOSE_FUNC) exec org2-http php /opt/sei/scripts/mod-pen/MonitoramentoTarefasPEN.php; \ + $(CMD_COMPOSE_FUNC) exec org1-http php /opt/sei/scripts/mod-pen/MonitoramentoEnvioTarefasPEN.php; + $(CMD_COMPOSE_FUNC) exec org1-http php /opt/sei/scripts/mod-pen/MonitoramentoRecebimentoTarefasPEN.php & \ + $(CMD_COMPOSE_FUNC) exec org2-http php /opt/sei/scripts/mod-pen/MonitoramentoEnvioTarefasPEN.php; + $(CMD_COMPOSE_FUNC) exec org2-http php /opt/sei/scripts/mod-pen/MonitoramentoRecebimentoTarefasPEN.php; \ i=$$((i + 1));\ done & i=1; while [ "$$i" -le 2 ]; do \ echo "Executando T2 $$i"; \ - $(CMD_COMPOSE_FUNC) exec org1-http php /opt/sei/scripts/mod-pen/MonitoramentoTarefasPEN.php & \ - $(CMD_COMPOSE_FUNC) exec org2-http php /opt/sei/scripts/mod-pen/MonitoramentoTarefasPEN.php; \ + $(CMD_COMPOSE_FUNC) exec org1-http php /opt/sei/scripts/mod-pen/MonitoramentoEnvioTarefasPEN.php; + $(CMD_COMPOSE_FUNC) exec org1-http php /opt/sei/scripts/mod-pen/MonitoramentoRecebimentoTarefasPEN.php & \ + $(CMD_COMPOSE_FUNC) exec org2-http php /opt/sei/scripts/mod-pen/MonitoramentoEnvioTarefasPEN.php; + $(CMD_COMPOSE_FUNC) exec org2-http php /opt/sei/scripts/mod-pen/MonitoramentoRecebimentoTarefasPEN.php; \ i=$$((i + 1));\ done -tramitar-pendencias-simples: - @$(CMD_COMPOSE_FUNC) exec org1-http php /opt/sei/scripts/mod-pen/MonitoramentoTarefasPEN.php; \ - $(CMD_COMPOSE_FUNC) exec org2-http php /opt/sei/scripts/mod-pen/MonitoramentoTarefasPEN.php; \ - $(CMD_COMPOSE_FUNC) exec org1-http php /opt/sei/scripts/mod-pen/MonitoramentoTarefasPEN.php; +tramitar-pendencias-simples: tramitar-pendencias-simples-org1 tramitar-pendencias-simples-org2 + @$(CMD_COMPOSE_FUNC) exec org1-http php /opt/sei/scripts/mod-pen/MonitoramentoRecebimentoTarefasPEN.php; + +tramitar-pendencias-simples-org1: + @$(CMD_COMPOSE_FUNC) exec org1-http php /opt/sei/scripts/mod-pen/MonitoramentoEnvioTarefasPEN.php; \ + $(CMD_COMPOSE_FUNC) exec org1-http php /opt/sei/scripts/mod-pen/MonitoramentoRecebimentoTarefasPEN.php; + +tramitar-pendencias-simples-org2: + @$(CMD_COMPOSE_FUNC) exec org2-http php /opt/sei/scripts/mod-pen/MonitoramentoEnvioTarefasPEN.php; \ + $(CMD_COMPOSE_FUNC) exec org2-http php /opt/sei/scripts/mod-pen/MonitoramentoRecebimentoTarefasPEN.php; tramitar-pendencias-silent: @echo 'Executando monitoramento de pendências do Org1 e Org2' @i=1; while [ "$$i" -le 3000 ]; do \ - $(CMD_COMPOSE_FUNC) exec org1-http php /opt/sei/scripts/mod-pen/MonitoramentoTarefasPEN.php > /dev/null 2>&1 & \ - $(CMD_COMPOSE_FUNC) exec org2-http php /opt/sei/scripts/mod-pen/MonitoramentoTarefasPEN.php > /dev/null 2>&1 ; \ + $(CMD_COMPOSE_FUNC) exec org1-http php /opt/sei/scripts/mod-pen/MonitoramentoEnvioTarefasPEN.php; \ + $(CMD_COMPOSE_FUNC) exec org1-http php /opt/sei/scripts/mod-pen/MonitoramentoRecebimentoTarefasPEN.php; \ + $(CMD_COMPOSE_FUNC) exec org2-http php /opt/sei/scripts/mod-pen/MonitoramentoEnvioTarefasPEN.php; \ + $(CMD_COMPOSE_FUNC) exec org2-http php /opt/sei/scripts/mod-pen/MonitoramentoRecebimentoTarefasPEN.php; \ i=$$((i + 1));\ done diff --git a/src/PENIntegracao.php b/src/PENIntegracao.php index 24454bcc3..d8c7e185d 100755 --- a/src/PENIntegracao.php +++ b/src/PENIntegracao.php @@ -53,7 +53,7 @@ public function montarBotaoControleProcessos() { $objSessaoSEI = SessaoSEI::getInstance(); $strAcoesProcedimento = ""; - $bolAcaoGerarPendencia = $objSessaoSEI->verificarPermissao('pen_expedir_lote'); + $bolAcaoGerarPendencia = $objSessaoSEI->verificarPermissao('pen_expedir_bloco'); if ($bolAcaoGerarPendencia) { $objPaginaSEI = PaginaSEI::getInstance(); @@ -852,12 +852,8 @@ public function processarControlador($strAcao) require_once dirname(__FILE__) . '/pen_envio_processo_lote_cadastrar.php'; break; - case 'pen_expedir_lote': - require_once dirname(__FILE__) . '/pen_expedir_lote.php'; - break; - - case 'pen_expedir_lote_listar': - require_once dirname(__FILE__) . '/pen_expedir_lote_listar.php'; + case 'pen_expedir_bloco': + require_once dirname(__FILE__) . '/pen_expedir_bloco.php'; break; case 'pen_map_envio_parcial_listar': diff --git a/src/bd/PenBlocoProcessoBD.php b/src/bd/PenBlocoProcessoBD.php new file mode 100644 index 000000000..14fd83d61 --- /dev/null +++ b/src/bd/PenBlocoProcessoBD.php @@ -0,0 +1,14 @@ +executarSql('ALTER TABLE '.$strNomeTabela.' ADD CONSTRAINT UK_'.$strNomeTabela.' UNIQUE('.implode(', ', $arrNomeChave).')'); } + public function novoRenomearTabela($strNomeTabelaAtual, $strNomeTabelaNovo){ + + if($this->isTabelaExiste($strNomeTabelaAtual)) { + + $objInfraBanco = $this->getObjInfraIBanco(); + $strTableDrive = get_parent_class($objInfraBanco); + $strQuery = ''; + + switch ($strTableDrive) { + case 'InfraMySqli': + $strQuery = sprintf("ALTER TABLE `%s` RENAME TO `%s`", $strNomeTabelaAtual, $strNomeTabelaNovo); + break; + + case 'InfraSqlServer': + $strQuery = sprintf("sp_rename '%s', '%s'", $strNomeTabelaAtual, $strNomeTabelaNovo); + break; + + case 'InfraOracle': + $strQuery = sprintf("RENAME %s TO %s", $strNomeTabelaAtual, $strNomeTabelaNovo); + break; + + case 'InfraPostgreSql': + $strQuery = sprintf("ALTER TABLE %s RENAME TO %s", $strNomeTabelaAtual, $strNomeTabelaNovo); + break; + } + + $objInfraBanco->executarSql($strQuery); + } + } + public function renomearTabela($strNomeTabelaAtual, $strNomeTabelaNovo){ if($this->isTabelaExiste($strNomeTabelaAtual)) { diff --git a/src/bin/verificar-reboot-fila-sem-supervisor.sh b/src/bin/verificar-reboot-fila-sem-supervisor.sh index 351dd035e..8aa3b1b35 100755 --- a/src/bin/verificar-reboot-fila-sem-supervisor.sh +++ b/src/bin/verificar-reboot-fila-sem-supervisor.sh @@ -14,7 +14,8 @@ r=$? if [ "$r" == "2" ]; then echo "Retornou com erro critico. Reboot... $(date)" - kill $(ps -ef | grep "MonitoramentoTarefasPEN.php" | grep -v grep | awk '{print $2}') + kill $(ps -ef | grep "MonitoramentoEnvioTarefasPEN.php" | grep -v grep | awk '{print $2}') + kill $(ps -ef | grep "MonitoramentoRecebimentoTarefasPEN.php" | grep -v grep | awk '{print $2}') echo "rebootado" rm -rf pendencias.json fi diff --git a/src/config/supervisor.exemplo.ini b/src/config/supervisor.exemplo.ini index 8dc69985e..3b028c0b4 100755 --- a/src/config/supervisor.exemplo.ini +++ b/src/config/supervisor.exemplo.ini @@ -16,6 +16,24 @@ stdout_logfile=/var/log/supervisor/sei_monitorar_pendencias.log-out stderr_logfile=/var/log/supervisor/sei_monitorar_pendencias.log-err stderr_events_enabled=true +[program:monitoramento_envio_tarefas_pen] +command=/usr/bin/php -c /etc/php.ini %(here)s/../../scripts/mod-pen/MonitoramentoRecebimentoTarefasPEN.php --monitorar --segundo-plano +directory=/opt/sei/web +user=root +numprocs=1 +autostart=true +autorestart=true +startsecs=5 +startretries=1000 +log_stdout=true +log_stderr=true +logfile_maxbytes=10MB +logfile_backups=50 +logfile=/var/log/supervisor/sei_monitorar_pendencias.log +stdout_logfile=/var/log/supervisor/sei_monitorar_pendencias.log-out +stderr_logfile=/var/log/supervisor/sei_monitorar_pendencias.log-err +stderr_events_enabled=true + [program:processamento_tarefas_pen] command=/usr/bin/php -c /etc/php.ini %(here)s/../../scripts/mod-pen/ProcessamentoTarefasPEN.php --worker=%(process_num)02d directory=/opt/sei/web diff --git a/src/dto/PenBlocoProcessoDTO.php b/src/dto/PenBlocoProcessoDTO.php new file mode 100644 index 000000000..712c8bc91 --- /dev/null +++ b/src/dto/PenBlocoProcessoDTO.php @@ -0,0 +1,83 @@ +adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdBlocoProcesso', 'id_bloco_processo'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdRepositorioDestino', 'id_repositorio_destino'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'RepositorioDestino', 'str_repositorio_destino'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdRepositorioOrigem', 'id_repositorio_origem'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidadeDestino', 'id_unidade_destino'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'UnidadeDestino', 'str_unidade_destino'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidadeOrigem', 'id_unidade_origem'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUsuario', 'id_usuario'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidade', 'id_unidade'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DTH, 'Registro', 'dth_registro'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DTH, 'Atualizado', 'dth_atualizado'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DTH, 'Envio', 'dth_envio'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdBloco', 'id_bloco'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'IdProtocolo', 'id_protocolo'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'Sequencia', 'sequencia'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdAndamento', 'id_andamento'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdAtividade', 'id_atividade_expedicao'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'Tentativas', 'tentativas'); + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DBL, 'IdProtocoloProtocolo', 'p1.id_protocolo', 'protocolo p1'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'ProtocoloFormatadoProtocolo', 'p1.protocolo_formatado', 'protocolo p1'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'StaProtocoloProtocolo', 'p1.sta_protocolo', 'protocolo p1'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'StaNivelAcessoGlobalProtocolo', 'p1.sta_nivel_acesso_global', 'protocolo p1'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdUnidadeBloco', 'tb1.id_unidade', 'md_pen_bloco tb1'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdUsuario', 'tb1.id_usuario', 'md_pen_bloco tb1'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'StaTipoBloco', 'sta_tipo', 'md_pen_bloco tb1'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'StaEstadoBloco', 'tb1.sta_estado', 'md_pen_bloco tb1'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdProcedimento', 'pe.id_procedimento', 'md_pen_processo_eletronico pe'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'NumeroRegistro', 'pe.numero_registro', 'md_pen_processo_eletronico pe'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdTramite', 'pt.id_tramite', 'md_pen_tramite pt'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'StaEstadoProtocolo', 'p1.sta_estado', 'protocolo p1'); + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'NomeUsuario', 'nome', 'usuario'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'NomeUnidade', 'nome', 'unidade'); + + $this->adicionarAtributo(InfraDTO::$PREFIXO_ARR, 'ListaProcedimento'); + + $this->adicionarAtributo(InfraDTO::$PREFIXO_OBJ, 'TramiteDTO'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_OBJ, 'AtividadeDTO'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_OBJ, 'ProtocoloDTO'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_OBJ, 'PenLoteProcedimentoDTO'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'PalavrasPesquisa'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'SinAberto'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_NUM, 'StaIdTarefa'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'SinObteveRecusa'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'IdxRelBlocoProtocolo'); + + $this->configurarPK('IdBlocoProcesso', InfraDTO::$TIPO_PK_NATIVA); + $this->configurarPK('IdProtocolo', InfraDTO::$TIPO_PK_INFORMADO); + $this->configurarPK('IdBloco', InfraDTO::$TIPO_PK_INFORMADO); + + $this->configurarFK('IdUsuario', 'usuario', 'id_usuario', InfraDTO::$TIPO_FK_OPCIONAL); + $this->configurarFK('IdUnidade', 'unidade', 'id_unidade', InfraDTO::$TIPO_FK_OPCIONAL); + + $this->configurarFK('IdProtocolo', 'protocolo p1', 'p1.id_protocolo'); + $this->configurarFK('IdBloco', 'md_pen_bloco tb1', 'tb1.id'); + $this->configurarFK('IdProtocolo', 'md_pen_processo_eletronico pe', 'pe.id_procedimento', InfraDTO::$TIPO_FK_OPCIONAL); + $this->configurarFK('NumeroRegistro', 'md_pen_tramite pt', 'pt.numero_registro', InfraDTO::$TIPO_FK_OPCIONAL); + } +} diff --git a/src/dto/PenExpedirLoteDTO.php b/src/dto/PenExpedirLoteDTO.php deleted file mode 100755 index 451f0c750..000000000 --- a/src/dto/PenExpedirLoteDTO.php +++ /dev/null @@ -1,43 +0,0 @@ -adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdLote', 'id_lote'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdRepositorioDestino', 'id_repositorio_destino'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'RepositorioDestino', 'str_repositorio_destino'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdRepositorioOrigem', 'id_repositorio_origem'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidadeDestino', 'id_unidade_destino'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'UnidadeDestino', 'str_unidade_destino'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidadeOrigem', 'id_unidade_origem'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUsuario', 'id_usuario'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidade', 'id_unidade'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DTH, 'Registro', 'dth_registro'); - - $this->adicionarAtributo(InfraDTO::$PREFIXO_ARR, 'IdProcedimento'); - - $this->configurarPK('IdLote', InfraDTO::$TIPO_PK_NATIVA); - - $this->configurarFK('IdLote', 'md_pen_seq_expedir_lote', 'id'); - $this->configurarFK('IdUsuario', 'usuario', 'id_usuario'); - $this->configurarFK('IdUnidade', 'unidade', 'id_unidade'); - } -} diff --git a/src/dto/PenLoteProcedimentoDTO.php b/src/dto/PenLoteProcedimentoDTO.php index 36476bb6e..1fed4cb13 100755 --- a/src/dto/PenLoteProcedimentoDTO.php +++ b/src/dto/PenLoteProcedimentoDTO.php @@ -23,16 +23,16 @@ public function montar() $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdAtividade', 'id_atividade_expedicao'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'Tentativas', 'tentativas'); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdLote', 'id_lote', 'md_pen_expedir_lote'); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdRepositorioDestino', 'id_repositorio_destino', 'md_pen_expedir_lote'); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'RepositorioDestino', 'str_repositorio_destino', 'md_pen_expedir_lote'); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdRepositorioOrigem', 'id_repositorio_origem', 'md_pen_expedir_lote'); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdUnidadeDestino', 'id_unidade_destino', 'md_pen_expedir_lote'); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'UnidadeDestino', 'str_unidade_destino', 'md_pen_expedir_lote'); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdUnidadeOrigem', 'id_unidade_origem', 'md_pen_expedir_lote'); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdUsuario', 'id_usuario', 'md_pen_expedir_lote'); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdUnidade', 'id_unidade', 'md_pen_expedir_lote'); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTH, 'Registro', 'dth_registro', 'md_pen_expedir_lote'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdLote', 'id_lote', 'md_pen_bloco_processo'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdRepositorioDestino', 'id_repositorio_destino', 'md_pen_bloco_processo'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'RepositorioDestino', 'str_repositorio_destino', 'md_pen_bloco_processo'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdRepositorioOrigem', 'id_repositorio_origem', 'md_pen_bloco_processo'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdUnidadeDestino', 'id_unidade_destino', 'md_pen_bloco_processo'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'UnidadeDestino', 'str_unidade_destino', 'md_pen_bloco_processo'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdUnidadeOrigem', 'id_unidade_origem', 'md_pen_bloco_processo'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdUsuario', 'id_usuario', 'md_pen_bloco_processo'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'IdUnidade', 'id_unidade', 'md_pen_bloco_processo'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_DTH, 'Registro', 'dth_registro', 'md_pen_bloco_processo'); $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'ProcedimentoFormatado', 'protocolo_formatado', 'protocolo'); $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'NomeUsuario', 'nome', 'usuario'); @@ -40,7 +40,7 @@ public function montar() $this->configurarPK('IdLote', InfraDTO::$TIPO_PK_INFORMADO); $this->configurarPK('IdProcedimento', InfraDTO::$TIPO_PK_INFORMADO); - $this->configurarFK('IdLote', 'md_pen_expedir_lote', 'id_lote'); + $this->configurarFK('IdLote', 'md_pen_bloco_processo', 'id_lote'); $this->configurarFK('IdProcedimento', 'procedimento', 'id_procedimento'); $this->configurarFK('IdProcedimento', 'protocolo', 'id_protocolo'); $this->configurarFK('IdUsuario', 'usuario', 'id_usuario'); diff --git a/src/pen_expedir_lote.php b/src/pen_expedir_bloco.php similarity index 88% rename from src/pen_expedir_lote.php rename to src/pen_expedir_bloco.php index f9f245c17..90e0a058e 100755 --- a/src/pen_expedir_lote.php +++ b/src/pen_expedir_bloco.php @@ -20,22 +20,20 @@ $arrProtocolosOrigem = array(); $tramiteEmBloco = isset($_GET['tramite_em_bloco']) ? $_GET['tramite_em_bloco'] : null; if ($tramiteEmBloco == 1) { + $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTO->retDblIdProtocolo(); + $objPenBlocoProcessoDTO->retNumIdBloco(); + if (isset($_GET['id_tramita_em_bloco'])) { - $objTramitaEmBlocoProtocoloDTO = new TramitaEmBlocoProtocoloDTO(); - $objTramitaEmBlocoProtocoloDTO->setNumIdTramitaEmBloco($_GET['id_tramita_em_bloco']); - $objTramitaEmBlocoProtocoloDTO->retDblIdProtocolo(); - $objTramitaEmBlocoProtocoloDTO->retNumIdTramitaEmBloco(); + $objPenBlocoProcessoDTO->setNumIdBloco($_GET['id_tramita_em_bloco']); } else { $arrIdRelBlocoProtocoloSelecionado = $objPaginaSEI->getArrStrItensSelecionados(); - $objTramitaEmBlocoProtocoloDTO = new TramitaEmBlocoProtocoloDTO(); - $objTramitaEmBlocoProtocoloDTO->setNumId($arrIdRelBlocoProtocoloSelecionado, InfraDTO::$OPER_IN); - $objTramitaEmBlocoProtocoloDTO->retDblIdProtocolo(); - $objTramitaEmBlocoProtocoloDTO->retNumIdTramitaEmBloco(); + $objPenBlocoProcessoDTO->setNumIdBloco($arrIdRelBlocoProtocoloSelecionado, InfraDTO::$OPER_IN); } - $objTramitaEmBlocoProtocoloRN = new TramitaEmBlocoProtocoloRN(); - $arrTramiteEmBlocoProtocolo = $objTramitaEmBlocoProtocoloRN->listar($objTramitaEmBlocoProtocoloDTO); - $idTramiteEmBloco = $arrTramiteEmBlocoProtocolo[0]->getNumIdTramitaEmBloco(); + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $arrTramiteEmBlocoProtocolo = $objPenBlocoProcessoRN->listar($objPenBlocoProcessoDTO); + $idTramiteEmBloco = $arrTramiteEmBlocoProtocolo[0]->getNumIdBloco(); $strParametros .= '&id_bloco=' . $idTramiteEmBloco; foreach ($arrTramiteEmBlocoProtocolo as $i => $tramiteEmBlocoProtocolo) { $arrProtocolosOrigem[] = $tramiteEmBlocoProtocolo->getDblIdProtocolo(); @@ -70,7 +68,7 @@ switch ($_GET['acao']) { - case 'pen_expedir_lote': + case 'pen_expedir_bloco': $strTitulo = $tramiteEmBloco == 1 ? 'Envio Externo de Processos do Bloco de Trâmite' : 'Envio Externo de Processo em Lote'; $arrComandos[] = ''; $arrComandos[] = ''; @@ -106,7 +104,6 @@ $numIdUnidadeDestino = $_POST['hdnIdUnidade']; $strNomeUnidadeDestino = $_POST['txtUnidade']; $numIdUsuario = $objSessaoSEI->getNumIdUsuario(); - $dthRegistro = date('d/m/Y H:i:s'); if (isset($_POST['sbmExpedir'])) { $numVersao = $objPaginaSEI->getNumVersao(); @@ -117,22 +114,40 @@ $objPaginaSEI->prepararBarraProgresso($strTitulo, $strTituloPagina); try { + $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTO->retDblIdProtocolo(); + $objPenBlocoProcessoDTO->retNumIdBloco(); + $objPenBlocoProcessoDTO->retDthRegistro(); + $objPenBlocoProcessoDTO->retNumIdBlocoProcesso(); + $objPenBlocoProcessoDTO->setNumIdBloco($_GET['id_bloco']); + + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $arrTramiteEmBlocoProtocolo = $objPenBlocoProcessoRN->listar($objPenBlocoProcessoDTO); + $arrProcedimentos = array(); + foreach ($arrTramiteEmBlocoProtocolo as $objDTO) { + $objDTO->setNumIdRepositorioOrigem($numIdRepositorioOrigem); + $objDTO->setNumIdUnidadeOrigem($numIdUnidadeOrigem); + $objDTO->setNumIdRepositorioDestino($numIdRepositorio); + $objDTO->setStrRepositorioDestino($strRepositorio); + $objDTO->setNumIdUnidadeDestino($numIdUnidadeDestino); + $objDTO->setStrUnidadeDestino($strNomeUnidadeDestino); + $objDTO->setNumIdUsuario($numIdUsuario); + $objDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); + $dthAtualizado = date('d/m/Y H:i:s'); + $objDTO->setDthAtualizado($dthAtualizado); + $objDTO->setDthEnvio($dthAtualizado); + $objDTO->setArrListaProcedimento($arrProtocolosOrigem); + $objDTO->setNumIdAtividade(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_NAO_INICIADO); + + $objPenBlocoProcessoRN->alterar($objDTO); + + $arrProcedimentos[] = $objDTO->getDblIdProtocolo(); + } - $objPenExpedirLoteDTO = new PenExpedirLoteDTO(); - $objPenExpedirLoteDTO->setNumIdLote(null); - $objPenExpedirLoteDTO->setNumIdRepositorioOrigem($numIdRepositorioOrigem); - $objPenExpedirLoteDTO->setNumIdUnidadeOrigem($numIdUnidadeOrigem); - $objPenExpedirLoteDTO->setNumIdRepositorioDestino($numIdRepositorio); - $objPenExpedirLoteDTO->setStrRepositorioDestino($strRepositorio); - $objPenExpedirLoteDTO->setNumIdUnidadeDestino($numIdUnidadeDestino); - $objPenExpedirLoteDTO->setStrUnidadeDestino($strNomeUnidadeDestino); - $objPenExpedirLoteDTO->setNumIdUsuario($numIdUsuario); - $objPenExpedirLoteDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); - $objPenExpedirLoteDTO->setDthRegistro($dthRegistro); - $objPenExpedirLoteDTO->setArrIdProcedimento($arrProtocolosOrigem); - + $arrTramiteEmBlocoProtocolo[0]->setArrListaProcedimento($arrProcedimentos); $objPenExpedirLoteRN = new PenExpedirLoteRN(); - $ret = $objPenExpedirLoteRN->cadastrarLote($objPenExpedirLoteDTO); + $ret = $objPenExpedirLoteRN->cadastrarLote($arrTramiteEmBlocoProtocolo[0]); + $bolBotaoFecharCss = InfraUtil::compararVersoes(SEI_VERSAO, ">", "4.0.1"); // Atualiza estado do bloco em tramite para em processamento diff --git a/src/pen_expedir_lote_listar.php b/src/pen_expedir_lote_listar.php deleted file mode 100755 index 57c3d611d..000000000 --- a/src/pen_expedir_lote_listar.php +++ /dev/null @@ -1,214 +0,0 @@ - validarLink(); - $objSessaoSEI->validarPermissao($_GET['acao']); - - $staCancelado = ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO; - $staConcluido = ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_ENVIADOS_REMETENTE; - $staEmProcessamento = ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_NAO_INICIADO; - - $objPaginaSEI->salvarCamposPost(array('txtProcedimentoFormatado', 'txtNomeUsuario', 'txtUnidadeDestino', 'selAndamento')); - - switch ($_GET['acao']) { - - case 'pen_expedir_lote_listar': - $strTitulo = 'Processos Tramitados em Bloco'; - break; - - default: - throw new InfraException("Ação '" . $_GET['acao'] . "' não reconhecida."); - } - - $arrComandos = array(); - $arrComandos[] = ''; - - $objPenLoteProcedimentoDTO = new PenLoteProcedimentoDTO(true); - - $objPenLoteProcedimentoDTO->retNumIdLote(); - $objPenLoteProcedimentoDTO->retDblIdProcedimento(); - $objPenLoteProcedimentoDTO->retStrProcedimentoFormatado(); - $objPenLoteProcedimentoDTO->retNumIdAndamento(); - $objPenLoteProcedimentoDTO->retStrUnidadeDestino(); - $objPenLoteProcedimentoDTO->retStrNomeUsuario(); - $objPenLoteProcedimentoDTO->retDthRegistro(); - $objPenLoteProcedimentoDTO->setOrdNumIdLote(InfraDTO::$TIPO_ORDENACAO_DESC); - - $strNomeUsuario = $objPaginaSEI->recuperarCampo('txtNomeUsuario'); - if (trim($strNomeUsuario) != '') { - $objPenLoteProcedimentoDTO->setStrNomeUsuario('%' . trim($strNomeUsuario . '%'), InfraDTO::$OPER_LIKE); - } - - $strProcedimentoFormatado = $objPaginaSEI->recuperarCampo('txtProcedimentoFormatado'); - if (trim($strProcedimentoFormatado) != '') { - $objPenLoteProcedimentoDTO->setStrProcedimentoFormatado(trim($strProcedimentoFormatado)); - } - - $strUnidadeDestino = $objPaginaSEI->recuperarCampo('txtUnidadeDestino'); - if (trim($strUnidadeDestino) != '') { - $objPenLoteProcedimentoDTO->setStrUnidadeDestino(trim($strUnidadeDestino)); - } - - $numIdAndamento = $objPaginaSEI->recuperarCampo('selAndamento'); - if ($numIdAndamento !== '') { - $objPenLoteProcedimentoDTO->setNumIdAndamento($numIdAndamento); - } - - $objPaginaSEI->prepararOrdenacao($objPenLoteProcedimentoDTO, 'IdLote', InfraDTO::$TIPO_ORDENACAO_DESC); - $objPaginaSEI->prepararPaginacao($objPenLoteProcedimentoDTO); - - $objPenLoteProcedimentoRN = new PenLoteProcedimentoRN(); - $arrObjPenLoteProcedimentoRN = $objPenLoteProcedimentoRN->listarLoteProcedimento($objPenLoteProcedimentoDTO); - - $objPaginaSEI->processarPaginacao($objPenLoteProcedimentoDTO); - $numRegistros = count($arrObjPenLoteProcedimentoRN); - - $objExpedirProcedimentoRN = new ExpedirProcedimentoRN(); - - if ($numRegistros > 0) { - $arrComandos[] = ''; - - $strResultado = ''; - $strSumarioTabela = 'Tabela de Processo em Lote.'; - $strCaptionTabela = 'Processo em Lote'; - - $strResultado .= '' . "\n"; - $strResultado .= ''; - $strResultado .= ''; - $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - $strCssTr = ''; - for ($i = 0; $i < $numRegistros; $i++) { - - $strCssTr = ($strCssTr == '') ? '' : ''; - $strResultado .= $strCssTr; - - $strResultado .= ''; - $strResultado .= ''; - $strResultado .= '' . "\n"; - $strResultado .= ''; - $strResultado .= ''; - $strResultado .= ''; - $strResultado .= '' . "\n"; - - } - $strResultado .= '
' . $objPaginaSEI->gerarCaptionTabela($strCaptionTabela, $numRegistros) . '
' . $objPaginaSEI->getThCheck() . '' . $objPaginaSEI->getThOrdenacao($objPenLoteProcedimentoDTO, 'ID Lote', 'IdLote', $arrObjPenLoteProcedimentoRN) . '' . $objPaginaSEI->getThOrdenacao($objPenLoteProcedimentoDTO, 'Processo', 'ProcedimentoFormatado', $arrObjPenLoteProcedimentoRN) . '' . $objPaginaSEI->getThOrdenacao($objPenLoteProcedimentoDTO, 'Usuário', 'IdUsuario', $arrObjPenLoteProcedimentoRN) . '' . $objPaginaSEI->getThOrdenacao($objPenLoteProcedimentoDTO, 'Data do Envio', 'Registro', $arrObjPenLoteProcedimentoRN) . '' . $objPaginaSEI->getThOrdenacao($objPenLoteProcedimentoDTO, 'Unidade Destino', 'UnidadeDestino', $arrObjPenLoteProcedimentoRN) . '' . $objPaginaSEI->getThOrdenacao($objPenLoteProcedimentoDTO, 'Situação', 'IdAndamento', $arrObjPenLoteProcedimentoRN) . '
' . $objPaginaSEI->getTrCheck($i, $arrObjPenLoteProcedimentoRN[$i]->getNumIdLote(), $arrObjPenLoteProcedimentoRN[$i]->getNumIdLote()) . '' . $arrObjPenLoteProcedimentoRN[$i]->getNumIdLote() . '' . PaginaSEI::tratarHTML($arrObjPenLoteProcedimentoRN[$i]->getStrProcedimentoFormatado()) . '' . PaginaSEI::tratarHTML($arrObjPenLoteProcedimentoRN[$i]->getStrNomeUsuario()) . '' . PaginaSEI::tratarHTML($arrObjPenLoteProcedimentoRN[$i]->getDthRegistro()) . '' . PaginaSEI::tratarHTML($arrObjPenLoteProcedimentoRN[$i]->getStrUnidadeDestino()) . ''; - - switch ($arrObjPenLoteProcedimentoRN[$i]->getNumIdAndamento()) { - case $staConcluido: - $strResultado .= 'Concluído'; - break; - case $staCancelado: - $strResultado .= 'Cancelado'; - break; - default: - $strResultado .= 'Em processamento'; - break; - } - - $strResultado .= '
'; - } - - $arrComandos[] = ''; - - } catch (Exception $e) { - $objPaginaSEI->processarExcecao($e); - } - - $objPaginaSEI->montarDocType(); - $objPaginaSEI->abrirHtml(); - $objPaginaSEI->abrirHead(); - $objPaginaSEI->montarMeta(); - $objPaginaSEI->montarTitle($objPaginaSEI->getStrNomeSistema() . ' - ' . $strTitulo); - $objPaginaSEI->montarStyle(); - $objPaginaSEI->abrirStyle(); - ?> - -#lblNomeUsuario {position:absolute;left:0%;top:0%;width:20%;} -#txtNomeUsuario {position:absolute;left:0%;top:40%;width:20%;} - -#lblProcedimentoFormatado {position:absolute;left:23%;top:0%;width:20%;} -#txtProcedimentoFormatado {position:absolute;left:23%;top:40%;width:20%;} - -#lblUnidadeDestino {position:absolute;left:46%;top:0%;width:20%;} -#txtUnidadeDestino {position:absolute;left:46%;top:40%;width:25%;} - -#lblAndamento {position:absolute;left:74%;top:0%;width:20%;} -#selAndamento {position:absolute;left:74%;top:40%;width:20%;} - -fecharStyle(); -$objPaginaSEI->montarJavaScript(); -$objPaginaSEI->abrirJavaScript(); -?> - -function inicializar(){ - if (''=='serie_selecionar'){ - infraReceberSelecao(); - document.getElementById('btnFecharSelecao').focus(); - }else{ - document.getElementById('btnFechar').focus(); - } - - infraEfeitoTabelas(); -} - - -function abrirProcesso(link){ - document.getElementById('divInfraBarraComandosSuperior').style.visibility = 'hidden'; - document.getElementById('divInfraAreaTabela').style.visibility = 'hidden'; - infraOcultarMenuSistemaEsquema(); - document.getElementById('frmLoteListar').action = link; - document.getElementById('frmLoteListar').submit(); -} -fecharJavaScript(); -$objPaginaSEI->fecharHead(); -$objPaginaSEI->abrirBody($strTitulo, 'onload="inicializar();"'); -?> -
- montarBarraComandosSuperior($arrComandos); - $objPaginaSEI->abrirAreaDados('4.5em'); - ?> - - - - - - - - - - - - - - fecharAreaDados(); - $objPaginaSEI->montarAreaTabela($strResultado, $numRegistros); - $objPaginaSEI->montarAreaDebug(); - $objPaginaSEI->montarBarraComandosInferior($arrComandos); - ?> -
-fecharBody(); -$objPaginaSEI->fecharHtml(); -?> diff --git a/src/pen_procedimento_cancelar_expedir.php b/src/pen_procedimento_cancelar_expedir.php index af0381f56..9bb9371d4 100755 --- a/src/pen_procedimento_cancelar_expedir.php +++ b/src/pen_procedimento_cancelar_expedir.php @@ -27,19 +27,19 @@ $idProcedimento = filter_var($_GET['id_procedimento'], FILTER_SANITIZE_NUMBER_INT); - $objTramiteEmBlocoProtocoloDTO = new TramitaEmBlocoProtocoloDTO(); + $objTramiteEmBlocoProtocoloDTO = new PenBlocoProcessoDTO(); $objTramiteEmBlocoProtocoloDTO->setDblIdProtocolo($idProcedimento); - $objTramiteEmBlocoProtocoloDTO->setOrdNumId(InfraDTO::$TIPO_ORDENACAO_DESC); + $objTramiteEmBlocoProtocoloDTO->setOrdNumIdBloco(InfraDTO::$TIPO_ORDENACAO_DESC); $objTramiteEmBlocoProtocoloDTO->retDblIdProtocolo(); - $objTramiteEmBlocoProtocoloDTO->retNumIdTramitaEmBloco(); + $objTramiteEmBlocoProtocoloDTO->retNumIdBloco(); - $objTramitaEmBlocoProtocoloRN = new TramitaEmBlocoProtocoloRN(); - $tramiteEmBlocoProtocoloDTO = $objTramitaEmBlocoProtocoloRN->consultarProtocolosBloco($objTramiteEmBlocoProtocoloDTO); + $objTramitaEmBlocoProtocoloRN = new PenBlocoProcessoRN(); + $tramiteEmBlocoProtocoloDTO = $objTramitaEmBlocoProtocoloRN->consultar($objTramiteEmBlocoProtocoloDTO); if ($tramiteEmBlocoProtocoloDTO != null) { // TODO: tratar atualização a partir de um metodo $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); - $objTramiteEmBlocoDTO->setNumId($tramiteEmBlocoProtocoloDTO->getNumIdTramitaEmBloco()); + $objTramiteEmBlocoDTO->setNumId($tramiteEmBlocoProtocoloDTO->getNumIdBloco()); $objTramiteEmBlocoDTO->setStrStaEstado(TramiteEmBlocoRN::$TE_CONCLUIDO_PARCIALMENTE); $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); diff --git a/src/pen_tramita_em_bloco_protocolo_listar.php b/src/pen_tramita_em_bloco_protocolo_listar.php index 24e095f5d..ee80fd643 100644 --- a/src/pen_tramita_em_bloco_protocolo_listar.php +++ b/src/pen_tramita_em_bloco_protocolo_listar.php @@ -1,16 +1,13 @@ validarLink(); $objSessaoSEI->validarPermissao($_GET['acao']); - $objPaginaSEI->salvarCamposPost(array('txtProcedimentoFormatado')); + $objPaginaSEI->salvarCamposPost(array('txtProcedimentoFormatado')); switch ($_GET['acao']) { case 'pen_tramita_em_bloco_protocolo_excluir': @@ -21,27 +18,26 @@ if (count($arrStrIds) > 0) { for ($i = 0; $i < count($arrStrIds); $i++) { $arrStrIdComposto = explode('-', $arrStrIds[$i]); - $objTramiteEmBlocoProtocoloDTO = new TramitaEmBlocoProtocoloDTO(); - $objTramiteEmBlocoProtocoloDTO->setNumId($arrStrIdComposto[0]); + $objTramiteEmBlocoProtocoloDTO = new PenBlocoProcessoDTO(); + $objTramiteEmBlocoProtocoloDTO->setNumIdBlocoProcesso($arrStrIdComposto[0]); $objTramiteEmBlocoProtocoloDTO->setDblIdProtocolo($arrStrIdComposto[1]); - $objTramiteEmBlocoProtocoloDTO->setNumIdTramitaEmBloco($arrStrIdComposto[2]); - $objTramiteEmBlocoProtocoloDTO->retStrIdxRelBlocoProtocolo(); - $objTramiteEmBlocoProtocoloDTO->retNumIdTramitaEmBloco(); + $objTramiteEmBlocoProtocoloDTO->setNumIdBloco($arrStrIdComposto[2]); + $objTramiteEmBlocoProtocoloDTO->retNumIdBloco(); $arrObjTramiteBlocoProtocoloDTO[] = $objTramiteEmBlocoProtocoloDTO; } } elseif (isset($_GET['hdnInfraItensSelecionados'])) { $arrStrIdComposto = explode('-', $_GET['hdnInfraItensSelecionados']); - $objTramiteEmBlocoProtocoloDTO = new TramitaEmBlocoProtocoloDTO(); - $objTramiteEmBlocoProtocoloDTO->setNumId($arrStrIdComposto[0]); + $objTramiteEmBlocoProtocoloDTO = new PenBlocoProcessoDTO(); + $objTramiteEmBlocoProtocoloDTO->setNumIdBlocoProcesso($arrStrIdComposto[0]); $objTramiteEmBlocoProtocoloDTO->setDblIdProtocolo($arrStrIdComposto[1]); - $objTramiteEmBlocoProtocoloDTO->setNumIdTramitaEmBloco($arrStrIdComposto[2]); + $objTramiteEmBlocoProtocoloDTO->setNumIdBloco($arrStrIdComposto[2]); $arrObjTramiteBlocoProtocoloDTO[] = $objTramiteEmBlocoProtocoloDTO; } - - $objTramitaEmBlocoProtocoloRN = new TramitaEmBlocoProtocoloRN(); + + $objTramitaEmBlocoProtocoloRN = new PenBlocoProcessoRN(); $objTramitaEmBlocoProtocoloRN->excluir($arrObjTramiteBlocoProtocoloDTO); - $dblIdBloco = $arrObjTramiteBlocoProtocoloDTO[0]->getNumIdTramitaEmBloco(); + $dblIdBloco = $arrObjTramiteBlocoProtocoloDTO[0]->getNumIdBloco(); $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); $objTramiteEmBlocoDTO->setNumId($dblIdBloco); $objTramiteEmBlocoDTO->setStrStaEstado(TramiteEmBlocoRN::$TE_CONCLUIDO_PARCIALMENTE); @@ -52,13 +48,13 @@ $blocoResultado = $objTramiteEmBlocoRN->consultar($objTramiteEmBlocoDTO); if ($blocoResultado != null) { - $objTramiteEmBlocoProtocoloDTO = new TramitaEmBlocoProtocoloDTO(); - $objTramiteEmBlocoProtocoloDTO->setNumIdTramitaEmBloco($dblIdBloco); - $objTramiteEmBlocoProtocoloDTO->retNumIdTramitaEmBloco(); + $objTramiteEmBlocoProtocoloDTO = new PenBlocoProcessoDTO(); + $objTramiteEmBlocoProtocoloDTO->setNumIdBloco($dblIdBloco); + $objTramiteEmBlocoProtocoloDTO->retNumIdBloco(); $objTramiteEmBlocoProtocoloDTO->setNumMaxRegistrosRetorno(1); - $objTramiteEmBlocoProtocoloDTO->setOrdNumId(InfraDTO::$TIPO_ORDENACAO_DESC); - - $tramitaEmBlocoProtocoloRN = new TramitaEmBlocoProtocoloRN(); + $objTramiteEmBlocoProtocoloDTO->setOrdNumIdBlocoProcesso(InfraDTO::$TIPO_ORDENACAO_DESC); + + $tramitaEmBlocoProtocoloRN = new PenBlocoProcessoRN(); $tramiteEmBlocoProtocoloDTO = $tramitaEmBlocoProtocoloRN->consultar($objTramiteEmBlocoProtocoloDTO); if ($tramiteEmBlocoProtocoloDTO == null) { @@ -72,12 +68,12 @@ $recusa = false; $cancelado = false; // Verificar se tem existe processo recusado dentro de um bloco - $objTramiteEmBlocoProtocoloDTO2 = new TramitaEmBlocoProtocoloDTO(); - $objTramiteEmBlocoProtocoloDTO2->setNumIdTramitaEmBloco($tramiteEmBlocoProtocoloDTO->getNumIdTramitaEmBloco()); - $objTramiteEmBlocoProtocoloDTO2->retNumIdTramitaEmBloco(); + $objTramiteEmBlocoProtocoloDTO2 = new PenBlocoProcessoDTO(); + $objTramiteEmBlocoProtocoloDTO2->setNumIdBloco($tramiteEmBlocoProtocoloDTO->getNumIdBloco()); + $objTramiteEmBlocoProtocoloDTO2->retNumIdBloco(); $objTramiteEmBlocoProtocoloDTO2->retDblIdProtocolo(); - $objTramiteEmBlocoProtocoloDTORN = new TramitaEmBlocoProtocoloRN($objTramiteEmBlocoProtocoloDTO2); + $objTramiteEmBlocoProtocoloDTORN = new PenBlocoProcessoRN($objTramiteEmBlocoProtocoloDTO2); $arrTramiteEmBlocoProtocolo = $objTramiteEmBlocoProtocoloDTORN->listar($objTramiteEmBlocoProtocoloDTO2); @@ -86,14 +82,11 @@ $objPenProtocolo->setStrSinObteveRecusa('S'); $objPenProtocolo->setNumMaxRegistrosRetorno(1); $objPenProtocolo->retDblIdProtocolo(); - $objPenProtocoloBD = new ProtocoloBD(BancoSEI::getInstance()); $ObjPenProtocoloDTO = $objPenProtocoloBD->consultar($objPenProtocolo); - if ($ObjPenProtocoloDTO != null) { $recusa = true; } - $objAtividadeDTO = new AtividadeDTO(); $objAtividadeDTO->setDblIdProtocolo(InfraArray::converterArrInfraDTO($arrTramiteEmBlocoProtocolo, 'IdProtocolo'), InfraDTO::$OPER_IN); $objAtividadeDTO->setNumIdTarefa([ @@ -112,7 +105,6 @@ if ($objAtividadeDTO != null) { $cancelado = true; } - if ($recusado == false && $cancelado == false) { $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); $objTramiteEmBlocoDTO->setNumId($tramiteEmBlocoProtocoloDTO->getNumIdTramitaEmBloco()); @@ -136,30 +128,33 @@ default: throw new InfraException("Ação '" . $_GET['acao'] . "' não reconhecida."); } - $arrComandos = array(); $arrComandos[] = ''; $arrComandos[] = ''; - $objTramitaEmBlocoProtocoloDTO = new TramitaEmBlocoProtocoloDTO(); - $objTramitaEmBlocoProtocoloDTO->retNumId(); + $objTramitaEmBlocoProtocoloDTO = new PenBlocoProcessoDTO(); + $objTramitaEmBlocoProtocoloDTO->setNumIdBloco($_GET['id_bloco']); $objTramitaEmBlocoProtocoloDTO->retDblIdProtocolo(); + $objTramitaEmBlocoProtocoloDTO->retNumIdBloco(); + $objTramitaEmBlocoProtocoloDTO->retNumIdBlocoProcesso(); $objTramitaEmBlocoProtocoloDTO->retNumSequencia(); - $objTramitaEmBlocoProtocoloDTO->retStrIdxRelBlocoProtocolo(); + $objTramitaEmBlocoProtocoloDTO->retStrNomeUsuario(); + $objTramitaEmBlocoProtocoloDTO->retDthEnvio(); + $objTramitaEmBlocoProtocoloDTO->retStrUnidadeDestino(); $objTramitaEmBlocoProtocoloDTO->retNumIdUsuario(); $objTramitaEmBlocoProtocoloDTO->retNumIdUnidadeBloco(); $objTramitaEmBlocoProtocoloDTO->retStrStaEstadoProtocolo(); - $objTramitaEmBlocoProtocoloDTO->setNumIdTramitaEmBloco($_GET['id_bloco']); + $objTramitaEmBlocoProtocoloDTO->retStrStaEstadoBloco(); + $objTramitaEmBlocoProtocoloDTO->retNumIdAndamento(); $strPalavrasPesquisa = PaginaSEI::getInstance()->recuperarCampo('txtProcedimentoFormatado'); if ($strPalavrasPesquisa!=''){ $objTramitaEmBlocoProtocoloDTO->setStrPalavrasPesquisa($strPalavrasPesquisa); } - $objTramitaEmBlocoProtocoloRN = new TramitaEmBlocoProtocoloRN(); + $objTramitaEmBlocoProtocoloRN = new PenBlocoProcessoRN(); $arrTramitaEmBlocoProtocoloDTO = $objTramitaEmBlocoProtocoloRN->listarProtocolosBloco($objTramitaEmBlocoProtocoloDTO); - $arrComandos = array(); $arrComandos[] = ''; @@ -167,38 +162,31 @@ $objPaginaSEI->prepararPaginacao($objTramitaEmBlocoProtocoloDTO); $objPaginaSEI->processarPaginacao($objTramitaEmBlocoProtocoloDTO); - $objPaginaSEI->prepararOrdenacao($objTramitaEmBlocoProtocoloDTO, 'IdxRelBlocoProtocolo', InfraDTO::$TIPO_ORDENACAO_DESC); + $objPaginaSEI->prepararOrdenacao($objTramitaEmBlocoProtocoloDTO, 'IdProtocolo', InfraDTO::$TIPO_ORDENACAO_DESC); $numRegistros = count($arrTramitaEmBlocoProtocoloDTO); if ($numRegistros > 0) { - $arrComandos[] = ''; - $strResultado = ''; $strSumarioTabela = 'Tabela de Processo em Lote.'; $strCaptionTabela = 'Processo em Lote'; - $strResultado .= '' . "\n"; $strResultado .= ''; $strResultado .= ''; $strResultado .= '' . "\n"; $strResultado .= '' . "\n"; $strResultado .= '' . "\n"; $strResultado .= '' . "\n"; $strResultado .= '' . "\n"; @@ -208,78 +196,75 @@ $strResultado .= '' . "\n"; $strCssTr = ''; foreach ($arrTramitaEmBlocoProtocoloDTO as $i => $objTramitaEmBlocoProtocoloDTO) { - $strCssTr = ($strCssTr == '') ? '' : ''; $strResultado .= $strCssTr; - $numIdBlocoProtocolo = $objTramitaEmBlocoProtocoloDTO->getNumId().'-'.$objTramitaEmBlocoProtocoloDTO->getDblIdProtocolo().'-'.$_GET['id_bloco']; + $numIdBlocoProtocolo = $objTramitaEmBlocoProtocoloDTO->getNumIdBlocoProcesso().'-'.$objTramitaEmBlocoProtocoloDTO->getDblIdProtocolo().'-'.$_GET['id_bloco']; $strResultado .= ''; $strResultado .= ''; $strResultado .= ''; + $objProcedimentoDTO = new ProcedimentoDTO(); + $objProcedimentoDTO->retStrProtocoloProcedimentoFormatado(); + $objProcedimentoDTO->setDblIdProcedimento($objTramitaEmBlocoProtocoloDTO->getDblIdProtocolo()); - $objPenLoteProcedimento = $objTramitaEmBlocoProtocoloDTO->getObjPenLoteProcedimentoDTO(); + $objProcedimentoRN = new ProcedimentoRN(); + $procedimento = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO); + + $strResultado .= '' . $procedimento->getStrProtocoloProcedimentoFormatado() . ''; + $strResultado .= ''; - if ($objPenLoteProcedimento && $objTramitaEmBlocoProtocoloDTO->getStrStaEstadoBloco() != TramiteEmBlocoRN::$TE_ABERTO) { - $strResultado .= ''; - $strResultado .= ''; - $strResultado .= ''; - + if ($objTramitaEmBlocoProtocoloDTO->getStrStaEstadoBloco() != TramiteEmBlocoRN::$TE_ABERTO) { + $strResultado .= ''; + $strResultado .= ''; + $strResultado .= ''; } else { $strResultado .= str_repeat('' . "\n", 3); } $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; $strResultado .= '' . "\n"; @@ -424,7 +409,7 @@ function onClickBtnTramitarProcessos() { var len = jQuery('input[name*=chkInfraItem]:checked').length; if (len > 0) { var form = jQuery('#frmLoteListar'); - form.attr('action', 'assinarLink('controlador.php?acao=pen_expedir_lote&acao_origem=pen_tramita_em_bloco_protocolo_listar&acao_retorno=pen_tramita_em_bloco_protocolo_listar&tramite_em_bloco=1'); ?>'); + form.attr('action', 'assinarLink('controlador.php?acao=pen_expedir_bloco&acao_origem=pen_tramita_em_bloco_protocolo_listar&acao_retorno=pen_tramita_em_bloco_protocolo_listar&tramite_em_bloco=1'); ?>'); form.submit(); } else { alert('Selecione pelo menos um processo'); diff --git a/src/pen_tramite_bloco_listar.php b/src/pen_tramite_bloco_listar.php index 65f00906c..add09feed 100644 --- a/src/pen_tramite_bloco_listar.php +++ b/src/pen_tramite_bloco_listar.php @@ -48,13 +48,13 @@ $arrObjTramiteEmBloco = []; $excluir = true; foreach ($arrTramiteEmBloco as $objTramiteEmBloco) { - $tramitaEmBlocoProtocoloDTO = new TramitaEmBlocoProtocoloDTO(); - $tramitaEmBlocoProtocoloDTO->setNumIdTramitaEmBloco($objTramiteEmBloco->getNumId()); - $tramitaEmBlocoProtocoloDTO->retNumIdTramitaEmBloco(); - $tramitaEmBlocoProtocoloDTO->retNumId(); + $tramitaEmBlocoProtocoloDTO = new PenBlocoProcessoDTO(); + $tramitaEmBlocoProtocoloDTO->setNumIdBloco($objTramiteEmBloco->getNumId()); + $tramitaEmBlocoProtocoloDTO->retNumIdBloco(); + $tramitaEmBlocoProtocoloDTO->retNumIdBlocoProcesso(); $tramitaEmBlocoProtocoloDTO->retDblIdProtocolo(); - - $tramitaEmBlocoProtocoloRN = new TramitaEmBlocoProtocoloRN(); + + $tramitaEmBlocoProtocoloRN = new PenBlocoProcessoRN(); $arrTramitaEmBlocoProtocoloRN = $tramitaEmBlocoProtocoloRN->listar($tramitaEmBlocoProtocoloDTO); if ($arrTramitaEmBlocoProtocoloRN == null) { @@ -202,15 +202,16 @@ $strResultado .= "
' . $objPaginaSEI->gerarCaptionTabela($strCaptionTabela, $numRegistros) . '
' . $objPaginaSEI->getThCheck() . ''; - $strResultado .= '
'; $strResultado .= '
Seq
'; $strResultado .= '
Ordenar Processo Ascendente
'; $strResultado .= '
Ordenar Processo Descendente
'; $strResultado .= '
'; - $strResultado .= '
'; - $strResultado .= '
'; $strResultado .= '
Processo
'; $strResultado .= '
Ordenar Processo Ascendente
'; $strResultado .= '
Ordenar Processo Descendente
'; $strResultado .= '
'; - $strResultado .= '
UsuárioData do Envio
' . $objPaginaSEI->getTrCheck($i, $numIdBlocoProtocolo, $numIdBlocoProtocolo) . '' . ($i + 1) . ''; - $strResultado .= '' . $objTramitaEmBlocoProtocoloDTO->getStrIdxRelBlocoProtocolo() . ''; - $strResultado .= '' . PaginaSEI::tratarHTML($objPenLoteProcedimento[0]->getStrNomeUsuario()) . '' . PaginaSEI::tratarHTML($objPenLoteProcedimento[0]->getDthRegistro()) . '' . PaginaSEI::tratarHTML($objPenLoteProcedimento[0]->getStrUnidadeDestino()) . ''. PaginaSEI::tratarHTML($objTramitaEmBlocoProtocoloDTO->getStrNomeUsuario()) . ''. PaginaSEI::tratarHTML($objTramitaEmBlocoProtocoloDTO->getDthEnvio()) . ''. PaginaSEI::tratarHTML($objTramitaEmBlocoProtocoloDTO->getStrUnidadeDestino()) . '' . "\n"; - if ($objTramitaEmBlocoProtocoloDTO->getStrStaEstadoBloco() == TramiteEmBlocoRN::$TE_ABERTO) { - $strResultado .= 'Em aberto'; - } elseif ($objTramitaEmBlocoProtocoloDTO->getStrStaEstadoBloco() == TramiteEmBlocoRN::$TE_DISPONIBILIZADO) { - $strResultado .= ''; - } elseif ($objTramitaEmBlocoProtocoloDTO->getStrStaEstadoBloco() == TramiteEmBlocoRN::$TE_CONCLUIDO && count($objPenLoteProcedimento) > 1) { - $strResultado .= ''; - } elseif ($objTramitaEmBlocoProtocoloDTO->getStrSinObteveRecusa() == 'S') { - $strResultado .= 'Um trâmite para esse processo foi recusado'; - } else { - - $processoConcluidoRecebido = ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO); - $processoConcluidoAvulso = ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_DOCUMENTO_AVULSO_RECEBIDO); - $processoTramiteExpedido = ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_EXTERNO); - $processoTramiteCancelado = ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_CANCELADO); - $processoTramiteProcessamento = ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO); - $processoTramiteAberto = ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_NAO_INICIADO); - - switch ($objTramitaEmBlocoProtocoloDTO->getNumStaIdTarefa()) { - case $processoConcluidoAvulso: - case $processoTramiteExpedido: - case $processoConcluidoRecebido: - $strResultado .= ''; - break; - case $processoTramiteProcessamento: - $strResultado .= ''; - break; - case $processoTramiteCancelado: - $strResultado .= ''; - break; - default: - $strResultado .= 'Em aberto'; - break; - } + switch ($objTramitaEmBlocoProtocoloDTO->getNumIdAndamento()) { + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO: + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_ENVIADOS_REMETENTE: + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_METADADOS_RECEBIDO_DESTINATARIO: + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_RECEBIDOS_DESTINATARIO: + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_ENVIADO_DESTINATARIO: + $strResultado .= ''; + break; + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE: + $strResultado .= ''; + break; + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA: + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO: + $strResultado .= ''; + break; + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO: + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE: + $strResultado .= ''; + break; + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_NAO_INICIADO: + default: + $strResultado .= 'Em aberto'; + break; } $strResultado .= '' . "\n"; - - if ($objTramitaEmBlocoProtocoloDTO->getNumIdUnidadeBloco() == SessaoSEI::getInstance()->getNumIdUnidadeAtual()) { - if ($objTramitaEmBlocoProtocoloDTO->getStrSinObteveRecusa() == 'S' || - $objTramitaEmBlocoProtocoloDTO->getNumStaIdTarefa() == $processoTramiteCancelado || - $objTramitaEmBlocoProtocoloDTO->getStrStaEstadoBloco() == TramiteEmBlocoRN::$TE_ABERTO ) { - - if ($objTramitaEmBlocoProtocoloDTO->getStrStaEstadoBloco() != TramiteEmBlocoRN::$TE_DISPONIBILIZADO && - $objTramitaEmBlocoProtocoloDTO->getStrStaEstadoBloco() != TramiteEmBlocoRN::$TE_CONCLUIDO) { - $strResultado .= 'Excluir processo '; - } - } + $strResultado .= ''. "\n"; + + $estadosBloqueados = array( + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO, + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_ENVIADOS_REMETENTE, + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_METADADOS_RECEBIDO_DESTINATARIO, + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_RECEBIDOS_DESTINATARIO, + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_ENVIADO_DESTINATARIO, + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE + ); + if ( + $objTramitaEmBlocoProtocoloDTO->getNumIdUnidadeBloco() == SessaoSEI::getInstance()->getNumIdUnidadeAtual() + && !in_array($objTramitaEmBlocoProtocoloDTO->getNumIdAndamento(), $estadosBloqueados) + ) { + $strResultado .= 'Excluir processo '; } $strResultado .= '
"; // Tramitar bloco - $objTramitaEmBlocoProtocoloDTO = new TramitaEmBlocoProtocoloDTO(); - $objTramitaEmBlocoProtocoloDTO->setNumIdTramitaEmBloco($idBlocoTramite); - $objTramitaEmBlocoProtocoloDTO->retDblIdProtocolo(); - $objTramitaEmBlocoProtocoloDTO->retNumIdTramitaEmBloco(); - $objTramitaEmBlocoProtocoloRN = new TramitaEmBlocoProtocoloRN(); - $arrTramiteEmBlocoProtocolo = $objTramitaEmBlocoProtocoloRN->listar($objTramitaEmBlocoProtocoloDTO); + $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTO->setNumIdBloco($idBlocoTramite); + $objPenBlocoProcessoDTO->retDblIdProtocolo(); + $objPenBlocoProcessoDTO->retNumIdBloco(); + + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $arrTramiteEmBlocoProtocolo = $objPenBlocoProcessoRN->listar($objPenBlocoProcessoDTO); if (!empty($arrTramiteEmBlocoProtocolo) && $linha['estado'] == $objTramiteEmBloco->retornarEstadoDescricao(TramiteEmBlocoRN::$TE_ABERTO)) { - $strResultado .= 'getDiretorioImagens()) . '" title="Tramitar Bloco" alt="Bloco-' . $cont . '" class="infraImg iconTramita" /> '; + $strResultado .= 'getDiretorioImagens()) . '" title="Tramitar Bloco" alt="Bloco-' . $cont . '" class="infraImg iconTramita" /> '; } diff --git a/src/pen_tramite_processo_em_bloco_cadastrar.php b/src/pen_tramite_processo_em_bloco_cadastrar.php index ab9532cb1..185c85ae1 100644 --- a/src/pen_tramite_processo_em_bloco_cadastrar.php +++ b/src/pen_tramite_processo_em_bloco_cadastrar.php @@ -54,8 +54,8 @@ exit(0); } - $tramitaEmBlocoProtocoloRN = new TramitaEmBlocoProtocoloRN(); - $validar = $tramitaEmBlocoProtocoloRN->validarQuantidadeDeItensNoBloco($idBlocoExterno, [$_GET['id_procedimento']]); + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $validar = $objPenBlocoProcessoRN->validarQuantidadeDeItensNoBloco($idBlocoExterno, [$_GET['id_procedimento']]); if ($validar !== false) { $objPaginaSEI->adicionarMensagem($validar, InfraPagina::$TIPO_MSG_ERRO); @@ -64,15 +64,19 @@ exit(0); } - $objTramiteEmBlocoProtocoloDTO = new TramitaEmBlocoProtocoloDTO(); + // Esse quem vai ficar + $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTO->setNumIdBlocoProcesso(null); + $objPenBlocoProcessoDTO->setDblIdProtocolo($_GET['id_procedimento']); + $objPenBlocoProcessoDTO->setNumIdBloco($idBlocoExterno); + $dthRegistro = date('d/m/Y H:i:s'); + $objPenBlocoProcessoDTO->setDthRegistro($dthRegistro); + $objPenBlocoProcessoDTO->setDthAtualizado($dthRegistro); + $objPenBlocoProcessoDTO->setNumIdBloco($idBlocoExterno); + $objPenBlocoProcessoDTO->setNumIdUsuario($objSessaoSEI->getNumIdUsuario()); + $objPenBlocoProcessoDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); - $objTramiteEmBlocoProtocoloDTO->setNumId(null); - $objTramiteEmBlocoProtocoloDTO->setDblIdProtocolo($_GET['id_procedimento']); - $objTramiteEmBlocoProtocoloDTO->setNumIdTramitaEmBloco($idBlocoExterno); - $objTramiteEmBlocoProtocoloDTO->setStrIdxRelBlocoProtocolo($procedimento->getStrProtocoloProcedimentoFormatado()); - - $objTramiteEmBlocoProtocoloRN = new TramitaEmBlocoProtocoloRN(); - $validar = $objTramiteEmBlocoProtocoloRN->validarBlocoDeTramite($_GET['id_procedimento']); + $validar = $objPenBlocoProcessoRN->validarBlocoDeTramite($_GET['id_procedimento']); if ($validar) { $objPaginaSEI->adicionarMensagem($validar, InfraPagina::$TIPO_MSG_AVISO); @@ -80,7 +84,8 @@ exit(0); } - $objTramiteEmBlocoProtocoloDTO = $objTramiteEmBlocoProtocoloRN->cadastrar($objTramiteEmBlocoProtocoloDTO); + $objPenBlocoProcessoDTO = $objPenBlocoProcessoRN->cadastrar($objPenBlocoProcessoDTO); + $objPaginaSEI->adicionarMensagem('Processo "' . $procedimento->getStrProtocoloProcedimentoFormatado() . '" adicionado ao bloco', InfraPagina::$TIPO_MSG_AVISO); } catch (Exception $e) { PaginaSEI::getInstance()->processarExcecao($e); @@ -101,8 +106,9 @@ $sucesso = false; $arrProtocolosOrigemProtocolo = explode(',', $strIdItensSelecionados); - $tramitaEmBlocoProtocoloRN = new TramitaEmBlocoProtocoloRN(); - $validar = $tramitaEmBlocoProtocoloRN->validarQuantidadeDeItensNoBloco($idBlocoExterno, $arrProtocolosOrigemProtocolo); + // Refatorar validarQuantidadeDeItensNoBloco + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $validar = $objPenBlocoProcessoRN->validarQuantidadeDeItensNoBloco($idBlocoExterno, $arrProtocolosOrigemProtocolo); if ($validar !== false) { $objPaginaSEI->adicionarMensagem($validar, InfraPagina::$TIPO_MSG_ERRO); @@ -112,28 +118,21 @@ } foreach ($arrProtocolosOrigemProtocolo as $idItensSelecionados) { - - $tramitaEmBlocoProtocoloDTO = new TramitaEmBlocoProtocoloDTO(); - $tramitaEmBlocoProtocoloDTO->setDblIdProtocolo($idItensSelecionados); - $tramitaEmBlocoProtocoloDTO->setNumIdTramitaEmBloco($idBlocoExterno); - $tramitaEmBlocoProtocoloDTO->retNumId(); - $tramitaEmBlocoProtocoloDTO->retNumIdTramitaEmBloco(); - $tramitaEmBlocoProtocoloDTO->retStrIdxRelBlocoProtocolo(); - - $tramitaEmBlocoProtocoloRN = new TramitaEmBlocoProtocoloRN(); - $validar = $tramitaEmBlocoProtocoloRN->validarBlocoDeTramite($idItensSelecionados); + $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTO->setDblIdProtocolo($idItensSelecionados); + $objPenBlocoProcessoDTO->setNumIdBloco($idBlocoExterno); + $objPenBlocoProcessoDTO->retNumIdBlocoProcesso(); + $objPenBlocoProcessoDTO->retNumIdBloco(); + $dtRegistro = date('d/m/Y H:i:s'); + $objPenBlocoProcessoDTO->setDthRegistro($dtRegistro); + $objPenBlocoProcessoDTO->setDthAtualizado($dtRegistro); + $objPenBlocoProcessoDTO->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_NAO_INICIADO); + + $validar = $objPenBlocoProcessoRN->validarBlocoDeTramite($idItensSelecionados); if ($validar == false) { $sucesso = true; - $objProcedimentoDTO = new ProcedimentoDTO(); - $objProcedimentoDTO->retStrProtocoloProcedimentoFormatado(); - $objProcedimentoDTO->setDblIdProcedimento($idItensSelecionados); - - $objProcedimentoRN = new ProcedimentoRN(); - $procedimento = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO); - - $tramitaEmBlocoProtocoloDTO->setStrIdxRelBlocoProtocolo($procedimento->getStrProtocoloProcedimentoFormatado()); - $objTramiteEmBlocoProtocoloDTO = $tramitaEmBlocoProtocoloRN->cadastrar($tramitaEmBlocoProtocoloDTO); + $objPenBlocoProcessoDTO = $objPenBlocoProcessoRN->cadastrar($objPenBlocoProcessoDTO); } else { $erros = true; $objPaginaSEI->adicionarMensagem($validar, InfraPagina::$TIPO_MSG_ERRO); diff --git a/src/rn/ExpedirProcedimentoRN.php b/src/rn/ExpedirProcedimentoRN.php index af4cdd15b..db3b4283a 100755 --- a/src/rn/ExpedirProcedimentoRN.php +++ b/src/rn/ExpedirProcedimentoRN.php @@ -128,7 +128,7 @@ protected function expedirProcedimentoControlado(ExpedirProcedimentoDTO $objExpe SessaoSEI::getInstance()->validarAuditarPermissao('pen_procedimento_expedir', __METHOD__, $objExpedirProcedimentoDTO); $dblIdProcedimento = $objExpedirProcedimentoDTO->getDblIdProcedimento(); - $objLoteProcedimentoRN = new PenLoteProcedimentoRN(); + $objLoteProcedimentoRN = new PenBlocoProcessoRN(); $bolSinProcessamentoEmLote = $objExpedirProcedimentoDTO->getBolSinProcessamentoEmLote(); $numIdLote = $objExpedirProcedimentoDTO->getNumIdLote(); $numIdAtividade = $objExpedirProcedimentoDTO->getNumIdAtividade(); @@ -142,9 +142,13 @@ protected function expedirProcedimentoControlado(ExpedirProcedimentoDTO $objExpe $numTempoInicialRecebimento = microtime(true); $this->gravarLogDebug(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_VALIDACAO, 2); - $objPenLoteProcedimentoDTO = new PenLoteProcedimentoDTO(); - $objPenLoteProcedimentoDTO->setDblIdProcedimento($dblIdProcedimento); - $objPenLoteProcedimentoDTO->setNumIdLote($numIdLote); + $objPenLoteProcedimentoDTO = new PenBlocoProcessoDTO(); + $objPenLoteProcedimentoDTO->setDblIdProtocolo($dblIdProcedimento); + $objPenLoteProcedimentoDTO->setNumIdBlocoProcesso($numIdLote); + $objPenLoteProcedimentoDTO->retTodos(); + + $objPenLoteProcedimentoRN = new PenBlocoProcessoRN(); + $objPenLoteProcedimentoDTO = $objPenLoteProcedimentoRN->consultar($objPenLoteProcedimentoDTO); } $objInfraException = new InfraException(); @@ -239,7 +243,7 @@ protected function expedirProcedimentoControlado(ExpedirProcedimentoDTO $objExpe if($bolSinProcessamentoEmLote){ $this->gravarLogDebug(sprintf('Envio do metadados do processo %s', $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado()), 2); $objPenLoteProcedimentoDTO->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO); - $objLoteProcedimentoRN->alterarLoteProcedimento($objPenLoteProcedimentoDTO); + $objLoteProcedimentoRN->alterar($objPenLoteProcedimentoDTO); $idAtividadeExpedicao = $numIdAtividade; }else{ $idAtividadeExpedicao = $this->bloquearProcedimentoExpedicao($objExpedirProcedimentoDTO, $objProcesso->idProcedimentoSEI); @@ -289,7 +293,7 @@ protected function expedirProcedimentoControlado(ExpedirProcedimentoDTO $objExpe }else{ $this->gravarLogDebug('Concluído envio dos componentes do processo', 2); $objPenLoteProcedimentoDTO->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_ENVIADOS_REMETENTE); - $objLoteProcedimentoRN->alterarLoteProcedimento($objPenLoteProcedimentoDTO); + $objLoteProcedimentoRN->alterar($objPenLoteProcedimentoDTO); } $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Concluído envio dos componentes do processo', 'S')); @@ -3007,13 +3011,14 @@ protected function cancelarTramiteInternoControlado(ProtocoloDTO $objDtoProtocol $dblIdProcedimento = $objDtoProtocolo->getDblIdProtocolo(); - $objPenLoteProcedimentoDTO = new PenLoteProcedimentoDTO(); + // Atualizar aqui PenBlocoProcessoDTO PenBlocoProcessoRN + $objPenLoteProcedimentoDTO = new PenBlocoProcessoDTO(); $objPenLoteProcedimentoDTO->retTodos(); - $objPenLoteProcedimentoDTO->setDblIdProcedimento($dblIdProcedimento); - $objPenLoteProcedimentoDTO->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_NAO_INICIADO); + $objPenLoteProcedimentoDTO->setDblIdProtocolo($dblIdProcedimento); + $objPenLoteProcedimentoDTO->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO); - $objPenLoteProcedimentoRN = new PenLoteProcedimentoRN(); - $objPenLoteProcedimentoDTO = $objPenLoteProcedimentoRN->consultarLoteProcedimento($objPenLoteProcedimentoDTO); + $objPenLoteProcedimentoRN = new PenBlocoProcessoRN(); + $objPenLoteProcedimentoDTO = $objPenLoteProcedimentoRN->consultar($objPenLoteProcedimentoDTO); $cancelarLote=false; if(!is_null($objPenLoteProcedimentoDTO)){ @@ -3090,14 +3095,12 @@ protected function cancelarTramiteInternoControlado(ProtocoloDTO $objDtoProtocol ProcessoEletronicoRN::desbloquearProcesso($dblIdProcedimento); if(is_object($objPenLoteProcedimentoDTO)){ + // Atualizar aqui PenBlocoProcessoDTO PenBlocoProcessoRN + $objPenLoteProcedimentoDTO->setDblIdProtocolo($dblIdProcedimento); + $objPenLoteProcedimentoDTO->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO); - $objPenExpedirLoteDTO = new PenLoteProcedimentoDTO(); - $objPenExpedirLoteDTO->setNumIdLote($objPenLoteProcedimentoDTO->getNumIdLote()); - $objPenExpedirLoteDTO->setDblIdProcedimento($dblIdProcedimento); - $objPenExpedirLoteDTO->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO); - - $objPenLoteProcedimentoRN = new PenLoteProcedimentoRN(); - $objPenLoteProcedimentoRN->alterarLoteProcedimento($objPenExpedirLoteDTO); + $objPenLoteProcedimentoRN = new PenBlocoProcessoRN(); + $objPenLoteProcedimentoRN->alterar($objPenLoteProcedimentoDTO); } if(!$cancelarLote){ diff --git a/src/rn/PENAgendamentoRN.php b/src/rn/PENAgendamentoRN.php index 408fe4a0c..a26748d90 100755 --- a/src/rn/PENAgendamentoRN.php +++ b/src/rn/PENAgendamentoRN.php @@ -179,7 +179,7 @@ protected function atualizarInformacoesPENControlado() * * @return void */ - public function processarTarefasPEN($arrParametros) + public function processarTarefasRecebimentoPEN($arrParametros) { InfraDebug::getInstance()->setBolLigado(true); InfraDebug::getInstance()->setBolDebugInfra(false); @@ -209,7 +209,7 @@ public function processarTarefasPEN($arrParametros) } // Faz uma requisição para o controlador do sistema - PendenciasTramiteRN::inicializarMonitoramentoPendencias($numValorWorkers, $bolMonitoramentoAtivado, $bolExecutarEmSegundoPlano, $bolDebugAtivo); + PendenciasTramiteRN::inicializarMonitoramentoRecebimentoPendencias($numValorWorkers, $bolMonitoramentoAtivado, $bolExecutarEmSegundoPlano, $bolDebugAtivo); }catch(Exception $e){ InfraDebug::getInstance()->setBolLigado(false); @@ -220,6 +220,51 @@ public function processarTarefasPEN($arrParametros) } } + /** + * Processa tarefas recebidas pelo Barramento de Serviços do PEN para receber novos processos/documentos, + * notificações de conclusão de trâmites ou notificação de recusa de processos + * + * @return void + */ + public function processarTarefasEnvioPEN($arrParametros) + { + InfraDebug::getInstance()->setBolLigado(true); + InfraDebug::getInstance()->setBolDebugInfra(false); + InfraDebug::getInstance()->setBolEcho(false); + InfraDebug::getInstance()->limpar(); + + try { + if (!PENIntegracao::verificarCompatibilidadeConfiguracoes()) { + return false; + } + + $bolDebugAtivo = array_key_exists('debug', $arrParametros) && $arrParametros['debug'][0] != false; + $bolMonitoramentoAtivado = array_key_exists('monitorar', $arrParametros) && $arrParametros['monitorar'][0] != false; + $strValorWorkers = array_key_exists('workers', $arrParametros) ? $arrParametros['workers'][0] : null; + $strValorWorkers = (is_null($strValorWorkers) && array_key_exists('worker', $arrParametros)) ? $arrParametros['worker'][0] : $strValorWorkers; + $numValorWorkers = is_numeric($strValorWorkers) ? intval($strValorWorkers) : null; + $bolForcarInicializacaoWorkers = array_key_exists('forcarInicializacaoWorkers', $arrParametros) && $arrParametros['forcarInicializacaoWorkers'][0] == true; + $bolAtivaWorker = (is_null($numValorWorkers) || $numValorWorkers > 0) && ($this->foiIniciadoPeloTerminal() || $bolForcarInicializacaoWorkers); + + $objConfiguracaoModPEN = ConfiguracaoModPEN::getInstance(); + $arrObjGearman = $objConfiguracaoModPEN->getValor("PEN", "Gearman", false); + $bolExecutarEmSegundoPlano = !empty(trim(@$arrObjGearman["Servidor"] ?: null)); + + // Inicializa workers do Gearman caso este componente esteja configurado e não desativado no agendamento do sistema + if ($bolAtivaWorker && $bolExecutarEmSegundoPlano) { + ProcessarPendenciasRN::inicializarWorkers($numValorWorkers); + } + + // Faz uma requisição para o controlador do sistema + PendenciasEnvioTramiteRN::inicializarMonitoramentoEnvioPendencias($numValorWorkers, $bolMonitoramentoAtivado, $bolExecutarEmSegundoPlano, $bolDebugAtivo); + } catch (Exception $e) { + InfraDebug::getInstance()->setBolLigado(false); + InfraDebug::getInstance()->setBolDebugInfra(false); + InfraDebug::getInstance()->setBolEcho(false); + + throw new InfraException('Erro processando pendências de trâmites do Barramento de Serviços do PEN.', $e); + } + } private function foiIniciadoPeloTerminal() { diff --git a/src/rn/PenBlocoProcessoRN.php b/src/rn/PenBlocoProcessoRN.php new file mode 100644 index 000000000..579bf4b9e --- /dev/null +++ b/src/rn/PenBlocoProcessoRN.php @@ -0,0 +1,547 @@ +validarAuditarPermissao('pen_expedir_lote', __METHOD__, $objPenLoteProcedimentoDTO); + + //Obter todos os processos pendentes antes de iniciar o monitoramento + $arrObjPendenciasLoteDTO = $this->listar($objPenLoteProcedimentoDTO) ?: array(); + shuffle($arrObjPendenciasLoteDTO); + + $objPenLoteProcedimentoBD = new PenLoteProcedimentoBD($this->getObjInfraIBanco()); + foreach ($arrObjPendenciasLoteDTO as $objPendenciasLoteDTO) { + //Captura todas as pendências e status retornadas para impedir duplicidade + $arrPendenciasLoteRetornadas[] = sprintf("%d-%s", $objPendenciasLoteDTO->getDblIdProtocolo(), $objPendenciasLoteDTO->getNumIdAndamento()); + + $objPendenciasLoteDTO->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO); + $objPenLoteProcedimentoBD->alterar($objPendenciasLoteDTO); + + yield $objPendenciasLoteDTO; + } + } catch (\Exception $e) { + throw new InfraException('Falha em obter pendências de trâmite de processos em lote.', $e); + } + } + + protected function desbloquearProcessoLoteControlado($dblIdProcedimento) + { + try { + + $objPenLoteProcedimentoDTO = new PenBlocoProcessoDTO(); + $objPenLoteProcedimentoDTO->retTodos(); + $objPenLoteProcedimentoDTO->setDblIdProtocolo($dblIdProcedimento); + $objPenLoteProcedimentoDTO->setNumIdAndamento(array(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_NAO_INICIADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO), InfraDTO::$OPER_IN); + + $objPenLoteProcedimentoDTO = $this->consultar($objPenLoteProcedimentoDTO); + + if (!is_null($objPenLoteProcedimentoDTO)) { + $objPenLoteProcedimentoDTO->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO); + + $this->alterar($objPenLoteProcedimentoDTO); + + // Atualizar Bloco para concluido parcialmente + $objTramiteEmBlocoProtocoloDTO = new PenBlocoProcessoDTO(); + $objTramiteEmBlocoProtocoloDTO->setDblIdProtocolo($dblIdProcedimento); + $objTramiteEmBlocoProtocoloDTO->setOrdNumIdBlocoProcesso(InfraDTO::$TIPO_ORDENACAO_DESC); + $objTramiteEmBlocoProtocoloDTO->retDblIdProtocolo(); + $objTramiteEmBlocoProtocoloDTO->retNumIdBloco(); + + $objTramitaEmBlocoProtocoloRN = new PenBlocoProcessoRN(); + $tramiteEmBlocoProtocolo = $objTramitaEmBlocoProtocoloRN->listar($objTramiteEmBlocoProtocoloDTO); + + if ($tramiteEmBlocoProtocolo != null) { + $this->atualizarEstadoDoBlocoConcluidoParcialmente($tramiteEmBlocoProtocolo); + } + } + + //Desbloqueia o processo + $objProtocoloRN = new ProtocoloRN(); + $objProtocoloDTO = new ProtocoloDTO(); + $objProtocoloDTO->setStrStaEstado(ProtocoloRN::$TE_NORMAL); + $objProtocoloDTO->setDblIdProtocolo($dblIdProcedimento); + $objProtocoloRN->alterarRN0203($objProtocoloDTO); + + //Cria o Objeto que registrar a Atividade de cancelamento + $objAtividadeDTO = new AtividadeDTO(); + $objAtividadeDTO->setDblIdProtocolo($dblIdProcedimento); + $objAtividadeDTO->setNumIdUnidade($objPenLoteProcedimentoDTO->getNumIdUnidade()); + $objAtividadeDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_CANCELADO)); + + //Seta os atributos do tamplate de descrio dessa atividade + $objAtributoAndamentoDTOHora = new AtributoAndamentoDTO(); + $objAtributoAndamentoDTOHora->setStrNome('DATA_HORA'); + $objAtributoAndamentoDTOHora->setStrIdOrigem(null); + $objAtributoAndamentoDTOHora->setStrValor(date('d/m/Y H:i')); + + $objUsuarioDTO = new UsuarioDTO(); + $objUsuarioDTO->setNumIdUsuario($objPenLoteProcedimentoDTO->getNumIdUsuario()); + $objUsuarioDTO->setBolExclusaoLogica(false); + $objUsuarioDTO->retStrNome(); + + $objUsuarioRN = new UsuarioRN(); + $objUsuario = $objUsuarioRN->consultarRN0489($objUsuarioDTO); + + $objAtributoAndamentoDTOUser = new AtributoAndamentoDTO(); + $objAtributoAndamentoDTOUser->setStrNome('USUARIO'); + $objAtributoAndamentoDTOUser->setStrIdOrigem(null); + $objAtributoAndamentoDTOUser->setStrValor($objUsuario->getStrNome()); + + $objAtividadeDTO->setArrObjAtributoAndamentoDTO(array($objAtributoAndamentoDTOHora, $objAtributoAndamentoDTOUser)); + + $objAtividadeRN = new AtividadeRN(); + $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); + } catch (\Exception $e) { + throw new InfraException('Falha em obter pendências de trâmite de processos em lote.', $e); + } + } + + /** + * Registra a tentativa de trâmite do processo em lote para posterior verificação de estouro do limite de envios + * + * @param PenBlocoProcessoDTO $objPenLoteProcedimentoDTO + * @return void + */ + protected function registrarTentativaEnvioControlado(PenBlocoProcessoDTO $objPenLoteProcedimentoDTO) + { + $numTentativas = $objPenLoteProcedimentoDTO->getNumTentativas() ?: 0; + $numTentativas += 1; + + $objPenLoteProcedimentoDTO->setNumTentativas($numTentativas); + $objPenLoteProcedimentoBD = new PenBlocoProcessoBD($this->getObjInfraIBanco()); + $objPenLoteProcedimentoBD->alterar($objPenLoteProcedimentoDTO); + } + + protected function listarProtocolosBlocoConectado(PenBlocoProcessoDTO $parObjTramitaEmBlocoProtocoloDTO) + { + try { + + $ret = array(); + + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao('pen_tramita_em_bloco_protocolo_listar', __METHOD__, $parObjTramitaEmBlocoProtocoloDTO); + + $parObjRelBlocoProtocoloDTO = InfraString::prepararPesquisaDTO($parObjTramitaEmBlocoProtocoloDTO, "PalavrasPesquisa", "ProtocoloFormatadoProtocolo"); + $parObjRelBlocoProtocoloDTO->setStrStaNivelAcessoGlobalProtocolo(ProtocoloRN::$NA_SIGILOSO, InfraDTO::$OPER_DIFERENTE); + $arrObjRelProtocoloBlocoDTO = $this->listar($parObjRelBlocoProtocoloDTO); + + foreach ($arrObjRelProtocoloBlocoDTO as $dto) { + + $objPenProtocoloDTO = new PenProtocoloDTO(); + $objPenProtocoloDTO->setDblIdProtocolo($dto->getDblIdProtocolo()); + $objPenProtocoloDTO->retStrSinObteveRecusa(); + $objPenProtocoloDTO->setNumMaxRegistrosRetorno(1); + + $objProtocoloBD = new ProtocoloBD(BancoSEI::getInstance()); + $objPenProtocoloDTO = $objProtocoloBD->consultar($objPenProtocoloDTO); + + if (!empty($objPenProtocoloDTO)) { + $dto->setStrSinObteveRecusa($objPenProtocoloDTO->getStrSinObteveRecusa()); + } else { + $dto->setStrSinObteveRecusa('N'); + } + + $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $objTramiteEmBlocoDTO->setNumId($parObjTramitaEmBlocoProtocoloDTO->getNumIdBloco()); + $objTramiteEmBlocoDTO->retNumId(); + $objTramiteEmBlocoDTO->retStrStaEstado(); + + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $blocoResultado = $objTramiteEmBlocoRN->consultar($objTramiteEmBlocoDTO); + + if (!empty($blocoResultado)) { + $dto->setStrStaEstadoBloco($blocoResultado->getStrStaEstado()); + } else { + $dto->setStrStaEstadoBloco('A'); + } + + $objAtividadeDTO = new AtividadeDTO(); + $objAtividadeDTO->setDblIdProtocolo($dto->getDblIdProtocolo()); + $objAtividadeDTO->setNumIdTarefa([ + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO), + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO), + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_CANCELADO), + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_RECUSADO), + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_EXTERNO), + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_ABORTADO) + ], InfraDTO::$OPER_IN); + $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC); + $objAtividadeDTO->setNumMaxRegistrosRetorno(1); + $objAtividadeDTO->retNumIdAtividade(); + $objAtividadeDTO->retNumIdTarefa(); + $objAtividadeDTO->retDblIdProcedimentoProtocolo(); + $objAtividadeRN = new AtividadeRN(); + $arrObjAtividadeDTO = $objAtividadeRN->listarRN0036($objAtividadeDTO); + + if (!empty($arrObjAtividadeDTO) && $arrObjAtividadeDTO[0]->getNumIdTarefa() != null) { + $dto->setNumStaIdTarefa($arrObjAtividadeDTO[0]->getNumIdTarefa()); + } else { + $dto->setNumStaIdTarefa(0); + } + + $ret[] = $dto; + } + + return $ret; + } catch (Exception $e) { + throw new InfraException('Erro listando protocolos do bloco.', $e); + } + } + + protected function consultarProtocolosBlocoConectado(TramitaEmBlocoProtocoloDTO $objTramitaEmBlocoProtocoloDTO) + { + $ret = array(); + + $parObjTramitaEmBlocoProtocoloDTO = $this->listar($objTramitaEmBlocoProtocoloDTO); + + foreach ($parObjTramitaEmBlocoProtocoloDTO as $objTramitaEmBlocoProtocoloDTO) { + + $objAtividadeDTO = new AtividadeDTO(); + $objAtividadeDTO->setDblIdProtocolo($objTramitaEmBlocoProtocoloDTO->getDblIdProtocolo()); + $objAtividadeDTO->setNumIdTarefa([ + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO), + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO), + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_CANCELADO), + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_RECUSADO), + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_EXTERNO), + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_ABORTADO) + ], InfraDTO::$OPER_IN); + $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC); + $objAtividadeDTO->setNumMaxRegistrosRetorno(1); + $objAtividadeDTO->retNumIdAtividade(); + $objAtividadeDTO->retNumIdTarefa(); + $objAtividadeDTO->retDblIdProcedimentoProtocolo(); + $objAtividadeRN = new AtividadeRN(); + $arrObjAtividadeDTO = $objAtividadeRN->listarRN0036($objAtividadeDTO); + + if (!empty($arrObjAtividadeDTO) && $arrObjAtividadeDTO[0]->getNumIdTarefa() != null) { + $objTramitaEmBlocoProtocoloDTO->setNumStaIdTarefa($arrObjAtividadeDTO[0]->getNumIdTarefa()); + } else { + $objTramitaEmBlocoProtocoloDTO->setNumStaIdTarefa(0); + } + + return $objTramitaEmBlocoProtocoloDTO; + } + } + + protected function consultarConectado(PenBlocoProcessoDTO $objDTO) + { + try { + $objTramitaEmBlocoProtocoloBD = new PenBlocoProcessoBD($this->getObjInfraIBanco()); + return $objTramitaEmBlocoProtocoloBD->consultar($objDTO); + } catch (Exception $e) { + throw new InfraException('Erro consutando blocos.', $e); + } + } + + /** + * Método utilizado para exclusão de dados. + * @param TramitaEmBlocoProtocoloDTO $objDTO + * @return array + * @throws InfraException + */ + protected function listarControlado(PenBlocoProcessoDTO $objDTO) + { + try { + //Valida Permissão + SessaoSEI::getInstance()->validarAuditarPermissao('pen_tramita_em_bloco_protocolo_listar', __METHOD__, $objDTO); + + $objPenBlocoProcessoBD = new PenBlocoProcessoBD($this->getObjInfraIBanco()); + $arrObjPenBlocoProcessoDTO = $objPenBlocoProcessoBD->listar($objDTO); + + return $arrObjPenBlocoProcessoDTO; + } catch (\Exception $e) { + throw new InfraException('Falha na listagem de pendências de trâmite de processos em lote.', $e); + } + } + + /** + * Método utilizado para exclusão de dados. + * @param array $arrayObjDTO + * @return array + * @throws InfraException + */ + protected function excluirControlado(array $arrayObjDTO) + { + try { + //Valida Permissão + SessaoSEI::getInstance()->validarAuditarPermissao('pen_tramita_em_bloco_protocolo_excluir', __METHOD__, $arrayObjDTO); + + $arrayExcluido = array(); + + foreach ($arrayObjDTO as $objDTO) { + $objBD = new PenBlocoProcessoBD(BancoSEI::getInstance()); + + $objPenProtocoloDTO = new PenProtocoloDTO(); + $objPenProtocoloDTO->setDblIdProtocolo($objDTO->getDblIdProtocolo()); + $objPenProtocoloDTO->retStrSinObteveRecusa(); + // $objPenProtocoloDTO->setNumMaxRegistrosRetorno(1); + + $objProtocoloBD = new ProtocoloBD(BancoSEI::getInstance()); + $objPenProtocoloDTO = $objProtocoloBD->consultar($objPenProtocoloDTO); + + $tramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $tramiteEmBlocoDTO->setNumId($objDTO->getNumIdBloco()); + $tramiteEmBlocoDTO->setStrStaEstado(TramiteEmBlocoRN::$TE_ABERTO); + $tramiteEmBlocoDTO->retStrStaEstado(); + $tramiteEmBlocoDTO->retNumId(); + + $tramiteEmBlocoRN = new TramiteEmBlocoRN(); + $tramiteEmBloco = $tramiteEmBlocoRN->consultar($tramiteEmBlocoDTO); + + if ($tramiteEmBloco != null) { + $arrayExcluido[] = $objBD->excluir($objDTO); + continue; + } + + $objAtividadeDTO = new AtividadeDTO(); + $objAtividadeDTO->setDblIdProtocolo($objDTO->getDblIdProtocolo()); + $objAtividadeDTO->setNumIdTarefa([ + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_CANCELADO), + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_RECUSADO), + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_ABORTADO) + ], InfraDTO::$OPER_IN); + $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC); + $objAtividadeDTO->setNumMaxRegistrosRetorno(1); + $objAtividadeDTO->retNumIdAtividade(); + $objAtividadeDTO->retNumIdTarefa(); + $objAtividadeDTO->retDblIdProcedimentoProtocolo(); + $objAtividadeRN = new AtividadeRN(); + $objAtividadeDTO = $objAtividadeRN->consultarRN0033($objAtividadeDTO); + + if ($objAtividadeDTO != null) { + $arrayExcluido[] = $objBD->excluir($objDTO); + } + } + return $arrayExcluido; + } catch (Exception $e) { + throw new InfraException('Erro excluindo Bloco.', $e); + } + } + + protected function montarIndexacaoControlado(PenBlocoProcessoDTO $objPenBlocoProcessoDTO) + { + try { + + $dto = new PenBlocoProcessoDTO(); + $dto->retNumIdBlocoProcesso(); + + if (is_array($objPenBlocoProcessoDTO->getNumIdBlocoProcesso())) { + $dto->setNumIdBlocoProcesso($objPenBlocoProcessoDTO->getNumIdBlocoProcesso(), InfraDTO::$OPER_IN); + } else { + $dto->setNumIdBlocoProcesso($objPenBlocoProcessoDTO->getNumIdBlocoProcesso()); + } + + $objPenBlocoProcessoDTOIdx = new PenBlocoProcessoDTO(); + + $arrObjPenBlocoProcessoDTO = $this->listar($dto); + + foreach ($arrObjPenBlocoProcessoDTO as $dto) { + + $objPenBlocoProcessoDTOIdx->setNumBlocoProcesso($dto->getNumIdBlocoProcesso()); + } + } catch (Exception $e) { + throw new InfraException('Erro montando indexação de processos em bloco.', $e); + } + } + + protected function cadastrarControlado(PenBlocoProcessoDTO $objPenBlocoProcessoDTO) + { + try { + + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao('pen_tramite_em_bloco_cadastrar', __METHOD__, $objPenBlocoProcessoDTO); + + //Regras de Negocio + $objInfraException = new InfraException(); + + $objPenBlocoProcessoBD = new PenBlocoProcessoBD($this->getObjInfraIBanco()); + $ret = $objPenBlocoProcessoBD->cadastrar($objPenBlocoProcessoDTO); + + return $ret; + } catch (Exception $e) { + throw new InfraException('Erro cadastrando Processo em Bloco.', $e); + } + } + + protected function alterarControlado(PenBlocoProcessoDTO $objPenBlocoProcessoDTO) + { + try { + $objPenBlocoProcessoBD = new PenBlocoProcessoBD($this->getObjInfraIBanco()); + $ret = $objPenBlocoProcessoBD->alterar($objPenBlocoProcessoDTO); + + return $ret; + } catch (Exception $e) { + throw new InfraException('Erro cadastrando Processo em Bloco.', $e); + } + } + + protected function validarBlocoDeTramiteControlado($idProtocolo) + { + $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTO->retNumIdBlocoProcesso(); + $objPenBlocoProcessoDTO->setDblIdProtocolo($idProtocolo); + $objPenBlocoProcessoDTO->retNumIdBloco(); + $objPenBlocoProcessoDTO->retDblIdProtocolo(); + // $objPenBlocoProcessoDTO->retStrIdxRelBlocoProtocolo(); + + $arrTramitaEmBloco = $this->listar($objPenBlocoProcessoDTO); + + foreach ($arrTramitaEmBloco as $tramitaEmBloco) { + $tramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $tramiteEmBlocoDTO->setNumId($tramitaEmBloco->getNumIdBloco()); + $tramiteEmBlocoDTO->setStrStaEstado([ + TramiteEmBlocoRN::$TE_ABERTO, + TramiteEmBlocoRN::$TE_DISPONIBILIZADO, + ], InfraDTO::$OPER_IN); + $tramiteEmBlocoDTO->retStrDescricao(); + $tramiteEmBlocoDTO->retStrStaEstado(); + $tramiteEmBlocoDTO->retNumId(); + + $tramiteEmBlocoRN = new TramiteEmBlocoRN(); + $tramiteEmBloco = $tramiteEmBlocoRN->consultar($tramiteEmBlocoDTO); + + if (!empty($tramiteEmBloco)) { + return "Prezado(a) usuário(a), o processo {$tramitaEmBloco->getDblIdProtocolo()} encontra-se inserido no bloco {$tramiteEmBloco->getNumId()} - {$tramiteEmBloco->getStrDescricao()}. Para continuar com essa ação é necessário que o processo seja removido do bloco em questão."; + } + + $processoRecusadoNoBlocoParcial = $this->validarBlocoEstadoConcluidoParcial($tramitaEmBloco->getNumIdBloco(), $idProtocolo); + if ($processoRecusadoNoBlocoParcial !== false) { + return "Prezado(a) usuário(a), o processo {$tramitaEmBloco->getDblIdProtocolo()} encontra-se inserido no bloco {$processoRecusadoNoBlocoParcial->getNumId()} - {$processoRecusadoNoBlocoParcial->getStrDescricao()}. Para continuar com essa ação é necessário que o processo seja removido do bloco em questão."; + } + } + + return false; + } + + public function validarBlocoEstadoConcluidoParcial($dblIdbloco, $idProtocolo) + { + $tramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $tramiteEmBlocoDTO->setNumId($dblIdbloco); + $tramiteEmBlocoDTO->setStrStaEstado([ + TramiteEmBlocoRN::$TE_CONCLUIDO_PARCIALMENTE, + ], InfraDTO::$OPER_IN); + $tramiteEmBlocoDTO->retStrDescricao(); + $tramiteEmBlocoDTO->retStrStaEstado(); + $tramiteEmBlocoDTO->retNumId(); + + $tramiteEmBlocoRN = new TramiteEmBlocoRN(); + $tramiteEmBloco = $tramiteEmBlocoRN->consultar($tramiteEmBlocoDTO); + + if (!empty($tramiteEmBloco)) { + $objPenProtocolo = new PenProtocoloDTO(); + $objPenProtocolo->setDblIdProtocolo($idProtocolo); + $objPenProtocolo->setStrSinObteveRecusa('S'); + $objPenProtocolo->setNumMaxRegistrosRetorno(1); + $objPenProtocolo->retDblIdProtocolo(); + + $objPenProtocoloBD = new ProtocoloBD(BancoSEI::getInstance()); + $ObjPenProtocoloDTO = $objPenProtocoloBD->consultar($objPenProtocolo); + + if ($ObjPenProtocoloDTO != null) { + return $tramiteEmBloco; + } + } + + return false; + } + + public function validarQuantidadeDeItensNoBloco($dblIdbloco, $arrProtocolosOrigem) + { + $tramitaEmBlocoProtocoloDTO = new PenBlocoProcessoDTO(); + $tramitaEmBlocoProtocoloDTO->setNumIdBloco($dblIdbloco); + $tramitaEmBlocoProtocoloDTO->retNumIdBloco(); + + $tramitaEmBlocoProtocoloRN = new PenBlocoProcessoRN(); + $arrTramitaEmBlocoProtocolo = $tramitaEmBlocoProtocoloRN->listar($tramitaEmBlocoProtocoloDTO); + $numRegistroBloco = count($arrTramitaEmBlocoProtocolo); + $numRegistroItens = count($arrProtocolosOrigem); + + $numMaximoDeProcessos = 100; + if (!empty($numRegistroBloco) && $numRegistroBloco >= $numMaximoDeProcessos) { + return "Não é possível incluir mais que {$numMaximoDeProcessos} processos em um único bloco. O bloco selecionado já atingiu sua capacidade máxima."; + } + + if ($numRegistroBloco + $numRegistroItens > $numMaximoDeProcessos) { + return "Não é possível incluir mais que {$numMaximoDeProcessos} processos em um único bloco. Por favor, selecione outro bloco ou selecione uma quantidade menor de processos."; + } + + return false; + } + + /** + * Atualizar Bloco de tramite externo para concluído + */ + public function atualizarEstadoDoBloco(PenBlocoProcessoDTO $tramiteEmBlocoProtocoloDTO, $novoEstadoDoBloco) + { + // Verificar se tem existe processo recusado dentro de um bloco + $objTramiteEmBlocoProtocoloDTO2 = new PenBlocoProcessoDTO(); + $objTramiteEmBlocoProtocoloDTO2->setNumIdBloco($tramiteEmBlocoProtocoloDTO->getNumIdBloco()); + $objTramiteEmBlocoProtocoloDTO2->retNumIdBloco(); + $objTramiteEmBlocoProtocoloDTO2->retDblIdProtocolo(); + + $objTramiteEmBlocoProtocoloDTORN = new PenBlocoProcessoRN($objTramiteEmBlocoProtocoloDTO2); + $arrTramiteEmBlocoProtocolo = $objTramiteEmBlocoProtocoloDTORN->listar($objTramiteEmBlocoProtocoloDTO2); + + $objPenProtocolo = new PenProtocoloDTO(); + $objPenProtocolo->setDblIdProtocolo(InfraArray::converterArrInfraDTO($arrTramiteEmBlocoProtocolo, 'IdProtocolo'), InfraDTO::$OPER_IN); + $objPenProtocolo->setStrSinObteveRecusa('S'); + $objPenProtocolo->setNumMaxRegistrosRetorno(1); + $objPenProtocolo->retDblIdProtocolo(); + + $objPenProtocoloBD = new ProtocoloBD(BancoSEI::getInstance()); + $ObjPenProtocoloDTO = $objPenProtocoloBD->consultar($objPenProtocolo); + + if ($ObjPenProtocoloDTO != null) { + return null; + } + // não atualizar para concluido quando o bloco estiver em concluido parcialmente + $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $objTramiteEmBlocoDTO->setNumId($tramiteEmBlocoProtocoloDTO->getNumIdBloco()); + $objTramiteEmBlocoDTO->setStrStaEstado([ + TramiteEmBlocoRN::$TE_ABERTO, + TramiteEmBlocoRN::$TE_DISPONIBILIZADO, + ], InfraDTO::$OPER_IN); + $objTramiteEmBlocoDTO->retNumId(); + $objTramiteEmBlocoDTO->retStrStaEstado(); + + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $objTramiteEmBlocoDTO = $objTramiteEmBlocoRN->consultar($objTramiteEmBlocoDTO); + + if ($objTramiteEmBlocoDTO != null) { + $objTramiteEmBlocoDTO->setStrStaEstado($novoEstadoDoBloco); + $objTramiteEmBlocoRN->alterar($objTramiteEmBlocoDTO); + } + } + + /** + * Atualizar Bloco de tramite externo para concluído parcialmente + */ + public function atualizarEstadoDoBlocoConcluidoParcialmente($arrTramiteEmBlocoProtocoloDTO) + { + $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $objTramiteEmBlocoDTO->setNumId($arrTramiteEmBlocoProtocoloDTO[0]->getNumIdBloco()); + $objTramiteEmBlocoDTO->setStrStaEstado(TramiteEmBlocoRN::$TE_CONCLUIDO_PARCIALMENTE); + + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $objTramiteEmBlocoRN->alterar($objTramiteEmBlocoDTO); + } +} diff --git a/src/rn/PenExpedirLoteRN.php b/src/rn/PenExpedirLoteRN.php index 32174d3d6..c3ffc8fac 100755 --- a/src/rn/PenExpedirLoteRN.php +++ b/src/rn/PenExpedirLoteRN.php @@ -33,7 +33,7 @@ public function gravarLogDebug($parStrMensagem, $parNumIdentacao = 0, $parBolLog $this->objPenDebug->gravar($parStrMensagem, $parNumIdentacao, $parBolLogTempoProcessamento); } - private function validarParametrosLote(InfraException $objInfraException, PenExpedirLoteDTO $objLoteDTO) + private function validarParametrosLote(InfraException $objInfraException, PenBlocoProcessoDTO $objLoteDTO) { if(!isset($objLoteDTO)){ $objInfraException->adicionarValidacao('Parâmetro $objLoteDTO não informado.'); @@ -71,17 +71,17 @@ private function validarParametrosLote(InfraException $objInfraException, PenExp } - protected function cadastrarLoteControlado(PenExpedirLoteDTO $objPenExpedirLoteDTO) + protected function cadastrarLoteControlado(PenBlocoProcessoDTO $objPenBlocoProcessoDTO) { try { //Valida Permissão - SessaoSEI::getInstance()->validarAuditarPermissao('pen_expedir_lote', __METHOD__, $objPenExpedirLoteDTO); + SessaoSEI::getInstance()->validarAuditarPermissao('pen_expedir_lote', __METHOD__, $objPenBlocoProcessoDTO); $this->barraProgresso->exibir(); - $this->barraProgresso->setStrRotulo(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_VALIDACAO); + $this->barraProgresso->setStrRotulo(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_VALIDACAO); //Obtém o tamanho total da barra de progreso - $nrTamanhoTotalBarraProgresso = count($objPenExpedirLoteDTO->getArrIdProcedimento()); + $nrTamanhoTotalBarraProgresso = count($objPenBlocoProcessoDTO->getArrListaProcedimento()); //Atribui o tamanho máximo da barra de progresso $this->barraProgresso->setNumMax($nrTamanhoTotalBarraProgresso); @@ -92,34 +92,38 @@ protected function cadastrarLoteControlado(PenExpedirLoteDTO $objPenExpedirLoteD $objPenExpedirLoteBD = new PenExpedirLoteBD($this->getObjInfraIBanco()); $objInfraException = new InfraException(); - $this->validarParametrosLote($objInfraException, $objPenExpedirLoteDTO); - $ret = $objPenExpedirLoteBD->cadastrar($objPenExpedirLoteDTO); + $this->validarParametrosLote($objInfraException, $objPenBlocoProcessoDTO); - if ($objPenExpedirLoteDTO->isSetArrIdProcedimento()) { + if ($objPenBlocoProcessoDTO->isSetArrListaProcedimento()) { - $objPenLoteProcedimentoRN = new PenLoteProcedimentoRN(); - $objPenLoteProcedimentoDTO = new PenLoteProcedimentoDTO(); + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); - foreach ($objPenExpedirLoteDTO->getArrIdProcedimento() as $dblIdProcedimento) { + foreach ($objPenBlocoProcessoDTO->getArrListaProcedimento() as $dblIdProcedimento) { try { $objProcedimentoDTO = $this->objExpedirProcedimentoRN->consultarProcedimento($dblIdProcedimento); $this->barraProgresso->setStrRotulo(sprintf(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_PROCEDIMENTO, $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado())); //Bloquea o processo para atualização - $idAtividadeExpedicao = $this->objExpedirProcedimentoRN->bloquearProcedimentoExpedicao($objPenExpedirLoteDTO, $dblIdProcedimento); + $idAtividadeExpedicao = $this->objExpedirProcedimentoRN->bloquearProcedimentoExpedicao($objPenBlocoProcessoDTO, $dblIdProcedimento); - $objPenLoteProcedimentoDTO->setNumIdLote($ret->getNumIdLote()); - $objPenLoteProcedimentoDTO->setDblIdProcedimento($dblIdProcedimento); - $objPenLoteProcedimentoDTO->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_NAO_INICIADO); - $objPenLoteProcedimentoDTO->setNumIdAtividade($idAtividadeExpedicao); - $objPenLoteProcedimentoRN->cadastrarLoteProcedimento($objPenLoteProcedimentoDTO); + $objDto = new PenBlocoProcessoDTO(); + $objDto->setNumIdBloco($objPenBlocoProcessoDTO->getNumIdBloco()); + $objDto->setDblIdProtocolo($dblIdProcedimento); + $objDto->retTodos(); + + $objTramiteEmBlocoProtocolo = $objPenBlocoProcessoRN->consultar($objDto); + + $objTramiteEmBlocoProtocolo->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO); + $objTramiteEmBlocoProtocolo->setNumIdAtividade($idAtividadeExpedicao); + $objPenBlocoProcessoRN->alterar($objTramiteEmBlocoProtocolo); $this->barraProgresso->mover($this->barraProgresso->getNumMax()); $this->barraProgresso->setStrRotulo(ProcessoEletronicoINT::TEE_EXPEDICAO_LOTE_ETAPA_CONCLUSAO); } catch (\Exception $e) { //Realiza o desbloqueio do processo try { + $this->objExpedirProcedimentoRN->desbloquearProcessoExpedicao($objPenBlocoProcessoDTO->getDblIdProcedimento()); $this->objExpedirProcedimentoRN->desbloquearProcessoExpedicao($objPenExpedirLoteDTO->getDblIdProcedimento()); } catch (InfraException $ex) { } diff --git a/src/rn/PenLoteProcedimentoRN.php b/src/rn/PenLoteProcedimentoRN.php index f49ccfb69..dd4636ac5 100755 --- a/src/rn/PenLoteProcedimentoRN.php +++ b/src/rn/PenLoteProcedimentoRN.php @@ -123,7 +123,7 @@ protected function desbloquearProcessoLoteControlado($dblIdProcedimento) try{ $objPenLoteProcedimentoDTO = new PenLoteProcedimentoDTO(); - $objPenLoteProcedimentoDTO->retNumIdLote(); + $objPenLoteProcedimentoDTO->retNumIdBlocoProcesso(); $objPenLoteProcedimentoDTO->retNumIdUsuario(); $objPenLoteProcedimentoDTO->retNumIdUnidade(); $objPenLoteProcedimentoDTO->setDblIdProcedimento($dblIdProcedimento); @@ -133,27 +133,21 @@ protected function desbloquearProcessoLoteControlado($dblIdProcedimento) $objPenLoteProcedimentoDTO = $objPenLoteProcedimentoRN->consultarLoteProcedimento($objPenLoteProcedimentoDTO); if(!is_null($objPenLoteProcedimentoDTO)){ - $objPenExpedirLoteDTO = new PenLoteProcedimentoDTO(); - $objPenExpedirLoteDTO->setNumIdLote($objPenLoteProcedimentoDTO->getNumIdLote()); - $objPenExpedirLoteDTO->setDblIdProcedimento($dblIdProcedimento); - $objPenExpedirLoteDTO->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO); - - $objPenLoteProcedimentoRN = new PenLoteProcedimentoRN(); - $objPenLoteProcedimentoRN->alterarLoteProcedimento($objPenExpedirLoteDTO); - - // Atualizar Bloco para concluido parcialmente - $objTramiteEmBlocoProtocoloDTO = new TramitaEmBlocoProtocoloDTO(); - $objTramiteEmBlocoProtocoloDTO->setDblIdProtocolo($dblIdProcedimento); - $objTramiteEmBlocoProtocoloDTO->setOrdNumId(InfraDTO::$TIPO_ORDENACAO_DESC); - $objTramiteEmBlocoProtocoloDTO->retDblIdProtocolo(); - $objTramiteEmBlocoProtocoloDTO->retNumIdTramitaEmBloco(); - - $objTramitaEmBlocoProtocoloRN = new TramitaEmBlocoProtocoloRN(); - $tramiteEmBlocoProtocolo = $objTramitaEmBlocoProtocoloRN->listar($objTramiteEmBlocoProtocoloDTO); - - if ($tramiteEmBlocoProtocolo != null) { - $objTramitaEmBlocoProtocoloRN->atualizarEstadoDoBlocoConcluidoParcialmente($tramiteEmBlocoProtocolo); + $objTramiteEmBlocoProtocoloDTO = new PenBlocoProcessoDTO(); + $objTramiteEmBlocoProtocoloDTO->setDblIdProtocolo($dblIdProcedimento); + $objTramiteEmBlocoProtocoloDTO->setOrdNumId(InfraDTO::$TIPO_ORDENACAO_DESC); + $objTramiteEmBlocoProtocoloDTO->retTodos(); + + $objTramitaEmBlocoProtocoloRN = new PenBlocoProcessoRN(); + $arrTramiteEmBlocoProtocolo = $objTramitaEmBlocoProtocoloRN->listar($objTramiteEmBlocoProtocoloDTO); + + if ($arrTramiteEmBlocoProtocolo != null) { + foreach ($arrTramiteEmBlocoProtocolo as $tramiteEmBlocoProtocolo) { + $tramiteEmBlocoProtocolo->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO); + $objTramitaEmBlocoProtocoloRN->alterar($tramiteEmBlocoProtocolo); + } + $objTramitaEmBlocoProtocoloRN->atualizarEstadoDoBlocoConcluidoParcialmente($arrTramiteEmBlocoProtocolo); } } diff --git a/src/rn/PendenciasEnvioTramiteRN.php b/src/rn/PendenciasEnvioTramiteRN.php new file mode 100644 index 000000000..815303281 --- /dev/null +++ b/src/rn/PendenciasEnvioTramiteRN.php @@ -0,0 +1,260 @@ +strEnderecoServico) && empty($this->strEnderecoServicoPendencias)) { + throw new InfraException("Serviço de monitoramento de pendências não pode ser iniciado devido falta de configuração de endereços de WebServices"); + } + + ModPenUtilsRN::simularLoginUnidadeRecebimento(); + $mensagemInicioMonitoramento = 'Iniciando serviço de monitoramento de envio de pendências de trâmites de processos'; + $this->gravarLogDebug($mensagemInicioMonitoramento, 0); + + do { + try { + $this->gravarLogDebug('Recuperando lista de pendências de envio do Tramita GOV.BR', 1); + $arrObjPendenciasDTO = $this->obterPendenciasEnvioTramite($parBolMonitorarPendencias); + + + foreach ($arrObjPendenciasDTO as $objPendenciaDTO) { + $numIdTramite = $objPendenciaDTO->getNumIdentificacaoTramite(); + $strStatusTramite = $objPendenciaDTO->getStrStatus(); + $mensagemLog = ">>> Enviando pendência $numIdTramite (status $strStatusTramite) para fila de processamento"; + $this->gravarLogDebug($mensagemLog, 3); + + try { + $this->expedirPendenciaProcessamento($objPendenciaDTO, $parBolSegundoPlano); + } catch (\Exception $e) { + $this->gravarAmostraErroLogSEI($e); + $this->gravarLogDebug(InfraException::inspecionar($e)); + } + } + } catch (ModuloIncompativelException $e) { + // Sai loop de eventos para finalizar o script e subir uma nova versão atualizada + throw $e; + } catch (Exception $e) { + //Apenas registra a falha no log do sistema e reinicia o ciclo de requisição + $this->gravarAmostraErroLogSEI($e); + $this->gravarLogDebug(InfraException::inspecionar($e)); + } + + if ($parBolMonitorarPendencias) { + $this->gravarLogDebug(sprintf("Reiniciando monitoramento de pendências em %s segundos", self::TEMPO_ESPERA_REINICIALIZACAO_MONITORAMENTO), 1); + sleep(self::TEMPO_ESPERA_REINICIALIZACAO_MONITORAMENTO); + $this->carregarParametrosIntegracao(); + } + } while ($parBolMonitorarPendencias); + } catch (Exception $e) { + $this->gravarLogDebug(InfraException::inspecionar($e)); + $this->gravarAmostraErroLogSEI($e); + return self::CODIGO_EXECUCAO_ERRO; + } + + // Caso não esteja sendo realizado o monitoramente de pendências, lança exceção diretamente na página para apresentação ao usuário + if (!$parBolMonitorarPendencias) { + $this->salvarLogDebug($parBolDebug); + } + + return self::CODIGO_EXECUCAO_SUCESSO; + } + + /** + * Função para recuperar as pendências de trâmite que já foram recebidas pelo serviço de long pulling e não foram processadas com sucesso + * @param num $parNumIdTramiteRecebido + * @return [type] [description] + */ + private function obterPendenciasEnvioTramite($parBolMonitorarPendencias) + { + //Obter todos os trâmites pendentes antes de iniciar o monitoramento + $arrPendenciasRetornadas = array(); + $arrObjPendenciasDTO = array(); + + $objPenLoteProcedimentoDTO = new PenBlocoProcessoDTO(); + $objPenLoteProcedimentoDTO->retNumIdBlocoProcesso(); + $objPenLoteProcedimentoDTO->retDblIdProtocolo(); + $objPenLoteProcedimentoDTO->retNumIdAndamento(); + $objPenLoteProcedimentoDTO->retNumIdAtividade(); + $objPenLoteProcedimentoDTO->retNumIdRepositorioDestino(); + $objPenLoteProcedimentoDTO->retStrRepositorioDestino(); + $objPenLoteProcedimentoDTO->retNumIdRepositorioOrigem(); + $objPenLoteProcedimentoDTO->retNumIdUnidadeDestino(); + $objPenLoteProcedimentoDTO->retStrUnidadeDestino(); + $objPenLoteProcedimentoDTO->retNumIdUnidadeOrigem(); + $objPenLoteProcedimentoDTO->retNumIdBloco(); + $objPenLoteProcedimentoDTO->retNumIdUsuario(); + $objPenLoteProcedimentoDTO->retStrProtocoloFormatadoProtocolo(); + + $objPenLoteProcedimentoDTO->setNumIdAndamento( + array( + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO, + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_ENVIADOS_REMETENTE + ), InfraDTO::$OPER_IN + ); + + $objPenLoteProcedimentoRN = new PenBlocoProcessoRN(); + $arrObjPenLoteProcedimentoDTO = $objPenLoteProcedimentoRN->obterPendenciasLote($objPenLoteProcedimentoDTO); + + foreach ($arrObjPenLoteProcedimentoDTO as $objPenLoteProcedimentoDTO) { + $objPendenciaDTO = new PendenciaDTO(); + $objPendenciaDTO->setNumIdentificacaoTramite($objPenLoteProcedimentoDTO->getDblIdProtocolo()); + $objPendenciaDTO->setStrStatus($objPenLoteProcedimentoDTO->getNumIdAndamento()); + $arrObjPendenciasDTO[] = $objPendenciaDTO; + } + + $this->gravarLogDebug(count($arrObjPendenciasDTO) . " pendências de trâmites identificadas", 2); + + foreach ($arrObjPendenciasDTO as $objPendenciaDTO) { + //Captura todas as pendências e status retornadas para impedir duplicidade + $arrPendenciasRetornadas[] = sprintf("%d-%s", $objPendenciaDTO->getNumIdentificacaoTramite(), $objPendenciaDTO->getStrStatus()); + yield $objPendenciaDTO; + } + } + + /** + * Envia a pendência de trâmite para a fila de processamento do tarefas de acordo com a estratégia definida + * + * @param stdClass $objPendencia + * @return void + */ + private function expedirPendenciaProcessamento($objPendencia, $parBolSegundoPlano) + { + if ($parBolSegundoPlano && $this->servicoGearmanAtivo()) { + $this->expedirPendenciaFilaProcessamento($objPendencia); + } else { + $this->expedirPendenciaProcessamentoDireto($objPendencia); + } + } + + /** + * Processa pendência de recebimento diretamente através da chamada das funções de processamento + * + * @param stclass $objPendencia + * @return void + */ + private function expedirPendenciaProcessamentoDireto($objPendencia) + { + if (isset($objPendencia)) { + $numIDT = strval($objPendencia->getNumIdentificacaoTramite()); + $numStatus = strval($objPendencia->getStrStatus()); + $objProcessarPendenciaRN = new ProcessarPendenciasRN(); + + if (!in_array( + $numStatus, + array( + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO, + ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_ENVIADOS_REMETENTE + ) + )) { + $strStatus = $objPendencia->getStrStatus(); + $this->gravarLogDebug("Situação do trâmite ($strStatus) não pode ser tratada para expedir pendências."); + } + + $objProcessarPendenciaRN->expedirBloco($numIDT); + } + } + + /** + * Envia pendência de recebimento para fila de tarefas do Gearman para processamento futuro + * + * @param stdclass $objPendencia + * @return void + */ + private function expedirPendenciaFilaProcessamento($objPendencia) + { + if (isset($objPendencia)) { + $client = new GearmanClient(); + $client->addServer($this->strGearmanServidor, $this->strGearmanPorta); + + $numIDT = strval($objPendencia->getNumIdentificacaoTramite()); + $numStatus = strval($objPendencia->getStrStatus()); + + if ($numStatus != ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO) { + $strStatus = $objPendencia->getStrStatus(); + $this->gravarLogDebug("Situação do trâmite ($strStatus) não pode ser tratada para expedir pendências."); + } + + $client->addTaskBackground('expedirLote', $numIDT, null, $numIDT); + $client->runTasks(); + } + } + + /** + * Inicia o envio de tarefas de Barramento do PEN em novo processo separado, + * evitando o bloqueio da thread da aplicação + * + * @param int $parNumQtdeWorkers Quantidade de processos paralelos que serão iniciados + * @param boolean $parBolMonitorar Indicação se o novo processo ficará monitorando o Barramento do PEN + * @param boolean $parBolSegundoPlano Indicação se será utilizado o processamento das tarefas em segundo plano com o Gearman + * @return bool Monitoramento iniciado com sucesso + */ + public static function inicializarMonitoramentoEnvioPendencias($parNumQtdeWorkers = null, $parBolMonitorar = false, $parBolSegundoPlano = false, $parBolDebugAtivo = false, $parStrUsuarioProcesso = null) + { + $bolInicializado = false; + $parNumQtdeWorkers = min($parNumQtdeWorkers ?: self::NUMERO_PROCESSOS_MONITORAMENTO, self::MAXIMO_PROCESSOS_MONITORAMENTO); + + try { + for ($worker = 0; $worker < $parNumQtdeWorkers; $worker++) { + $strComandoIdentificacaoWorker = sprintf(self::COMANDO_IDENTIFICACAO_WORKER_ID_ENVIO, $worker); + exec($strComandoIdentificacaoWorker, $strSaida, $numCodigoResposta); + + if ($numCodigoResposta != 0) { + $strLocalizacaoScript = realpath(self::LOCALIZACAO_SCRIPT_WORKER_ENVIO); + $strPhpExec = empty(PHP_BINARY) ? "php" : PHP_BINARY; + $strPhpIni = php_ini_loaded_file(); + $strPhpIni = $strPhpIni ? "-c $strPhpIni" : ""; + $strWsdlCacheDir = ini_get('soap.wsdl_cache_dir'); + $strParametroWsdlCache = "--wsdl-cache='$strWsdlCacheDir'"; + $strIdWorker = sprintf("--worker=%02d", $worker); + $strParametroMonitorar = $parBolMonitorar ? "--monitorar" : ''; + $strParametroSegundoPlano = $parBolSegundoPlano ? "--segundo-plano" : ""; + $strParametroDebugAtivo = $parBolDebugAtivo ? "--debug" : ""; + + $strComandoMonitoramentoTarefas = sprintf( + self::COMANDO_EXECUCAO_WORKER, + $strPhpExec, // Binário do PHP utilizado no contexto de execução do script atual (ex: /usr/bin/php) + $strPhpIni, // Arquivo de configucação o PHP utilizado no contexto de execução do script atual (ex: /etc/php.ini) + $strLocalizacaoScript, // Path absoluto do script de monitoramento de tarefas do Barramento + $strIdWorker, // Identificador sequencial do processo paralelo a ser iniciado + $strParametroMonitorar, // Parâmetro para executar processo em modo de monitoramente ativo + $strParametroSegundoPlano, // Parâmetro para executar processo em segundo plano com Gearman + $strParametroDebugAtivo, // Parâmetro para executar processo em modo de debug + $strParametroWsdlCache, // Diretório de cache de wsdl utilizado no contexto de execução do script atual (ex: /tmp/) + "/dev/null" // Localização de log adicinal para registros de falhas não salvas pelo SEI no BD + ); + + shell_exec($strComandoMonitoramentoTarefas); + + // Verifica se monitoramento de tarefas foi iniciado corretamente, finalizando o laço para não + // permitir que mais de um monitoramento esteja iniciado + exec($strComandoIdentificacaoWorker, $strSaida, $numCodigoResposta); + + if ($numCodigoResposta == 0) { + break; + } + } + } + + // Confirma se existe algum worker ativo + exec(self::COMANDO_IDENTIFICACAO_WORKER_ENVIO, $strSaida, $numCodigoRespostaAtivacao); + $bolInicializado = $numCodigoRespostaAtivacao == 0; + } catch (\Exception $e) { + $strMensagem = "Falha: Não foi possível iniciar o monitoramento de tarefas Barramento Tramita GOV.BR"; + $objInfraException = new InfraException($strMensagem, $e); + throw $objInfraException; + } + + return $bolInicializado; + } +} diff --git a/src/rn/PendenciasTramiteRN.php b/src/rn/PendenciasTramiteRN.php index 66fbef47c..6fe60c35a 100755 --- a/src/rn/PendenciasTramiteRN.php +++ b/src/rn/PendenciasTramiteRN.php @@ -14,16 +14,21 @@ class PendenciasTramiteRN extends InfraRN const NUMERO_PROCESSOS_MONITORAMENTO = 10; const MAXIMO_PROCESSOS_MONITORAMENTO = 20; const COMANDO_EXECUCAO_WORKER = '%s %s %s %s %s %s %s %s > %s 2>&1 &'; - const LOCALIZACAO_SCRIPT_WORKER = DIR_SEI_WEB . "/../scripts/mod-pen/MonitoramentoTarefasPEN.php"; - const COMANDO_IDENTIFICACAO_WORKER = "ps -c ax | grep 'MonitoramentoTarefasPEN\.php' | grep -o '^[ ]*[0-9]*'"; - const COMANDO_IDENTIFICACAO_WORKER_ID = "ps -c ax | grep 'MonitoramentoTarefasPEN\.php.*--worker=%02d' | grep -o '^[ ]*[0-9]*'"; - - private $objPenDebug = null; - private $strEnderecoServico = null; - private $strEnderecoServicoPendencias = null; - private $strLocalizacaoCertificadoDigital = null; - private $strSenhaCertificadoDigital = null; - private $arrStrUltimasMensagensErro = array(); + // Envio + const LOCALIZACAO_SCRIPT_WORKER_ENVIO = DIR_SEI_WEB . "/../scripts/mod-pen/MonitoramentoEnvioTarefasPEN.php"; + const COMANDO_IDENTIFICACAO_WORKER_ENVIO = "ps -c ax | grep 'MonitoramentoEnvioTarefasPEN\.php' | grep -o '^[ ]*[0-9]*'"; + const COMANDO_IDENTIFICACAO_WORKER_ID_ENVIO = "ps -c ax | grep 'MonitoramentoEnvioTarefasPEN\.php.*--worker=%02d' | grep -o '^[ ]*[0-9]*'"; + // Recebimento + const LOCALIZACAO_SCRIPT_WORKER = DIR_SEI_WEB . "/../scripts/mod-pen/MonitoramentoRecebimentoTarefasPEN.php"; + const COMANDO_IDENTIFICACAO_WORKER = "ps -c ax | grep 'MonitoramentoRecebimentoTarefasPEN\.php' | grep -o '^[ ]*[0-9]*'"; + const COMANDO_IDENTIFICACAO_WORKER_ID = "ps -c ax | grep 'MonitoramentoRecebimentoTarefasPEN\.php.*--worker=%02d' | grep -o '^[ ]*[0-9]*'"; + + protected $objPenDebug = null; + protected $strEnderecoServico = null; + protected $strEnderecoServicoPendencias = null; + protected $strLocalizacaoCertificadoDigital = null; + protected $strSenhaCertificadoDigital = null; + protected $arrStrUltimasMensagensErro = array(); public function __construct($parStrLogTag = null) { diff --git a/src/rn/ProcessarPendenciasRN.php b/src/rn/ProcessarPendenciasRN.php index b58272e9f..7ed848f1e 100755 --- a/src/rn/ProcessarPendenciasRN.php +++ b/src/rn/ProcessarPendenciasRN.php @@ -240,83 +240,82 @@ public function enviarReciboTramiteProcesso($idTramite) } /** - * Processa a mensagem de pendência de Envio de Processo - * - * @param object $idProcedimento Contexto com informações para processamento da tarefa - * @return void - */ - public function expedirLote($idProcedimento) - { + * Processa a mensagem de pendência de Envio de Processo + * + * @param object $idProcedimento Contexto com informações para processamento da tarefa + * @return void + */ + public function expedirBloco($idProcedimento) + { try { - - $this->gravarLogDebug("Processando envio de protocolo [expedirProcedimento] com IDProcedimento " . $idProcedimento, 0, true); - $numTempoInicialEnvio = microtime(true); - - $objPenLoteProcedimentoDTO = new PenLoteProcedimentoDTO(); - $objPenLoteProcedimentoDTO->retNumIdRepositorioOrigem(); - $objPenLoteProcedimentoDTO->retNumIdUnidadeOrigem(); - $objPenLoteProcedimentoDTO->retNumIdRepositorioDestino(); - $objPenLoteProcedimentoDTO->retStrRepositorioDestino(); - $objPenLoteProcedimentoDTO->retNumIdUnidadeDestino(); - $objPenLoteProcedimentoDTO->retStrUnidadeDestino(); - $objPenLoteProcedimentoDTO->retDblIdProcedimento(); - $objPenLoteProcedimentoDTO->retNumIdLote(); - $objPenLoteProcedimentoDTO->retNumIdAtividade(); - $objPenLoteProcedimentoDTO->retNumIdUnidade(); - $objPenLoteProcedimentoDTO->retNumTentativas(); - $objPenLoteProcedimentoDTO->setDblIdProcedimento(intval($idProcedimento)); - $objPenLoteProcedimentoDTO->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO); - - $objPenLoteProcedimentoRN = new PenLoteProcedimentoRN(); - $objPenLoteProcedimentoDTO = $objPenLoteProcedimentoRN->consultarLoteProcedimento($objPenLoteProcedimentoDTO); - - if(!is_null($objPenLoteProcedimentoDTO)){ - - // Ajuste na variável global $_SERVER['HTTPS'] para considerar a mesma configuração definida para o SEI - // e evitar erros na rotina validaHttps quando em execução por linha de comando + $this->gravarLogDebug("Processando envio de protocolo [expedirProcedimento] com IDProcedimento " . $idProcedimento, 0, true); + $numTempoInicialEnvio = microtime(true); + + $objPenLoteProcedimentoDTO = new PenBlocoProcessoDTO(); + $objPenLoteProcedimentoDTO->retNumIdRepositorioOrigem(); + $objPenLoteProcedimentoDTO->retNumIdUnidadeOrigem(); + $objPenLoteProcedimentoDTO->retNumIdRepositorioDestino(); + $objPenLoteProcedimentoDTO->retStrRepositorioDestino(); + $objPenLoteProcedimentoDTO->retNumIdUnidadeDestino(); + $objPenLoteProcedimentoDTO->retStrUnidadeDestino(); + $objPenLoteProcedimentoDTO->retDblIdProtocolo(); + $objPenLoteProcedimentoDTO->retNumIdBlocoProcesso(); + $objPenLoteProcedimentoDTO->retNumIdAtividade(); + $objPenLoteProcedimentoDTO->retNumIdBloco(); + $objPenLoteProcedimentoDTO->retNumIdUnidade(); + $objPenLoteProcedimentoDTO->retNumTentativas(); + $objPenLoteProcedimentoDTO->setDblIdProtocolo(intval($idProcedimento)); + $objPenLoteProcedimentoDTO->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO); + + $objPenLoteProcedimentoRN = new PenBlocoProcessoRN(); + $objPenLoteProcedimentoDTO = $objPenLoteProcedimentoRN->consultar($objPenLoteProcedimentoDTO); + + if (!is_null($objPenLoteProcedimentoDTO)) { + + // Ajuste na variável global $_SERVER['HTTPS'] para considerar a mesma configuração definida para o SEI + // e evitar erros na rotina validaHttps quando em execução por linha de comando if (!isset($_SERVER['HTTP_USER_AGENT'])) { - $bolHttps = ConfiguracaoSEI::getInstance()->getValor('SessaoSEI', 'https'); - $_SERVER['HTTPS'] = $bolHttps ? "on" : null; + $bolHttps = ConfiguracaoSEI::getInstance()->getValor('SessaoSEI', 'https'); + $_SERVER['HTTPS'] = $bolHttps ? "on" : null; } - //Registra tentativa de envio e cancela o trâmite caso ultrapasse os valores permitidos - $objConfiguracaoModPEN = ConfiguracaoModPEN::getInstance(); - $numTentativasErroMaximo = $objConfiguracaoModPEN->getValor("PEN", "NumeroTentativasErro", false, ProcessoEletronicoRN::WS_TENTATIVAS_ERRO); - $numTentativasErroMaximo = (is_numeric($numTentativasErroMaximo)) ? intval($numTentativasErroMaximo) : ProcessoEletronicoRN::WS_TENTATIVAS_ERRO; - $numTentativasProcesso = $objPenLoteProcedimentoDTO->getNumTentativas() ?: 0; - - if($numTentativasErroMaximo >= $numTentativasProcesso + 1){ - $objPenLoteProcedimentoRN->registrarTentativaEnvio($objPenLoteProcedimentoDTO); - - $objExpedirProcedimentoDTO = new ExpedirProcedimentoDTO(); - $objExpedirProcedimentoDTO->setNumIdRepositorioOrigem($objPenLoteProcedimentoDTO->getNumIdRepositorioOrigem()); - $objExpedirProcedimentoDTO->setNumIdUnidadeOrigem($objPenLoteProcedimentoDTO->getNumIdUnidadeOrigem()); - - $objExpedirProcedimentoDTO->setNumIdRepositorioDestino($objPenLoteProcedimentoDTO->getNumIdRepositorioDestino()); - $objExpedirProcedimentoDTO->setStrRepositorioDestino($objPenLoteProcedimentoDTO->getStrRepositorioDestino()); - $objExpedirProcedimentoDTO->setNumIdUnidadeDestino($objPenLoteProcedimentoDTO->getNumIdUnidadeDestino()); - $objExpedirProcedimentoDTO->setStrUnidadeDestino($objPenLoteProcedimentoDTO->getStrUnidadeDestino()); - $objExpedirProcedimentoDTO->setArrIdProcessoApensado(null); - $objExpedirProcedimentoDTO->setBolSinUrgente(false); - $objExpedirProcedimentoDTO->setDblIdProcedimento($objPenLoteProcedimentoDTO->getDblIdProcedimento()); - $objExpedirProcedimentoDTO->setNumIdMotivoUrgencia(null); - $objExpedirProcedimentoDTO->setBolSinProcessamentoEmLote(true); - $objExpedirProcedimentoDTO->setNumIdLote($objPenLoteProcedimentoDTO->getNumIdLote()); - $objExpedirProcedimentoDTO->setNumIdAtividade($objPenLoteProcedimentoDTO->getNumIdAtividade()); - $objExpedirProcedimentoDTO->setNumIdUnidade($objPenLoteProcedimentoDTO->getNumIdUnidade()); - - $objExpedirProcedimentoRN = new ExpedirProcedimentoRN(); - $objExpedirProcedimentoRN->expedirProcedimento($objExpedirProcedimentoDTO); - - $numTempoTotalEnvio = round(microtime(true) - $numTempoInicialEnvio, 2); - $this->gravarLogDebug("Finalizado o envio de protocolo com IDProcedimento $numIDT(Tempo total: {$numTempoTotalEnvio}s)", 0, true); - + //Registra tentativa de envio e cancela o trâmite caso ultrapasse os valores permitidos + $objConfiguracaoModPEN = ConfiguracaoModPEN::getInstance(); + $numTentativasErroMaximo = $objConfiguracaoModPEN->getValor("PEN", "NumeroTentativasErro", false, ProcessoEletronicoRN::WS_TENTATIVAS_ERRO); + $numTentativasErroMaximo = (is_numeric($numTentativasErroMaximo)) ? intval($numTentativasErroMaximo) : ProcessoEletronicoRN::WS_TENTATIVAS_ERRO; + $numTentativasProcesso = $objPenLoteProcedimentoDTO->getNumTentativas() ?: 0; + + if ($numTentativasErroMaximo >= $numTentativasProcesso + 1) { + $objPenLoteProcedimentoRN->registrarTentativaEnvio($objPenLoteProcedimentoDTO); + + $objExpedirProcedimentoDTO = new ExpedirProcedimentoDTO(); + $objExpedirProcedimentoDTO->setNumIdRepositorioOrigem($objPenLoteProcedimentoDTO->getNumIdRepositorioOrigem()); + $objExpedirProcedimentoDTO->setNumIdUnidadeOrigem($objPenLoteProcedimentoDTO->getNumIdUnidadeOrigem()); + + $objExpedirProcedimentoDTO->setNumIdRepositorioDestino($objPenLoteProcedimentoDTO->getNumIdRepositorioDestino()); + $objExpedirProcedimentoDTO->setStrRepositorioDestino($objPenLoteProcedimentoDTO->getStrRepositorioDestino()); + $objExpedirProcedimentoDTO->setNumIdUnidadeDestino($objPenLoteProcedimentoDTO->getNumIdUnidadeDestino()); + $objExpedirProcedimentoDTO->setStrUnidadeDestino($objPenLoteProcedimentoDTO->getStrUnidadeDestino()); + $objExpedirProcedimentoDTO->setArrIdProcessoApensado(null); + $objExpedirProcedimentoDTO->setBolSinUrgente(false); + $objExpedirProcedimentoDTO->setDblIdProcedimento($objPenLoteProcedimentoDTO->getDblIdProtocolo()); + $objExpedirProcedimentoDTO->setNumIdMotivoUrgencia(null); + $objExpedirProcedimentoDTO->setBolSinProcessamentoEmLote(true); + $objExpedirProcedimentoDTO->setNumIdLote($objPenLoteProcedimentoDTO->getNumIdBlocoProcesso()); + $objExpedirProcedimentoDTO->setNumIdAtividade($objPenLoteProcedimentoDTO->getNumIdAtividade()); + $objExpedirProcedimentoDTO->setNumIdUnidade($objPenLoteProcedimentoDTO->getNumIdUnidade()); + + $objExpedirProcedimentoRN = new ExpedirProcedimentoRN(); + $objExpedirProcedimentoRN->expedirProcedimento($objExpedirProcedimentoDTO); + + $numTempoTotalEnvio = round(microtime(true) - $numTempoInicialEnvio, 2); + $this->gravarLogDebug("Finalizado o envio de protocolo com IDProcedimento $numIDT(Tempo total: {$numTempoTotalEnvio}s)", 0, true); } else { - $objPenLoteProcedimentoRN->desbloquearProcessoLote($objPenLoteProcedimentoDTO->getDblIdProcedimento()); + $objPenLoteProcedimentoRN->desbloquearProcessoLote($objPenLoteProcedimentoDTO->getDblIdProtocolo()); } } } catch (\Exception $e) { - throw new InfraException('Falha ao expedir processso em lote.', $e); + throw new InfraException('Falha ao expedir processso em lote.', $e); } } diff --git a/src/rn/ReceberProcedimentoRN.php b/src/rn/ReceberProcedimentoRN.php index 6b58321d4..1cfeda942 100755 --- a/src/rn/ReceberProcedimentoRN.php +++ b/src/rn/ReceberProcedimentoRN.php @@ -527,17 +527,20 @@ protected function receberTramitesRecusadosInternoControlado($parObjTramite) $objPenProtocoloBD->alterar($objPenProtocolo); // Atualizar Bloco para concluido parcialmente - $objTramiteEmBlocoProtocoloDTO = new TramitaEmBlocoProtocoloDTO(); + $objTramiteEmBlocoProtocoloDTO = new PenBlocoProcessoDTO(); $objTramiteEmBlocoProtocoloDTO->setDblIdProtocolo($objReceberTramiteRecusadoDTO->getNumIdProtocolo()); - $objTramiteEmBlocoProtocoloDTO->setOrdNumId(InfraDTO::$TIPO_ORDENACAO_DESC); - $objTramiteEmBlocoProtocoloDTO->retDblIdProtocolo(); - $objTramiteEmBlocoProtocoloDTO->retNumIdTramitaEmBloco(); + $objTramiteEmBlocoProtocoloDTO->setOrdNumIdBlocoProcesso(InfraDTO::$TIPO_ORDENACAO_DESC); + $objTramiteEmBlocoProtocoloDTO->retTodos(); - $objTramitaEmBlocoProtocoloRN = new TramitaEmBlocoProtocoloRN(); - $tramiteEmBlocoProtocolo = $objTramitaEmBlocoProtocoloRN->listar($objTramiteEmBlocoProtocoloDTO); + $objTramitaEmBlocoProtocoloRN = new PenBlocoProcessoRN(); + $arrTramiteEmBlocoProtocolo = $objTramitaEmBlocoProtocoloRN->listar($objTramiteEmBlocoProtocoloDTO); - if ($tramiteEmBlocoProtocolo != null) { - $objTramitaEmBlocoProtocoloRN->atualizarEstadoDoBlocoConcluidoParcialmente($tramiteEmBlocoProtocolo); + if ($arrTramiteEmBlocoProtocolo != null) { + foreach ($arrTramiteEmBlocoProtocolo as $tramiteEmBlocoProtocolo) { + $tramiteEmBlocoProtocolo->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA); + $objTramitaEmBlocoProtocoloRN->alterar($tramiteEmBlocoProtocolo); + } + $objTramitaEmBlocoProtocoloRN->atualizarEstadoDoBlocoConcluidoParcialmente($arrTramiteEmBlocoProtocolo); } } diff --git a/src/rn/ReceberReciboTramiteRN.php b/src/rn/ReceberReciboTramiteRN.php index 05814da38..07afb4e10 100755 --- a/src/rn/ReceberReciboTramiteRN.php +++ b/src/rn/ReceberReciboTramiteRN.php @@ -140,19 +140,21 @@ protected function receberReciboDeTramiteInternoControlado($objReciboTramite) $objProtocoloBD = new ProtocoloBD(BancoSEI::getInstance()); $objProtocoloDTO = $objProtocoloBD->consultar($objProtocoloDTO); - // atualizar bloco de tramite externo - $objTramiteEmBlocoProtocoloDTO = new TramitaEmBlocoProtocoloDTO(); + // Atualizar Bloco para concluido parcialmente + $objTramiteEmBlocoProtocoloDTO = new PenBlocoProcessoDTO(); $objTramiteEmBlocoProtocoloDTO->setDblIdProtocolo($objProtocoloDTO->getDblIdProtocolo()); - $objTramiteEmBlocoProtocoloDTO->setOrdNumId(InfraDTO::$TIPO_ORDENACAO_DESC); - $objTramiteEmBlocoProtocoloDTO->setNumMaxRegistrosRetorno(1); - $objTramiteEmBlocoProtocoloDTO->retDblIdProtocolo(); - $objTramiteEmBlocoProtocoloDTO->retNumIdTramitaEmBloco(); - - $objTramitaEmBlocoProtocoloRN = new TramitaEmBlocoProtocoloRN(); - $tramiteEmBlocoProtocoloDTO = $objTramitaEmBlocoProtocoloRN->consultar($objTramiteEmBlocoProtocoloDTO); - - if ($tramiteEmBlocoProtocoloDTO != null) { - $objTramitaEmBlocoProtocoloRN->atualizarEstadoDoBloco($tramiteEmBlocoProtocoloDTO, TramiteEmBlocoRN::$TE_CONCLUIDO); + $objTramiteEmBlocoProtocoloDTO->setOrdNumIdBlocoProcesso(InfraDTO::$TIPO_ORDENACAO_DESC); + $objTramiteEmBlocoProtocoloDTO->retTodos(); + + $objTramitaEmBlocoProtocoloRN = new PenBlocoProcessoRN(); + $arrTramiteEmBlocoProtocolo = $objTramitaEmBlocoProtocoloRN->listar($objTramiteEmBlocoProtocoloDTO); + + if ($arrTramiteEmBlocoProtocolo != null) { + foreach ($arrTramiteEmBlocoProtocolo as $tramiteEmBlocoProtocolo) { + $tramiteEmBlocoProtocolo->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE); + $objTramitaEmBlocoProtocoloRN->alterar($tramiteEmBlocoProtocolo); + } + $objTramitaEmBlocoProtocoloRN->atualizarEstadoDoBloco($arrTramiteEmBlocoProtocolo[0], TramiteEmBlocoRN::$TE_CONCLUIDO); } $this->objProcedimentoAndamentoRN->setOpts($objTramiteDTO->getStrNumeroRegistro(), $numIdTramite, ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO), $objProcessoEletronicoDTO->getDblIdProcedimento()); diff --git a/src/rn/TramitaEmBlocoProtocoloRN.php b/src/rn/TramitaEmBlocoProtocoloRN.php index 815fe1b89..9d56de862 100644 --- a/src/rn/TramitaEmBlocoProtocoloRN.php +++ b/src/rn/TramitaEmBlocoProtocoloRN.php @@ -61,38 +61,21 @@ protected function listarProtocolosBlocoConectado(TramitaEmBlocoProtocoloDTO $pa $objPenLoteProcedimentoDTO = new PenLoteProcedimentoDTO(true); $objPenLoteProcedimentoDTO->setDblIdProcedimento($dto->getDblIdProtocolo()); - // $objPenLoteProcedimentoDTO->setNumMaxRegistrosRetorno(1); - $objPenLoteProcedimentoDTO->retNumIdLote(); + $objPenLoteProcedimentoDTO->retNumIdBlocoProcesso(); $objPenLoteProcedimentoDTO->retDblIdProcedimento(); $objPenLoteProcedimentoDTO->retStrProcedimentoFormatado(); $objPenLoteProcedimentoDTO->retNumIdAndamento(); $objPenLoteProcedimentoDTO->retStrUnidadeDestino(); $objPenLoteProcedimentoDTO->retStrNomeUsuario(); $objPenLoteProcedimentoDTO->retDthRegistro(); - $objPenLoteProcedimentoDTO->setOrdNumIdLote(InfraDTO::$TIPO_ORDENACAO_DESC); + $objPenLoteProcedimentoDTO->setOrdNumIdBlocoProcesso(InfraDTO::$TIPO_ORDENACAO_DESC); $objPenLoteProcedimentoRN = new PenLoteProcedimentoRN(); - // $objPenLoteProcedimentoRN = $objPenLoteProcedimentoRN->consultarLoteProcedimento($objPenLoteProcedimentoDTO); $objPenLoteProcedimentoRN = $objPenLoteProcedimentoRN->listarLoteProcedimento($objPenLoteProcedimentoDTO); $dto->setObjPenLoteProcedimentoDTO($objPenLoteProcedimentoRN); - // $objTramiteDTO = new TramiteDTO(); - // $objTramiteDTO->setNumIdProcedimento($dto->getDblIdProtocolo()); - // $objTramiteDTO->setOrd('IdTramite', InfraDTO::$TIPO_ORDENACAO_DESC); - // $objTramiteDTO->setNumMaxRegistrosRetorno(1); - // $objTramiteDTO->retNumIdTramite(); - // $objTramiteDTO->retDthRegistro(); - // $objTramiteDTO->retNumIdEstruturaDestino(); - // $objTramiteDTO->retStrNomeUsuario(); - - // $objTramiteBD = new TramiteBD($this->getObjInfraIBanco()); - // $objTramiteDTO = $objTramiteBD->consultar($objTramiteDTO); - - // $dto->setObjTramiteDTO($arrObjPenLoteProcedimentoRN); - - $objAtividadeDTO = new AtividadeDTO(); $objAtividadeDTO->setDblIdProtocolo($dto->getDblIdProtocolo()); $objAtividadeDTO->setNumIdTarefa([ diff --git a/src/rn/TramiteEmBlocoRN.php b/src/rn/TramiteEmBlocoRN.php index 3063cc6c5..130dd4b89 100644 --- a/src/rn/TramiteEmBlocoRN.php +++ b/src/rn/TramiteEmBlocoRN.php @@ -218,7 +218,6 @@ protected function cadastrarControlado(TramiteEmBlocoDTO $objTramiteEmBlocoDTO) $this->validarStrStaTipo($objTramiteEmBlocoDTO, $objInfraException); - $this->validarNumIdUsuario($objTramiteEmBlocoDTO, $objInfraException); $this->validarStrDescricao($objTramiteEmBlocoDTO, $objInfraException); $this->validarStrIdxBloco($objTramiteEmBlocoDTO, $objInfraException); $this->validarStrStaEstado($objTramiteEmBlocoDTO, $objInfraException); @@ -348,11 +347,11 @@ protected function excluirControlado(array $arrayObjDTO) protected function cancelarControlado(array $blocoIds) { try { - $objBloco = new TramitaEmBlocoProtocoloDTO(); + $objBloco = new PenBlocoProcessoDTO(); foreach ($blocoIds as $blocoId) { - $objBloco->setNumIdTramitaEmBloco($blocoId); + $objBloco->setNumIdBloco($blocoId); $objBloco->retDblIdProtocolo(); - $tramiteEmBlocoProtocoloRn = new TramitaEmBlocoProtocoloRN(); + $tramiteEmBlocoProtocoloRn = new PenBlocoProcessoRN(); $protocoloIds = $tramiteEmBlocoProtocoloRn->listar($objBloco); $protocoloRn = new ExpedirProcedimentoRN(); foreach ($protocoloIds as $protocoloId) { diff --git a/src/rn/VerificadorInstalacaoRN.php b/src/rn/VerificadorInstalacaoRN.php index 62e0564da..f144e1f80 100755 --- a/src/rn/VerificadorInstalacaoRN.php +++ b/src/rn/VerificadorInstalacaoRN.php @@ -57,7 +57,8 @@ public function verificarPosicionamentoScripts() { $this->verificarExistenciaArquivo(DIR_SEI_WEB . '/../scripts/mod-pen/sei_atualizar_versao_modulo_pen.php'); $this->verificarExistenciaArquivo(DIR_SEI_WEB . '/../scripts/mod-pen/verifica_instalacao_modulo_pen.php'); - $this->verificarExistenciaArquivo(DIR_SEI_WEB . '/../scripts/mod-pen/MonitoramentoTarefasPEN.php'); + $this->verificarExistenciaArquivo(DIR_SEI_WEB . '/../scripts/mod-pen/MonitoramentoEnvioTarefasPEN.php'); + $this->verificarExistenciaArquivo(DIR_SEI_WEB . '/../scripts/mod-pen/MonitoramentoRecebimentoTarefasPEN.php'); $this->verificarExistenciaArquivo(DIR_SEI_WEB . '/../scripts/mod-pen/ProcessamentoTarefasPEN.php'); $this->verificarExistenciaArquivo(DIR_SEI_WEB . '/../config/mod-pen/ConfiguracaoModPEN.php'); $this->verificarExistenciaArquivo(DIR_SEI_WEB . '/../bin/mod-pen/verificar-reboot-fila.sh'); diff --git a/src/scripts/MonitoramentoEnvioTarefasPEN.php b/src/scripts/MonitoramentoEnvioTarefasPEN.php new file mode 100644 index 000000000..04efe10ad --- /dev/null +++ b/src/scripts/MonitoramentoEnvioTarefasPEN.php @@ -0,0 +1,38 @@ +setBolLigado(true); + InfraDebug::getInstance()->setBolDebugInfra(false); + InfraDebug::getInstance()->setBolEcho(true); + InfraDebug::getInstance()->limpar(); + + try { + SessaoSEI::getInstance(false); + $arrParametros = getopt("fd", array("monitorar", "segundo-plano", "debug", "wsdl-cache:")); + $bolMonitorar = array_key_exists("f", $arrParametros) || array_key_exists("monitorar", $arrParametros); + $parBolSegundoPlano = array_key_exists("d", $arrParametros) || array_key_exists("segundo-plano", $arrParametros); + $parBoldebug = array_key_exists("debug", $arrParametros); + $parStrWsdlCacheDir = array_key_exists("wsdl-cache", $arrParametros) ? $arrParametros["wsdl-cache"] : null; + + if(is_dir($parStrWsdlCacheDir)){ + ini_set('soap.wsdl_cache_dir', $parStrWsdlCacheDir); + } + + $objPendenciasTramiteRN = new PendenciasEnvioTramiteRN("MONITORAMENTO"); + $resultado = $objPendenciasTramiteRN->expedirPendencias($bolMonitorar, $parBolSegundoPlano, $parBoldebug); + exit($resultado); + + } finally { + InfraDebug::getInstance()->setBolLigado(false); + InfraDebug::getInstance()->setBolDebugInfra(false); + InfraDebug::getInstance()->setBolEcho(false); + } +} diff --git a/src/scripts/MonitoramentoTarefasPEN.php b/src/scripts/MonitoramentoRecebimentoTarefasPEN.php similarity index 92% rename from src/scripts/MonitoramentoTarefasPEN.php rename to src/scripts/MonitoramentoRecebimentoTarefasPEN.php index ec10f5928..c3119805c 100755 --- a/src/scripts/MonitoramentoTarefasPEN.php +++ b/src/scripts/MonitoramentoRecebimentoTarefasPEN.php @@ -27,7 +27,7 @@ } $objPendenciasTramiteRN = new PendenciasTramiteRN("MONITORAMENTO"); - $resultado = $objPendenciasTramiteRN->encaminharPendencias($bolMonitorar, $parBolSegundoPlano, $parBoldebug); + $resultado = $objPendenciasTramiteRN->receberPendencias($bolMonitorar, $parBolSegundoPlano, $parBoldebug); exit($resultado); } finally { diff --git a/src/scripts/sei_atualizar_versao_modulo_pen.php b/src/scripts/sei_atualizar_versao_modulo_pen.php index 9f5b8bdc3..7710c1583 100755 --- a/src/scripts/sei_atualizar_versao_modulo_pen.php +++ b/src/scripts/sei_atualizar_versao_modulo_pen.php @@ -2799,7 +2799,151 @@ protected function instalarV3062(){ $this->atualizarNumeroVersao("3.6.2"); } - protected function instalarV3070(){ + protected function instalarV3070() + { + $objMetaBD = $this->objMeta; + + // Alterar colunas em md_pen_expedir_lote + $objMetaBD->alterarColuna('md_pen_expedir_lote', 'id_repositorio_destino', $objMetaBD->tipoNumero(), PenMetaBD::SNULLO); + $objMetaBD->alterarColuna('md_pen_expedir_lote', 'str_repositorio_destino', $objMetaBD->tipoTextoVariavel(250), PenMetaBD::SNULLO); + $objMetaBD->alterarColuna('md_pen_expedir_lote', 'id_repositorio_origem', $objMetaBD->tipoNumero(), PenMetaBD::SNULLO); + $objMetaBD->alterarColuna('md_pen_expedir_lote', 'id_unidade_origem', $objMetaBD->tipoNumero(), PenMetaBD::SNULLO); + $objMetaBD->alterarColuna('md_pen_expedir_lote', 'id_unidade_destino', $objMetaBD->tipoNumero(), PenMetaBD::SNULLO); + $objMetaBD->alterarColuna('md_pen_expedir_lote', 'str_unidade_destino', $objMetaBD->tipoTextoVariavel(250), PenMetaBD::SNULLO); + $objMetaBD->alterarColuna('md_pen_expedir_lote', 'id_usuario', $objMetaBD->tipoNumero(), PenMetaBD::SNULLO); + $objMetaBD->alterarColuna('md_pen_expedir_lote', 'id_unidade', $objMetaBD->tipoNumero(), PenMetaBD::SNULLO); + + // Alterar id da tabela + $this->excluirChaveEstrangeira("md_pen_rel_expedir_lote", "fk_md_pen_rel_expedir_lote", true); + $this->excluirChavePrimariaComIndice("md_pen_expedir_lote", "id_lote", true); + $objMetaBD->adicionarColuna('md_pen_expedir_lote', 'id_bloco_processo', $objMetaBD->tipoNumero(), PenMetaBD::NNULLO); + $objMetaBD->excluirColuna('md_pen_expedir_lote', 'id_lote'); + $objMetaBD->adicionarChavePrimaria('md_pen_expedir_lote', 'pk_id_bloco_processo', array('id_bloco_processo')); + + // Adicionar coluna de atualização do registro + $objMetaBD->adicionarColuna('md_pen_expedir_lote', 'dth_atualizado', $objMetaBD->tipoDataHora(), PenMetaBD::SNULLO); + $objMetaBD->adicionarColuna('md_pen_expedir_lote', 'dth_envio', $objMetaBD->tipoDataHora(), PenMetaBD::SNULLO); + + // Adicionar campos extrar para a tabela md_pen_expedir_lote + $objMetaBD->adicionarColuna('md_pen_expedir_lote', 'id_protocolo', $objMetaBD->tipoNumeroGrande(10), PenMetaBD::SNULLO); + $objMetaBD->adicionarColuna('md_pen_expedir_lote', 'id_bloco', $objMetaBD->tipoNumero(10), PenMetaBD::SNULLO); + $objMetaBD->adicionarColuna('md_pen_expedir_lote', 'sequencia', $objMetaBD->tipoNumero(10), PenMetaBD::SNULLO); + $objMetaBD->adicionarColuna('md_pen_expedir_lote', 'id_andamento', $objMetaBD->tipoNumero(11), PenMetaBD::SNULLO); + $objMetaBD->adicionarColuna('md_pen_expedir_lote', 'id_atividade_expedicao', $objMetaBD->tipoTextoVariavel(4000), PenMetaBD::SNULLO); + $objMetaBD->adicionarColuna('md_pen_expedir_lote', 'tentativas', $objMetaBD->tipoNumero(), PenMetaBD::SNULLO); + + $this->excluirChaveEstrangeira("md_pen_expedir_lote", "fk_bloco_protocolo", true); + $this->excluirChaveEstrangeira("md_pen_expedir_lote", "fk_md_pen_expedir_lote_usuario", true); + $this->excluirChaveEstrangeira("md_pen_expedir_lote", "fk_md_pen_expedir_lote_unidade", true); + $this->excluirChaveEstrangeira("md_pen_rel_expedir_lote", "fk_md_pen_rel_expedir_lote", true); + $this->excluirChaveEstrangeira("md_pen_bloco_protocolo", "fk_bloco_protocolo", true); + + $objMetaBD->novoRenomearTabela("md_pen_expedir_lote", "md_pen_bloco_processo"); + + $objMetaBD->adicionarChaveEstrangeira("fk_md_pen_bloco_processo_procedimento", "md_pen_bloco_processo", array('id_protocolo'), "protocolo", array('id_protocolo'), false); + $objMetaBD->adicionarChaveEstrangeira("fk_md_pen_bloco_processo_bloco", "md_pen_bloco_processo", array('id_bloco'), "md_pen_bloco", array('id'), false); + $objMetaBD->adicionarChaveEstrangeira("fk_md_pen_bloco_processo_usuario", "md_pen_bloco_processo", array('id_usuario'), "usuario", array('id_usuario'), false); + $objMetaBD->adicionarChaveEstrangeira("fk_md_pen_bloco_processo_unidade", "md_pen_bloco_processo", array('id_unidade'), "unidade", array('id_unidade'), false); + + $objInfraBanco = BancoSEI::getInstance(); + + $objInfraSequenciaRN = new InfraSequenciaRN(); + $objInfraSequenciaDTO = new InfraSequenciaDTO(); + + //Sequência: md_pen_seq_lote + $rs = BancoSEI::getInstance()->consultarSql('select max(id_bloco_processo) as total from md_pen_bloco_processo'); + $numMaxId = isset($rs[0]['total']) ? $rs[0]['total'] : 0; + $objInfraBanco->criarSequencialNativa('md_pen_seq_bloco_processo', $numMaxId + 1); + $objInfraSequenciaDTO->setStrNome('md_pen_seq_bloco_processo'); + $objInfraSequenciaDTO->retStrNome(); + $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); + $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); + + $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $objTramiteEmBlocoDTO->setStrStaTipo(TramiteEmBlocoRN::$TB_INTERNO); + $objTramiteEmBlocoDTO->setNumIdUnidade(null); + $objTramiteEmBlocoDTO->setNumIdUsuario(null); + $objTramiteEmBlocoDTO->setStrDescricao('Generico'); + $objTramiteEmBlocoDTO->setStrIdxBloco(null); + $objTramiteEmBlocoDTO->setStrStaEstado(TramiteEmBlocoRN::$TE_CONCLUIDO); + + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $objTramiteEmBlocoDTO = $objTramiteEmBlocoRN->cadastrar($objTramiteEmBlocoDTO); + + $idBloco = $objTramiteEmBlocoDTO->getNumId(); + // Atualizar que não tem bloco relacionado par abloco genérico + $objInfraBanco->executarSql('update md_pen_bloco_processo set id_bloco = '.$idBloco.' where id_bloco is NULL'); + + // Atualizar id_bloco para not null + $objMetaBD->alterarColuna('md_pen_bloco_processo', 'id_bloco', $objMetaBD->tipoNumero(10), PenMetaBD::NNULLO); + + $dthRegistro = date('d/m/Y H:i:s'); + + $sql = "SELECT + bp.id_protocolo, rel.id_andamento, rel.id_atividade_expedicao, rel.tentativas + FROM md_pen_bloco_protocolo bp + inner join md_pen_rel_expedir_lote rel on rel.id_procedimento = bp.id_protocolo"; + + $blocosTramite = $objInfraBanco->consultarSql($sql); + if (!empty($blocosTramite)) { + foreach ($blocosTramite as $blocoTramite) { + $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTO->setDblIdProtocolo($blocoTramite['id_protocolo']); + $objPenBlocoProcessoDTO->setNumIdAndamento($blocoTramite['id_andamento']); + $objPenBlocoProcessoDTO->setNumIdAtividadeExpedicao($blocoTramite['id_atividade_expedicao']); + $objPenBlocoProcessoDTO->setNumTentativas($blocoTramite['tentativas']); + $objPenBlocoProcessoDTO->setNumIdBloco($idBloco); + $objPenBlocoProcessoDTO->setDthRegistro($dthRegistro); + $objPenBlocoProcessoDTO->setDthAtualizado($dthRegistro); + + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $objPenBlocoProcessoDTO = $objPenBlocoProcessoRN->cadastrar($objPenBlocoProcessoDTO); + } + } + + $objMetaBD->removerTabela('md_pen_bloco_protocolo'); + $objMetaBD->removerTabela('md_pen_seq_bloco_protocolo'); + $objMetaBD->removerTabela('md_pen_rel_expedir_lote'); + $objMetaBD->removerTabela('md_pen_seq_expedir_lote'); + + // Adicionar agendamento de atualização de informações de envio + $objInfraAgendamentoTarefaBD = new InfraAgendamentoTarefaBD(BancoSEI::getInstance()); + $objReceberProcessosPEN = new InfraAgendamentoTarefaDTO(); + $objReceberProcessosPEN->setStrComando("PENAgendamentoRN::processarTarefasEnvioPEN"); + if ($objInfraAgendamentoTarefaBD->contar($objReceberProcessosPEN) == 0) { + $strDesc = "Recebe as notificações de novos trâmites de processos/documentos, notificações de conclusão de trâmites ou recusas de recebimento de processos por outras instituições. \n\n"; + $strDesc .= "Este agendamento considera os seguintes parâmetros durante sua execução:\n"; + $strDesc .= " - debug: Indica se o log de debug gerado no processamento será registrado nos logs do sistema (valores: true,false | padrão: false)\n"; + $strDesc .= " - workers: Quantidade de processos paralelos que serão abertos para processamento de tarefas (valores: 0-9 | padrão: 4)\n"; + $objReceberProcessosPEN->setStrDescricao($strDesc); + $objReceberProcessosPEN->setStrStaPeriodicidadeExecucao("N"); + $objReceberProcessosPEN->setStrPeriodicidadeComplemento("0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58"); + $objReceberProcessosPEN->setStrSinAtivo("S"); + $objReceberProcessosPEN->setStrSinSucesso("S"); + $objInfraAgendamentoTarefaBD->cadastrar($objReceberProcessosPEN); + } + + $objReceberProcessosPEN = new InfraAgendamentoTarefaDTO(); + $objReceberProcessosPEN->setStrComando("PENAgendamentoRN::processarTarefasPEN"); + if ($objInfraAgendamentoTarefaBD->contar($objReceberProcessosPEN) > 0) { + $objReceberProcessosPEN->retTodos(); + $objReceberProcessosPEN = $objInfraAgendamentoTarefaBD->consultar($objReceberProcessosPEN); + $objReceberProcessosPEN->setStrComando("PENAgendamentoRN::processarTarefasRecebimentoPEN"); + $objInfraAgendamentoTarefaBD->alterar($objReceberProcessosPEN); + } else { + $objReceberProcessosPEN->setStrComando("PENAgendamentoRN::processarTarefasRecebimentoPEN"); + $strDesc = "Recebe as notificações de novos trâmites de processos/documentos, notificações de conclusão de trâmites ou recusas de recebimento de processos por outras instituições. \n\n"; + $strDesc .= "Este agendamento considera os seguintes parâmetros durante sua execução:\n"; + $strDesc .= " - debug: Indica se o log de debug gerado no processamento será registrado nos logs do sistema (valores: true,false | padrão: false)\n"; + $strDesc .= " - workers: Quantidade de processos paralelos que serão abertos para processamento de tarefas (valores: 0-9 | padrão: 4)\n"; + $objReceberProcessosPEN->setStrDescricao($strDesc); + $objReceberProcessosPEN->setStrStaPeriodicidadeExecucao("N"); + $objReceberProcessosPEN->setStrPeriodicidadeComplemento("0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58"); + $objReceberProcessosPEN->setStrSinAtivo("S"); + $objReceberProcessosPEN->setStrSinSucesso("S"); + $objInfraAgendamentoTarefaBD->cadastrar($objReceberProcessosPEN); + } + $this->atualizarNumeroVersao("3.7.0"); } } diff --git a/tests_sei4/funcional/assets/config/supervisor.ini b/tests_sei4/funcional/assets/config/supervisor.ini index 354114e69..5515e0aa6 100755 --- a/tests_sei4/funcional/assets/config/supervisor.ini +++ b/tests_sei4/funcional/assets/config/supervisor.ini @@ -19,7 +19,25 @@ stderr_logfile=/var/log/supervisor/sei_processar_pendencias.log-err stderr_events_enabled=true [program:monitoramento_tarefas_pen] -command=/usr/bin/php -c /etc/php.ini %(here)s/../../scripts/mod-pen/MonitoramentoTarefasPEN.php --monitorar --segundo-plano +command=/usr/bin/php -c /etc/php.ini %(here)s/../../scripts/mod-pen/MonitoramentoEnvioTarefasPEN.php --monitorar --segundo-plano +directory=/opt/sei/web +numprocs=1 +user=apache +autostart=true +autorestart=true +startsecs=5 +startretries=1000 +log_stdout=true +log_stderr=true +logfile_maxbytes=10MB +logfile_backups=50 +logfile=/var/log/supervisor/sei_monitorar_pendencias.log +stdout_logfile=/var/log/supervisor/sei_monitorar_pendencias.log-out +stderr_logfile=/var/log/supervisor/sei_monitorar_pendencias.log-err +stderr_events_enabled=true + +[program:monitoramento_tarefas_pen] +command=/usr/bin/php -c /etc/php.ini %(here)s/../../scripts/mod-pen/MonitoramentoRecebimentoTarefasPEN.php --monitorar --segundo-plano directory=/opt/sei/web numprocs=1 user=apache diff --git a/tests_sei4/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php b/tests_sei4/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php index 42ca5c465..944c1da78 100644 --- a/tests_sei4/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php +++ b/tests_sei4/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php @@ -6,7 +6,7 @@ class BlocoDeTramiteProtocoloFixture extends \FixtureBase public function __construct() { - $this->objBlocoDeTramiteProtocoloDTO = new \TramitaEmBlocoProtocoloDTO(); + $this->objBlocoDeTramiteProtocoloDTO = new \PenBlocoProcessoDTO(); } protected function inicializarObjInfraIBanco() @@ -16,14 +16,14 @@ protected function inicializarObjInfraIBanco() protected function cadastrar($dados = []) { - $this->objBlocoDeTramiteProtocoloDTO->setDblIdProtocolo($dados['IdProtocolo'] ?: null); - $this->objBlocoDeTramiteProtocoloDTO->setNumIdTramitaEmBloco($dados['IdTramitaEmBloco'] ?: null); + $this->objBlocoDeTramiteProtocoloDTO->setNumIdBloco($dados['IdBloco'] ?: null); $this->objBlocoDeTramiteProtocoloDTO->setNumSequencia($dados['Sequencia'] ?: null); - $this->objBlocoDeTramiteProtocoloDTO->setStrIdxRelBlocoProtocolo($dados['IdxRelBlocoProtocolo'] ?: null); + $dthRegistro = date('d/m/Y H:i:s'); + $this->objBlocoDeTramiteProtocoloDTO->setDthRegistro($dados['DthRegistro'] ?: $dthRegistro); + $this->objBlocoDeTramiteProtocoloDTO->setDthAtualizado($dados['DthAtualizado'] ?: $dthRegistro); - - $objBlocoDeTramiteProtocoloBD = new \TramitaEmBlocoProtocoloBD(\BancoSEI::getInstance()); + $objBlocoDeTramiteProtocoloBD = new \PenBlocoProcessoBD(\BancoSEI::getInstance()); $objBlocoDeTramiteProtocoloBD->cadastrar($this->objBlocoDeTramiteProtocoloDTO); return $this->objBlocoDeTramiteProtocoloDTO; diff --git a/tests_sei4/funcional/tests/CenarioBaseTestCase.php b/tests_sei4/funcional/tests/CenarioBaseTestCase.php index 91c769ce9..7d1346628 100755 --- a/tests_sei4/funcional/tests/CenarioBaseTestCase.php +++ b/tests_sei4/funcional/tests/CenarioBaseTestCase.php @@ -100,7 +100,8 @@ public static function setUpBeforeClass(): void // Configuração do prefíxo de processos $bancoOrgaoA->execute("update orgao set codigo_sei=? where sigla=?", array(CONTEXTO_ORGAO_A_NUMERO_SEI, CONTEXTO_ORGAO_A_SIGLA_ORGAO)); $bancoOrgaoA->execute("update unidade set sin_protocolo=? where sigla=?", array('S', CONTEXTO_ORGAO_A_SIGLA_UNIDADE)); - $bancoOrgaoA->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasPEN'", null); + $bancoOrgaoA->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasEnvioPEN'", null); + $bancoOrgaoA->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasRecebimentoPEN'", null); // Remoção de mapeamento de espécie não mapeada na origem $nomeSerieNaoMapeada = utf8_encode(CONTEXTO_ORGAO_A_TIPO_DOCUMENTO_NAO_MAPEADO); @@ -140,7 +141,8 @@ public static function setUpBeforeClass(): void $bancoOrgaoB->execute("update orgao set codigo_sei=? where sigla=?", array(CONTEXTO_ORGAO_B_NUMERO_SEI, CONTEXTO_ORGAO_B_SIGLA_ORGAO)); $bancoOrgaoB->execute("update unidade set sin_protocolo=? where sigla=?", array('S', CONTEXTO_ORGAO_B_SIGLA_UNIDADE)); - $bancoOrgaoB->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasPEN'", null); + $bancoOrgaoB->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasEnvioPEN'", null); + $bancoOrgaoB->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasRecebimentoPEN'", null); $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(50, 'SEI_TAM_MB_DOC_EXTERNO')); // Remoção de mapeamento de espécie não mapeada na origem diff --git a/tests_sei4/funcional/tests/TramiteBlocoExternoLimiteAnexoTest.php b/tests_sei4/funcional/tests/TramiteBlocoExternoLimiteAnexoTest.php index 9cdc40a08..a57cfe053 100644 --- a/tests_sei4/funcional/tests/TramiteBlocoExternoLimiteAnexoTest.php +++ b/tests_sei4/funcional/tests/TramiteBlocoExternoLimiteAnexoTest.php @@ -88,20 +88,12 @@ public function test_tramitar_processo_anexado_da_origem() $objAnexoFixture->carregar([ 'IdProtocolo' => $objDocumentoDTO->getDblIdDocumento(), 'Nome' => basename(self::$documentoTeste1['ARQUIVO']), - ]); - - // $objAssinaturaFixture = new AssinaturaFixture(); - // $objAssinaturaFixture->carregar([ - // 'IdProtocolo' => $objProtocoloFixtureDTO->getDblIdProtocolo(), - // 'IdDocumento' => $objDocumentoDTO->getDblIdDocumento(), - // 'IdAtividade' => $objAtividadeDTO->getNumIdAtividade(), - // ]); + ]); $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => $objProtocoloFixtureDTO->getDblIdProtocolo(), - 'IdTramitaEmBloco' => $objBlocoDeTramiteDTO->getNumId(), - 'IdxRelBlocoProtocolo' => $objProtocoloFixtureDTO->getStrProtocoloFormatado() + 'IdProtocolo' => $objProtocoloFixtureDTO->getDblIdProtocolo(), + 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() ]); self::$protocoloTestePrincipal['PROTOCOLO'] = $objProtocoloFixtureDTO->getStrProtocoloFormatado(); diff --git a/tests_sei4/funcional/tests/TramiteBlocoExternoLimiteTest.php b/tests_sei4/funcional/tests/TramiteBlocoExternoLimiteTest.php index c44773185..84d2e88fd 100644 --- a/tests_sei4/funcional/tests/TramiteBlocoExternoLimiteTest.php +++ b/tests_sei4/funcional/tests/TramiteBlocoExternoLimiteTest.php @@ -73,8 +73,7 @@ public function teste_tramite_bloco_externo() $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ 'IdProtocolo' => $objProtocoloFixtureDTO->getDblIdProtocolo(), - 'IdTramitaEmBloco' => $objBlocoDeTramiteDTO->getNumId(), - 'IdxRelBlocoProtocolo' => $objProtocoloFixtureDTO->getStrProtocoloFormatado() + 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() ]); self::$protocoloTestePrincipal = $objProtocoloFixtureDTO->getStrProtocoloFormatado(); diff --git a/tests_sei4/funcional/tests/TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest.php b/tests_sei4/funcional/tests/TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest.php index a3a3fe9de..1c4c36516 100644 --- a/tests_sei4/funcional/tests/TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest.php +++ b/tests_sei4/funcional/tests/TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest.php @@ -64,8 +64,7 @@ public function teste_mesmo_processo_em_bloco() $objBlocoDeTramiteProtocoloFixture = new BlocoDeTramiteProtocoloFixture(); $objBlocoDeTramiteProtocoloFixture->carregar([ 'IdProtocolo' => $this->objProtocoloDTO->getDblIdProtocolo(), - 'IdTramitaEmBloco' => $this->objBlocoDeTramiteDTO->getNumId(), - 'IdxRelBlocoProtocolo' => $this->objProtocoloDTO->getStrProtocoloFormatado() + 'IdBloco' => $this->objBlocoDeTramiteDTO->getNumId() ]); $this->acessarSistema( @@ -84,7 +83,7 @@ public function teste_mesmo_processo_em_bloco() $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); $this->assertStringContainsString( utf8_encode( - 'Prezado(a) usuário(a), o processo ' . $this->objProtocoloDTO->getStrProtocoloFormatado() + 'Prezado(a) usuário(a), o processo ' . $this->objProtocoloDTO->getDblIdProtocolo() . ' encontra-se inserido no bloco ' . $this->objBlocoDeTramiteDTO->getNumId() . ' - ' . $this->objBlocoDeTramiteDTO->getStrDescricao() . '. Para continuar com essa ação é necessário que o processo seja removido do bloco em questão.' diff --git a/tests_sei4/funcional/tests/TramiteBlocoExternoTest.php b/tests_sei4/funcional/tests/TramiteBlocoExternoTest.php index 59f493e1e..d2c573e10 100644 --- a/tests_sei4/funcional/tests/TramiteBlocoExternoTest.php +++ b/tests_sei4/funcional/tests/TramiteBlocoExternoTest.php @@ -69,8 +69,7 @@ function setUp(): void $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdTramitaEmBloco' => $objBlocoDeTramiteDTO->getNumId(), - 'IdxRelBlocoProtocolo' => $objProtocoloDTO->getStrProtocoloFormatado() + 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() ]); }); diff --git a/tests_sei41/funcional/assets/config/supervisor.ini b/tests_sei41/funcional/assets/config/supervisor.ini index 354114e69..5515e0aa6 100755 --- a/tests_sei41/funcional/assets/config/supervisor.ini +++ b/tests_sei41/funcional/assets/config/supervisor.ini @@ -19,7 +19,25 @@ stderr_logfile=/var/log/supervisor/sei_processar_pendencias.log-err stderr_events_enabled=true [program:monitoramento_tarefas_pen] -command=/usr/bin/php -c /etc/php.ini %(here)s/../../scripts/mod-pen/MonitoramentoTarefasPEN.php --monitorar --segundo-plano +command=/usr/bin/php -c /etc/php.ini %(here)s/../../scripts/mod-pen/MonitoramentoEnvioTarefasPEN.php --monitorar --segundo-plano +directory=/opt/sei/web +numprocs=1 +user=apache +autostart=true +autorestart=true +startsecs=5 +startretries=1000 +log_stdout=true +log_stderr=true +logfile_maxbytes=10MB +logfile_backups=50 +logfile=/var/log/supervisor/sei_monitorar_pendencias.log +stdout_logfile=/var/log/supervisor/sei_monitorar_pendencias.log-out +stderr_logfile=/var/log/supervisor/sei_monitorar_pendencias.log-err +stderr_events_enabled=true + +[program:monitoramento_tarefas_pen] +command=/usr/bin/php -c /etc/php.ini %(here)s/../../scripts/mod-pen/MonitoramentoRecebimentoTarefasPEN.php --monitorar --segundo-plano directory=/opt/sei/web numprocs=1 user=apache diff --git a/tests_sei41/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php b/tests_sei41/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php index 42ca5c465..944c1da78 100644 --- a/tests_sei41/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php +++ b/tests_sei41/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php @@ -6,7 +6,7 @@ class BlocoDeTramiteProtocoloFixture extends \FixtureBase public function __construct() { - $this->objBlocoDeTramiteProtocoloDTO = new \TramitaEmBlocoProtocoloDTO(); + $this->objBlocoDeTramiteProtocoloDTO = new \PenBlocoProcessoDTO(); } protected function inicializarObjInfraIBanco() @@ -16,14 +16,14 @@ protected function inicializarObjInfraIBanco() protected function cadastrar($dados = []) { - $this->objBlocoDeTramiteProtocoloDTO->setDblIdProtocolo($dados['IdProtocolo'] ?: null); - $this->objBlocoDeTramiteProtocoloDTO->setNumIdTramitaEmBloco($dados['IdTramitaEmBloco'] ?: null); + $this->objBlocoDeTramiteProtocoloDTO->setNumIdBloco($dados['IdBloco'] ?: null); $this->objBlocoDeTramiteProtocoloDTO->setNumSequencia($dados['Sequencia'] ?: null); - $this->objBlocoDeTramiteProtocoloDTO->setStrIdxRelBlocoProtocolo($dados['IdxRelBlocoProtocolo'] ?: null); + $dthRegistro = date('d/m/Y H:i:s'); + $this->objBlocoDeTramiteProtocoloDTO->setDthRegistro($dados['DthRegistro'] ?: $dthRegistro); + $this->objBlocoDeTramiteProtocoloDTO->setDthAtualizado($dados['DthAtualizado'] ?: $dthRegistro); - - $objBlocoDeTramiteProtocoloBD = new \TramitaEmBlocoProtocoloBD(\BancoSEI::getInstance()); + $objBlocoDeTramiteProtocoloBD = new \PenBlocoProcessoBD(\BancoSEI::getInstance()); $objBlocoDeTramiteProtocoloBD->cadastrar($this->objBlocoDeTramiteProtocoloDTO); return $this->objBlocoDeTramiteProtocoloDTO; diff --git a/tests_sei41/funcional/tests/CenarioBaseTestCase.php b/tests_sei41/funcional/tests/CenarioBaseTestCase.php index cd166e5c5..767ffb818 100755 --- a/tests_sei41/funcional/tests/CenarioBaseTestCase.php +++ b/tests_sei41/funcional/tests/CenarioBaseTestCase.php @@ -101,7 +101,8 @@ public static function setUpBeforeClass(): void // Configuração do prefíxo de processos $bancoOrgaoA->execute("update orgao set codigo_sei=? where sigla=?", array(CONTEXTO_ORGAO_A_NUMERO_SEI, CONTEXTO_ORGAO_A_SIGLA_ORGAO)); $bancoOrgaoA->execute("update unidade set sin_protocolo=? where sigla=?", array('S', CONTEXTO_ORGAO_A_SIGLA_UNIDADE)); - $bancoOrgaoA->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasPEN'", null); + $bancoOrgaoA->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasEnvioPEN'", null); + $bancoOrgaoA->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasRecebimentoPEN'", null); // Remoção de mapeamento de espécie não mapeada na origem $nomeSerieNaoMapeada = utf8_encode(CONTEXTO_ORGAO_A_TIPO_DOCUMENTO_NAO_MAPEADO); @@ -140,7 +141,8 @@ public static function setUpBeforeClass(): void $bancoOrgaoB->execute("update orgao set codigo_sei=? where sigla=?", array(CONTEXTO_ORGAO_B_NUMERO_SEI, CONTEXTO_ORGAO_B_SIGLA_ORGAO)); $bancoOrgaoB->execute("update unidade set sin_protocolo=? where sigla=?", array('S', CONTEXTO_ORGAO_B_SIGLA_UNIDADE)); - $bancoOrgaoB->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasPEN'", null); + $bancoOrgaoB->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasEnvioPEN'", null); + $bancoOrgaoB->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasRecebimentoPEN'", null); $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(50, 'SEI_TAM_MB_DOC_EXTERNO')); // Remoção de mapeamento de espécie não mapeada na origem diff --git a/tests_sei41/funcional/tests/TramiteBlocoExternoLimiteAnexoTest.php b/tests_sei41/funcional/tests/TramiteBlocoExternoLimiteAnexoTest.php index 686b25f27..bbfadac1c 100644 --- a/tests_sei41/funcional/tests/TramiteBlocoExternoLimiteAnexoTest.php +++ b/tests_sei41/funcional/tests/TramiteBlocoExternoLimiteAnexoTest.php @@ -97,18 +97,10 @@ public function test_tramitar_processo_anexado_da_origem() 'Nome' => basename(self::$documentoTeste1['ARQUIVO']), ]); - // $objAssinaturaFixture = new AssinaturaFixture(); - // $objAssinaturaFixture->carregar([ - // 'IdProtocolo' => $objProtocoloFixtureDTO->getDblIdProtocolo(), - // 'IdDocumento' => $objDocumentoDTO->getDblIdDocumento(), - // 'IdAtividade' => $objAtividadeDTO->getNumIdAtividade(), - // ]); - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => $objProtocoloFixtureDTO->getDblIdProtocolo(), - 'IdTramitaEmBloco' => $objBlocoDeTramiteDTO->getNumId(), - 'IdxRelBlocoProtocolo' => $objProtocoloFixtureDTO->getStrProtocoloFormatado() + 'IdProtocolo' => $objProtocoloFixtureDTO->getDblIdProtocolo(), + 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() ]); self::$protocoloTestePrincipal['PROTOCOLO'] = $objProtocoloFixtureDTO->getStrProtocoloFormatado(); diff --git a/tests_sei41/funcional/tests/TramiteBlocoExternoLimiteTest.php b/tests_sei41/funcional/tests/TramiteBlocoExternoLimiteTest.php index e436d0b1c..b7f15f863 100644 --- a/tests_sei41/funcional/tests/TramiteBlocoExternoLimiteTest.php +++ b/tests_sei41/funcional/tests/TramiteBlocoExternoLimiteTest.php @@ -73,8 +73,7 @@ public function teste_tramite_bloco_externo() $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ 'IdProtocolo' => $objProtocoloFixtureDTO->getDblIdProtocolo(), - 'IdTramitaEmBloco' => $objBlocoDeTramiteDTO->getNumId(), - 'IdxRelBlocoProtocolo' => $objProtocoloFixtureDTO->getStrProtocoloFormatado() + 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() ]); self::$protocoloTestePrincipal = $objProtocoloFixtureDTO->getStrProtocoloFormatado(); diff --git a/tests_sei41/funcional/tests/TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest.php b/tests_sei41/funcional/tests/TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest.php index a3a3fe9de..1c4c36516 100644 --- a/tests_sei41/funcional/tests/TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest.php +++ b/tests_sei41/funcional/tests/TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest.php @@ -64,8 +64,7 @@ public function teste_mesmo_processo_em_bloco() $objBlocoDeTramiteProtocoloFixture = new BlocoDeTramiteProtocoloFixture(); $objBlocoDeTramiteProtocoloFixture->carregar([ 'IdProtocolo' => $this->objProtocoloDTO->getDblIdProtocolo(), - 'IdTramitaEmBloco' => $this->objBlocoDeTramiteDTO->getNumId(), - 'IdxRelBlocoProtocolo' => $this->objProtocoloDTO->getStrProtocoloFormatado() + 'IdBloco' => $this->objBlocoDeTramiteDTO->getNumId() ]); $this->acessarSistema( @@ -84,7 +83,7 @@ public function teste_mesmo_processo_em_bloco() $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); $this->assertStringContainsString( utf8_encode( - 'Prezado(a) usuário(a), o processo ' . $this->objProtocoloDTO->getStrProtocoloFormatado() + 'Prezado(a) usuário(a), o processo ' . $this->objProtocoloDTO->getDblIdProtocolo() . ' encontra-se inserido no bloco ' . $this->objBlocoDeTramiteDTO->getNumId() . ' - ' . $this->objBlocoDeTramiteDTO->getStrDescricao() . '. Para continuar com essa ação é necessário que o processo seja removido do bloco em questão.' diff --git a/tests_sei41/funcional/tests/TramiteBlocoExternoTest.php b/tests_sei41/funcional/tests/TramiteBlocoExternoTest.php index 59f493e1e..d2c573e10 100644 --- a/tests_sei41/funcional/tests/TramiteBlocoExternoTest.php +++ b/tests_sei41/funcional/tests/TramiteBlocoExternoTest.php @@ -69,8 +69,7 @@ function setUp(): void $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdTramitaEmBloco' => $objBlocoDeTramiteDTO->getNumId(), - 'IdxRelBlocoProtocolo' => $objProtocoloDTO->getStrProtocoloFormatado() + 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() ]); }); diff --git a/tests_super/funcional/assets/config/supervisor.ini b/tests_super/funcional/assets/config/supervisor.ini index 354114e69..67be29221 100755 --- a/tests_super/funcional/assets/config/supervisor.ini +++ b/tests_super/funcional/assets/config/supervisor.ini @@ -19,7 +19,25 @@ stderr_logfile=/var/log/supervisor/sei_processar_pendencias.log-err stderr_events_enabled=true [program:monitoramento_tarefas_pen] -command=/usr/bin/php -c /etc/php.ini %(here)s/../../scripts/mod-pen/MonitoramentoTarefasPEN.php --monitorar --segundo-plano +command=/usr/bin/php -c /etc/php.ini %(here)s/../../scripts/mod-pen/MonitoramentoRecebimentoTarefasPEN.php --monitorar --segundo-plano +directory=/opt/sei/web +numprocs=1 +user=apache +autostart=true +autorestart=true +startsecs=5 +startretries=1000 +log_stdout=true +log_stderr=true +logfile_maxbytes=10MB +logfile_backups=50 +logfile=/var/log/supervisor/sei_monitorar_pendencias.log +stdout_logfile=/var/log/supervisor/sei_monitorar_pendencias.log-out +stderr_logfile=/var/log/supervisor/sei_monitorar_pendencias.log-err +stderr_events_enabled=true + +[program:monitoramento_tarefas_pen] +command=/usr/bin/php -c /etc/php.ini %(here)s/../../scripts/mod-pen/MonitoramentoEnvioTarefasPEN.php --monitorar --segundo-plano directory=/opt/sei/web numprocs=1 user=apache diff --git a/tests_super/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php b/tests_super/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php index 42ca5c465..4ecd17294 100644 --- a/tests_super/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php +++ b/tests_super/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php @@ -6,7 +6,7 @@ class BlocoDeTramiteProtocoloFixture extends \FixtureBase public function __construct() { - $this->objBlocoDeTramiteProtocoloDTO = new \TramitaEmBlocoProtocoloDTO(); + $this->objBlocoDeTramiteProtocoloDTO = new \PenBlocoProcessoDTO(); } protected function inicializarObjInfraIBanco() @@ -16,14 +16,14 @@ protected function inicializarObjInfraIBanco() protected function cadastrar($dados = []) { - $this->objBlocoDeTramiteProtocoloDTO->setDblIdProtocolo($dados['IdProtocolo'] ?: null); - $this->objBlocoDeTramiteProtocoloDTO->setNumIdTramitaEmBloco($dados['IdTramitaEmBloco'] ?: null); + $this->objBlocoDeTramiteProtocoloDTO->setNumIdBloco($dados['IdBloco'] ?: null); $this->objBlocoDeTramiteProtocoloDTO->setNumSequencia($dados['Sequencia'] ?: null); - $this->objBlocoDeTramiteProtocoloDTO->setStrIdxRelBlocoProtocolo($dados['IdxRelBlocoProtocolo'] ?: null); + $dthRegistro = date('d/m/Y H:i:s'); + $this->objBlocoDeTramiteProtocoloDTO->setDthRegistro($dados['DthRegistro'] ?: $dthRegistro); + $this->objBlocoDeTramiteProtocoloDTO->setDthAtualizado($dados['DthAtualizado'] ?: $dthRegistro); - - $objBlocoDeTramiteProtocoloBD = new \TramitaEmBlocoProtocoloBD(\BancoSEI::getInstance()); + $objBlocoDeTramiteProtocoloBD = new \PenBlocoProcessoBD(\BancoSEI::getInstance()); $objBlocoDeTramiteProtocoloBD->cadastrar($this->objBlocoDeTramiteProtocoloDTO); return $this->objBlocoDeTramiteProtocoloDTO; diff --git a/tests_super/funcional/tests/CenarioBaseTestCase.php b/tests_super/funcional/tests/CenarioBaseTestCase.php index 646a29420..4ca118960 100755 --- a/tests_super/funcional/tests/CenarioBaseTestCase.php +++ b/tests_super/funcional/tests/CenarioBaseTestCase.php @@ -106,7 +106,8 @@ public static function setUpBeforeClass(): void // Configuração do prefíxo de processos $bancoOrgaoA->execute("update orgao set codigo_sei=? where sigla=?", array(CONTEXTO_ORGAO_A_NUMERO_SEI, CONTEXTO_ORGAO_A_SIGLA_ORGAO)); $bancoOrgaoA->execute("update unidade set sin_protocolo=? where sigla=?", array('S', CONTEXTO_ORGAO_A_SIGLA_UNIDADE)); - $bancoOrgaoA->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasPEN'", null); + $bancoOrgaoA->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasEnvioPEN'", null); + $bancoOrgaoA->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasRecebimentoPEN'", null); // Remoção de mapeamento de espécie não mapeada na origem $nomeSerieNaoMapeada = utf8_encode(CONTEXTO_ORGAO_A_TIPO_DOCUMENTO_NAO_MAPEADO); @@ -146,7 +147,8 @@ public static function setUpBeforeClass(): void $bancoOrgaoB->execute("update orgao set codigo_sei=? where sigla=?", array(CONTEXTO_ORGAO_B_NUMERO_SEI, CONTEXTO_ORGAO_B_SIGLA_ORGAO)); $bancoOrgaoB->execute("update unidade set sin_protocolo=? where sigla=?", array('S', CONTEXTO_ORGAO_B_SIGLA_UNIDADE)); - $bancoOrgaoB->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasPEN'", null); + $bancoOrgaoB->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasEnvioPEN'", null); + $bancoOrgaoB->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasRecebimentoPEN'", null); $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(50, 'SEI_TAM_MB_DOC_EXTERNO')); // Remoção de mapeamento de espécie não mapeada na origem diff --git a/tests_super/funcional/tests/TramiteBlocoExternoLimiteAnexoTest.php b/tests_super/funcional/tests/TramiteBlocoExternoLimiteAnexoTest.php index f0f984fca..cbcf71074 100644 --- a/tests_super/funcional/tests/TramiteBlocoExternoLimiteAnexoTest.php +++ b/tests_super/funcional/tests/TramiteBlocoExternoLimiteAnexoTest.php @@ -94,20 +94,12 @@ public function test_tramitar_processo_anexado_da_origem() $objAnexoFixture->carregar([ 'IdProtocolo' => $objDocumentoDTO->getDblIdDocumento(), 'Nome' => basename(self::$documentoTeste1['ARQUIVO']), - ]); - - // $objAssinaturaFixture = new AssinaturaFixture(); - // $objAssinaturaFixture->carregar([ - // 'IdProtocolo' => $objProtocoloFixtureDTO->getDblIdProtocolo(), - // 'IdDocumento' => $objDocumentoDTO->getDblIdDocumento(), - // 'IdAtividade' => $objAtividadeDTO->getNumIdAtividade(), - // ]); + ]); $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ 'IdProtocolo' => $objProtocoloFixtureDTO->getDblIdProtocolo(), - 'IdTramitaEmBloco' => $objBlocoDeTramiteDTO->getNumId(), - 'IdxRelBlocoProtocolo' => $objProtocoloFixtureDTO->getStrProtocoloFormatado() + 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() ]); self::$protocoloTestePrincipal['PROTOCOLO'] = $objProtocoloFixtureDTO->getStrProtocoloFormatado(); diff --git a/tests_super/funcional/tests/TramiteBlocoExternoLimiteTest.php b/tests_super/funcional/tests/TramiteBlocoExternoLimiteTest.php index 3178e65a1..e41700dc2 100644 --- a/tests_super/funcional/tests/TramiteBlocoExternoLimiteTest.php +++ b/tests_super/funcional/tests/TramiteBlocoExternoLimiteTest.php @@ -79,8 +79,7 @@ public function teste_tramite_bloco_externo() $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ 'IdProtocolo' => $objProtocoloFixtureDTO->getDblIdProtocolo(), - 'IdTramitaEmBloco' => $objBlocoDeTramiteDTO->getNumId(), - 'IdxRelBlocoProtocolo' => $objProtocoloFixtureDTO->getStrProtocoloFormatado() + 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() ]); self::$protocoloTestePrincipal = $objProtocoloFixtureDTO->getStrProtocoloFormatado(); diff --git a/tests_super/funcional/tests/TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest.php b/tests_super/funcional/tests/TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest.php index 66b1a144c..e74cdcf9a 100644 --- a/tests_super/funcional/tests/TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest.php +++ b/tests_super/funcional/tests/TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest.php @@ -64,8 +64,7 @@ public function teste_mesmo_processo_em_bloco() $objBlocoDeTramiteProtocoloFixture = new BlocoDeTramiteProtocoloFixture(); $objBlocoDeTramiteProtocoloFixture->carregar([ 'IdProtocolo' => $this->objProtocoloDTO->getDblIdProtocolo(), - 'IdTramitaEmBloco' => $this->objBlocoDeTramiteDTO->getNumId(), - 'IdxRelBlocoProtocolo' => $this->objProtocoloDTO->getStrProtocoloFormatado() + 'IdBloco' => $this->objBlocoDeTramiteDTO->getNumId() ]); $this->acessarSistema( @@ -82,9 +81,10 @@ public function teste_mesmo_processo_em_bloco() $this->paginaTramiteEmBloco->clicarSalvar(); sleep(2); $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); + $this->assertStringContainsString( utf8_encode( - 'Prezado(a) usuário(a), o processo ' . $this->objProtocoloDTO->getStrProtocoloFormatado() + 'Prezado(a) usuário(a), o processo ' . $this->objProtocoloDTO->getDblIdProtocolo() . ' encontra-se inserido no bloco ' . $this->objBlocoDeTramiteDTO->getNumId() . ' - ' . $this->objBlocoDeTramiteDTO->getStrDescricao() . '. Para continuar com essa ação é necessário que o processo seja removido do bloco em questão.' diff --git a/tests_super/funcional/tests/TramiteBlocoExternoTest.php b/tests_super/funcional/tests/TramiteBlocoExternoTest.php index 6de178ce3..126d01a36 100644 --- a/tests_super/funcional/tests/TramiteBlocoExternoTest.php +++ b/tests_super/funcional/tests/TramiteBlocoExternoTest.php @@ -70,8 +70,7 @@ function setUp(): void $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdTramitaEmBloco' => $objBlocoDeTramiteDTO->getNumId(), - 'IdxRelBlocoProtocolo' => $objProtocoloDTO->getStrProtocoloFormatado() + 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() ]); });