package gcom.relatorio.micromedicao; import gcom.fachada.Fachada; import gcom.micromedicao.TelemetriaMovReg; import gcom.micromedicao.bean.FiltrarLeiturasTelemetriaHelper; import gcom.relatorio.ConstantesRelatorios; import gcom.relatorio.RelatorioDataSource; import gcom.seguranca.acesso.usuario.Usuario; import gcom.tarefa.TarefaException; import gcom.tarefa.TarefaRelatorio; import gcom.util.Util; import gcom.util.agendadortarefas.AgendadorTarefas; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; public class RelatorioLeiturasTelemetria extends TarefaRelatorio { private static final long serialVersionUID = 1L; public RelatorioLeiturasTelemetria(Usuario usuario) { super(usuario, ConstantesRelatorios.RELATORIO_LEITURAS_TELEMETRIA); } @Deprecated public RelatorioLeiturasTelemetria() { super(null, ""); } @Override public Object executar() throws TarefaException { Fachada fachada = Fachada.getInstancia(); // helper pesquisa FiltrarLeiturasTelemetriaHelper helper = (FiltrarLeiturasTelemetriaHelper) getParametro("filtroHelper"); // tipo relatorio int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio"); // valor de retorno byte[] retorno = null; // cole��o de beans do relat�rio List relatorioBeans = new ArrayList(); // Par�metros do relat�rio Map parametros = new HashMap(); String periodoEnvio = ""; String periodoLeitura = ""; if(helper.getPeriodoEnvioInicial()!=null && helper.getPeriodoEnvioFinal()!=null){ periodoEnvio = Util.formatarData(helper.getPeriodoEnvioInicial())+" a "+ Util.formatarData(helper.getPeriodoEnvioFinal()); } if(helper.getPeriodoLeituraInicial()!=null && helper.getPeriodoLeituraFinal()!=null){ periodoLeitura = Util.formatarData(helper.getPeriodoLeituraInicial())+" a "+ Util.formatarData(helper.getPeriodoLeituraFinal()); } String situcaoLeitura = ""; switch (Integer.parseInt(helper.getSituacaoLeitura())) { case 1: situcaoLeitura = "Processadas"; break; case 2: situcaoLeitura = "N�o Processadas"; break; case 3: situcaoLeitura = "Processadas / N�o Processadas"; break; default: break; } parametros.put("imagem", fachada.pesquisarParametrosDoSistema().getImagemRelatorio()); parametros.put("relatorio", "R1069"); parametros.put("leitura", situcaoLeitura); parametros.put("periodoEnvio", periodoEnvio); parametros.put("periodoLeitura", periodoLeitura); Collection<TelemetriaMovReg> colecaoDados = fachada.filtrarLeiturasTelemetria(helper); HashMap<String, Integer> mapTotalizadoresData = new HashMap<String, Integer>(); for (TelemetriaMovReg telemetriaMovReg : colecaoDados) { RelatorioLeiturasTelemetriaBean relatorioLeiturasTelemetriaBean = new RelatorioLeiturasTelemetriaBean( Util.formatarDataComHora(telemetriaMovReg.getDataLeitura()), this.formatarInscricao(telemetriaMovReg.getInscricao().toString()), telemetriaMovReg.getLeitura().toString(), telemetriaMovReg.getNumeroHidrometro().toString(), Util.retornaMatriculaImovelFormatada(telemetriaMovReg.getImovel().getId()), telemetriaMovReg.getMedicaoTipo().getId().toString() ); relatorioBeans.add(relatorioLeiturasTelemetriaBean); //Totalizar por Data String dataFluxo = Util.formatarData(telemetriaMovReg.getTelemetriaMov().getEnvio()); if(mapTotalizadoresData.containsKey(dataFluxo)){ mapTotalizadoresData.put(dataFluxo,(mapTotalizadoresData.get(dataFluxo) + 1)); }else{ mapTotalizadoresData.put(dataFluxo, new Integer(1)); } } relatorioBeans.add(new RelatorioLeiturasTelemetriaBean()); relatorioBeans.add(new RelatorioLeiturasTelemetriaBean()); relatorioBeans.add(new RelatorioLeiturasTelemetriaBean()); for (Map.Entry<String, Integer> entry : mapTotalizadoresData.entrySet()) { String data = entry.getKey(); Integer quantidade = entry.getValue(); RelatorioLeiturasTelemetriaBean relatorioLeiturasTelemetriaBean = new RelatorioLeiturasTelemetriaBean("Total: "+data,quantidade.toString()); relatorioBeans.add(relatorioLeiturasTelemetriaBean); } RelatorioLeiturasTelemetriaBean relatorioLeiturasTelemetriaBean = new RelatorioLeiturasTelemetriaBean("Total Geral: ",colecaoDados.size()+""); relatorioBeans.add(relatorioLeiturasTelemetriaBean); // cria uma inst�ncia do dataSource do relat�rio RelatorioDataSource ds = new RelatorioDataSource(relatorioBeans); retorno = this.gerarRelatorio(this.nomeRelatorio,parametros, ds, tipoFormatoRelatorio); // // ------------------------------------ // // Grava o relat�rio no sistema // try { // // Integer idFuncionalidadeIniciada = this.getIdFuncionalidadeIniciada(); // // persistirRelatorioConcluido(retorno, // Relatorio.???, // idFuncionalidadeIniciada); // } catch (ControladorException e) { // e.printStackTrace(); // throw new TarefaException("Erro ao gravar relat�rio no sistema", e); // } // // ------------------------------------ // retorna o relat�rio gerado return retorno; } private String formatarInscricao(String inscricao){ String parte1 = ""; String parte2 = ""; String parte3 = ""; String parte4 = ""; String parte5 = ""; String retorno = inscricao; if(inscricao.length()==16){ parte1 = inscricao.substring(0, 3); parte2 = inscricao.substring(3, 6); parte3 = inscricao.substring(6, 9); parte4 = inscricao.substring(9, 13); parte5 = inscricao.substring(13); retorno = parte1+"."+parte2+"."+parte3+"."+parte4+"."+parte5; } return retorno; } @Override public int calcularTotalRegistrosRelatorio() { return 0; } @Override public void agendarTarefaBatch() { AgendadorTarefas.agendarTarefa("RelatorioLeiturasTelemetria", this); } }