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 .= '' . $objPaginaSEI->gerarCaptionTabela($strCaptionTabela, $numRegistros) . '';
$strResultado .= '';
$strResultado .= '' . $objPaginaSEI->getThCheck() . ' | ' . "\n";
$strResultado .= '';
-
$strResultado .= '';
$strResultado .= ' Seq ';
$strResultado .= ' ';
$strResultado .= ' ';
$strResultado .= ' ';
-
$strResultado .= ' | ' . "\n";
$strResultado .= '';
-
$strResultado .= '';
$strResultado .= ' Processo ';
$strResultado .= ' ';
$strResultado .= ' ';
$strResultado .= ' ';
-
$strResultado .= ' | ' . "\n";
$strResultado .= 'Usuário | ' . "\n";
$strResultado .= 'Data do Envio | ' . "\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 .= '' . $objPaginaSEI->getTrCheck($i, $numIdBlocoProtocolo, $numIdBlocoProtocolo) . ' | ';
$strResultado .= '' . ($i + 1) . ' | ';
$strResultado .= '';
- $strResultado .= '' . $objTramitaEmBlocoProtocoloDTO->getStrIdxRelBlocoProtocolo() . '';
- $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 .= '' . PaginaSEI::tratarHTML($objPenLoteProcedimento[0]->getStrNomeUsuario()) . ' | ';
- $strResultado .= '' . PaginaSEI::tratarHTML($objPenLoteProcedimento[0]->getDthRegistro()) . ' | ';
- $strResultado .= '' . PaginaSEI::tratarHTML($objPenLoteProcedimento[0]->getStrUnidadeDestino()) . ' | ';
-
+ if ($objTramitaEmBlocoProtocoloDTO->getStrStaEstadoBloco() != TramiteEmBlocoRN::$TE_ABERTO) {
+ $strResultado .= ''. PaginaSEI::tratarHTML($objTramitaEmBlocoProtocoloDTO->getStrNomeUsuario()) . ' | ';
+ $strResultado .= ''. PaginaSEI::tratarHTML($objTramitaEmBlocoProtocoloDTO->getDthEnvio()) . ' | ';
+ $strResultado .= ''. PaginaSEI::tratarHTML($objTramitaEmBlocoProtocoloDTO->getStrUnidadeDestino()) . ' | ';
} else {
$strResultado .= str_repeat(' | ' . "\n", 3);
}
$strResultado .= '' . "\n";
- if ($objTramitaEmBlocoProtocoloDTO->getStrStaEstadoBloco() == TramiteEmBlocoRN::$TE_ABERTO) {
- $strResultado .= ' ';
- } elseif ($objTramitaEmBlocoProtocoloDTO->getStrStaEstadoBloco() == TramiteEmBlocoRN::$TE_DISPONIBILIZADO) {
- $strResultado .= ' ';
- } elseif ($objTramitaEmBlocoProtocoloDTO->getStrStaEstadoBloco() == TramiteEmBlocoRN::$TE_CONCLUIDO && count($objPenLoteProcedimento) > 1) {
- $strResultado .= ' ';
- } elseif ($objTramitaEmBlocoProtocoloDTO->getStrSinObteveRecusa() == 'S') {
- $strResultado .= ' ';
- } 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 .= ' ';
- 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 .= ' ';
+ break;
}
$strResultado .= ' | ' . "\n";
- $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 .= ' ';
- }
- }
+ $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 .= ' ';
}
$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 .= "";
// 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()
]);
});
|