package gcom.relatorio.micromedicao.hidrometro; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.fachada.Fachada; import gcom.micromedicao.hidrometro.FiltroHidrometroMotivoMovimentacao; import gcom.micromedicao.hidrometro.FiltroHidrometroMovimentacao; import gcom.micromedicao.hidrometro.FiltroHidrometroMovimentado; import gcom.micromedicao.hidrometro.HidrometroMotivoMovimentacao; import gcom.micromedicao.hidrometro.HidrometroMovimentacao; import gcom.micromedicao.hidrometro.HidrometroMovimentado; 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.Util; import gcom.util.agendadortarefas.AgendadorTarefas; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; /* * GSAN is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ /* * GSAN - Sistema Integrado de Gest�o de Servi�os de Saneamento * Copyright (C) <2007> * Adriano Britto Siqueira * Alexandre Santos Cabral * Ana Carolina Alves Breda * Ana Maria Andrade Cavalcante * Aryed Lins de Ara�jo * Bruno Leonardo Rodrigues Barros * Carlos Elmano Rodrigues Ferreira * Cl�udio de Andrade Lira * Denys Guimar�es Guenes Tavares * Eduardo Breckenfeld da Rosa Borges * Fab�ola Gomes de Ara�jo * Fl�vio Leonardo Cavalcanti Cordeiro * Francisco do Nascimento J�nior * Homero Sampaio Cavalcanti * Ivan S�rgio da Silva J�nior * Jos� Edmar de Siqueira * Jos� Thiago Ten�rio Lopes * K�ssia Regina Silvestre de Albuquerque * Leonardo Luiz Vieira da Silva * M�rcio Roberto Batista da Silva * Maria de F�tima Sampaio Leite * Micaela Maria Coelho de Ara�jo * Nelson Mendon�a de Carvalho * Newton Morais e Silva * Pedro Alexandre Santos da Silva Filho * Rafael Corr�a Lima e Silva * Rafael Francisco Pinto * Rafael Koury Monteiro * Rafael Palermo de Ara�jo * Raphael Veras Rossiter * Roberto Sobreira Barbalho * Rodrigo Avellar Silveira * R�mulo Aur�lio de Melo Souza Filho * Rosana Carvalho Barbosa * S�vio Luiz de Andrade Cavalcante * Tai Mu Shih * Thiago Augusto Souza do Nascimento * Tiago Moreno Rodrigues * Vivianne Barbosa Sousa * * Este programa � software livre; voc� pode redistribu�-lo e/ou * modific�-lo sob os termos de Licen�a P�blica Geral GNU, conforme * publicada pela Free Software Foundation; vers�o 2 da * Licen�a. * Este programa � distribu�do na expectativa de ser �til, mas SEM * QUALQUER GARANTIA; sem mesmo a garantia impl�cita de * COMERCIALIZA��O ou de ADEQUA��O A QUALQUER PROP�SITO EM * PARTICULAR. Consulte a Licen�a P�blica Geral GNU para obter mais * detalhes. * Voc� deve ter recebido uma c�pia da Licen�a P�blica Geral GNU * junto com este programa; se n�o, escreva para Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ /** * classe respons�vel por criar o relat�rio de movimentacao de hidrometro * * @author R�mulo Aur�lio de Melo * @created 01/09/2008 */ public class RelatorioMovimentacaoHidrometro extends TarefaRelatorio { private static final long serialVersionUID = 1L; public RelatorioMovimentacaoHidrometro(Usuario usuario) { super( usuario, ConstantesRelatorios.RELATORIO_CONSULTAR_MOVIMENTACAO_HIDROMETRO); } @Deprecated public RelatorioMovimentacaoHidrometro() { super(null, ""); } /** * < <Descri��o do m�todo>> * * @param bairros * Description of the Parameter * @param bairroParametros * Description of the Parameter * @return Descri��o do retorno * @exception RelatorioVazioException * Descri��o da exce��o */ public Object executar() throws TarefaException { FiltroHidrometroMovimentacao filtroHidrometroMovimentacao = (FiltroHidrometroMovimentacao) getParametro("filtroHidrometroMovimentacao"); HidrometroMovimentacao hidrometroMovimentacaoParametros = (HidrometroMovimentacao) getParametro("hidrometroMovimentacaoParametros"); int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio"); // valor de retorno byte[] retorno = null; // cole��o de beans do relat�rio List relatorioBeans = new ArrayList(); Fachada fachada = Fachada.getInstancia(); RelatorioMovimentacaoHidrometroBean relatorioBean = null; //filtroHidrometroMovimentacao.setConsultaSemLimites(true); Collection colecaoHidrometroMovimentacao = null; //Caso a pesquisa tenha sido feita atraves dos valores Fixo, Faixa Inicial e Faixa Final if (hidrometroMovimentacaoParametros.getFixo() != null && !hidrometroMovimentacaoParametros.getFixo().equals("")) { String faixaInicial = hidrometroMovimentacaoParametros.getFixo() + hidrometroMovimentacaoParametros.getFaixaInicial(); String faixaFinal = hidrometroMovimentacaoParametros.getFixo() + hidrometroMovimentacaoParametros.getFaixaFinal(); colecaoHidrometroMovimentacao = fachada.pesquisarNumeroHidrometroMovimentacaoPorFaixa(faixaInicial, faixaFinal); }else{ filtroHidrometroMovimentacao .adicionarCaminhoParaCarregamentoEntidade("hidrometroMotivoMovimentacao"); filtroHidrometroMovimentacao .adicionarCaminhoParaCarregamentoEntidade("hidrometroLocalArmazenagemOrigem"); filtroHidrometroMovimentacao .adicionarCaminhoParaCarregamentoEntidade("hidrometroLocalArmazenagemDestino"); colecaoHidrometroMovimentacao = fachada.pesquisar( filtroHidrometroMovimentacao, HidrometroMovimentacao.class .getName()); } Collection colecaoHidrometroMovimentado = null; // se a cole��o de par�metros da analise n�o for vazia if (colecaoHidrometroMovimentacao != null && !colecaoHidrometroMovimentacao.isEmpty()) { // coloca a cole��o de par�metros da analise no iterator Iterator colecaoHidrometroMovimentacaoIterator = colecaoHidrometroMovimentacao .iterator(); // la�o para criar a cole��o de par�metros da analise while (colecaoHidrometroMovimentacaoIterator.hasNext()) { HidrometroMovimentacao hidrometroMovimentacao = (HidrometroMovimentacao) colecaoHidrometroMovimentacaoIterator .next(); // Faz as valida��es dos campos necess�riose e formata a String // para a forma como ir� aparecer no relat�rio // Local Armagenagem Origem String localArmazenagemOrigem = ""; if (hidrometroMovimentacao .getHidrometroLocalArmazenagemOrigem() != null) { localArmazenagemOrigem = hidrometroMovimentacao .getHidrometroLocalArmazenagemOrigem() .getDescricao(); } // Local Armagenagem Destino String localArmazenagemDestino = ""; if (hidrometroMovimentacao .getHidrometroLocalArmazenagemDestino() != null) { localArmazenagemDestino = hidrometroMovimentacao .getHidrometroLocalArmazenagemDestino() .getDescricao(); } // Motivo Movimentacao String motivoMovimentacao = ""; if (hidrometroMovimentacao.getHidrometroMotivoMovimentacao() != null) { motivoMovimentacao = hidrometroMovimentacao .getHidrometroMotivoMovimentacao().getDescricao(); } // Data String data = ""; if (hidrometroMovimentacao.getData() != null) { data = Util.formatarData(hidrometroMovimentacao.getData()); } String hora = ""; if (hidrometroMovimentacao.getHora() != null) { hora = hidrometroMovimentacao.getHora().toString(); } FiltroHidrometroMovimentado filtroHidrometroMovimentado = new FiltroHidrometroMovimentado(); filtroHidrometroMovimentado .adicionarCaminhoParaCarregamentoEntidade("hidrometro"); filtroHidrometroMovimentado .adicionarParametro(new ParametroSimples( FiltroHidrometroMovimentado.HIDROMETRO_MOVIMENTACAO_ID, hidrometroMovimentacao.getId())); //filtroHidrometroMovimentado.setConsultaSemLimites(true); colecaoHidrometroMovimentado = fachada.pesquisar( filtroHidrometroMovimentado, HidrometroMovimentado.class.getName()); Integer quantidade = colecaoHidrometroMovimentado.size(); hidrometroMovimentacao.setQuantidade(quantidade.toString()); relatorioBean = new RelatorioMovimentacaoHidrometroBean( // Local Armagenagem Origem localArmazenagemOrigem, // Motivo Movimentacao motivoMovimentacao, // Data data, // Local Armagenagem Destino localArmazenagemDestino, // hora hora, // hidrometros hidrometroMovimentacao.getQuantidade()); /** [MA2011061014] * Autor: Paulo Diniz * Data: 12/07/2011 * Inclusão do N�mero Inicial e Final do Hidr�metro e Fixos * */ //Calculando a FaixaInicial, FaixaFinal e Caracteres Fixos String faixaInicial = ((HidrometroMovimentado) ((List) colecaoHidrometroMovimentado).get(0)).getHidrometro().getNumero(); String faixaFinal = ((HidrometroMovimentado) ((List) colecaoHidrometroMovimentado).get(quantidade-1)).getHidrometro().getNumero(); String fixo = ""; if(faixaInicial != null) { Integer tamanhoFaixaInicial = faixaInicial.length(); if(tamanhoFaixaInicial > 4) { fixo = faixaInicial.substring(0,4); hidrometroMovimentacao.setFixo(fixo); } faixaInicial = faixaInicial.substring(4,tamanhoFaixaInicial-1); } if(faixaFinal != null) { Integer tamanhoFaixaFinal = faixaFinal.length(); faixaFinal = faixaFinal.substring(4,tamanhoFaixaFinal-1); } String descricaoHidrometros = fixo+" - "+ faixaInicial+ " / " + faixaFinal; relatorioBean.setDescricaoHidrometros(descricaoHidrometros); // adiciona o bean a cole��o relatorioBeans.add(relatorioBean); } } // __________________________________________________________________ // Par�metros do relat�rio Map parametros = new HashMap(); // adiciona os par�metros do relat�rio // adiciona o laudo da an�lise SistemaParametro sistemaParametro = fachada .pesquisarParametrosDoSistema(); parametros.put("imagem", sistemaParametro.getImagemRelatorio()); if (hidrometroMovimentacaoParametros .getHidrometroLocalArmazenagemOrigem() != null) { parametros.put("localArmazenagemOrigem", hidrometroMovimentacaoParametros .getHidrometroLocalArmazenagemOrigem() .getDescricao()); } if (hidrometroMovimentacaoParametros .getHidrometroLocalArmazenagemDestino() != null) { parametros.put("localArmazenagemDestino", hidrometroMovimentacaoParametros .getHidrometroLocalArmazenagemDestino() .getDescricao()); } if (hidrometroMovimentacaoParametros.getHidrometroMotivoMovimentacao() != null) { FiltroHidrometroMotivoMovimentacao filtroHidrometroMotivoMovimentacao = new FiltroHidrometroMotivoMovimentacao(); filtroHidrometroMotivoMovimentacao .adicionarParametro(new ParametroSimples( FiltroHidrometroMotivoMovimentacao.ID, hidrometroMovimentacaoParametros .getHidrometroMotivoMovimentacao().getId())); Collection colecaoHidrometroMotivoMovimentacao = fachada.pesquisar( filtroHidrometroMotivoMovimentacao, HidrometroMotivoMovimentacao.class.getName()); HidrometroMotivoMovimentacao hidrometroMotivoMovimentacao = (HidrometroMotivoMovimentacao) colecaoHidrometroMotivoMovimentacao .iterator().next(); parametros.put("motivoMovimentacao", hidrometroMotivoMovimentacao .getDescricao()); } if (hidrometroMovimentacaoParametros.getUsuario() != null) { parametros.put("usuario", hidrometroMovimentacaoParametros .getUsuario().getNomeUsuario()); } if (hidrometroMovimentacaoParametros.getHoraMovimentacaoInicial() != null) { parametros.put("horaMovimentacaoInicial", hidrometroMovimentacaoParametros .getHoraMovimentacaoInicial()); } else { parametros.put("horaMovimentacaoInicial", ""); } if (hidrometroMovimentacaoParametros.getHoraMovimentacaoFinal() != null) { parametros .put("horaMovimentacaoFinal", hidrometroMovimentacaoParametros .getHoraMovimentacaoFinal()); } else { parametros.put("horaMovimentacaoFinal", ""); } if (hidrometroMovimentacaoParametros.getDataMovimentacaoInicial() != null) { parametros.put("dataMovimentacaoInicial", hidrometroMovimentacaoParametros .getDataMovimentacaoInicial()); } else { parametros.put("dataMovimentacaoInicial", ""); } if (hidrometroMovimentacaoParametros.getDataMovimentacaoFinal() != null) { parametros .put("dataMovimentacaoFinal", hidrometroMovimentacaoParametros .getDataMovimentacaoFinal()); } else { parametros.put("dataMovimentacaoFinal", ""); } // cria uma inst�ncia do dataSource do relat�rio RelatorioDataSource ds = new RelatorioDataSource(relatorioBeans); retorno = gerarRelatorio( ConstantesRelatorios.RELATORIO_CONSULTAR_MOVIMENTACAO_HIDROMETRO, parametros, ds, tipoFormatoRelatorio); // retorna o relat�rio gerado return retorno; } @Override public int calcularTotalRegistrosRelatorio() { int retorno = 0; // retorno = Fachada // .getInstancia() // .totalRegistrosPesquisa( // (FiltroHidrometroMovimentacao) getParametro("filtroHidrometroMovimentacao"), // HidrometroMovimentacao.class.getName()); return retorno; } public void agendarTarefaBatch() { AgendadorTarefas.agendarTarefa("RelatorioMovimentacaoHidrometro", this); } }