package gcom.relatorio.atendimentopublico; import gcom.batch.Relatorio; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.fachada.Fachada; import gcom.gui.atendimentopublico.registroatendimento.FiltrarAcompanhamentoRegistroAtendimentoHelper; import gcom.relatorio.ConstantesRelatorios; import gcom.relatorio.RelatorioDataSource; import gcom.relatorio.RelatorioVazioException; import gcom.seguranca.acesso.usuario.Usuario; import gcom.tarefa.TarefaException; import gcom.tarefa.TarefaRelatorio; import gcom.util.ControladorException; import gcom.util.agendadortarefas.AgendadorTarefas; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; /** * classe respons�vel por criar o relat�rio de Relatorio de Acompanhamento de Registro de Atendimento * * [UC1056] - Gerar Relat�rio de Acompanhamento dos Registros de Atendimento * * @author Hugo Leonardo, Diogo Peixoto * * @date 28/09/2010, 29/04/2011 */ public class RelatorioAcompanhamentoRegistroAtendimentoSinteticoAberto extends TarefaRelatorio { private static final long serialVersionUID = 1L; public RelatorioAcompanhamentoRegistroAtendimentoSinteticoAberto(Usuario usuario) { super(usuario, ConstantesRelatorios.RELATORIO_ACOMPANHAMENTO_REGISTRO_ATENDIMENTO_SINTETICO_ABERTO); } @Deprecated public RelatorioAcompanhamentoRegistroAtendimentoSinteticoAberto() { super(null, ""); } public Object executar() throws TarefaException { // valor de retorno byte[] retorno = null; // ------------------------------------ Integer idFuncionalidadeIniciada = this.getIdFuncionalidadeIniciada(); FiltrarAcompanhamentoRegistroAtendimentoHelper relatorioHelper = (FiltrarAcompanhamentoRegistroAtendimentoHelper) getParametro("filtroHelper"); // ------------------------------------ int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio"); String situacao = (String) getParametro("situacao"); String periodoAbertura = (String) getParametro("periodoAbertura"); String periodoEncerramento = (String) getParametro("periodoEncerramento"); // cole��o de beans do relat�rio List relatorioBeans = new ArrayList(); RelatorioAcompanhamentoRegistroAtendimentoBean relatorioBean = null; Fachada fachada = Fachada.getInstancia(); Collection colecaoRegistroAtendimentos = fachada.pesquisarRelatorioAcompanhamentoRASinteticoAberto(relatorioHelper); // se a cole��o de par�metros da analise n�o for vazia if (colecaoRegistroAtendimentos != null && !colecaoRegistroAtendimentos.isEmpty()) { // coloca a cole��o de par�metros da analise no iterator Iterator colecaoIterator = colecaoRegistroAtendimentos.iterator(); Integer contador = 0; RelatorioAcompanhamentoRAHelper helper = null; // la�o para criar a cole��o de par�metros da analise while (colecaoIterator.hasNext()) { helper = (RelatorioAcompanhamentoRAHelper) colecaoIterator.next(); relatorioBean = new RelatorioAcompanhamentoRegistroAtendimentoBean(); relatorioBean.setDescricaoUnidadeAtendimento(helper.getDescricaoUnidadeAtendimento()); relatorioBean.setDescricaoMunicipio(helper.getDescricaoMunicipio()); relatorioBean.setQuantidadeTotal(helper.getQuantidade()); contador += helper.getQuantidade(); // adiciona o bean a cole��o relatorioBeans.add(relatorioBean); } RelatorioAcompanhamentoRegistroAtendimentoBean relatorioBean1 = new RelatorioAcompanhamentoRegistroAtendimentoBean(); relatorioBean1.setDescricaoMunicipio(helper.getDescricaoMunicipio()); RelatorioAcompanhamentoRegistroAtendimentoBean relatorioBean2 = new RelatorioAcompanhamentoRegistroAtendimentoBean(); relatorioBean2.setDescricaoMunicipio(helper.getDescricaoMunicipio()); RelatorioAcompanhamentoRegistroAtendimentoBean relatorioBean3 = new RelatorioAcompanhamentoRegistroAtendimentoBean(); relatorioBean3.setDescricaoMunicipio(helper.getDescricaoMunicipio()); relatorioBean3.setQuantidadeTotal(contador); relatorioBean3.setQuantidade(""); relatorioBeans.add(relatorioBean1); relatorioBeans.add(relatorioBean2); relatorioBeans.add(relatorioBean3); }else{ relatorioBean = new RelatorioAcompanhamentoRegistroAtendimentoBean(); relatorioBeans.add(relatorioBean); } // Par�metros do relat�rio Map parametros = new HashMap(); SistemaParametro sistemaParametro = fachada .pesquisarParametrosDoSistema(); parametros.put("imagem", sistemaParametro.getImagemRelatorio()); parametros.put("periodoAbertura", periodoAbertura); parametros.put("periodoEncerramento", periodoEncerramento); Integer idsituacao = new Integer(situacao); switch (idsituacao) { // Aberta case 0: parametros.put("situacao", "Aberta"); break; // Encerrados case 1: parametros.put("situacao", "Encerrado"); break; default: break; } // cria uma inst�ncia do dataSource do relat�rio RelatorioDataSource ds = new RelatorioDataSource(relatorioBeans); if(colecaoRegistroAtendimentos != null && colecaoRegistroAtendimentos.size() > 0){ retorno = gerarRelatorio(ConstantesRelatorios.RELATORIO_ACOMPANHAMENTO_REGISTRO_ATENDIMENTO_SINTETICO_ABERTO, parametros, ds, tipoFormatoRelatorio); }else{ this.nomeRelatorio = ConstantesRelatorios.RELATORIO_VAZIO; retorno = gerarRelatorio(ConstantesRelatorios.RELATORIO_VAZIO, parametros, ds, tipoFormatoRelatorio); } // ------------------------------------ // Grava o relat�rio no sistema try { persistirRelatorioConcluido(retorno, Relatorio.RELATORIO_ACOMPANHAMENTO_RA, idFuncionalidadeIniciada); } catch (ControladorException e) { e.printStackTrace(); throw new TarefaException("Erro ao gravar relat�rio no sistema", e); } // ------------------------------------ // retorna o relat�rio gerado return retorno; } @Override public int calcularTotalRegistrosRelatorio() { int retorno = 0; retorno = Fachada.getInstancia().pesquisarTotalRelatorioAcompanhamentoRAAnalitico( (FiltrarAcompanhamentoRegistroAtendimentoHelper) getParametro("filtroHelper")); if (retorno == 0) { // Caso a pesquisa n�o retorne nenhum resultado comunica ao // usu�rio; throw new RelatorioVazioException("atencao.relatorio.vazio"); } return retorno; } @Override public void agendarTarefaBatch() { AgendadorTarefas.agendarTarefa("RelatorioAcompanhamentoRegistroAtendimentoSinteticoAberto", this); } }