package gcom.batch.cobranca.spcserasa; import gcom.cobranca.NegativacaoComando; import gcom.cobranca.NegativacaoCriterio; import gcom.cobranca.Negativador; import gcom.cobranca.NegativadorContrato; import gcom.cobranca.NegativadorMovimento; import gcom.cobranca.NegativadorMovimentoReg; import gcom.seguranca.acesso.usuario.Usuario; import gcom.spcserasa.ControladorSpcSerasaLocal; import gcom.spcserasa.ControladorSpcSerasaLocalHome; import gcom.spcserasa.FiltroNegativadorMovimento; import gcom.tarefa.TarefaBatch; import gcom.tarefa.TarefaException; import gcom.util.ConstantesJNDI; import gcom.util.ConstantesSistema; import gcom.util.ControladorException; import gcom.util.ControladorUtilLocal; import gcom.util.ControladorUtilLocalHome; import gcom.util.ErroRepositorioException; import gcom.util.RepositorioUtilHBM; import gcom.util.ServiceLocator; import gcom.util.ServiceLocatorException; import gcom.util.SistemaException; import gcom.util.agendadortarefas.AgendadorTarefas; import gcom.util.filtro.ParametroSimples; import java.util.Collection; import java.util.Date; import java.util.Iterator; import javax.ejb.CreateException; /** * Tarefa que manda para Executar Comando Negativacao */ public class TarefaBatchExecutarComandoNegativacao extends TarefaBatch { private static final long serialVersionUID = 1L; public TarefaBatchExecutarComandoNegativacao(Usuario usuario, int idFuncionalidadeIniciada) { super(usuario, idFuncionalidadeIniciada); } @Deprecated public TarefaBatchExecutarComandoNegativacao() { super(null, 0); } public Object executar() throws TarefaException { Collection rotas = null; if (getParametro(ConstantesSistema.COLECAO_UNIDADES_PROCESSAMENTO_BATCH) != null) { rotas = (Collection) getParametro(ConstantesSistema.COLECAO_UNIDADES_PROCESSAMENTO_BATCH); } NegativacaoCriterio criterio = (NegativacaoCriterio) getParametro("nCriterio"); Negativador negativador = (Negativador) getParametro("neg"); NegativacaoComando comando = (NegativacaoComando) getParametro("nComando"); NegativadorContrato negativadorContrato = (NegativadorContrato) getParametro("nContrato"); NegativadorMovimento negativadorMovimento = null; Integer idNegativacaoMovimento = null; NegativadorMovimentoReg.resetNumeroProximoRegistro(); NegativacaoComando.resetQuantidadeImoveisJaIncluidos(); try { if (comando.getIndicadorSimulacao() == 2) { // Inserindo o HEADER FiltroNegativadorMovimento fnm = new FiltroNegativadorMovimento(); fnm.adicionarParametro(new ParametroSimples(FiltroNegativadorMovimento.NEGATIVACAO_COMANDO_ID, comando.getId())); Collection colecaoNegativadorMovimento = RepositorioUtilHBM.getInstancia().pesquisar(fnm, NegativadorMovimento.class.getName()); if (colecaoNegativadorMovimento != null && !colecaoNegativadorMovimento.isEmpty()) { /* * [UC0671] Gerar Movimento de Inclus�o de Negativa��o * [SB0014] Desfazer Atualiza��o da Execu��o Descontinuada */ getControladorSpcSerasa().desfazerAtualizacaoExecucaoDescontinuada(this.getIdFuncionalidadeIniciada(), comando); } int numeroSequencialEnvio = negativadorContrato.getNumeroSequencialEnvio() + 1; Date dataAtual = new Date(); negativadorMovimento = new NegativadorMovimento(); negativadorMovimento.setNegativador(negativador); negativadorMovimento.setNegativacaoComando(comando); negativadorMovimento.setNumeroSequencialEnvio(numeroSequencialEnvio); negativadorMovimento.setCodigoMovimento(NegativadorMovimento.CODIGO_MOVIMENTO_INCLUSAO); negativadorMovimento.setDataEnvio(dataAtual); negativadorMovimento.setDataProcessamentoEnvio(dataAtual); negativadorMovimento.setUltimaAlteracao(dataAtual); idNegativacaoMovimento = (Integer) getControladorUtil().inserir(negativadorMovimento); negativadorMovimento.setId(idNegativacaoMovimento); getControladorSpcSerasa().gerarRegistroDeInclusaoTipoHeader(ConstantesSistema.TIPO_COMANDO_POR_CRITERIO, NegativadorMovimentoReg.getNumeroProximoRegistro(), negativador, negativadorContrato, comando, criterio, idNegativacaoMovimento); } else { negativadorMovimento = new NegativadorMovimento(); } if (rotas != null) { Iterator iterator = rotas.iterator(); while (iterator.hasNext()) { Integer id = (Integer) iterator.next(); enviarMensagemControladorBatch(ConstantesJNDI.BATCH_EXECUTAR_COMANDO_NEGATIVACAO_MDB, new Object[] { id, criterio, negativador, comando, negativadorContrato, negativadorMovimento, this.getIdFuncionalidadeIniciada() }); } } else { enviarMensagemControladorBatch(ConstantesJNDI.BATCH_EXECUTAR_COMANDO_NEGATIVACAO_MDB, new Object[] { 0, criterio, negativador, comando, negativadorContrato, negativadorMovimento, this.getIdFuncionalidadeIniciada() }); } } catch (ErroRepositorioException e) { e.printStackTrace(); throw new TarefaException(e.getMessage()); } catch (ControladorException e) { e.printStackTrace(); throw new TarefaException(e.getMessage()); } return null; } @Override public Collection pesquisarTodasUnidadeProcessamentoBatch() { return null; } @Override public Collection pesquisarTodasUnidadeProcessamentoReinicioBatch() { return null; } @Override public void agendarTarefaBatch() { AgendadorTarefas.agendarTarefa("BatchExecutarComandoNegativacao", this); } private ControladorUtilLocal getControladorUtil() { ControladorUtilLocalHome localHome = null; ControladorUtilLocal local = null; ServiceLocator locator = null; try { locator = ServiceLocator.getInstancia(); localHome = (ControladorUtilLocalHome) locator.getLocalHome(ConstantesJNDI.CONTROLADOR_UTIL_SEJB); local = localHome.create(); return local; } catch (CreateException e) { throw new SistemaException(e); } catch (ServiceLocatorException e) { throw new SistemaException(e); } } private ControladorSpcSerasaLocal getControladorSpcSerasa() { ControladorSpcSerasaLocalHome localHome = null; ControladorSpcSerasaLocal local = null; ServiceLocator locator = null; try { locator = ServiceLocator.getInstancia(); localHome = (ControladorSpcSerasaLocalHome) locator.getLocalHome(ConstantesJNDI.CONTROLADOR_SPC_SERASA_SEJB); local = localHome.create(); return local; } catch (CreateException e) { throw new SistemaException(e); } catch (ServiceLocatorException e) { throw new SistemaException(e); } } }