Commit f1cd004f37de163bc3f7500189f87586530e7c56
1 parent
7d9fa19d
Exists in
master
and in
10 other branches
Ajuste parcial para adaptação do recebimento de processos no SEI 3.1
Showing
4 changed files
with
159 additions
and
118 deletions
Show diff stats
rn/ProcessarPendenciasRN.php
@@ -114,7 +114,8 @@ class ProcessarPendenciasRN extends InfraAgendamentoTarefa | @@ -114,7 +114,8 @@ class ProcessarPendenciasRN extends InfraAgendamentoTarefa | ||
114 | LogSEI::getInstance()->gravar(InfraException::inspecionar($e)); | 114 | LogSEI::getInstance()->gravar(InfraException::inspecionar($e)); |
115 | 115 | ||
116 | //Não recusa trâmite caso o processo atual não possa ser desbloqueado, evitando que o processo fique aberto em dois sistemas ao mesmo tempo | 116 | //Não recusa trâmite caso o processo atual não possa ser desbloqueado, evitando que o processo fique aberto em dois sistemas ao mesmo tempo |
117 | - if($e instanceof InfraException && $e->getObjException() != null && !($e->getObjException() instanceof ProcessoNaoPodeSerDesbloqueadoException)) { | 117 | + $bolDeveRecusarTramite = !($e instanceof InfraException && $e->getObjException() != null && $e->getObjException() instanceof ProcessoNaoPodeSerDesbloqueadoException); |
118 | + if($bolDeveRecusarTramite) { | ||
118 | $objProcessoEletronicoRN = new ProcessoEletronicoRN(); | 119 | $objProcessoEletronicoRN = new ProcessoEletronicoRN(); |
119 | $strMensagem = ($e instanceof InfraException) ? $e->__toString() : $e->getMessage(); | 120 | $strMensagem = ($e instanceof InfraException) ? $e->__toString() : $e->getMessage(); |
120 | $objProcessoEletronicoRN->recusarTramite($numIdentificacaoTramite, $strMensagem, ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_OUTROU); | 121 | $objProcessoEletronicoRN->recusarTramite($numIdentificacaoTramite, $strMensagem, ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_OUTROU); |
rn/ProcessoEletronicoRN.php
@@ -1435,6 +1435,33 @@ class ProcessoEletronicoRN extends InfraRN { | @@ -1435,6 +1435,33 @@ class ProcessoEletronicoRN extends InfraRN { | ||
1435 | throw new ProcessoNaoPodeSerDesbloqueadoException("Erro ao desbloquear processo", 1, $e); | 1435 | throw new ProcessoNaoPodeSerDesbloqueadoException("Erro ao desbloquear processo", 1, $e); |
1436 | } | 1436 | } |
1437 | } | 1437 | } |
1438 | + | ||
1439 | + /** | ||
1440 | + * Busca a unidade ao qual o processo foi anteriormente expedido. | ||
1441 | + * Caso seja o primeiro trâmite, considera a unidade atual | ||
1442 | + * | ||
1443 | + * @return integer Id da unidade | ||
1444 | + */ | ||
1445 | + public static function obterUnidadeParaRegistroDocumento($parDblIdProcedimento) | ||
1446 | + { | ||
1447 | + $objAtividadeDTO = new AtividadeDTO(); | ||
1448 | + $objAtividadeDTO->setStrIdTarefaModuloTarefa(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO); | ||
1449 | + $objAtividadeDTO->setDblIdProcedimentoProtocolo($parDblIdProcedimento); | ||
1450 | + $objAtividadeDTO->setOrd('Conclusao', InfraDTO::$TIPO_ORDENACAO_DESC); | ||
1451 | + $objAtividadeDTO->setNumMaxRegistrosRetorno(1); | ||
1452 | + $objAtividadeDTO->retNumIdUnidade(); | ||
1453 | + | ||
1454 | + $objAtividadeRN = new AtividadeRN(); | ||
1455 | + $arrObjAtividadeDTO = $objAtividadeRN->listarRN0036($objAtividadeDTO); | ||
1456 | + $numIdUnidade = SessaoSEI::getInstance()->getNumIdUnidadeAtual(); | ||
1457 | + | ||
1458 | + //if(!empty($arrObjAtividadeDTO)){ | ||
1459 | + // $objAtividadeDTO = $arrObjAtividadeDTO[0]; | ||
1460 | + // $numIdUnidade = $objAtividadeDTO->getNumIdUnidade(); | ||
1461 | + //} | ||
1462 | + | ||
1463 | + return $numIdUnidade; | ||
1464 | + } | ||
1438 | } | 1465 | } |
1439 | 1466 | ||
1440 | 1467 |
rn/ReceberComponenteDigitalRN.php
@@ -142,15 +142,8 @@ class ReceberComponenteDigitalRN extends InfraRN | @@ -142,15 +142,8 @@ class ReceberComponenteDigitalRN extends InfraRN | ||
142 | 142 | ||
143 | $objDocumentoDTO->setObjProtocoloDTO($objProtocoloDTO); | 143 | $objDocumentoDTO->setObjProtocoloDTO($objProtocoloDTO); |
144 | $objProtocoloDTO->setArrObjAnexoDTO(array($parObjAnexoDTO)); | 144 | $objProtocoloDTO->setArrObjAnexoDTO(array($parObjAnexoDTO)); |
145 | - $objDocumentoDTO = $objDocumentoRN->alterarRN0004($objDocumentoDTO); | ||
146 | - | ||
147 | - // @join_tec US029 (#3790) | ||
148 | - /*$objObservacaoDTO = new ObservacaoDTO(); | ||
149 | - $objObservacaoDTO->setDblIdProtocolo($objProtocoloDTO->getDblIdProtocolo()); | ||
150 | - $objObservacaoDTO->setStrDescricao(sprintf('Número SEI do Documento na Origem: %s', $strProtocoloFormatado)); | ||
151 | - $objObservacaoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | ||
152 | 145 | ||
153 | - $objObservacaoBD = new ObservacaoRN(); | ||
154 | - $objObservacaoBD->cadastrarRN0222($objObservacaoDTO);*/ | 146 | + $objDocumentoDTO->setStrSinBloqueado('S'); |
147 | + $objDocumentoDTO = $objDocumentoRN->alterarRN0004($objDocumentoDTO); | ||
155 | } | 148 | } |
156 | } | 149 | } |
rn/ReceberProcedimentoRN.php
@@ -17,6 +17,7 @@ class ReceberProcedimentoRN extends InfraRN | @@ -17,6 +17,7 @@ class ReceberProcedimentoRN extends InfraRN | ||
17 | $this->objInfraParametro = new InfraParametro(BancoSEI::getInstance()); | 17 | $this->objInfraParametro = new InfraParametro(BancoSEI::getInstance()); |
18 | $this->objProcessoEletronicoRN = new ProcessoEletronicoRN(); | 18 | $this->objProcessoEletronicoRN = new ProcessoEletronicoRN(); |
19 | $this->objProcedimentoAndamentoRN = new ProcedimentoAndamentoRN(); | 19 | $this->objProcedimentoAndamentoRN = new ProcedimentoAndamentoRN(); |
20 | + $this->objReceberComponenteDigitalRN = new ReceberComponenteDigitalRN(); | ||
20 | } | 21 | } |
21 | 22 | ||
22 | protected function inicializarObjInfraIBanco() | 23 | protected function inicializarObjInfraIBanco() |
@@ -91,8 +92,6 @@ class ReceberProcedimentoRN extends InfraRN | @@ -91,8 +92,6 @@ class ReceberProcedimentoRN extends InfraRN | ||
91 | $this->verificarPermissoesDiretorios($parNumIdentificacaoTramite); | 92 | $this->verificarPermissoesDiretorios($parNumIdentificacaoTramite); |
92 | 93 | ||
93 | $this->gravarLogDebug("Obtendo metadados dos componentes digitais do processo", 4); | 94 | $this->gravarLogDebug("Obtendo metadados dos componentes digitais do processo", 4); |
94 | - $arrStrNomeDocumento = $this->listarMetaDadosComponentesDigitais($objProcesso); | ||
95 | - $receberComponenteDigitalRN = new ReceberComponenteDigitalRN(); | ||
96 | $arrAnexosComponentes = array(); | 95 | $arrAnexosComponentes = array(); |
97 | $arrayHash = array(); | 96 | $arrayHash = array(); |
98 | $arrayHashPendentes = array(); | 97 | $arrayHashPendentes = array(); |
@@ -127,12 +126,12 @@ class ReceberProcedimentoRN extends InfraRN | @@ -127,12 +126,12 @@ class ReceberProcedimentoRN extends InfraRN | ||
127 | //Obter os dados do componente digital | 126 | //Obter os dados do componente digital |
128 | $this->gravarLogDebug("Baixando componente digital $numOrdemComponente", 6); | 127 | $this->gravarLogDebug("Baixando componente digital $numOrdemComponente", 6); |
129 | $objComponenteDigital = $this->objProcessoEletronicoRN->receberComponenteDigital($parNumIdentificacaoTramite, $componentePendente, $objTramite->protocolo); | 128 | $objComponenteDigital = $this->objProcessoEletronicoRN->receberComponenteDigital($parNumIdentificacaoTramite, $componentePendente, $objTramite->protocolo); |
130 | - $arrAnexosComponentes[$key][$componentePendente] = $receberComponenteDigitalRN->copiarComponenteDigitalPastaTemporaria($objComponenteDigital); | 129 | + $arrAnexosComponentes[$key][$componentePendente] = $this->objReceberComponenteDigitalRN->copiarComponenteDigitalPastaTemporaria($objComponenteDigital); |
131 | $arrAnexosComponentes[$key]['recebido'] = false; | 130 | $arrAnexosComponentes[$key]['recebido'] = false; |
132 | 131 | ||
133 | //Valida a integridade do hash | 132 | //Valida a integridade do hash |
134 | $this->gravarLogDebug("Validando integridade de componente digital $numOrdemComponente", 6); | 133 | $this->gravarLogDebug("Validando integridade de componente digital $numOrdemComponente", 6); |
135 | - $receberComponenteDigitalRN->validarIntegridadeDoComponenteDigital($arrAnexosComponentes[$key][$componentePendente], $componentePendente, $parNumIdentificacaoTramite); | 134 | + $this->objReceberComponenteDigitalRN->validarIntegridadeDoComponenteDigital($arrAnexosComponentes[$key][$componentePendente], $componentePendente, $parNumIdentificacaoTramite); |
136 | } else { | 135 | } else { |
137 | $this->gravarLogDebug("Componente digital $numOrdemComponente desconsiderado por já fazer parte do processo", 6); | 136 | $this->gravarLogDebug("Componente digital $numOrdemComponente desconsiderado por já fazer parte do processo", 6); |
138 | } | 137 | } |
@@ -140,7 +139,7 @@ class ReceberProcedimentoRN extends InfraRN | @@ -140,7 +139,7 @@ class ReceberProcedimentoRN extends InfraRN | ||
140 | } | 139 | } |
141 | 140 | ||
142 | if(count($arrAnexosComponentes) > 0){ | 141 | if(count($arrAnexosComponentes) > 0){ |
143 | - $receberComponenteDigitalRN->setArrAnexos($arrAnexosComponentes); | 142 | + $this->objReceberComponenteDigitalRN->setArrAnexos($arrAnexosComponentes); |
144 | } | 143 | } |
145 | 144 | ||
146 | #############################TERMINA O RECEBIMENTO DOS COMPONENTES DIGITAIS US010################################################ | 145 | #############################TERMINA O RECEBIMENTO DOS COMPONENTES DIGITAIS US010################################################ |
@@ -155,7 +154,13 @@ class ReceberProcedimentoRN extends InfraRN | @@ -155,7 +154,13 @@ class ReceberProcedimentoRN extends InfraRN | ||
155 | } | 154 | } |
156 | 155 | ||
157 | $this->gravarLogDebug("Persistindo/atualizando dados do processo com NRE " . $strNumeroRegistro, 4); | 156 | $this->gravarLogDebug("Persistindo/atualizando dados do processo com NRE " . $strNumeroRegistro, 4); |
158 | - $objProcedimentoDTO = $this->registrarProcesso($strNumeroRegistro, $parNumIdentificacaoTramite, $objProcesso, $objMetadadosProcedimento); | 157 | + $objProcedimentoDTO = $this->registrarProcesso( |
158 | + $strNumeroRegistro, | ||
159 | + $parNumIdentificacaoTramite, | ||
160 | + $objProcesso, | ||
161 | + $objMetadadosProcedimento, | ||
162 | + $arrayHash, | ||
163 | + $arrayHashPendentes); | ||
159 | 164 | ||
160 | // @join_tec US008.08 (#23092) | 165 | // @join_tec US008.08 (#23092) |
161 | $this->objProcedimentoAndamentoRN->setOpts($strNumeroRegistro, $parNumIdentificacaoTramite, ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO), $objProcedimentoDTO->getDblIdProcedimento()); | 166 | $this->objProcedimentoAndamentoRN->setOpts($strNumeroRegistro, $parNumIdentificacaoTramite, ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO), $objProcedimentoDTO->getDblIdProcedimento()); |
@@ -185,70 +190,20 @@ class ReceberProcedimentoRN extends InfraRN | @@ -185,70 +190,20 @@ class ReceberProcedimentoRN extends InfraRN | ||
185 | throw new InfraException("Desconsiderando recebimento do processo devido a situação de trâmite inconsistente: " . $objTramite->situacaoAtual); | 190 | throw new InfraException("Desconsiderando recebimento do processo devido a situação de trâmite inconsistente: " . $objTramite->situacaoAtual); |
186 | } | 191 | } |
187 | 192 | ||
188 | -//return ; | ||
189 | - | ||
190 | - if(count($arrayHashPendentes) > 0){ | ||
191 | - //Obter dados dos componetes digitais | ||
192 | - $this->gravarLogDebug("Iniciando o recebimento dos componentes digitais pendentes", 4); | ||
193 | - $objComponenteDigitalDTO = new ComponenteDigitalDTO(); | ||
194 | - $objComponenteDigitalDTO->setStrNumeroRegistro($strNumeroRegistro); | ||
195 | - $objComponenteDigitalDTO->setNumIdTramite($parNumIdentificacaoTramite); | ||
196 | - $objComponenteDigitalDTO->setStrHashConteudo($arrayHash, InfraDTO::$OPER_IN); | ||
197 | - $objComponenteDigitalDTO->setOrdNumOrdem(InfraDTO::$TIPO_ORDENACAO_ASC); | ||
198 | - $objComponenteDigitalDTO->retDblIdDocumento(); | ||
199 | - $objComponenteDigitalDTO->retNumTicketEnvioComponentes(); | ||
200 | - $objComponenteDigitalDTO->retStrProtocoloDocumentoFormatado(); | ||
201 | - $objComponenteDigitalDTO->retStrHashConteudo(); | ||
202 | - $objComponenteDigitalDTO->retStrProtocolo(); | ||
203 | - $objComponenteDigitalDTO->retStrNumeroRegistro(); | ||
204 | - $objComponenteDigitalDTO->retNumIdTramite(); | ||
205 | - $objComponenteDigitalDTO->retStrNome(); | ||
206 | - $objComponenteDigitalDTO->retStrStaEstadoProtocolo(); | ||
207 | - | ||
208 | - $objComponenteDigitalBD = new ComponenteDigitalBD($this->getObjInfraIBanco()); | ||
209 | - $arrObjComponentesDigitaisDTO = $objComponenteDigitalBD->listar($objComponenteDigitalDTO); | ||
210 | - | ||
211 | - if ($objComponenteDigitalBD->contar($objComponenteDigitalDTO) > 0) { | ||
212 | - $objReceberComponenteDigitalRN = $receberComponenteDigitalRN; | ||
213 | - | ||
214 | - //Esta unidade deverá ser considerada para posterior desbloqueio do processo e reabertura | ||
215 | - $numIdUnidade = $this->obterUnidadeParaRegistroDocumento($objProcedimentoDTO->getDblIdProcedimento()); | ||
216 | - SessaoSEI::getInstance()->setNumIdUnidadeAtual($numIdUnidade); | ||
217 | - | ||
218 | - try{ | ||
219 | - foreach($arrObjComponentesDigitaisDTO as $objComponenteDigitalDTOEnviado) { | ||
220 | - if($objComponenteDigitalDTOEnviado->getStrStaEstadoProtocolo() != ProtocoloRN::$TE_DOCUMENTO_CANCELADO){ | ||
221 | - $strHash = $objComponenteDigitalDTOEnviado->getStrHashConteudo(); | ||
222 | - $strNomeDocumento = (array_key_exists($strHash, $arrStrNomeDocumento)) ? $arrStrNomeDocumento[$strHash]['especieNome'] : '[Desconhecido]'; | ||
223 | - $objReceberComponenteDigitalRN->receberComponenteDigital($objComponenteDigitalDTOEnviado); | ||
224 | - | ||
225 | - $strMensagemRecebimento = sprintf('Recebendo %s %s', $strNomeDocumento, $objComponenteDigitalDTOEnviado->getStrProtocoloDocumentoFormatado()); | ||
226 | - $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento($strMensagemRecebimento, 'S')); | ||
227 | - $this->gravarLogDebug($strMensagemRecebimento, 6); | ||
228 | - } | ||
229 | - } | ||
230 | - } finally { | ||
231 | - $objPenParametroRN = new PenParametroRN(); | ||
232 | - $numUnidadeReceptora = $objPenParametroRN->getParametro('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO'); | ||
233 | - SessaoSEI::getInstance()->setNumIdUnidadeAtual($numUnidadeReceptora); | ||
234 | - } | ||
235 | - | ||
236 | - // @join_tec US008.10 (#23092) | ||
237 | - $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Todos os componentes digitais foram recebidos', 'S')); | ||
238 | - }else{ | ||
239 | - $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Nenhum componente digital para receber', 'S')); | ||
240 | - } | ||
241 | - } | ||
242 | - } | 193 | + //Atribui componentes digitais baixados anteriormente aos documentos do processo |
194 | + $this->atribuirComponentesDigitaisAosDocumentos($objProcedimentoDTO, $strNumeroRegistro, $parNumIdentificacaoTramite, $arrayHash, $arrayHashPendentes); | ||
243 | 195 | ||
244 | - $this->gravarLogDebug("Enviando recibo de conclusão do trâmite $parNumIdentificacaoTramite", 6); | ||
245 | - $objEnviarReciboTramiteRN = new EnviarReciboTramiteRN(); | ||
246 | - $objEnviarReciboTramiteRN->enviarReciboTramiteProcesso($parNumIdentificacaoTramite, $arrayHash); | 196 | + //Finalizar o envio do documento para a respectiva unidade |
197 | + $this->enviarProcedimentoUnidade($objProcedimentoDTO); | ||
247 | 198 | ||
248 | - $this->gravarLogDebug("Registrando a conclusão do recebimento do trâmite $parNumIdentificacaoTramite", 6); | ||
249 | - $objPenTramiteProcessadoRN = new PenTramiteProcessadoRN(PenTramiteProcessadoRN::STR_TIPO_PROCESSO); | ||
250 | - $objPenTramiteProcessadoRN->setRecebido($parNumIdentificacaoTramite); | 199 | + $this->gravarLogDebug("Enviando recibo de conclusão do trâmite $parNumIdentificacaoTramite", 6); |
200 | + $objEnviarReciboTramiteRN = new EnviarReciboTramiteRN(); | ||
201 | + $objEnviarReciboTramiteRN->enviarReciboTramiteProcesso($parNumIdentificacaoTramite, $arrayHash); | ||
251 | 202 | ||
203 | + $this->gravarLogDebug("Registrando a conclusão do recebimento do trâmite $parNumIdentificacaoTramite", 6); | ||
204 | + $objPenTramiteProcessadoRN = new PenTramiteProcessadoRN(PenTramiteProcessadoRN::STR_TIPO_PROCESSO); | ||
205 | + $objPenTramiteProcessadoRN->setRecebido($parNumIdentificacaoTramite); | ||
206 | + } | ||
252 | } catch (Exception $e) { | 207 | } catch (Exception $e) { |
253 | $mensagemErro = InfraException::inspecionar($e); | 208 | $mensagemErro = InfraException::inspecionar($e); |
254 | $this->gravarLogDebug($mensagemErro); | 209 | $this->gravarLogDebug($mensagemErro); |
@@ -258,6 +213,71 @@ class ReceberProcedimentoRN extends InfraRN | @@ -258,6 +213,71 @@ class ReceberProcedimentoRN extends InfraRN | ||
258 | } | 213 | } |
259 | 214 | ||
260 | /** | 215 | /** |
216 | + * Método responsável por atribuir a lista de componentes digitais baixados do PEN aos seus respectivos documentos no SEI | ||
217 | + * | ||
218 | + * @param ProcedimentoDTO $parObjProcedimentoDTO Protocolo que está sendo recebido pelo SEI | ||
219 | + * @param Array $parArrHashComponentesPendentes Lista de componentes pendentes para vinculação aos documentos | ||
220 | + * @return [type] [description] | ||
221 | + */ | ||
222 | + private function atribuirComponentesDigitaisAosDocumentos(ProcedimentoDTO $parObjProcedimentoDTO, $parStrNumeroRegistro, $parNumIdentificacaoTramite, | ||
223 | + $parArrHashComponentes, $parArrHashComponentesPendentes) | ||
224 | + { | ||
225 | + if(count($parArrHashComponentesPendentes) > 0){ | ||
226 | + //Obter dados dos componetes digitais | ||
227 | + $this->gravarLogDebug("Iniciando o recebimento dos componentes digitais pendentes", 4); | ||
228 | + $objComponenteDigitalDTO = new ComponenteDigitalDTO(); | ||
229 | + $objComponenteDigitalDTO->setStrNumeroRegistro($parStrNumeroRegistro); | ||
230 | + $objComponenteDigitalDTO->setNumIdTramite($parNumIdentificacaoTramite); | ||
231 | + $objComponenteDigitalDTO->setStrHashConteudo($parArrHashComponentes, InfraDTO::$OPER_IN); | ||
232 | + $objComponenteDigitalDTO->setOrdNumOrdem(InfraDTO::$TIPO_ORDENACAO_ASC); | ||
233 | + $objComponenteDigitalDTO->retDblIdDocumento(); | ||
234 | + $objComponenteDigitalDTO->retNumTicketEnvioComponentes(); | ||
235 | + $objComponenteDigitalDTO->retStrProtocoloDocumentoFormatado(); | ||
236 | + $objComponenteDigitalDTO->retStrHashConteudo(); | ||
237 | + $objComponenteDigitalDTO->retStrProtocolo(); | ||
238 | + $objComponenteDigitalDTO->retStrNumeroRegistro(); | ||
239 | + $objComponenteDigitalDTO->retNumIdTramite(); | ||
240 | + $objComponenteDigitalDTO->retStrNome(); | ||
241 | + $objComponenteDigitalDTO->retStrStaEstadoProtocolo(); | ||
242 | + | ||
243 | + $objComponenteDigitalBD = new ComponenteDigitalBD($this->getObjInfraIBanco()); | ||
244 | + $arrObjComponentesDigitaisDTO = $objComponenteDigitalBD->listar($objComponenteDigitalDTO); | ||
245 | + | ||
246 | + if ($objComponenteDigitalBD->contar($objComponenteDigitalDTO) > 0) { | ||
247 | + //Esta unidade deverá ser considerada para posterior desbloqueio do processo e reabertura | ||
248 | + $numIdUnidade = ProcessoEletronicoRN::obterUnidadeParaRegistroDocumento($parObjProcedimentoDTO->getDblIdProcedimento()); | ||
249 | + SessaoSEI::getInstance()->setNumIdUnidadeAtual($numIdUnidade); | ||
250 | + | ||
251 | + try{ | ||
252 | + $arrStrNomeDocumento = $this->listarMetaDadosComponentesDigitais($objProcesso); | ||
253 | + foreach($arrObjComponentesDigitaisDTO as $objComponenteDigitalDTOEnviado) { | ||
254 | + if($objComponenteDigitalDTOEnviado->getStrStaEstadoProtocolo() != ProtocoloRN::$TE_DOCUMENTO_CANCELADO){ | ||
255 | + $strHash = $objComponenteDigitalDTOEnviado->getStrHashConteudo(); | ||
256 | + $strNomeDocumento = array_key_exists($strHash, $arrStrNomeDocumento) ? $arrStrNomeDocumento[$strHash]['especieNome'] : '[Desconhecido]'; | ||
257 | + | ||
258 | + //Todo: Parei aqui: Verificar se documento já foi recebido anteriormente para poder registrar | ||
259 | + //Alterar somente de documentos não bloqueados | ||
260 | + $this->objReceberComponenteDigitalRN->receberComponenteDigital($objComponenteDigitalDTOEnviado); | ||
261 | + $strMensagemRecebimento = sprintf('Recebendo %s %s', $strNomeDocumento, $objComponenteDigitalDTOEnviado->getStrProtocoloDocumentoFormatado()); | ||
262 | + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento($strMensagemRecebimento, 'S')); | ||
263 | + $this->gravarLogDebug($strMensagemRecebimento, 6); | ||
264 | + } | ||
265 | + } | ||
266 | + } finally { | ||
267 | + $objPenParametroRN = new PenParametroRN(); | ||
268 | + $numUnidadeReceptora = $objPenParametroRN->getParametro('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO'); | ||
269 | + SessaoSEI::getInstance()->setNumIdUnidadeAtual($numUnidadeReceptora); | ||
270 | + } | ||
271 | + | ||
272 | + // @join_tec US008.10 (#23092) | ||
273 | + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Todos os componentes digitais foram recebidos', 'S')); | ||
274 | + }else{ | ||
275 | + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Nenhum componente digital para receber', 'S')); | ||
276 | + } | ||
277 | + } | ||
278 | + } | ||
279 | + | ||
280 | + /** | ||
261 | * Método para recuperar a lista de todos os hashs dos componentes digitais presentes no protocolo recebido | 281 | * Método para recuperar a lista de todos os hashs dos componentes digitais presentes no protocolo recebido |
262 | * | 282 | * |
263 | * @return Array Lista de hashs dos componentes digitais | 283 | * @return Array Lista de hashs dos componentes digitais |
@@ -418,7 +438,8 @@ class ReceberProcedimentoRN extends InfraRN | @@ -418,7 +438,8 @@ class ReceberProcedimentoRN extends InfraRN | ||
418 | } | 438 | } |
419 | 439 | ||
420 | 440 | ||
421 | - private function registrarProcesso($parStrNumeroRegistro, $parNumIdentificacaoTramite, $parObjProcesso, $parObjMetadadosProcedimento) | 441 | + private function registrarProcesso($parStrNumeroRegistro, $parNumIdentificacaoTramite, $parObjProcesso, $parObjMetadadosProcedimento, |
442 | + $parArrHashComponentes, $parArrHashComponentesPendentes) | ||
422 | { | 443 | { |
423 | // Validação dos dados do processo recebido | 444 | // Validação dos dados do processo recebido |
424 | $objInfraException = new InfraException(); | 445 | $objInfraException = new InfraException(); |
@@ -434,10 +455,10 @@ class ReceberProcedimentoRN extends InfraRN | @@ -434,10 +455,10 @@ class ReceberProcedimentoRN extends InfraRN | ||
434 | $dblIdProcedimento = $this->consultarProcedimentoExistente($parStrNumeroRegistro, $parObjProcesso->protocolo); | 455 | $dblIdProcedimento = $this->consultarProcedimentoExistente($parStrNumeroRegistro, $parObjProcesso->protocolo); |
435 | 456 | ||
436 | if(isset($dblIdProcedimento)){ | 457 | if(isset($dblIdProcedimento)){ |
437 | - $objProcedimentoDTO = $this->atualizarProcedimento($dblIdProcedimento, $parObjMetadadosProcedimento, $parObjProcesso); | 458 | + $objProcedimentoDTO = $this->atualizarProcedimento($dblIdProcedimento, $parObjMetadadosProcedimento, $parObjProcesso, $parNumIdentificacaoTramite, $parArrHashComponentes, $parArrHashComponentesPendentes); |
438 | } | 459 | } |
439 | else { | 460 | else { |
440 | - $objProcedimentoDTO = $this->gerarProcedimento($parObjMetadadosProcedimento, $parObjProcesso); | 461 | + $objProcedimentoDTO = $this->gerarProcedimento($parObjMetadadosProcedimento, $parObjProcesso, $parNumIdentificacaoTramite, $parArrHashComponentes, $parArrHashComponentesPendentes); |
441 | } | 462 | } |
442 | 463 | ||
443 | //TODO: Fazer o envio de cada um dos procedimentos apensados (Processo principal e seus apensados, caso exista) | 464 | //TODO: Fazer o envio de cada um dos procedimentos apensados (Processo principal e seus apensados, caso exista) |
@@ -499,7 +520,7 @@ class ReceberProcedimentoRN extends InfraRN | @@ -499,7 +520,7 @@ class ReceberProcedimentoRN extends InfraRN | ||
499 | return $dblIdProcedimento; | 520 | return $dblIdProcedimento; |
500 | } | 521 | } |
501 | 522 | ||
502 | - private function atualizarProcedimento($parDblIdProcedimento, $objMetadadosProcedimento, $objProcesso) | 523 | + private function atualizarProcedimento($parDblIdProcedimento, $objMetadadosProcedimento, $objProcesso, $parNumIdTramite, $parArrHashComponentes, $parArrHashComponentesPendentes) |
503 | { | 524 | { |
504 | if(!isset($parDblIdProcedimento)){ | 525 | if(!isset($parDblIdProcedimento)){ |
505 | throw new InfraException('Parâmetro $parDblIdProcedimento não informado.'); | 526 | throw new InfraException('Parâmetro $parDblIdProcedimento não informado.'); |
@@ -518,7 +539,7 @@ class ReceberProcedimentoRN extends InfraRN | @@ -518,7 +539,7 @@ class ReceberProcedimentoRN extends InfraRN | ||
518 | 539 | ||
519 | //Busca a unidade em ao qual o processo foi anteriormente expedido | 540 | //Busca a unidade em ao qual o processo foi anteriormente expedido |
520 | //Esta unidade deverá ser considerada para posterior desbloqueio do processo e reabertura | 541 | //Esta unidade deverá ser considerada para posterior desbloqueio do processo e reabertura |
521 | - $numIdUnidade = $this->obterUnidadeParaRegistroDocumento($parDblIdProcedimento); | 542 | + $numIdUnidade = ProcessoEletronicoRN::obterUnidadeParaRegistroDocumento($parDblIdProcedimento); |
522 | SessaoSEI::getInstance()->setNumIdUnidadeAtual($numIdUnidade); | 543 | SessaoSEI::getInstance()->setNumIdUnidadeAtual($numIdUnidade); |
523 | 544 | ||
524 | try { | 545 | try { |
@@ -565,6 +586,7 @@ class ReceberProcedimentoRN extends InfraRN | @@ -565,6 +586,7 @@ class ReceberProcedimentoRN extends InfraRN | ||
565 | $objUnidadeDTO = $this->atribuirDadosUnidade($objProcedimentoDTO, $objDestinatario); | 586 | $objUnidadeDTO = $this->atribuirDadosUnidade($objProcedimentoDTO, $objDestinatario); |
566 | 587 | ||
567 | $this->atribuirDocumentos($objProcedimentoDTO, $objProcesso, $objUnidadeDTO, $objMetadadosProcedimento); | 588 | $this->atribuirDocumentos($objProcedimentoDTO, $objProcesso, $objUnidadeDTO, $objMetadadosProcedimento); |
589 | + | ||
568 | $this->registrarProcedimentoNaoVisualizado($objProcedimentoDTO); | 590 | $this->registrarProcedimentoNaoVisualizado($objProcedimentoDTO); |
569 | 591 | ||
570 | //TODO: Avaliar necessidade de restringir referência circular entre processos | 592 | //TODO: Avaliar necessidade de restringir referência circular entre processos |
@@ -576,7 +598,7 @@ class ReceberProcedimentoRN extends InfraRN | @@ -576,7 +598,7 @@ class ReceberProcedimentoRN extends InfraRN | ||
576 | $this->alterarMetadadosProcedimento($objProcedimentoDTO->getDblIdProcedimento(), $objProcesso); | 598 | $this->alterarMetadadosProcedimento($objProcedimentoDTO->getDblIdProcedimento(), $objProcesso); |
577 | 599 | ||
578 | //Finaliza o envio do documento para a respectiva unidade | 600 | //Finaliza o envio do documento para a respectiva unidade |
579 | - $this->enviarProcedimentoUnidade($objProcedimentoDTO, true); | 601 | + //$this->enviarProcedimentoUnidade($objProcedimentoDTO, true); |
580 | 602 | ||
581 | return $objProcedimentoDTO; | 603 | return $objProcedimentoDTO; |
582 | 604 | ||
@@ -588,32 +610,7 @@ class ReceberProcedimentoRN extends InfraRN | @@ -588,32 +610,7 @@ class ReceberProcedimentoRN extends InfraRN | ||
588 | } | 610 | } |
589 | 611 | ||
590 | 612 | ||
591 | - /** | ||
592 | - * Busca a unidade ao qual o processo foi anteriormente expedido. | ||
593 | - * Caso seja o primeiro trâmite, considera a unidade atual | ||
594 | - * | ||
595 | - * @return integer Id da unidade | ||
596 | - */ | ||
597 | - private function obterUnidadeParaRegistroDocumento($parDblIdProcedimento) | ||
598 | - { | ||
599 | - $objAtividadeDTO = new AtividadeDTO(); | ||
600 | - $objAtividadeDTO->setStrIdTarefaModuloTarefa(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO); | ||
601 | - $objAtividadeDTO->setDblIdProcedimentoProtocolo($parDblIdProcedimento); | ||
602 | - $objAtividadeDTO->setOrd('Conclusao', InfraDTO::$TIPO_ORDENACAO_DESC); | ||
603 | - $objAtividadeDTO->setNumMaxRegistrosRetorno(1); | ||
604 | - $objAtividadeDTO->retNumIdUnidade(); | ||
605 | - | ||
606 | - $objAtividadeRN = new AtividadeRN(); | ||
607 | - $arrObjAtividadeDTO = $objAtividadeRN->listarRN0036($objAtividadeDTO); | ||
608 | - $numIdUnidade = SessaoSEI::getInstance()->getNumIdUnidadeAtual(); | ||
609 | 613 | ||
610 | - if(!empty($arrObjAtividadeDTO)){ | ||
611 | - $objAtividadeDTO = $arrObjAtividadeDTO[0]; | ||
612 | - $numIdUnidade = $objAtividadeDTO->getNumIdUnidade(); | ||
613 | - } | ||
614 | - | ||
615 | - return $numIdUnidade; | ||
616 | - } | ||
617 | 614 | ||
618 | private function gerarAndamentoUnidadeReceptora($parNumIdProcedimento) | 615 | private function gerarAndamentoUnidadeReceptora($parNumIdProcedimento) |
619 | { | 616 | { |
@@ -646,7 +643,7 @@ class ReceberProcedimentoRN extends InfraRN | @@ -646,7 +643,7 @@ class ReceberProcedimentoRN extends InfraRN | ||
646 | $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); | 643 | $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); |
647 | } | 644 | } |
648 | 645 | ||
649 | - private function gerarProcedimento($objMetadadosProcedimento, $objProcesso) | 646 | + private function gerarProcedimento($objMetadadosProcedimento, $objProcesso, $parNumIdTramite, $parArrHashComponentes, $parArrHashComponentesPendentes) |
650 | { | 647 | { |
651 | if(!isset($objMetadadosProcedimento)){ | 648 | if(!isset($objMetadadosProcedimento)){ |
652 | throw new InfraException('Parâmetro $objMetadadosProcedimento não informado.'); | 649 | throw new InfraException('Parâmetro $objMetadadosProcedimento não informado.'); |
@@ -769,14 +766,15 @@ class ReceberProcedimentoRN extends InfraRN | @@ -769,14 +766,15 @@ class ReceberProcedimentoRN extends InfraRN | ||
769 | 766 | ||
770 | $this->registrarAndamentoRecebimentoProcesso($objProcedimentoDTO, $objMetadadosProcedimento); | 767 | $this->registrarAndamentoRecebimentoProcesso($objProcedimentoDTO, $objMetadadosProcedimento); |
771 | $this->atribuirDocumentos($objProcedimentoDTO, $objProcesso, $objUnidadeDTO, $objMetadadosProcedimento); | 768 | $this->atribuirDocumentos($objProcedimentoDTO, $objProcesso, $objUnidadeDTO, $objMetadadosProcedimento); |
769 | + | ||
772 | $this->registrarProcedimentoNaoVisualizado($objProcedimentoDTOGerado); | 770 | $this->registrarProcedimentoNaoVisualizado($objProcedimentoDTOGerado); |
773 | 771 | ||
774 | //TODO: Avaliar necessidade de restringir referência circular entre processos | 772 | //TODO: Avaliar necessidade de restringir referência circular entre processos |
775 | //TODO: Registrar que o processo foi recebido com outros apensados. Necessário para posterior reenvio | 773 | //TODO: Registrar que o processo foi recebido com outros apensados. Necessário para posterior reenvio |
776 | $this->atribuirProcessosApensados($objProcedimentoDTO, $objProcesso->processoApensado); | 774 | $this->atribuirProcessosApensados($objProcedimentoDTO, $objProcesso->processoApensado); |
777 | 775 | ||
778 | - //TODO: Finalizar o envio do documento para a respectiva unidade | ||
779 | - $this->enviarProcedimentoUnidade($objProcedimentoDTO); | 776 | + //Finalizar o envio do documento para a respectiva unidade |
777 | + //$this->enviarProcedimentoUnidade($objProcedimentoDTO); | ||
780 | 778 | ||
781 | //$this->removerAndamentosProcedimento($objProcedimentoDTO); | 779 | //$this->removerAndamentosProcedimento($objProcedimentoDTO); |
782 | return $objProcedimentoDTO; | 780 | return $objProcedimentoDTO; |
@@ -793,11 +791,22 @@ class ReceberProcedimentoRN extends InfraRN | @@ -793,11 +791,22 @@ class ReceberProcedimentoRN extends InfraRN | ||
793 | $objProtocoloDTO->setNumIdHipoteseLegal($this->obterHipoteseLegalSEI($parObjMetadadoProcedimento->hipoteseLegal->identificacao)); | 791 | $objProtocoloDTO->setNumIdHipoteseLegal($this->obterHipoteseLegalSEI($parObjMetadadoProcedimento->hipoteseLegal->identificacao)); |
794 | } | 792 | } |
795 | 793 | ||
796 | - $objProtocoloRN = new ProtocoloRN(); | ||
797 | - $objProtocoloRN->alterarRN0203($objProtocoloDTO); | 794 | + //Esta unidade deverá ser considerada para posterior desbloqueio do processo e reabertura |
795 | + $numIdUnidade = ProcessoEletronicoRN::obterUnidadeParaRegistroDocumento($parNumIdProcedimento); | ||
796 | + SessaoSEI::getInstance()->setNumIdUnidadeAtual($numIdUnidade); | ||
797 | + | ||
798 | + try{ | ||
799 | + $objProtocoloRN = new ProtocoloRN(); | ||
800 | + $objProtocoloRN->alterarRN0203($objProtocoloDTO); | ||
801 | + } finally { | ||
802 | + $objPenParametroRN = new PenParametroRN(); | ||
803 | + $numUnidadeReceptora = $objPenParametroRN->getParametro('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO'); | ||
804 | + SessaoSEI::getInstance()->setNumIdUnidadeAtual($numUnidadeReceptora); | ||
805 | + } | ||
798 | } | 806 | } |
799 | 807 | ||
800 | - private function alterarMetadadosDocumento($parNumIdDocumento, $parObjMetadadoDocumento){ | 808 | + private function alterarMetadadosDocumento($parNumIdProcedimento, $parNumIdDocumento, $parObjMetadadoDocumento) |
809 | + { | ||
801 | //Realiza a alteração dos metadados do documento(Por hora, apenas do nível de sigilo e hipótese legal) | 810 | //Realiza a alteração dos metadados do documento(Por hora, apenas do nível de sigilo e hipótese legal) |
802 | $objProtocoloDTO = new ProtocoloDTO(); | 811 | $objProtocoloDTO = new ProtocoloDTO(); |
803 | $objProtocoloDTO->setDblIdProtocolo($parNumIdDocumento); | 812 | $objProtocoloDTO->setDblIdProtocolo($parNumIdDocumento); |
@@ -807,8 +816,18 @@ class ReceberProcedimentoRN extends InfraRN | @@ -807,8 +816,18 @@ class ReceberProcedimentoRN extends InfraRN | ||
807 | $objProtocoloDTO->setNumIdHipoteseLegal($this->obterHipoteseLegalSEI($parObjMetadadoDocumento->hipoteseLegal->identificacao)); | 816 | $objProtocoloDTO->setNumIdHipoteseLegal($this->obterHipoteseLegalSEI($parObjMetadadoDocumento->hipoteseLegal->identificacao)); |
808 | } | 817 | } |
809 | 818 | ||
810 | - $objProtocoloRN = new ProtocoloRN(); | ||
811 | - $objProtocoloRN->alterarRN0203($objProtocoloDTO); | 819 | + //Esta unidade deverá ser considerada para posterior desbloqueio do processo e reabertura |
820 | + $numIdUnidade = ProcessoEletronicoRN::obterUnidadeParaRegistroDocumento($parNumIdProcedimento); | ||
821 | + SessaoSEI::getInstance()->setNumIdUnidadeAtual($numIdUnidade); | ||
822 | + | ||
823 | + try{ | ||
824 | + $objProtocoloRN = new ProtocoloRN(); | ||
825 | + $objProtocoloRN->alterarRN0203($objProtocoloDTO); | ||
826 | + } finally { | ||
827 | + $objPenParametroRN = new PenParametroRN(); | ||
828 | + $numUnidadeReceptora = $objPenParametroRN->getParametro('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO'); | ||
829 | + SessaoSEI::getInstance()->setNumIdUnidadeAtual($numUnidadeReceptora); | ||
830 | + } | ||
812 | } | 831 | } |
813 | 832 | ||
814 | 833 | ||
@@ -1051,6 +1070,7 @@ class ReceberProcedimentoRN extends InfraRN | @@ -1051,6 +1070,7 @@ class ReceberProcedimentoRN extends InfraRN | ||
1051 | //Obter dados dos documentos já registrados no sistema | 1070 | //Obter dados dos documentos já registrados no sistema |
1052 | $objComponenteDigitalDTO = new ComponenteDigitalDTO(); | 1071 | $objComponenteDigitalDTO = new ComponenteDigitalDTO(); |
1053 | $objComponenteDigitalDTO->retNumOrdem(); | 1072 | $objComponenteDigitalDTO->retNumOrdem(); |
1073 | + $objComponenteDigitalDTO->retDblIdProcedimento(); | ||
1054 | $objComponenteDigitalDTO->retDblIdDocumento(); | 1074 | $objComponenteDigitalDTO->retDblIdDocumento(); |
1055 | $objComponenteDigitalDTO->retStrHashConteudo(); | 1075 | $objComponenteDigitalDTO->retStrHashConteudo(); |
1056 | $objComponenteDigitalDTO->setStrNumeroRegistro($strNumeroRegistro); | 1076 | $objComponenteDigitalDTO->setStrNumeroRegistro($strNumeroRegistro); |
@@ -1094,7 +1114,7 @@ class ReceberProcedimentoRN extends InfraRN | @@ -1094,7 +1114,7 @@ class ReceberProcedimentoRN extends InfraRN | ||
1094 | 1114 | ||
1095 | if(array_key_exists($objDocumento->ordem, $arrObjComponenteDigitalDTOIndexado)){ | 1115 | if(array_key_exists($objDocumento->ordem, $arrObjComponenteDigitalDTOIndexado)){ |
1096 | $objComponenteDigitalDTO = $arrObjComponenteDigitalDTOIndexado[$objDocumento->ordem]; | 1116 | $objComponenteDigitalDTO = $arrObjComponenteDigitalDTOIndexado[$objDocumento->ordem]; |
1097 | - $this->alterarMetadadosDocumento($objComponenteDigitalDTO->getDblIdDocumento(), $objDocumento); | 1117 | + $this->alterarMetadadosDocumento($objComponenteDigitalDTO->getDblIdProcedimento(), $objComponenteDigitalDTO->getDblIdDocumento(), $objDocumento); |
1098 | $objDocumento->idDocumentoSEI = $objComponenteDigitalDTO->getDblIdDocumento(); | 1118 | $objDocumento->idDocumentoSEI = $objComponenteDigitalDTO->getDblIdDocumento(); |
1099 | continue; | 1119 | continue; |
1100 | } | 1120 | } |
@@ -1242,7 +1262,7 @@ class ReceberProcedimentoRN extends InfraRN | @@ -1242,7 +1262,7 @@ class ReceberProcedimentoRN extends InfraRN | ||
1242 | $strConteudoCodificado = $objDocumentoDTO->getStrConteudo(); | 1262 | $strConteudoCodificado = $objDocumentoDTO->getStrConteudo(); |
1243 | $objDocumentoDTO->setStrConteudo(null); | 1263 | $objDocumentoDTO->setStrConteudo(null); |
1244 | $objDocumentoDTO->getObjProtocoloDTO()->setNumIdUnidadeGeradora(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); | 1264 | $objDocumentoDTO->getObjProtocoloDTO()->setNumIdUnidadeGeradora(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); |
1245 | - $objDocumentoDTO->setStrSinBloqueado('S'); | 1265 | + $objDocumentoDTO->setStrSinBloqueado('N'); |
1246 | 1266 | ||
1247 | //TODO: Fazer a atribuição dos componentes digitais do processo a partir desse ponto | 1267 | //TODO: Fazer a atribuição dos componentes digitais do processo a partir desse ponto |
1248 | $this->atribuirComponentesDigitais($objDocumentoDTO, $objDocumento->componenteDigital); | 1268 | $this->atribuirComponentesDigitais($objDocumentoDTO, $objDocumento->componenteDigital); |