package gcom.batch.micromedicao; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.micromedicao.Rota; import gcom.micromedicao.leitura.LeituraTipo; import gcom.seguranca.acesso.usuario.Usuario; import gcom.tarefa.TarefaBatch; import gcom.tarefa.TarefaException; import gcom.util.ConstantesJNDI; import gcom.util.ConstantesSistema; import gcom.util.agendadortarefas.AgendadorTarefas; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Iterator; /** * Tarefa que manda para batch Consistir Leituras e Consumos * * @author Rodrigo Silveira * @created 20/07/2006 */ public class TarefaBatchGerarDadosParaLeitura extends TarefaBatch { private static final long serialVersionUID = 1L; public TarefaBatchGerarDadosParaLeitura(Usuario usuario, int idFuncionalidadeIniciada) { super(usuario, idFuncionalidadeIniciada); } @Deprecated public TarefaBatchGerarDadosParaLeitura() { super(null, 0); } public Object executar() throws TarefaException { Integer anoMesFaturamentoGrupo = (Integer) getParametro("anoMesFaturamentoGrupo"); Integer idFaturamentoGrupo = (Integer) getParametro("idFaturamentoGrupo"); SistemaParametro sistemaParametro = (SistemaParametro) getParametro("sistemaParametro"); Collection colecaoRotasParaExecucao = (Collection) getParametro(ConstantesSistema.COLECAO_UNIDADES_PROCESSAMENTO_BATCH); Iterator iterator = colecaoRotasParaExecucao.iterator(); Collection<Rota> colecaoRotasColetorCompesa = new ArrayList(); if (sistemaParametro.getNomeAbreviadoEmpresa().equalsIgnoreCase(SistemaParametro.EMPRESA_COMPESA)) { while (iterator.hasNext()) { Object[] array = (Object[]) iterator.next(); Rota rota = (Rota) array[1]; if (rota.getLeituraTipo() != null && !rota.getLeituraTipo().getId().equals(LeituraTipo.MICROCOLETOR)) { enviarMensagemControladorBatch( ConstantesJNDI.BATCH_GERAR_DADOS_PARA_LEITURA_MDB, new Object[] { Collections.singletonList(rota), anoMesFaturamentoGrupo, idFaturamentoGrupo, sistemaParametro, this.getIdFuncionalidadeIniciada() }); } else { colecaoRotasColetorCompesa.add(rota); } } enviarMensagemControladorBatch( ConstantesJNDI.BATCH_GERAR_DADOS_PARA_LEITURA_MDB, new Object[] { colecaoRotasColetorCompesa, anoMesFaturamentoGrupo, idFaturamentoGrupo, sistemaParametro, this.getIdFuncionalidadeIniciada() }); } else { while (iterator.hasNext()) { Object[] array = (Object[]) iterator.next(); Rota rota = (Rota) array[1]; enviarMensagemControladorBatch( ConstantesJNDI.BATCH_GERAR_DADOS_PARA_LEITURA_MDB, new Object[] { Collections.singletonList(rota), anoMesFaturamentoGrupo, idFaturamentoGrupo, sistemaParametro, this.getIdFuncionalidadeIniciada() }); } } return null; } @Override public Collection pesquisarTodasUnidadeProcessamentoBatch() { return null; } @Override public Collection pesquisarTodasUnidadeProcessamentoReinicioBatch() { return null; } @Override public void agendarTarefaBatch() { AgendadorTarefas.agendarTarefa("GerarDadosParaLeituraBatch", this); } }