package gcom.relatorio.faturamento; import gcom.batch.Relatorio; import gcom.cadastro.imovel.Categoria; import gcom.cadastro.imovel.Imovel; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.fachada.Fachada; import gcom.faturamento.bean.GerarRelatorioAnormalidadePorAmostragemHelper; 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.ConstantesSistema; import gcom.util.ControladorException; import gcom.util.Util; 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; /** * * Este caso de uso gera relatorio de anormalidade Informadas - Amostragem * * [UC1051] Gerar Relat�rio de Amostragem das Anormalidades Informadas * * @author Hugo Leonardo * @date 06/08/2010 * */ public class RelatorioAnormalidadePorAmostragem extends TarefaRelatorio { private static final long serialVersionUID = 1L; public RelatorioAnormalidadePorAmostragem(Usuario usuario) { super(usuario, ConstantesRelatorios.RELATORIO_ANORMALIDADE_POR_AMOSTRAGEM); } @Deprecated public RelatorioAnormalidadePorAmostragem() { 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 { // ------------------------------------ Integer idFuncionalidadeIniciada = this.getIdFuncionalidadeIniciada(); // ------------------------------------ Integer idGrupo = (Integer) getParametro("idGrupo"); Short cdRota = (Short) getParametro("cdRota"); Integer idGerenciaRegional = (Integer) getParametro("idGerenciaRegional"); Integer idUnidadeNegocio = (Integer) getParametro("idUnidadeNegocio"); Integer idLocalidadeInicial = (Integer) getParametro("idLocalidadeInicial"); Integer idLocalidadeFinal = (Integer) getParametro("idLocalidadeFinal"); Integer idSetorComercialInicial = (Integer) getParametro("idSetorComercialInicial"); Integer idSetorComercialFinal = (Integer) getParametro("idSetorComercialFinal"); Collection<Integer> colecaoIdsEmpresa = (Collection<Integer>) getParametro("colecaoIdsEmpresa"); Collection<Integer> colecaoIdsAnormalidadeLeituraInformada = (Collection<Integer>) getParametro("colecaoIdsAnormalidadeLeituraInformada"); Integer numeroOcorrencias = (Integer) getParametro("numeroOcorrencias"); String indicadorOcorrenciasIguais = (String) getParametro("ocorrenciasIguais"); Integer idImovelPerfil = (Integer) getParametro("idImovelPerfil"); Integer referencia = (Integer) getParametro("referencia"); Integer mediaConsumoInicial = (Integer) getParametro("mediaConsumoInicial"); Integer mediaConsumoFinal = (Integer) getParametro("mediaConsumoFinal"); Integer tipoMedicao = (Integer) getParametro("tipoMedicao"); int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio"); Integer idCategoria = (Integer)getParametro("idCategoria"); Integer numeroQuadraInicial = (Integer)getParametro("numeroQuadraInicial"); Integer numeroQuadraFinal = (Integer)getParametro("numeroQuadraFinal"); Integer amostragem = (Integer)getParametro("amostragem"); // valor de retorno byte[] retorno = null; // cole��o de beans do relat�rio List relatorioBeans = new ArrayList(); Fachada fachada = Fachada.getInstancia(); RelatorioAnormalidadePorAmostragemBean relatorioBean = null; Collection colecaoHelper = fachada.pesquisarDadosRelatorioAnormalidadeConsumoPorAmostragem(idGrupo, cdRota, idGerenciaRegional, idUnidadeNegocio, idLocalidadeInicial, idLocalidadeFinal, idSetorComercialInicial, idSetorComercialFinal ,referencia, idImovelPerfil, numeroOcorrencias, indicadorOcorrenciasIguais, mediaConsumoInicial, mediaConsumoFinal, null, null, colecaoIdsAnormalidadeLeituraInformada, tipoMedicao, colecaoIdsEmpresa, numeroQuadraInicial, numeroQuadraFinal, idCategoria, amostragem); // se a cole��o de par�metros da analise n�o for vazia if (colecaoHelper != null && !colecaoHelper.isEmpty()) { // coloca a cole��o de par�metros da analise no iterator Iterator colecaoHelperIterator = colecaoHelper.iterator(); Integer totalGrupo = new Integer("0"); Integer totalGerenciaRegional = new Integer("0"); Integer totalUnidadeNegocio = new Integer("0"); Integer totalElo = new Integer("0"); Integer totalLocalidade = new Integer("0"); Integer totalSetorComercial = new Integer("0"); Integer idGrupoAnterior = null; Integer idGerenciaRegionalAnterior = null; Integer idUnidadeNegocioAnterior = null; Integer idEloAnterior = null; Integer idLocalidadeAnterior = null; Integer idSetorComercialAnterior = null; boolean zerarGrupo = false; boolean zerarGerenciaRegional = false; boolean zerarUnidadeNegocio = false; boolean zerarElo = false; boolean zerarLocalidade = false; boolean zerarSetorComercial = false; // la�o para criar a cole��o de par�metros da analise while (colecaoHelperIterator.hasNext()) { GerarRelatorioAnormalidadePorAmostragemHelper relatorioHelper = (GerarRelatorioAnormalidadePorAmostragemHelper) colecaoHelperIterator .next(); // Faz as valida��es dos campos necess�riose e formata a String // para a forma como ir� aparecer no relat�rio // Grupo String grupo = ""; if (relatorioHelper.getIdGrupo() != null) { grupo = relatorioHelper.getIdGrupo() + " - " + relatorioHelper.getNomeGrupo(); if (idGrupoAnterior == null) { idGrupoAnterior = relatorioHelper.getIdGrupo(); } else { if (!idGrupoAnterior.equals(relatorioHelper.getIdGrupo())) { zerarGrupo = true; } } } // Ger�ncia Regional String gerenciaRegional = ""; if (relatorioHelper.getIdGerenciaRegional() != null) { gerenciaRegional = relatorioHelper.getIdGerenciaRegional() + " - " + relatorioHelper.getNomeGerenciaRegional(); if (idGerenciaRegionalAnterior == null) { idGerenciaRegionalAnterior = relatorioHelper.getIdGerenciaRegional(); } else { if (!idGerenciaRegionalAnterior.equals(relatorioHelper.getIdGerenciaRegional())) { zerarGerenciaRegional = true; } } } // Unidade de Neg�cio String unidadeNegocio = ""; if (relatorioHelper.getIdUnidadeNegocio() != null) { unidadeNegocio = relatorioHelper.getIdUnidadeNegocio() + " - " + relatorioHelper.getNomeUnidadeNegocio(); if (idUnidadeNegocioAnterior == null) { idUnidadeNegocioAnterior = relatorioHelper.getIdUnidadeNegocio(); } else { if (!idUnidadeNegocioAnterior.equals(relatorioHelper.getIdUnidadeNegocio())) { zerarUnidadeNegocio = true; } } } // Elo String elo = ""; if (relatorioHelper.getIdElo() != null) { elo = relatorioHelper.getIdElo() + " - " + relatorioHelper.getNomeElo(); if (idEloAnterior == null) { idEloAnterior = relatorioHelper.getIdElo(); } else { if (!idEloAnterior.equals(relatorioHelper.getIdElo())) { zerarElo = true; } } } // Localidade String localidade = ""; if (relatorioHelper.getIdLocalidade() != null) { localidade = relatorioHelper.getIdLocalidade() + " - " + relatorioHelper.getNomeLocalidade(); if (idLocalidadeAnterior == null) { idLocalidadeAnterior = relatorioHelper.getIdLocalidade(); } else { if (!idLocalidadeAnterior.equals(relatorioHelper.getIdLocalidade())) { zerarLocalidade = true; } } } // Setor Comercial String setorComercial = ""; String idSetorComercial = ""; if (relatorioHelper.getIdSetorComercial() != null) { setorComercial = relatorioHelper.getCodigoSetorComercial().toString(); idSetorComercial = relatorioHelper.getIdSetorComercial().toString(); if (idSetorComercialAnterior == null) { idSetorComercialAnterior = relatorioHelper.getIdSetorComercial(); } else { if (!idSetorComercialAnterior.equals(relatorioHelper.getIdSetorComercial())) { zerarSetorComercial = true; } } } // Caso tenha mudado de Grupo zera seus totalizadores if (zerarGrupo) { totalGrupo = new Integer("0"); idGrupoAnterior = relatorioHelper.getIdGrupo(); zerarGrupo = false; } // Caso tenha mudado de Ger�ncia Regional zera seus totalizadores if (zerarGerenciaRegional) { totalGerenciaRegional = new Integer("0"); idGerenciaRegionalAnterior = relatorioHelper.getIdGerenciaRegional(); zerarGerenciaRegional = false; } // Caso tenha mudado de Unidade de Neg�cio zera seus totalizadores if (zerarUnidadeNegocio) { totalUnidadeNegocio = new Integer("0"); idUnidadeNegocioAnterior = relatorioHelper.getIdUnidadeNegocio(); zerarUnidadeNegocio = false; } // Caso tenha mudado de Elo zera seus totalizadores if (zerarElo) { totalElo = new Integer("0"); idEloAnterior = relatorioHelper.getIdElo(); zerarElo = false; } // Caso tenha mudado de Localidade zera seus totalizadores if (zerarLocalidade) { totalLocalidade = new Integer("0"); idLocalidadeAnterior = relatorioHelper.getIdLocalidade(); zerarLocalidade = false; } // Caso tenha mudado de setor comercial zera seus totalizadores if (zerarSetorComercial) { totalSetorComercial = new Integer("0"); idSetorComercialAnterior = relatorioHelper.getIdSetorComercial(); zerarSetorComercial = false; } totalGrupo = totalGrupo + 1; totalGerenciaRegional = totalGerenciaRegional + 1; totalUnidadeNegocio = totalUnidadeNegocio + 1; totalElo = totalElo + 1; totalLocalidade = totalLocalidade + 1; totalSetorComercial = totalSetorComercial + 1; // Im�vel, Endere�o e Categoria String idImovel = ""; String endereco = ""; String descricaoCategoria = ""; if (relatorioHelper.getIdImovel() != null) { idImovel = relatorioHelper.getIdImovel() .toString(); Imovel imovel = new Imovel(); imovel.setId(relatorioHelper.getIdImovel()); Categoria categoria = fachada.obterDescricoesCategoriaImovel(imovel); if (categoria.getDescricaoAbreviada() != null) { descricaoCategoria = categoria.getDescricaoAbreviada(); } } if(relatorioHelper.getEnderecoImovel() != null){ endereco = relatorioHelper.getEnderecoImovel() ; } // Nome do Usu�rio String nomeUsuario = ""; if (relatorioHelper.getNomeUsuario() != null) { nomeUsuario = relatorioHelper.getNomeUsuario(); } // Situa��o da Liga��o de �gua String situacaoAgua = ""; if (relatorioHelper.getSituacaoLigacaoAgua() != null) { situacaoAgua = relatorioHelper.getSituacaoLigacaoAgua().toString(); } // Situa��o de Esgoto String situacaoEsgoto = ""; if (relatorioHelper.getSituacaoLigacaoEsgoto() != null) { situacaoEsgoto = relatorioHelper.getSituacaoLigacaoEsgoto().toString(); } // D�bito Autom�tico String debitoAutomatico = ""; if (relatorioHelper.getIndicadorDebito() != null) { if (relatorioHelper.getIndicadorDebito().equals(ConstantesSistema.SIM)) { debitoAutomatico = "SIM"; } else { debitoAutomatico = "N�O"; } } // M�dia de Consumo String media = ""; if (relatorioHelper.getConsumoMedio() != null) { media = relatorioHelper.getConsumoMedio().toString(); } // Consumo String consumo = ""; if (relatorioHelper.getConsumoMes() != null) { consumo = relatorioHelper.getConsumoMes().toString(); } // Anormalidade de Consumo String anormalidadeConsumo = ""; if (relatorioHelper.getDescricaoAbrevConsumoAnormalidade() != null) { anormalidadeConsumo = relatorioHelper.getDescricaoAbrevConsumoAnormalidade(); } // Anormalidade de Leitura String anormalidadeLeitura = ""; if (relatorioHelper.getIdLeituraAnormalidade() != null) { anormalidadeLeitura = relatorioHelper.getIdLeituraAnormalidade().toString(); } String nnLeituraAtualInformada = ""; if (relatorioHelper.getNnLeituraAtualInformada() != null) { nnLeituraAtualInformada = relatorioHelper.getNnLeituraAtualInformada().toString(); } // Quantidade de Economias String qtdeEconomias = ""; if (relatorioHelper.getQuantidadeEconomias() != null) { qtdeEconomias = relatorioHelper.getQuantidadeEconomias().toString(); } // Capacidade do Hidr�metro String capacidadeHidrometro = ""; if (relatorioHelper.getCapacidadeHidrometro() != null) { capacidadeHidrometro = relatorioHelper.getCapacidadeHidrometro(); } // Local de Instala��o do Hidr�metro String localInstalacaoHidrometro = ""; if (relatorioHelper.getLocalInstalacaoHidrometro() != null) { localInstalacaoHidrometro = relatorioHelper.getLocalInstalacaoHidrometro(); } // Setor Comercial String idEmpresa = ""; String nomeEmpresa = ""; if (relatorioHelper.getIdEmpresa() != null) { idEmpresa = relatorioHelper.getIdEmpresa().toString(); nomeEmpresa = idEmpresa + " - " +relatorioHelper.getNomeEmpresa(); } String inscricaoImovel = relatorioHelper.getInscricaoImovel(); if(relatorioHelper.getInscricaoImovel() != null){ inscricaoImovel = relatorioHelper.getInscricaoImovel(); } relatorioBean = new RelatorioAnormalidadePorAmostragemBean( // Grupo grupo, // Ger�ncia Regional gerenciaRegional, // Unidade de Neg�cio unidadeNegocio, // Elo elo, // Localidade localidade, // Id do Setor Comercial idSetorComercial, // Setor Comercial setorComercial, // Im�vel idImovel, // Usu�rio nomeUsuario, // Endere�o endereco, // Situa��o de �gua situacaoAgua, // Situa��o de Esgoto situacaoEsgoto, // D�bito Autom�tico debitoAutomatico, // M�dia de Consumo media, // Consumo consumo, // Anormalidade de Consumo anormalidadeConsumo, // Anormalidade de Leitura anormalidadeLeitura, // N�mero leitura atual informada nnLeituraAtualInformada, // Categoria descricaoCategoria, // Quantidade de Economias qtdeEconomias, // Tipo de Medi��o relatorioHelper.getTipoMedicao(), // Capacidade do Hidr�metro capacidadeHidrometro, // Local de Instala��o do Hidr�metro localInstalacaoHidrometro, // Total do Grupo totalGrupo.toString(), // Total da Ger�ncia Regional totalGerenciaRegional.toString(), // Total da Unidade de Neg�cio totalUnidadeNegocio.toString(), // Total do Elo totalElo.toString(), // Total da Localidade totalLocalidade.toString(), // Total do Setor Comercial totalSetorComercial.toString(), //Id Empresa idEmpresa, //Nome Empresa nomeEmpresa, inscricaoImovel ); // adiciona o bean a cole��o relatorioBeans.add(relatorioBean); } }else{ relatorioBean = new RelatorioAnormalidadePorAmostragemBean(); 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()); parametros.put("mesAno", Util.formatarAnoMesParaMesAno(referencia)); parametros.put("tipoFormatoRelatorio", "R1051"); // cria uma inst�ncia do dataSource do relat�rio RelatorioDataSource ds = new RelatorioDataSource(relatorioBeans); if(colecaoHelper != null && colecaoHelper.size() > 0){ retorno = gerarRelatorio( ConstantesRelatorios.RELATORIO_ANORMALIDADE_POR_AMOSTRAGEM, 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_ANORMALIDADE_POR_AMOSTRAGEM, 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 = 1; return retorno; } public void agendarTarefaBatch() { AgendadorTarefas.agendarTarefa("RelatorioAnormalidadePorAmostragem", this); } }