package gcom.relatorio.faturamento; import gcom.cadastro.cliente.Cliente; import gcom.cadastro.cliente.ControladorClienteLocal; import gcom.cadastro.cliente.ControladorClienteLocalHome; import gcom.cadastro.imovel.Categoria; import gcom.cadastro.imovel.FiltroCategoria; import gcom.cadastro.imovel.FiltroSubCategoria; import gcom.cadastro.imovel.Subcategoria; import gcom.cadastro.localidade.FiltroGerenciaRegional; import gcom.cadastro.localidade.FiltroLocalidade; import gcom.cadastro.localidade.FiltroQuadra; import gcom.cadastro.localidade.FiltroSetorComercial; import gcom.cadastro.localidade.FiltroUnidadeNegocio; import gcom.cadastro.localidade.GerenciaRegional; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.localidade.Quadra; import gcom.cadastro.localidade.SetorComercial; import gcom.cadastro.localidade.UnidadeNegocio; import gcom.faturamento.ConsumoFaixaCategoria; import gcom.faturamento.ConsumoFaixaLigacao; import gcom.faturamento.IRepositorioFaturamento; import gcom.faturamento.RepositorioFaturamentoHBM; import gcom.faturamento.bean.EmitirHistogramaAguaEconomiaDetalheHelper; import gcom.faturamento.bean.EmitirHistogramaAguaEconomiaHelper; import gcom.faturamento.bean.EmitirHistogramaEsgotoDetalheHelper; import gcom.faturamento.bean.EmitirHistogramaEsgotoEconomiaDetalheHelper; import gcom.faturamento.bean.EmitirHistogramaEsgotoEconomiaHelper; import gcom.faturamento.bean.EmitirHistogramaEsgotoHelper; import gcom.faturamento.bean.FaturaClienteResponsavelHelper; import gcom.faturamento.bean.FiltrarEmitirHistogramaAguaEconomiaHelper; import gcom.faturamento.bean.FiltrarEmitirHistogramaEsgotoEconomiaHelper; import gcom.faturamento.bean.FiltrarEmitirHistogramaEsgotoHelper; import gcom.faturamento.consumotarifa.ConsumoTarifa; import gcom.faturamento.consumotarifa.FiltroConsumoTarifa; import gcom.faturamento.conta.Fatura; import gcom.seguranca.acesso.usuario.Usuario; import gcom.tarefa.TarefaRelatorio; import gcom.util.ConstantesJNDI; import gcom.util.ConstantesSistema; import gcom.util.ControladorException; import gcom.util.ControladorUtilLocal; import gcom.util.ControladorUtilLocalHome; import gcom.util.ErroRepositorioException; import gcom.util.ServiceLocator; import gcom.util.ServiceLocatorException; import gcom.util.SistemaException; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import javax.ejb.CreateException; import javax.ejb.SessionBean; import javax.ejb.SessionContext; /** * Foi criador esse controlador para relatorio especificos para faturamento * * @author Rafael Pinto * @created 16/06/2007 */ public class ControladorRelatorioFaturamentoSEJB implements SessionBean { private static final long serialVersionUID = 1L; SessionContext sessionContext; private IRepositorioFaturamento repositorioFaturamento; /** * < <Descri��o do m�todo>> * * @exception CreateException * Descri��o da exce��o */ public void ejbCreate() throws CreateException { repositorioFaturamento = RepositorioFaturamentoHBM.getInstancia(); } /** * < <Descri��o do m�todo>> */ public void ejbRemove() { } /** * < <Descri��o do m�todo>> */ public void ejbActivate() { } /** * < <Descri��o do m�todo>> */ public void ejbPassivate() { } /** * Seta o valor de sessionContext * * @param sessionContext * O novo valor de sessionContext */ public void setSessionContext(SessionContext sessionContext) { this.sessionContext = sessionContext; } /** * Retorna o valor de ControladorClienteLocal * * @return O valor de ControladorClienteLocal */ protected ControladorClienteLocal getControladorCliente() { ControladorClienteLocalHome localHome = null; ControladorClienteLocal local = null; // pega a inst�ncia do ServiceLocator. ServiceLocator locator = null; try { locator = ServiceLocator.getInstancia(); localHome = (ControladorClienteLocalHome) locator .getLocalHome(ConstantesJNDI.CONTROLADOR_CLIENTE_SEJB); // guarda a referencia de um objeto capaz de fazer chamadas � // objetos remotamente local = localHome.create(); return local; } catch (CreateException e) { throw new SistemaException(e); } catch (ServiceLocatorException e) { throw new SistemaException(e); } } /** * Retorna o valor de controladorUtil * * @return O valor de controladorUtil */ protected ControladorUtilLocal getControladorUtil() { ControladorUtilLocalHome localHome = null; ControladorUtilLocal local = null; // pega a inst�ncia do ServiceLocator. ServiceLocator locator = null; try { locator = ServiceLocator.getInstancia(); localHome = (ControladorUtilLocalHome) locator .getLocalHome(ConstantesJNDI.CONTROLADOR_UTIL_SEJB); // guarda a referencia de um objeto capaz de fazer chamadas � // objetos remotamente local = localHome.create(); return local; } catch (CreateException e) { throw new SistemaException(e); } catch (ServiceLocatorException e) { throw new SistemaException(e); } } /** * [UC0604] Emitir Histograma de �gua por Economia * * @author Rafael Pinto * @date 08/11/2007 * * @param FiltrarEmitirHistogramaAguaEconomiaHelper * * @return Collection<EmitirHistogramaAguaEconomiaHelper> * @throws ControladorException */ public Collection<EmitirHistogramaAguaEconomiaHelper> pesquisarEmitirHistogramaAguaEconomia( FiltrarEmitirHistogramaAguaEconomiaHelper filtro) throws ControladorException { Collection<EmitirHistogramaAguaEconomiaHelper> colecaoEmitirHistogramaAguaEconomia = new ArrayList<EmitirHistogramaAguaEconomiaHelper>(); Collection<Integer> colecao = filtro.getColecaoTarifa(); if(colecao != null && !colecao.isEmpty()){ Iterator itera = colecao.iterator(); while (itera.hasNext()) { Integer tarifa = (Integer) itera.next(); FiltrarEmitirHistogramaAguaEconomiaHelper novoFiltro = new FiltrarEmitirHistogramaAguaEconomiaHelper(filtro); FiltrarEmitirHistogramaAguaEconomiaHelper novoFiltroClone = new FiltrarEmitirHistogramaAguaEconomiaHelper(filtro); novoFiltro.setTarifa(tarifa); novoFiltroClone.setTarifa(tarifa); colecaoEmitirHistogramaAguaEconomia.addAll(this.montarSwitchHistogramaAguaEconomia(novoFiltro,novoFiltroClone)); } } FiltrarEmitirHistogramaAguaEconomiaHelper filtroClone2 = new FiltrarEmitirHistogramaAguaEconomiaHelper(filtro); colecaoEmitirHistogramaAguaEconomia.addAll( this.montarSwitchHistogramaAguaEconomia(filtro,filtroClone2)); return colecaoEmitirHistogramaAguaEconomia; } /** * [UC0604] Emitir Histograma de Agua Por Economia * * Monta switch * * @author Rafael Pinto * @date 07/11/2007 * * @param FiltrarEmitirHistogramaAguaEconomiaHelper * * @return Collection<EmitirHistogramaAguaEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaAguaEconomiaHelper> montarSwitchHistogramaAguaEconomia( FiltrarEmitirHistogramaAguaEconomiaHelper filtro, FiltrarEmitirHistogramaAguaEconomiaHelper filtroClone) throws ControladorException { int opcaoTotalizacao = filtro.getOpcaoTotalizacao(); Collection<EmitirHistogramaAguaEconomiaHelper> colecaoEmitirHistogramaAguaEconomia = new ArrayList<EmitirHistogramaAguaEconomiaHelper>(); switch (opcaoTotalizacao) { // Estado case 1: colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaEstado(filtro)); break; // Estado por Gerencia Regional case 2: colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaGerenciaRegional(filtro)); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaEstado(filtroClone)); break; // Estado por Unidade Negocio case 3: colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaUnidadeNegocioGerenciaRegional(filtro)); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaEstado(filtroClone)); break; // Estado por Elo Polo case 4: colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaEloPoloUnidadeNegocioGerenciaRegional(filtro)); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaEstado(filtroClone)); break; // Estado por Localidade case 5: colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaLocalidadeEloPoloUnidadeNegocioGerenciaRegional(filtro)); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaEstado(filtroClone)); break; // Ger�ncia Regional case 6: colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaGerenciaRegional(filtro)); break; // Ger�ncia Regional por Unidade Negocio case 7: colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaUnidadeNegocioGerenciaRegional(filtro)); break; // Ger�ncia Regional por Elo case 8: colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaEloPoloUnidadeNegocioGerenciaRegional(filtro)); break; // Ger�ncia Regional por Localidade case 9: colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaLocalidadeEloPoloUnidadeNegocioGerenciaRegional(filtro)); break; // Unidade de Negocio case 10: colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaUnidadeNegocio(filtro)); break; // Unidade de Negocio por Elo case 11: colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaEloPoloUnidadeNegocio(filtro)); break; // Unidade de Negocio por Localidade case 12: colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaLocalidadeEloPoloUnidadeNegocio(filtro)); break; // Elo Polo case 13: colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaEloPolo(filtro)); break; // Elo Polo Por Localidade case 14: colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaLocalidadeEloPolo(filtro)); break; // Elo Polo Por Setor Comercial case 15: colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaSetorComercialLocalidadeEloPolo(filtro)); break; // Localidade case 16: colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaLocalidade(filtro)); break; // Localidade Por Setor Comercial case 17: colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaSetorComercialLocalidade(filtro)); break; // Localidade Por Quadra case 18: colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaQuadraSetorComercialLocalidade(filtro)); break; // Setor Comercial case 19: colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaSetorComercial(filtro)); break; // Setor Comercial Por Quadra case 20: colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaQuadraSetorComercial(filtro)); break; // Quadra case 21: colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaQuadra(filtro)); break; } return colecaoEmitirHistogramaAguaEconomia; } /** * [UC0605] Emitir Histograma de �gua Por Economia * * Estado * * @author Rafael Pinto * @date 15/06/2007 * * @param FiltrarEmitirHistogramaAguaEconomiaHelper * * @return Collection<EmitirHistogramaAguaEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaAguaEconomiaHelper> emitirHistogramaAguaEconomiaEstado( FiltrarEmitirHistogramaAguaEconomiaHelper filtro) throws ControladorException { Collection<EmitirHistogramaAguaEconomiaHelper> colecaoEmitirHistogramaAguaEconomia = new ArrayList<EmitirHistogramaAguaEconomiaHelper>(); String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaAguaEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaAguaEconomiaDetalheHelper> colecaoEmitirHistogramaAguaEconomiaDetalhe = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; Collection colecaoConsulta = null; Iterator itera = colecaoCategorias.iterator(); String descricaoOpcaoTotalizacao = this.getControladorUtil().pesquisarParametrosDoSistema().getNomeEstado(); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; int quantidadeCategoriaComValores = 0; while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaAguaEconomiaHelper(); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaAguaEconomiaDetalhe = new ArrayList<EmitirHistogramaAguaEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); int quantidadeFaixaComValores = 0; int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); if ( filtro.getIndicadorTarifaCategoria().intValue() == 1 ){ Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); if(detalhe.isExisteHistograma()){ quantidadeFaixaComValores++; } } } else { FiltroSubCategoria filtroSubcategoria = new FiltroSubCategoria(); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.CATEGORIA_ID, idCategoria ) ); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.INDICADOR_CONSUMO_TARIFA, ConstantesSistema.SIM ) ); filtroSubcategoria.setCampoOrderBy( "id" ); Collection colSubcategoria = new ArrayList(); Subcategoria subcategoria0 = new Subcategoria(); subcategoria0.setId( new Integer( 0 ) ); Categoria categoriaX = new Categoria(); categoriaX.setId( Integer.parseInt( idCategoria ) ); subcategoria0.setCategoria( categoriaX ); subcategoria0.setDescricao( "0 - SEM SUBCATEGORIA" ); colSubcategoria.add( subcategoria0 ); colSubcategoria.addAll( this.getControladorUtil().pesquisar( filtroSubcategoria, Subcategoria.class.getName() ) ); Iterator iteSubcategoria = colSubcategoria.iterator(); emitirHistograma.setDescricaoCategoria(descricaoCategoria); while ( iteSubcategoria.hasNext() ){ Subcategoria subcategoria = (Subcategoria)iteSubcategoria.next(); filtro.setSubcategoria( subcategoria ); emitirHistograma.setDescricaoSubcategoria( subcategoria.getDescricao() ); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); Integer totalEconomiasMedidoSubcategoria = 0; Integer totalVolumeConsumoMedidoSubcategoria = 0; Integer totalVolumeFaturadoMedidoSubcategoria = 0; Integer totalLigacaoMedidoSubcategoria = 0; BigDecimal totalReceitaMedidoSubcategoria = new BigDecimal(0.0); Integer totalEconomiasNaoMedidoSubcategoria = 0; Integer totalVolumeConsumoNaoMedidoSubcategoria = 0; Integer totalVolumeFaturadoNaoMedidoSubcategoria = 0; Integer totalLigacaoNaoMedidoSubcategoria = 0; BigDecimal totalReceitaNaoMedidoSubcategoria = new BigDecimal(0.0); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); detalhe.setDescricaoSubcategoria( subcategoria.getDescricao() ); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); // Guardamos os totais por subcategoria totalEconomiasMedidoSubcategoria += detalhe.getEconomiasMedido(); totalVolumeConsumoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedidoSubcategoria = totalReceitaMedidoSubcategoria.add(detalhe.getReceitaMedido()); totalLigacaoMedidoSubcategoria += detalhe.getLigacoesMedido(); totalEconomiasNaoMedidoSubcategoria += detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedidoSubcategoria = totalReceitaNaoMedidoSubcategoria.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedidoSubcategoria += detalhe.getLigacoesNaoMedido(); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); if(detalhe.isExisteHistograma()){ quantidadeFaixaComValores++; } } EmitirHistogramaAguaEconomiaDetalheHelper totalSubcategoria = new EmitirHistogramaAguaEconomiaDetalheHelper (); totalSubcategoria.setDescricaoFaixa("TOTAL " + subcategoria.getCodigo() ); totalSubcategoria.setEconomiasMedido(totalEconomiasMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaMedido(totalVolumeConsumoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaMedido(totalVolumeFaturadoMedidoSubcategoria); totalSubcategoria.setReceitaMedido(totalReceitaMedidoSubcategoria); totalSubcategoria.setLigacoesMedido(totalLigacaoMedidoSubcategoria); totalSubcategoria.setEconomiasNaoMedido(totalEconomiasNaoMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaNaoMedido(totalVolumeConsumoNaoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaNaoMedido(totalVolumeFaturadoNaoMedidoSubcategoria); totalSubcategoria.setReceitaNaoMedido(totalReceitaNaoMedidoSubcategoria); totalSubcategoria.setLigacoesNaoMedido(totalLigacaoNaoMedidoSubcategoria); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(totalSubcategoria); } } if(quantidadeFaixaComValores != 0){ quantidadeCategoriaComValores++; } emitirHistograma.setColecaoEmitirHistogramaAguaEconomiaDetalhe(colecaoEmitirHistogramaAguaEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } if (quantidadeCategoriaComValores != 0){ emitirHistograma = new EmitirHistogramaAguaEconomiaHelper(); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); }else{ colecaoEmitirHistogramaAguaEconomia = new ArrayList<EmitirHistogramaAguaEconomiaHelper>(); } return colecaoEmitirHistogramaAguaEconomia; } /** * [UC0605] Emitir Histograma de �gua Por Economia - Gerencia Regional * * @author Rafael Pinto * @date 15/06/2007 * * @param FiltrarEmitirHistogramaAguaEconomiaHelper * * @return Collection<EmitirHistogramaAguaEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaAguaEconomiaHelper> emitirHistogramaAguaEconomiaGerenciaRegional( FiltrarEmitirHistogramaAguaEconomiaHelper filtro) throws ControladorException { filtro.setEloPolo(null); filtro.setUnidadeNegocio(null); filtro.setLocalidade(null); filtro.setMedicao(null); filtro.setConsumoFaixaCategoria(null); Collection<EmitirHistogramaAguaEconomiaHelper> colecaoEmitirHistogramaAguaEconomia = new ArrayList<EmitirHistogramaAguaEconomiaHelper>(); filtro.setTipoGroupBy("histograma.gerenciaRegional.id"); filtro.setTipoOrderBy("1"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaAguaEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaAguaEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaAguaEconomiaDetalheHelper> colecaoEmitirHistogramaAguaEconomiaDetalhe = null; GerenciaRegional gerencia = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroGerenciaRegional filtroGerencia = null; Collection colecaoConsulta = null; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String IdGerencia = (String) iter.next(); Iterator itera = colecaoCategorias.iterator(); filtroGerencia = new FiltroGerenciaRegional(); filtroGerencia.adicionarParametro( new ParametroSimples(FiltroGerenciaRegional.ID,IdGerencia)); // Recupera Gerencia Regional colecaoConsulta = this.getControladorUtil().pesquisar(filtroGerencia, GerenciaRegional.class.getName()); gerencia = (GerenciaRegional) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = gerencia.getId()+" - "+gerencia.getNome(); filtro.setGerenciaRegional(gerencia); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaAguaEconomiaHelper(); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaAguaEconomiaDetalhe = new ArrayList<EmitirHistogramaAguaEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); if ( filtro.getIndicadorTarifaCategoria().intValue() == 1 ){ Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } } else { FiltroSubCategoria filtroSubcategoria = new FiltroSubCategoria(); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.CATEGORIA_ID, idCategoria ) ); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.INDICADOR_CONSUMO_TARIFA, ConstantesSistema.SIM ) ); filtroSubcategoria.setCampoOrderBy( "id" ); Collection colSubcategoria = new ArrayList(); Subcategoria subcategoria0 = new Subcategoria(); subcategoria0.setId( new Integer( 0 ) ); Categoria categoriaX = new Categoria(); categoriaX.setId( Integer.parseInt( idCategoria ) ); subcategoria0.setCategoria( categoriaX ); subcategoria0.setDescricao( "0 - SEM SUBCATEGORIA" ); colSubcategoria.add( subcategoria0 ); colSubcategoria.addAll( this.getControladorUtil().pesquisar( filtroSubcategoria, Subcategoria.class.getName() ) ); Iterator iteSubcategoria = colSubcategoria.iterator(); emitirHistograma.setDescricaoCategoria(descricaoCategoria); while ( iteSubcategoria.hasNext() ){ Subcategoria subcategoria = (Subcategoria)iteSubcategoria.next(); filtro.setSubcategoria( subcategoria ); emitirHistograma.setDescricaoSubcategoria( subcategoria.getDescricao() ); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); Integer totalEconomiasMedidoSubcategoria = 0; Integer totalVolumeConsumoMedidoSubcategoria = 0; Integer totalVolumeFaturadoMedidoSubcategoria = 0; Integer totalLigacaoMedidoSubcategoria = 0; BigDecimal totalReceitaMedidoSubcategoria = new BigDecimal(0.0); Integer totalEconomiasNaoMedidoSubcategoria = 0; Integer totalVolumeConsumoNaoMedidoSubcategoria = 0; Integer totalVolumeFaturadoNaoMedidoSubcategoria = 0; Integer totalLigacaoNaoMedidoSubcategoria = 0; BigDecimal totalReceitaNaoMedidoSubcategoria = new BigDecimal(0.0); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); detalhe.setDescricaoSubcategoria( subcategoria.getDescricao() ); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); // Guardamos os totais por subcategoria totalEconomiasMedidoSubcategoria += detalhe.getEconomiasMedido(); totalVolumeConsumoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedidoSubcategoria = totalReceitaMedidoSubcategoria.add(detalhe.getReceitaMedido()); totalLigacaoMedidoSubcategoria += detalhe.getLigacoesMedido(); totalEconomiasNaoMedidoSubcategoria += detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedidoSubcategoria = totalReceitaNaoMedidoSubcategoria.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedidoSubcategoria += detalhe.getLigacoesNaoMedido(); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } EmitirHistogramaAguaEconomiaDetalheHelper totalSubcategoria = new EmitirHistogramaAguaEconomiaDetalheHelper (); totalSubcategoria.setDescricaoFaixa("TOTAL " + subcategoria.getDescricao() ); totalSubcategoria.setEconomiasMedido(totalEconomiasMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaMedido(totalVolumeConsumoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaMedido(totalVolumeFaturadoMedidoSubcategoria); totalSubcategoria.setReceitaMedido(totalReceitaMedidoSubcategoria); totalSubcategoria.setLigacoesMedido(totalLigacaoMedidoSubcategoria); totalSubcategoria.setEconomiasNaoMedido(totalEconomiasNaoMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaNaoMedido(totalVolumeConsumoNaoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaNaoMedido(totalVolumeFaturadoNaoMedidoSubcategoria); totalSubcategoria.setReceitaNaoMedido(totalReceitaNaoMedidoSubcategoria); totalSubcategoria.setLigacoesNaoMedido(totalLigacaoNaoMedidoSubcategoria); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(totalSubcategoria); } } /* while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } */ emitirHistograma.setColecaoEmitirHistogramaAguaEconomiaDetalhe(colecaoEmitirHistogramaAguaEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaAguaEconomiaHelper) hashMapTotalGeral.get(IdGerencia); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); } } return colecaoEmitirHistogramaAguaEconomia; } /** * [UC0605] Emitir Histograma de �gua Por Economia * * Unidade de Negocio e Gerencia Regional * * @author Rafael Pinto * @date 19/06/2007 * * @param FiltrarEmitirHistogramaAguaEconomiaHelper * * @return Collection<EmitirHistogramaAguaEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaAguaEconomiaHelper> emitirHistogramaAguaEconomiaUnidadeNegocioGerenciaRegional( FiltrarEmitirHistogramaAguaEconomiaHelper filtro) throws ControladorException { Collection<EmitirHistogramaAguaEconomiaHelper> colecaoEmitirHistogramaAguaEconomia = new ArrayList<EmitirHistogramaAguaEconomiaHelper>(); String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } filtro.setTipoGroupBy("histograma.unidadeNegocio.id,histograma.gerenciaRegional.id"); filtro.setTipoOrderBy("1"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaAguaEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaAguaEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaAguaEconomiaDetalheHelper> colecaoEmitirHistogramaAguaEconomiaDetalhe = null; UnidadeNegocio unidadeNegocio = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroUnidadeNegocio filtroUnidadeNegocio = null; Collection colecaoConsulta = null; //Pai da unidade Negocioa(unidade -> gerencia) int gerenciaAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); GerenciaRegional gerencia = new GerenciaRegional(); gerencia.setId(new Integer(arrayNumeracao[1])); if(gerenciaAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ gerenciaAnterior = gerencia.getId(); } //Mudou de Gerencia if(gerenciaAnterior != gerencia.getId().intValue()){ filtro.setOpcaoTotalizacao(2); GerenciaRegional gereAnterior = new GerenciaRegional(); gereAnterior.setId(gerenciaAnterior); filtro.setGerenciaRegional(gereAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaGerenciaRegional(filtro)); } filtroUnidadeNegocio = new FiltroUnidadeNegocio(); filtroUnidadeNegocio.adicionarParametro( new ParametroSimples(FiltroUnidadeNegocio.ID,arrayNumeracao[0])); filtroUnidadeNegocio.adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); // Recupera Unidade Negocio colecaoConsulta = this.getControladorUtil().pesquisar(filtroUnidadeNegocio, UnidadeNegocio.class.getName()); unidadeNegocio = (UnidadeNegocio) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = unidadeNegocio.getGerenciaRegional().getId()+"-"+unidadeNegocio.getGerenciaRegional().getNomeAbreviado() +" / "+ unidadeNegocio.getId()+"-"+unidadeNegocio.getNome(); filtro.setUnidadeNegocio(unidadeNegocio); filtro.setGerenciaRegional(gerencia); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; Iterator itera = colecaoCategorias.iterator(); while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaAguaEconomiaHelper(); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaAguaEconomiaDetalhe = new ArrayList<EmitirHistogramaAguaEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); if ( filtro.getIndicadorTarifaCategoria().intValue() == 1 ){ while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } } else { FiltroSubCategoria filtroSubcategoria = new FiltroSubCategoria(); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.CATEGORIA_ID, idCategoria ) ); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.INDICADOR_CONSUMO_TARIFA, ConstantesSistema.SIM ) ); filtroSubcategoria.setCampoOrderBy( "id" ); Collection colSubcategoria = new ArrayList(); Subcategoria subcategoria0 = new Subcategoria(); subcategoria0.setId( new Integer( 0 ) ); Categoria categoriaX = new Categoria(); categoriaX.setId( Integer.parseInt( idCategoria ) ); subcategoria0.setCategoria( categoriaX ); subcategoria0.setDescricao( "0 - SEM SUBCATEGORIA" ); colSubcategoria.add( subcategoria0 ); colSubcategoria.addAll( this.getControladorUtil().pesquisar( filtroSubcategoria, Subcategoria.class.getName() ) ); Iterator iteSubcategoria = colSubcategoria.iterator(); emitirHistograma.setDescricaoCategoria(descricaoCategoria); while ( iteSubcategoria.hasNext() ){ Subcategoria subcategoria = (Subcategoria)iteSubcategoria.next(); filtro.setSubcategoria( subcategoria ); emitirHistograma.setDescricaoSubcategoria( subcategoria.getDescricao() ); iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); Integer totalEconomiasMedidoSubcategoria = 0; Integer totalVolumeConsumoMedidoSubcategoria = 0; Integer totalVolumeFaturadoMedidoSubcategoria = 0; Integer totalLigacaoMedidoSubcategoria = 0; BigDecimal totalReceitaMedidoSubcategoria = new BigDecimal(0.0); Integer totalEconomiasNaoMedidoSubcategoria = 0; Integer totalVolumeConsumoNaoMedidoSubcategoria = 0; Integer totalVolumeFaturadoNaoMedidoSubcategoria = 0; Integer totalLigacaoNaoMedidoSubcategoria = 0; BigDecimal totalReceitaNaoMedidoSubcategoria = new BigDecimal(0.0); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); detalhe.setDescricaoSubcategoria( subcategoria.getDescricao() ); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); // Guardamos os totais por subcategoria totalEconomiasMedidoSubcategoria += detalhe.getEconomiasMedido(); totalVolumeConsumoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedidoSubcategoria = totalReceitaMedidoSubcategoria.add(detalhe.getReceitaMedido()); totalLigacaoMedidoSubcategoria += detalhe.getLigacoesMedido(); totalEconomiasNaoMedidoSubcategoria += detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedidoSubcategoria = totalReceitaNaoMedidoSubcategoria.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedidoSubcategoria += detalhe.getLigacoesNaoMedido(); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } EmitirHistogramaAguaEconomiaDetalheHelper totalSubcategoria = new EmitirHistogramaAguaEconomiaDetalheHelper (); totalSubcategoria.setDescricaoFaixa("TOTAL " + subcategoria.getDescricao() ); totalSubcategoria.setEconomiasMedido(totalEconomiasMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaMedido(totalVolumeConsumoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaMedido(totalVolumeFaturadoMedidoSubcategoria); totalSubcategoria.setReceitaMedido(totalReceitaMedidoSubcategoria); totalSubcategoria.setLigacoesMedido(totalLigacaoMedidoSubcategoria); totalSubcategoria.setEconomiasNaoMedido(totalEconomiasNaoMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaNaoMedido(totalVolumeConsumoNaoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaNaoMedido(totalVolumeFaturadoNaoMedidoSubcategoria); totalSubcategoria.setReceitaNaoMedido(totalReceitaNaoMedidoSubcategoria); totalSubcategoria.setLigacoesNaoMedido(totalLigacaoNaoMedidoSubcategoria); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(totalSubcategoria); } } /* while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); }*/ emitirHistograma.setColecaoEmitirHistogramaAguaEconomiaDetalhe(colecaoEmitirHistogramaAguaEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaAguaEconomiaHelper) hashMapTotalGeral.get(chave); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); gerenciaAnterior = gerencia.getId(); } filtro.setOpcaoTotalizacao(2); GerenciaRegional gereAnterior = new GerenciaRegional(); gereAnterior.setId(gerenciaAnterior); filtro.setGerenciaRegional(gereAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaGerenciaRegional(filtro)); } return colecaoEmitirHistogramaAguaEconomia; } /** * [UC0605] Emitir Histograma de �gua Por Economia * * Elo Polo e Unidade de Negocio e Gerencia Regional * * @author Rafael Pinto * @date 19/06/2007 * * @param FiltrarEmitirHistogramaAguaEconomiaHelper * * @return Collection<EmitirHistogramaAguaEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaAguaEconomiaHelper> emitirHistogramaAguaEconomiaEloPoloUnidadeNegocioGerenciaRegional( FiltrarEmitirHistogramaAguaEconomiaHelper filtro) throws ControladorException { Collection<EmitirHistogramaAguaEconomiaHelper> colecaoEmitirHistogramaAguaEconomia = new ArrayList<EmitirHistogramaAguaEconomiaHelper>(); String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } filtro.setTipoGroupBy("histograma.localidadeElo.id," + "histograma.unidadeNegocio.id,histograma.gerenciaRegional.id "); filtro.setTipoOrderBy("2,1"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaAguaEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaAguaEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaAguaEconomiaDetalheHelper> colecaoEmitirHistogramaAguaEconomiaDetalhe = null; Localidade eloPolo = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroLocalidade filtroLocalidade = null; Collection colecaoConsulta = null; //Pai do elo Polo(eloPolo -> unidade -> gerencia) int gerenciaAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; int unidadeNegocioAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); UnidadeNegocio unidadeNegocio = new UnidadeNegocio(); unidadeNegocio.setId(new Integer(arrayNumeracao[1])); GerenciaRegional gerencia = new GerenciaRegional(); gerencia.setId(new Integer(arrayNumeracao[2])); if(unidadeNegocioAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ unidadeNegocioAnterior = unidadeNegocio.getId(); } if(gerenciaAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ gerenciaAnterior = gerencia.getId(); } //Mudou de Unidade if(unidadeNegocioAnterior != unidadeNegocio.getId().intValue()){ filtro.setOpcaoTotalizacao(10); UnidadeNegocio uniAnterior = new UnidadeNegocio(); uniAnterior.setId(unidadeNegocioAnterior); filtro.setUnidadeNegocio(uniAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaUnidadeNegocio(filtro)); } //Mudou de Gerencia if(gerenciaAnterior != gerencia.getId().intValue()){ filtro.setOpcaoTotalizacao(2); GerenciaRegional gereAnterior = new GerenciaRegional(); gereAnterior.setId(gerenciaAnterior); filtro.setGerenciaRegional(gereAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaGerenciaRegional(filtro)); } filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro( new ParametroSimples(FiltroLocalidade.ID,arrayNumeracao[0])); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("unidadeNegocio"); // Recupera Localidade colecaoConsulta = this.getControladorUtil().pesquisar(filtroLocalidade, Localidade.class.getName()); eloPolo = (Localidade) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = eloPolo.getGerenciaRegional().getId()+"-"+eloPolo.getGerenciaRegional().getNomeAbreviado() +" / "+ eloPolo.getUnidadeNegocio().getId()+"-"+eloPolo.getUnidadeNegocio().getNomeAbreviado() +" / "+ eloPolo.getId()+"-"+eloPolo.getDescricao(); filtro.setEloPolo(eloPolo); filtro.setUnidadeNegocio(unidadeNegocio); filtro.setGerenciaRegional(gerencia); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; Iterator itera = colecaoCategorias.iterator(); while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaAguaEconomiaHelper(); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaAguaEconomiaDetalhe = new ArrayList<EmitirHistogramaAguaEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); if ( filtro.getIndicadorTarifaCategoria().intValue() == 1 ){ while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } } else { FiltroSubCategoria filtroSubcategoria = new FiltroSubCategoria(); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.CATEGORIA_ID, idCategoria ) ); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.INDICADOR_CONSUMO_TARIFA, ConstantesSistema.SIM ) ); filtroSubcategoria.setCampoOrderBy( "id" ); Collection colSubcategoria = new ArrayList(); Subcategoria subcategoria0 = new Subcategoria(); subcategoria0.setId( new Integer( 0 ) ); Categoria categoriaX = new Categoria(); categoriaX.setId( Integer.parseInt( idCategoria ) ); subcategoria0.setCategoria( categoriaX ); subcategoria0.setDescricao( "0 - SEM SUBCATEGORIA" ); colSubcategoria.add( subcategoria0 ); colSubcategoria.addAll( this.getControladorUtil().pesquisar( filtroSubcategoria, Subcategoria.class.getName() ) ); Iterator iteSubcategoria = colSubcategoria.iterator(); emitirHistograma.setDescricaoCategoria(descricaoCategoria); while ( iteSubcategoria.hasNext() ){ Subcategoria subcategoria = (Subcategoria)iteSubcategoria.next(); filtro.setSubcategoria( subcategoria ); emitirHistograma.setDescricaoSubcategoria( subcategoria.getDescricao() ); iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); Integer totalEconomiasMedidoSubcategoria = 0; Integer totalVolumeConsumoMedidoSubcategoria = 0; Integer totalVolumeFaturadoMedidoSubcategoria = 0; Integer totalLigacaoMedidoSubcategoria = 0; BigDecimal totalReceitaMedidoSubcategoria = new BigDecimal(0.0); Integer totalEconomiasNaoMedidoSubcategoria = 0; Integer totalVolumeConsumoNaoMedidoSubcategoria = 0; Integer totalVolumeFaturadoNaoMedidoSubcategoria = 0; Integer totalLigacaoNaoMedidoSubcategoria = 0; BigDecimal totalReceitaNaoMedidoSubcategoria = new BigDecimal(0.0); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); detalhe.setDescricaoSubcategoria( subcategoria.getDescricao() ); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); // Guardamos os totais por subcategoria totalEconomiasMedidoSubcategoria += detalhe.getEconomiasMedido(); totalVolumeConsumoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedidoSubcategoria = totalReceitaMedidoSubcategoria.add(detalhe.getReceitaMedido()); totalLigacaoMedidoSubcategoria += detalhe.getLigacoesMedido(); totalEconomiasNaoMedidoSubcategoria += detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedidoSubcategoria = totalReceitaNaoMedidoSubcategoria.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedidoSubcategoria += detalhe.getLigacoesNaoMedido(); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } EmitirHistogramaAguaEconomiaDetalheHelper totalSubcategoria = new EmitirHistogramaAguaEconomiaDetalheHelper (); totalSubcategoria.setDescricaoFaixa("TOTAL " + subcategoria.getDescricao() ); totalSubcategoria.setEconomiasMedido(totalEconomiasMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaMedido(totalVolumeConsumoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaMedido(totalVolumeFaturadoMedidoSubcategoria); totalSubcategoria.setReceitaMedido(totalReceitaMedidoSubcategoria); totalSubcategoria.setLigacoesMedido(totalLigacaoMedidoSubcategoria); totalSubcategoria.setEconomiasNaoMedido(totalEconomiasNaoMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaNaoMedido(totalVolumeConsumoNaoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaNaoMedido(totalVolumeFaturadoNaoMedidoSubcategoria); totalSubcategoria.setReceitaNaoMedido(totalReceitaNaoMedidoSubcategoria); totalSubcategoria.setLigacoesNaoMedido(totalLigacaoNaoMedidoSubcategoria); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(totalSubcategoria); } } /*while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); }*/ emitirHistograma.setColecaoEmitirHistogramaAguaEconomiaDetalhe(colecaoEmitirHistogramaAguaEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaAguaEconomiaHelper) hashMapTotalGeral.get(chave); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); gerenciaAnterior = gerencia.getId(); unidadeNegocioAnterior = unidadeNegocio.getId(); } //Unidade de Negocio filtro.setOpcaoTotalizacao(10); UnidadeNegocio uniAnterior = new UnidadeNegocio(); uniAnterior.setId(unidadeNegocioAnterior); filtro.setUnidadeNegocio(uniAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaUnidadeNegocio(filtro)); //Gerencia Regional filtro.setOpcaoTotalizacao(2); GerenciaRegional gereAnterior = new GerenciaRegional(); gereAnterior.setId(gerenciaAnterior); filtro.setGerenciaRegional(gereAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaGerenciaRegional(filtro)); } return colecaoEmitirHistogramaAguaEconomia; } /** * [UC0605] Emitir Histograma de �gua Por Economia * * Elo Polo e Unidade de Negocio e Gerencia Regional * * @author Rafael Pinto * @date 19/06/2007 * * @param FiltrarEmitirHistogramaAguaEconomiaHelper * * @return Collection<EmitirHistogramaAguaEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaAguaEconomiaHelper> emitirHistogramaAguaEconomiaLocalidadeEloPoloUnidadeNegocioGerenciaRegional( FiltrarEmitirHistogramaAguaEconomiaHelper filtro) throws ControladorException { Collection<EmitirHistogramaAguaEconomiaHelper> colecaoEmitirHistogramaAguaEconomia = new ArrayList<EmitirHistogramaAguaEconomiaHelper>(); String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } filtro.setTipoGroupBy("histograma.localidade.id,histograma.localidadeElo.id," + "histograma.unidadeNegocio.id,histograma.gerenciaRegional.id "); filtro.setTipoOrderBy("4,3,2,1"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaAguaEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaAguaEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaAguaEconomiaDetalheHelper> colecaoEmitirHistogramaAguaEconomiaDetalhe = null; Localidade localidade = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroLocalidade filtroLocalidade = null; Collection colecaoConsulta = null; //Pai do elo Polo(eloPolo -> unidade -> gerencia) int gerenciaAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; int unidadeNegocioAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; int eloPoloAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); Localidade eloPolo = new Localidade(); eloPolo.setId(new Integer(arrayNumeracao[1])); UnidadeNegocio unidadeNegocio = new UnidadeNegocio(); unidadeNegocio.setId(new Integer(arrayNumeracao[2])); GerenciaRegional gerencia = new GerenciaRegional(); gerencia.setId(new Integer(arrayNumeracao[3])); if(unidadeNegocioAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ unidadeNegocioAnterior = unidadeNegocio.getId(); } if(gerenciaAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ gerenciaAnterior = gerencia.getId(); } if(eloPoloAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ eloPoloAnterior = eloPolo.getId(); } //Mudou de Elo Polo if(eloPoloAnterior != eloPolo.getId().intValue()){ Localidade eloAnterior = new Localidade(); eloAnterior.setId(eloPoloAnterior); filtro.setOpcaoTotalizacao(13); filtro.setEloPolo(eloAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaEloPolo(filtro)); } //Mudou de Unidade if(unidadeNegocioAnterior != unidadeNegocio.getId().intValue()){ UnidadeNegocio uniAnterior = new UnidadeNegocio(); uniAnterior.setId(unidadeNegocioAnterior); filtro.setOpcaoTotalizacao(10); filtro.setUnidadeNegocio(uniAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaUnidadeNegocio(filtro)); } //Mudou de Gerencia if(gerenciaAnterior != gerencia.getId().intValue()){ GerenciaRegional gereAnterior = new GerenciaRegional(); gereAnterior.setId(gerenciaAnterior); filtro.setOpcaoTotalizacao(2); filtro.setGerenciaRegional(gereAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaGerenciaRegional(filtro)); } filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro( new ParametroSimples(FiltroLocalidade.ID,arrayNumeracao[0])); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("unidadeNegocio"); // Recupera Localidade colecaoConsulta = this.getControladorUtil().pesquisar(filtroLocalidade, Localidade.class.getName()); localidade = (Localidade) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = localidade.getGerenciaRegional().getId()+"-"+localidade.getGerenciaRegional().getNomeAbreviado() +" / "+ localidade.getUnidadeNegocio().getId()+"-"+localidade.getUnidadeNegocio().getNomeAbreviado() +" / "+ localidade.getLocalidade().getId()+"-"+localidade.getLocalidade().getDescricao() +" / "+ localidade.getId()+"-"+localidade.getDescricao(); filtro.setLocalidade(localidade); filtro.setEloPolo(eloPolo); filtro.setUnidadeNegocio(unidadeNegocio); filtro.setGerenciaRegional(gerencia); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; Iterator itera = colecaoCategorias.iterator(); while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaAguaEconomiaHelper(); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaAguaEconomiaDetalhe = new ArrayList<EmitirHistogramaAguaEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); if ( filtro.getIndicadorTarifaCategoria().intValue() == 1 ){ while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } } else { FiltroSubCategoria filtroSubcategoria = new FiltroSubCategoria(); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.CATEGORIA_ID, idCategoria ) ); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.INDICADOR_CONSUMO_TARIFA, ConstantesSistema.SIM ) ); filtroSubcategoria.setCampoOrderBy( "id" ); Collection colSubcategoria = new ArrayList(); Subcategoria subcategoria0 = new Subcategoria(); subcategoria0.setId( new Integer( 0 ) ); Categoria categoriaX = new Categoria(); categoriaX.setId( Integer.parseInt( idCategoria ) ); subcategoria0.setCategoria( categoriaX ); subcategoria0.setDescricao( "0 - SEM SUBCATEGORIA" ); colSubcategoria.add( subcategoria0 ); colSubcategoria.addAll( this.getControladorUtil().pesquisar( filtroSubcategoria, Subcategoria.class.getName() ) ); Iterator iteSubcategoria = colSubcategoria.iterator(); emitirHistograma.setDescricaoCategoria(descricaoCategoria); while ( iteSubcategoria.hasNext() ){ Subcategoria subcategoria = (Subcategoria)iteSubcategoria.next(); filtro.setSubcategoria( subcategoria ); emitirHistograma.setDescricaoSubcategoria( subcategoria.getDescricao() ); iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); Integer totalEconomiasMedidoSubcategoria = 0; Integer totalVolumeConsumoMedidoSubcategoria = 0; Integer totalVolumeFaturadoMedidoSubcategoria = 0; Integer totalLigacaoMedidoSubcategoria = 0; BigDecimal totalReceitaMedidoSubcategoria = new BigDecimal(0.0); Integer totalEconomiasNaoMedidoSubcategoria = 0; Integer totalVolumeConsumoNaoMedidoSubcategoria = 0; Integer totalVolumeFaturadoNaoMedidoSubcategoria = 0; Integer totalLigacaoNaoMedidoSubcategoria = 0; BigDecimal totalReceitaNaoMedidoSubcategoria = new BigDecimal(0.0); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); detalhe.setDescricaoSubcategoria( subcategoria.getDescricao() ); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); // Guardamos os totais por subcategoria totalEconomiasMedidoSubcategoria += detalhe.getEconomiasMedido(); totalVolumeConsumoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedidoSubcategoria = totalReceitaMedidoSubcategoria.add(detalhe.getReceitaMedido()); totalLigacaoMedidoSubcategoria += detalhe.getLigacoesMedido(); totalEconomiasNaoMedidoSubcategoria += detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedidoSubcategoria = totalReceitaNaoMedidoSubcategoria.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedidoSubcategoria += detalhe.getLigacoesNaoMedido(); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } EmitirHistogramaAguaEconomiaDetalheHelper totalSubcategoria = new EmitirHistogramaAguaEconomiaDetalheHelper (); totalSubcategoria.setDescricaoFaixa("TOTAL " + subcategoria.getDescricao() ); totalSubcategoria.setEconomiasMedido(totalEconomiasMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaMedido(totalVolumeConsumoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaMedido(totalVolumeFaturadoMedidoSubcategoria); totalSubcategoria.setReceitaMedido(totalReceitaMedidoSubcategoria); totalSubcategoria.setLigacoesMedido(totalLigacaoMedidoSubcategoria); totalSubcategoria.setEconomiasNaoMedido(totalEconomiasNaoMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaNaoMedido(totalVolumeConsumoNaoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaNaoMedido(totalVolumeFaturadoNaoMedidoSubcategoria); totalSubcategoria.setReceitaNaoMedido(totalReceitaNaoMedidoSubcategoria); totalSubcategoria.setLigacoesNaoMedido(totalLigacaoNaoMedidoSubcategoria); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(totalSubcategoria); } } /* while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } */ emitirHistograma.setColecaoEmitirHistogramaAguaEconomiaDetalhe(colecaoEmitirHistogramaAguaEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaAguaEconomiaHelper) hashMapTotalGeral.get(chave); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); gerenciaAnterior = gerencia.getId(); unidadeNegocioAnterior = unidadeNegocio.getId(); eloPoloAnterior = eloPolo.getId(); } //Elo Polo Localidade eloAnterior = new Localidade(); eloAnterior.setId(eloPoloAnterior); filtro.setOpcaoTotalizacao(13); filtro.setEloPolo(eloAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaEloPolo(filtro)); //Unidade de Negocio UnidadeNegocio uniAnterior = new UnidadeNegocio(); uniAnterior.setId(unidadeNegocioAnterior); filtro.setOpcaoTotalizacao(10); filtro.setUnidadeNegocio(uniAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaUnidadeNegocio(filtro)); //Gerencia Regional GerenciaRegional gereAnterior = new GerenciaRegional(); gereAnterior.setId(gerenciaAnterior); filtro.setOpcaoTotalizacao(2); filtro.setGerenciaRegional(gereAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaGerenciaRegional(filtro)); } return colecaoEmitirHistogramaAguaEconomia; } /** * [UC0605] Emitir Histograma de �gua Por Economia - Unidade de Negocio * * @author Rafael Pinto * @date 19/06/2007 * * @param FiltrarEmitirHistogramaAguaEconomiaHelper * * @return Collection<EmitirHistogramaAguaEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaAguaEconomiaHelper> emitirHistogramaAguaEconomiaUnidadeNegocio( FiltrarEmitirHistogramaAguaEconomiaHelper filtro) throws ControladorException { filtro.setEloPolo(null); filtro.setGerenciaRegional(null); filtro.setLocalidade(null); filtro.setMedicao(null); filtro.setConsumoFaixaCategoria(null); Collection<EmitirHistogramaAguaEconomiaHelper> colecaoEmitirHistogramaAguaEconomia = new ArrayList<EmitirHistogramaAguaEconomiaHelper>(); String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } filtro.setTipoGroupBy("histograma.unidadeNegocio.id"); filtro.setTipoOrderBy("1"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaAguaEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaAguaEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaAguaEconomiaDetalheHelper> colecaoEmitirHistogramaAguaEconomiaDetalhe = null; UnidadeNegocio unidadeNegocio = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroUnidadeNegocio filtroUnidadeNegocio = null; Collection colecaoConsulta = null; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String idUnidadeNegocio = (String) iter.next(); Iterator itera = colecaoCategorias.iterator(); filtroUnidadeNegocio = new FiltroUnidadeNegocio(); filtroUnidadeNegocio.adicionarParametro( new ParametroSimples(FiltroUnidadeNegocio.ID,idUnidadeNegocio)); filtroUnidadeNegocio.adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); // Recupera Unidade Negocio colecaoConsulta = this.getControladorUtil().pesquisar(filtroUnidadeNegocio, UnidadeNegocio.class.getName()); unidadeNegocio = (UnidadeNegocio) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = unidadeNegocio.getGerenciaRegional().getId()+"-"+unidadeNegocio.getGerenciaRegional().getNomeAbreviado() +" / "+ unidadeNegocio.getId()+"-"+unidadeNegocio.getNome(); filtro.setUnidadeNegocio(unidadeNegocio); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaAguaEconomiaHelper(); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaAguaEconomiaDetalhe = new ArrayList<EmitirHistogramaAguaEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); if ( filtro.getIndicadorTarifaCategoria().intValue() == 1 ){ while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } } else { FiltroSubCategoria filtroSubcategoria = new FiltroSubCategoria(); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.CATEGORIA_ID, idCategoria ) ); Collection colSubcategoria = this.getControladorUtil().pesquisar( filtroSubcategoria, Subcategoria.class.getName() ); Iterator iteSubcategoria = colSubcategoria.iterator(); emitirHistograma.setDescricaoCategoria(descricaoCategoria); while ( iteSubcategoria.hasNext() ){ Subcategoria subcategoria = (Subcategoria)iteSubcategoria.next(); filtro.setSubcategoria( subcategoria ); emitirHistograma.setDescricaoSubcategoria( subcategoria.getDescricao() ); iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); Integer totalEconomiasMedidoSubcategoria = 0; Integer totalVolumeConsumoMedidoSubcategoria = 0; Integer totalVolumeFaturadoMedidoSubcategoria = 0; Integer totalLigacaoMedidoSubcategoria = 0; BigDecimal totalReceitaMedidoSubcategoria = new BigDecimal(0.0); Integer totalEconomiasNaoMedidoSubcategoria = 0; Integer totalVolumeConsumoNaoMedidoSubcategoria = 0; Integer totalVolumeFaturadoNaoMedidoSubcategoria = 0; Integer totalLigacaoNaoMedidoSubcategoria = 0; BigDecimal totalReceitaNaoMedidoSubcategoria = new BigDecimal(0.0); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); detalhe.setDescricaoSubcategoria( subcategoria.getDescricao() ); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); // Guardamos os totais por subcategoria totalEconomiasMedidoSubcategoria += detalhe.getEconomiasMedido(); totalVolumeConsumoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedidoSubcategoria = totalReceitaMedidoSubcategoria.add(detalhe.getReceitaMedido()); totalLigacaoMedidoSubcategoria += detalhe.getLigacoesMedido(); totalEconomiasNaoMedidoSubcategoria += detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedidoSubcategoria = totalReceitaNaoMedidoSubcategoria.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedidoSubcategoria += detalhe.getLigacoesNaoMedido(); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } EmitirHistogramaAguaEconomiaDetalheHelper totalSubcategoria = new EmitirHistogramaAguaEconomiaDetalheHelper (); totalSubcategoria.setDescricaoFaixa("TOTAL " + subcategoria.getDescricao() ); totalSubcategoria.setEconomiasMedido(totalEconomiasMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaMedido(totalVolumeConsumoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaMedido(totalVolumeFaturadoMedidoSubcategoria); totalSubcategoria.setReceitaMedido(totalReceitaMedidoSubcategoria); totalSubcategoria.setLigacoesMedido(totalLigacaoMedidoSubcategoria); totalSubcategoria.setEconomiasNaoMedido(totalEconomiasNaoMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaNaoMedido(totalVolumeConsumoNaoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaNaoMedido(totalVolumeFaturadoNaoMedidoSubcategoria); totalSubcategoria.setReceitaNaoMedido(totalReceitaNaoMedidoSubcategoria); totalSubcategoria.setLigacoesNaoMedido(totalLigacaoNaoMedidoSubcategoria); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(totalSubcategoria); } } /* while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } */ emitirHistograma.setColecaoEmitirHistogramaAguaEconomiaDetalhe(colecaoEmitirHistogramaAguaEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaAguaEconomiaHelper) hashMapTotalGeral.get(idUnidadeNegocio); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); } } return colecaoEmitirHistogramaAguaEconomia; } /** * [UC0605] Emitir Histograma de �gua Por Economia * * Elo Polo e Unidade de Negocio * * @author Rafael Pinto * @date 19/06/2007 * * @param FiltrarEmitirHistogramaAguaEconomiaHelper * * @return Collection<EmitirHistogramaAguaEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaAguaEconomiaHelper> emitirHistogramaAguaEconomiaEloPoloUnidadeNegocio( FiltrarEmitirHistogramaAguaEconomiaHelper filtro) throws ControladorException { Collection<EmitirHistogramaAguaEconomiaHelper> colecaoEmitirHistogramaAguaEconomia = new ArrayList<EmitirHistogramaAguaEconomiaHelper>(); String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } filtro.setTipoGroupBy("histograma.localidadeElo.id,histograma.unidadeNegocio.id"); filtro.setTipoOrderBy("2,1"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaAguaEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaAguaEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaAguaEconomiaDetalheHelper> colecaoEmitirHistogramaAguaEconomiaDetalhe = null; Localidade eloPolo = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroLocalidade filtroLocalidade = null; Collection colecaoConsulta = null; //Pai do elo Polo(eloPolo -> unidade) int unidadeNegocioAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); UnidadeNegocio unidadeNegocio = new UnidadeNegocio(); unidadeNegocio.setId(new Integer(arrayNumeracao[1])); if(unidadeNegocioAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ unidadeNegocioAnterior = unidadeNegocio.getId(); } //Mudou de Unidade if(unidadeNegocioAnterior != unidadeNegocio.getId().intValue()){ filtro.setOpcaoTotalizacao(10); UnidadeNegocio uniAnterior = new UnidadeNegocio(); uniAnterior.setId(unidadeNegocioAnterior); filtro.setUnidadeNegocio(uniAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaUnidadeNegocio(filtro)); } filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro( new ParametroSimples(FiltroLocalidade.ID,arrayNumeracao[0])); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("unidadeNegocio"); // Recupera Localidade colecaoConsulta = this.getControladorUtil().pesquisar(filtroLocalidade, Localidade.class.getName()); eloPolo = (Localidade) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = eloPolo.getGerenciaRegional().getId()+"-"+eloPolo.getGerenciaRegional().getNomeAbreviado() +" / "+ eloPolo.getUnidadeNegocio().getId()+"-"+eloPolo.getUnidadeNegocio().getNomeAbreviado() +" / "+ eloPolo.getId()+"-"+eloPolo.getDescricao(); filtro.setEloPolo(eloPolo); filtro.setUnidadeNegocio(unidadeNegocio); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; Iterator itera = colecaoCategorias.iterator(); while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaAguaEconomiaHelper(); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaAguaEconomiaDetalhe = new ArrayList<EmitirHistogramaAguaEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); if ( filtro.getIndicadorTarifaCategoria().intValue() == 1 ){ while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } } else { FiltroSubCategoria filtroSubcategoria = new FiltroSubCategoria(); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.CATEGORIA_ID, idCategoria ) ); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.INDICADOR_CONSUMO_TARIFA, ConstantesSistema.SIM ) ); filtroSubcategoria.setCampoOrderBy( "id" ); Collection colSubcategoria = new ArrayList(); Subcategoria subcategoria0 = new Subcategoria(); subcategoria0.setId( new Integer( 0 ) ); Categoria categoriaX = new Categoria(); categoriaX.setId( Integer.parseInt( idCategoria ) ); subcategoria0.setCategoria( categoriaX ); subcategoria0.setDescricao( "0 - SEM SUBCATEGORIA" ); colSubcategoria.add( subcategoria0 ); colSubcategoria.addAll( this.getControladorUtil().pesquisar( filtroSubcategoria, Subcategoria.class.getName() ) ); Iterator iteSubcategoria = colSubcategoria.iterator(); emitirHistograma.setDescricaoCategoria(descricaoCategoria); while ( iteSubcategoria.hasNext() ){ Subcategoria subcategoria = (Subcategoria)iteSubcategoria.next(); filtro.setSubcategoria( subcategoria ); emitirHistograma.setDescricaoSubcategoria( subcategoria.getDescricao() ); iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); Integer totalEconomiasMedidoSubcategoria = 0; Integer totalVolumeConsumoMedidoSubcategoria = 0; Integer totalVolumeFaturadoMedidoSubcategoria = 0; Integer totalLigacaoMedidoSubcategoria = 0; BigDecimal totalReceitaMedidoSubcategoria = new BigDecimal(0.0); Integer totalEconomiasNaoMedidoSubcategoria = 0; Integer totalVolumeConsumoNaoMedidoSubcategoria = 0; Integer totalVolumeFaturadoNaoMedidoSubcategoria = 0; Integer totalLigacaoNaoMedidoSubcategoria = 0; BigDecimal totalReceitaNaoMedidoSubcategoria = new BigDecimal(0.0); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); detalhe.setDescricaoSubcategoria( subcategoria.getDescricao() ); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); // Guardamos os totais por subcategoria totalEconomiasMedidoSubcategoria += detalhe.getEconomiasMedido(); totalVolumeConsumoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedidoSubcategoria = totalReceitaMedidoSubcategoria.add(detalhe.getReceitaMedido()); totalLigacaoMedidoSubcategoria += detalhe.getLigacoesMedido(); totalEconomiasNaoMedidoSubcategoria += detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedidoSubcategoria = totalReceitaNaoMedidoSubcategoria.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedidoSubcategoria += detalhe.getLigacoesNaoMedido(); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } EmitirHistogramaAguaEconomiaDetalheHelper totalSubcategoria = new EmitirHistogramaAguaEconomiaDetalheHelper (); totalSubcategoria.setDescricaoFaixa("TOTAL " + subcategoria.getDescricao() ); totalSubcategoria.setEconomiasMedido(totalEconomiasMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaMedido(totalVolumeConsumoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaMedido(totalVolumeFaturadoMedidoSubcategoria); totalSubcategoria.setReceitaMedido(totalReceitaMedidoSubcategoria); totalSubcategoria.setLigacoesMedido(totalLigacaoMedidoSubcategoria); totalSubcategoria.setEconomiasNaoMedido(totalEconomiasNaoMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaNaoMedido(totalVolumeConsumoNaoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaNaoMedido(totalVolumeFaturadoNaoMedidoSubcategoria); totalSubcategoria.setReceitaNaoMedido(totalReceitaNaoMedidoSubcategoria); totalSubcategoria.setLigacoesNaoMedido(totalLigacaoNaoMedidoSubcategoria); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(totalSubcategoria); } } /* while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } */ emitirHistograma.setColecaoEmitirHistogramaAguaEconomiaDetalhe(colecaoEmitirHistogramaAguaEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaAguaEconomiaHelper) hashMapTotalGeral.get(chave); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); unidadeNegocioAnterior = unidadeNegocio.getId(); } //Unidade de Negocio filtro.setOpcaoTotalizacao(10); UnidadeNegocio uniAnterior = new UnidadeNegocio(); uniAnterior.setId(unidadeNegocioAnterior); filtro.setUnidadeNegocio(uniAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaUnidadeNegocio(filtro)); } return colecaoEmitirHistogramaAguaEconomia; } /** * [UC0605] Emitir Histograma de �gua Por Economia * * Localidade ,Elo Polo e Unidade de Negocio * * @author Rafael Pinto * @date 19/06/2007 * * @param FiltrarEmitirHistogramaAguaEconomiaHelper * * @return Collection<EmitirHistogramaAguaEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaAguaEconomiaHelper> emitirHistogramaAguaEconomiaLocalidadeEloPoloUnidadeNegocio( FiltrarEmitirHistogramaAguaEconomiaHelper filtro) throws ControladorException { Collection<EmitirHistogramaAguaEconomiaHelper> colecaoEmitirHistogramaAguaEconomia = new ArrayList<EmitirHistogramaAguaEconomiaHelper>(); String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } filtro.setTipoGroupBy("histograma.localidade.id,histograma.localidadeElo.id," + "histograma.unidadeNegocio.id"); filtro.setTipoOrderBy("3,2,1"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaAguaEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaAguaEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaAguaEconomiaDetalheHelper> colecaoEmitirHistogramaAguaEconomiaDetalhe = null; Localidade localidade = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroLocalidade filtroLocalidade = null; Collection colecaoConsulta = null; //Pai do elo Polo(eloPolo -> unidade -> gerencia) int unidadeNegocioAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; int eloPoloAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); Localidade eloPolo = new Localidade(); eloPolo.setId(new Integer(arrayNumeracao[1])); UnidadeNegocio unidadeNegocio = new UnidadeNegocio(); unidadeNegocio.setId(new Integer(arrayNumeracao[2])); if(unidadeNegocioAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ unidadeNegocioAnterior = unidadeNegocio.getId(); } if(eloPoloAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ eloPoloAnterior = eloPolo.getId(); } //Mudou de Elo Polo if(eloPoloAnterior != eloPolo.getId().intValue()){ Localidade eloAnterior = new Localidade(); eloAnterior.setId(eloPoloAnterior); filtro.setOpcaoTotalizacao(13); filtro.setEloPolo(eloAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaEloPolo(filtro)); } //Mudou de Unidade if(unidadeNegocioAnterior != unidadeNegocio.getId().intValue()){ UnidadeNegocio uniAnterior = new UnidadeNegocio(); uniAnterior.setId(unidadeNegocioAnterior); filtro.setOpcaoTotalizacao(10); filtro.setUnidadeNegocio(uniAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaUnidadeNegocio(filtro)); } filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro( new ParametroSimples(FiltroLocalidade.ID,arrayNumeracao[0])); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("unidadeNegocio"); // Recupera Localidade colecaoConsulta = this.getControladorUtil().pesquisar(filtroLocalidade, Localidade.class.getName()); localidade = (Localidade) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = localidade.getGerenciaRegional().getId()+"-"+localidade.getGerenciaRegional().getNomeAbreviado() +" / "+ localidade.getUnidadeNegocio().getId()+"-"+localidade.getUnidadeNegocio().getNomeAbreviado() +" / "+ localidade.getLocalidade().getId()+"-"+localidade.getLocalidade().getDescricao() +" / "+ localidade.getId()+"-"+localidade.getDescricao(); filtro.setLocalidade(localidade); filtro.setEloPolo(eloPolo); filtro.setUnidadeNegocio(unidadeNegocio); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; Iterator itera = colecaoCategorias.iterator(); while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaAguaEconomiaHelper(); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaAguaEconomiaDetalhe = new ArrayList<EmitirHistogramaAguaEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); if ( filtro.getIndicadorTarifaCategoria().intValue() == 1 ){ while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } } else { FiltroSubCategoria filtroSubcategoria = new FiltroSubCategoria(); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.CATEGORIA_ID, idCategoria ) ); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.INDICADOR_CONSUMO_TARIFA, ConstantesSistema.SIM ) ); filtroSubcategoria.setCampoOrderBy( "id" ); Collection colSubcategoria = new ArrayList(); Subcategoria subcategoria0 = new Subcategoria(); subcategoria0.setId( new Integer( 0 ) ); Categoria categoriaX = new Categoria(); categoriaX.setId( Integer.parseInt( idCategoria ) ); subcategoria0.setCategoria( categoriaX ); subcategoria0.setDescricao( "0 - SEM SUBCATEGORIA" ); colSubcategoria.add( subcategoria0 ); colSubcategoria.addAll( this.getControladorUtil().pesquisar( filtroSubcategoria, Subcategoria.class.getName() ) ); Iterator iteSubcategoria = colSubcategoria.iterator(); emitirHistograma.setDescricaoCategoria(descricaoCategoria); while ( iteSubcategoria.hasNext() ){ Subcategoria subcategoria = (Subcategoria)iteSubcategoria.next(); filtro.setSubcategoria( subcategoria ); emitirHistograma.setDescricaoSubcategoria( subcategoria.getDescricao() ); iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); Integer totalEconomiasMedidoSubcategoria = 0; Integer totalVolumeConsumoMedidoSubcategoria = 0; Integer totalVolumeFaturadoMedidoSubcategoria = 0; Integer totalLigacaoMedidoSubcategoria = 0; BigDecimal totalReceitaMedidoSubcategoria = new BigDecimal(0.0); Integer totalEconomiasNaoMedidoSubcategoria = 0; Integer totalVolumeConsumoNaoMedidoSubcategoria = 0; Integer totalVolumeFaturadoNaoMedidoSubcategoria = 0; Integer totalLigacaoNaoMedidoSubcategoria = 0; BigDecimal totalReceitaNaoMedidoSubcategoria = new BigDecimal(0.0); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); detalhe.setDescricaoSubcategoria( subcategoria.getDescricao() ); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); // Guardamos os totais por subcategoria totalEconomiasMedidoSubcategoria += detalhe.getEconomiasMedido(); totalVolumeConsumoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedidoSubcategoria = totalReceitaMedidoSubcategoria.add(detalhe.getReceitaMedido()); totalLigacaoMedidoSubcategoria += detalhe.getLigacoesMedido(); totalEconomiasNaoMedidoSubcategoria += detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedidoSubcategoria = totalReceitaNaoMedidoSubcategoria.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedidoSubcategoria += detalhe.getLigacoesNaoMedido(); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } EmitirHistogramaAguaEconomiaDetalheHelper totalSubcategoria = new EmitirHistogramaAguaEconomiaDetalheHelper (); totalSubcategoria.setDescricaoFaixa("TOTAL " + subcategoria.getDescricao() ); totalSubcategoria.setEconomiasMedido(totalEconomiasMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaMedido(totalVolumeConsumoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaMedido(totalVolumeFaturadoMedidoSubcategoria); totalSubcategoria.setReceitaMedido(totalReceitaMedidoSubcategoria); totalSubcategoria.setLigacoesMedido(totalLigacaoMedidoSubcategoria); totalSubcategoria.setEconomiasNaoMedido(totalEconomiasNaoMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaNaoMedido(totalVolumeConsumoNaoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaNaoMedido(totalVolumeFaturadoNaoMedidoSubcategoria); totalSubcategoria.setReceitaNaoMedido(totalReceitaNaoMedidoSubcategoria); totalSubcategoria.setLigacoesNaoMedido(totalLigacaoNaoMedidoSubcategoria); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(totalSubcategoria); } } /* while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } */ emitirHistograma.setColecaoEmitirHistogramaAguaEconomiaDetalhe(colecaoEmitirHistogramaAguaEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaAguaEconomiaHelper) hashMapTotalGeral.get(chave); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); unidadeNegocioAnterior = unidadeNegocio.getId(); eloPoloAnterior = eloPolo.getId(); } //Elo Polo Localidade eloAnterior = new Localidade(); eloAnterior.setId(eloPoloAnterior); filtro.setOpcaoTotalizacao(13); filtro.setEloPolo(eloAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaEloPolo(filtro)); //Unidade de Negocio UnidadeNegocio uniAnterior = new UnidadeNegocio(); uniAnterior.setId(unidadeNegocioAnterior); filtro.setOpcaoTotalizacao(10); filtro.setUnidadeNegocio(uniAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaUnidadeNegocio(filtro)); } return colecaoEmitirHistogramaAguaEconomia; } /** * [UC0605] Emitir Histograma de �gua Por Economia * * Elo Polo * * @author Rafael Pinto * @date 19/06/2007 * * @param FiltrarEmitirHistogramaAguaEconomiaHelper * * @return Collection<EmitirHistogramaAguaEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaAguaEconomiaHelper> emitirHistogramaAguaEconomiaEloPolo( FiltrarEmitirHistogramaAguaEconomiaHelper filtro) throws ControladorException { filtro.setGerenciaRegional(null); filtro.setUnidadeNegocio(null); filtro.setLocalidade(null); filtro.setMedicao(null); filtro.setConsumoFaixaCategoria(null); Collection<EmitirHistogramaAguaEconomiaHelper> colecaoEmitirHistogramaAguaEconomia = new ArrayList<EmitirHistogramaAguaEconomiaHelper>(); String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } filtro.setTipoGroupBy("histograma.localidadeElo.id"); filtro.setTipoOrderBy("1"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaAguaEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaAguaEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaAguaEconomiaDetalheHelper> colecaoEmitirHistogramaAguaEconomiaDetalhe = null; Localidade eloPolo = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroLocalidade filtroLocalidade = null; Collection colecaoConsulta = null; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String idEloPolo = (String) iter.next(); Iterator itera = colecaoCategorias.iterator(); filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro( new ParametroSimples(FiltroLocalidade.ID,idEloPolo)); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("unidadeNegocio"); // Recupera Elo Polo colecaoConsulta = this.getControladorUtil().pesquisar(filtroLocalidade, Localidade.class.getName()); eloPolo = (Localidade) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = eloPolo.getGerenciaRegional().getId()+"-"+eloPolo.getGerenciaRegional().getNomeAbreviado() +" / "+ eloPolo.getUnidadeNegocio().getId()+"-"+eloPolo.getUnidadeNegocio().getNomeAbreviado() +" / "+ eloPolo.getId()+"-"+eloPolo.getDescricao(); filtro.setEloPolo(eloPolo); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaAguaEconomiaHelper(); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaAguaEconomiaDetalhe = new ArrayList<EmitirHistogramaAguaEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); if ( filtro.getIndicadorTarifaCategoria().intValue() == 1 ){ while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } } else { FiltroSubCategoria filtroSubcategoria = new FiltroSubCategoria(); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.CATEGORIA_ID, idCategoria ) ); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.INDICADOR_CONSUMO_TARIFA, ConstantesSistema.SIM ) ); filtroSubcategoria.setCampoOrderBy( "id" ); Collection colSubcategoria = new ArrayList(); Subcategoria subcategoria0 = new Subcategoria(); subcategoria0.setId( new Integer( 0 ) ); Categoria categoriaX = new Categoria(); categoriaX.setId( Integer.parseInt( idCategoria ) ); subcategoria0.setCategoria( categoriaX ); subcategoria0.setDescricao( "0 - SEM SUBCATEGORIA" ); colSubcategoria.add( subcategoria0 ); colSubcategoria.addAll( this.getControladorUtil().pesquisar( filtroSubcategoria, Subcategoria.class.getName() ) ); Iterator iteSubcategoria = colSubcategoria.iterator(); emitirHistograma.setDescricaoCategoria(descricaoCategoria); while ( iteSubcategoria.hasNext() ){ Subcategoria subcategoria = (Subcategoria)iteSubcategoria.next(); filtro.setSubcategoria( subcategoria ); emitirHistograma.setDescricaoSubcategoria( subcategoria.getDescricao() ); iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); Integer totalEconomiasMedidoSubcategoria = 0; Integer totalVolumeConsumoMedidoSubcategoria = 0; Integer totalVolumeFaturadoMedidoSubcategoria = 0; Integer totalLigacaoMedidoSubcategoria = 0; BigDecimal totalReceitaMedidoSubcategoria = new BigDecimal(0.0); Integer totalEconomiasNaoMedidoSubcategoria = 0; Integer totalVolumeConsumoNaoMedidoSubcategoria = 0; Integer totalVolumeFaturadoNaoMedidoSubcategoria = 0; Integer totalLigacaoNaoMedidoSubcategoria = 0; BigDecimal totalReceitaNaoMedidoSubcategoria = new BigDecimal(0.0); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); detalhe.setDescricaoSubcategoria( subcategoria.getDescricao() ); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); // Guardamos os totais por subcategoria totalEconomiasMedidoSubcategoria += detalhe.getEconomiasMedido(); totalVolumeConsumoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedidoSubcategoria = totalReceitaMedidoSubcategoria.add(detalhe.getReceitaMedido()); totalLigacaoMedidoSubcategoria += detalhe.getLigacoesMedido(); totalEconomiasNaoMedidoSubcategoria += detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedidoSubcategoria = totalReceitaNaoMedidoSubcategoria.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedidoSubcategoria += detalhe.getLigacoesNaoMedido(); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } EmitirHistogramaAguaEconomiaDetalheHelper totalSubcategoria = new EmitirHistogramaAguaEconomiaDetalheHelper (); totalSubcategoria.setDescricaoFaixa("TOTAL " + subcategoria.getDescricao() ); totalSubcategoria.setEconomiasMedido(totalEconomiasMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaMedido(totalVolumeConsumoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaMedido(totalVolumeFaturadoMedidoSubcategoria); totalSubcategoria.setReceitaMedido(totalReceitaMedidoSubcategoria); totalSubcategoria.setLigacoesMedido(totalLigacaoMedidoSubcategoria); totalSubcategoria.setEconomiasNaoMedido(totalEconomiasNaoMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaNaoMedido(totalVolumeConsumoNaoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaNaoMedido(totalVolumeFaturadoNaoMedidoSubcategoria); totalSubcategoria.setReceitaNaoMedido(totalReceitaNaoMedidoSubcategoria); totalSubcategoria.setLigacoesNaoMedido(totalLigacaoNaoMedidoSubcategoria); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(totalSubcategoria); } } /* while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } */ emitirHistograma.setColecaoEmitirHistogramaAguaEconomiaDetalhe(colecaoEmitirHistogramaAguaEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaAguaEconomiaHelper) hashMapTotalGeral.get(idEloPolo); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); } } return colecaoEmitirHistogramaAguaEconomia; } /** * [UC0605] Emitir Histograma de �gua Por Economia * * Localidade e Elo Polo * * @author Rafael Pinto * @date 19/06/2007 * * @param FiltrarEmitirHistogramaAguaEconomiaHelper * * @return Collection<EmitirHistogramaAguaEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaAguaEconomiaHelper> emitirHistogramaAguaEconomiaLocalidadeEloPolo( FiltrarEmitirHistogramaAguaEconomiaHelper filtro) throws ControladorException { Collection<EmitirHistogramaAguaEconomiaHelper> colecaoEmitirHistogramaAguaEconomia = new ArrayList<EmitirHistogramaAguaEconomiaHelper>(); String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } filtro.setTipoGroupBy("histograma.localidade.id,histograma.localidadeElo.id"); filtro.setTipoOrderBy("1,2"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaAguaEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaAguaEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaAguaEconomiaDetalheHelper> colecaoEmitirHistogramaAguaEconomiaDetalhe = null; Localidade localidade = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroLocalidade filtroLocalidade = null; Collection colecaoConsulta = null; //Pai do elo Polo(eloPolo -> unidade -> gerencia) int eloPoloAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); Localidade eloPolo = new Localidade(); eloPolo.setId(new Integer(arrayNumeracao[1])); if(eloPoloAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ eloPoloAnterior = eloPolo.getId(); } //Mudou de Elo Polo if(eloPoloAnterior != eloPolo.getId().intValue()){ Localidade eloAnterior = new Localidade(); eloAnterior.setId(eloPoloAnterior); filtro.setOpcaoTotalizacao(13); filtro.setEloPolo(eloAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaEloPolo(filtro)); } filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro( new ParametroSimples(FiltroLocalidade.ID,arrayNumeracao[0])); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("unidadeNegocio"); // Recupera Localidade colecaoConsulta = this.getControladorUtil().pesquisar(filtroLocalidade, Localidade.class.getName()); localidade = (Localidade) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = localidade.getGerenciaRegional().getId()+"-"+localidade.getGerenciaRegional().getNomeAbreviado() +" / "+ localidade.getUnidadeNegocio().getId()+"-"+localidade.getUnidadeNegocio().getNomeAbreviado() +" / "+ localidade.getLocalidade().getId()+"-"+localidade.getLocalidade().getDescricao() +" / "+ localidade.getId()+"-"+localidade.getDescricao(); filtro.setLocalidade(localidade); filtro.setEloPolo(eloPolo); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; Iterator itera = colecaoCategorias.iterator(); while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaAguaEconomiaHelper(); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaAguaEconomiaDetalhe = new ArrayList<EmitirHistogramaAguaEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); if ( filtro.getIndicadorTarifaCategoria().intValue() == 1 ){ while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } } else { FiltroSubCategoria filtroSubcategoria = new FiltroSubCategoria(); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.CATEGORIA_ID, idCategoria ) ); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.INDICADOR_CONSUMO_TARIFA, ConstantesSistema.SIM ) ); filtroSubcategoria.setCampoOrderBy( "id" ); Collection colSubcategoria = new ArrayList(); Subcategoria subcategoria0 = new Subcategoria(); subcategoria0.setId( new Integer( 0 ) ); Categoria categoriaX = new Categoria(); categoriaX.setId( Integer.parseInt( idCategoria ) ); subcategoria0.setCategoria( categoriaX ); subcategoria0.setDescricao( "0 - SEM SUBCATEGORIA" ); colSubcategoria.add( subcategoria0 ); colSubcategoria.addAll( this.getControladorUtil().pesquisar( filtroSubcategoria, Subcategoria.class.getName() ) ); Iterator iteSubcategoria = colSubcategoria.iterator(); emitirHistograma.setDescricaoCategoria(descricaoCategoria); while ( iteSubcategoria.hasNext() ){ Subcategoria subcategoria = (Subcategoria)iteSubcategoria.next(); filtro.setSubcategoria( subcategoria ); emitirHistograma.setDescricaoSubcategoria( subcategoria.getDescricao() ); iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); Integer totalEconomiasMedidoSubcategoria = 0; Integer totalVolumeConsumoMedidoSubcategoria = 0; Integer totalVolumeFaturadoMedidoSubcategoria = 0; Integer totalLigacaoMedidoSubcategoria = 0; BigDecimal totalReceitaMedidoSubcategoria = new BigDecimal(0.0); Integer totalEconomiasNaoMedidoSubcategoria = 0; Integer totalVolumeConsumoNaoMedidoSubcategoria = 0; Integer totalVolumeFaturadoNaoMedidoSubcategoria = 0; Integer totalLigacaoNaoMedidoSubcategoria = 0; BigDecimal totalReceitaNaoMedidoSubcategoria = new BigDecimal(0.0); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); detalhe.setDescricaoSubcategoria( subcategoria.getDescricao() ); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); // Guardamos os totais por subcategoria totalEconomiasMedidoSubcategoria += detalhe.getEconomiasMedido(); totalVolumeConsumoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedidoSubcategoria = totalReceitaMedidoSubcategoria.add(detalhe.getReceitaMedido()); totalLigacaoMedidoSubcategoria += detalhe.getLigacoesMedido(); totalEconomiasNaoMedidoSubcategoria += detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedidoSubcategoria = totalReceitaNaoMedidoSubcategoria.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedidoSubcategoria += detalhe.getLigacoesNaoMedido(); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } EmitirHistogramaAguaEconomiaDetalheHelper totalSubcategoria = new EmitirHistogramaAguaEconomiaDetalheHelper (); totalSubcategoria.setDescricaoFaixa("TOTAL " + subcategoria.getDescricao() ); totalSubcategoria.setEconomiasMedido(totalEconomiasMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaMedido(totalVolumeConsumoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaMedido(totalVolumeFaturadoMedidoSubcategoria); totalSubcategoria.setReceitaMedido(totalReceitaMedidoSubcategoria); totalSubcategoria.setLigacoesMedido(totalLigacaoMedidoSubcategoria); totalSubcategoria.setEconomiasNaoMedido(totalEconomiasNaoMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaNaoMedido(totalVolumeConsumoNaoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaNaoMedido(totalVolumeFaturadoNaoMedidoSubcategoria); totalSubcategoria.setReceitaNaoMedido(totalReceitaNaoMedidoSubcategoria); totalSubcategoria.setLigacoesNaoMedido(totalLigacaoNaoMedidoSubcategoria); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(totalSubcategoria); } } /* while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } */ emitirHistograma.setColecaoEmitirHistogramaAguaEconomiaDetalhe(colecaoEmitirHistogramaAguaEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaAguaEconomiaHelper) hashMapTotalGeral.get(chave); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); eloPoloAnterior = eloPolo.getId(); } //Elo Polo Localidade eloAnterior = new Localidade(); eloAnterior.setId(eloPoloAnterior); filtro.setOpcaoTotalizacao(13); filtro.setEloPolo(eloAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaEloPolo(filtro)); } return colecaoEmitirHistogramaAguaEconomia; } /** * [UC0605] Emitir Histograma de �gua Por Economia * * Setor Comercial ,Localidade e Elo * * @author Rafael Pinto * @date 20/06/2007 * * @param FiltrarEmitirHistogramaAguaEconomiaHelper * * @return Collection<EmitirHistogramaAguaEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaAguaEconomiaHelper> emitirHistogramaAguaEconomiaSetorComercialLocalidadeEloPolo( FiltrarEmitirHistogramaAguaEconomiaHelper filtro) throws ControladorException { Collection<EmitirHistogramaAguaEconomiaHelper> colecaoEmitirHistogramaAguaEconomia = new ArrayList<EmitirHistogramaAguaEconomiaHelper>(); String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } filtro.setTipoGroupBy("histograma.codigoSetorComercial,histograma.localidade.id,histograma.localidadeElo.id"); filtro.setTipoOrderBy("1,2,3"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaAguaEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaAguaEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaAguaEconomiaDetalheHelper> colecaoEmitirHistogramaAguaEconomiaDetalhe = null; SetorComercial setorComercial = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroSetorComercial filtroSetorComercial = null; Collection colecaoConsulta = null; int localidadeAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; int eloPoloAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); Localidade localidade = new Localidade(); localidade.setId(new Integer(arrayNumeracao[1])); Localidade eloPolo = new Localidade(); eloPolo.setId(new Integer(arrayNumeracao[2])); if(localidadeAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ localidadeAnterior = localidade.getId(); } if(eloPoloAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ eloPoloAnterior = eloPolo.getId(); } //Mudou de Localidade if(localidadeAnterior != localidade.getId().intValue()){ Localidade localAnterior = new Localidade(); localAnterior.setId(localidadeAnterior); filtro.setOpcaoTotalizacao(16); filtro.setLocalidade(localAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaLocalidade(filtro)); } //Mudou de Elo Polo if(eloPoloAnterior != eloPolo.getId().intValue()){ Localidade eloAnterior = new Localidade(); eloAnterior.setId(eloPoloAnterior); filtro.setOpcaoTotalizacao(13); filtro.setEloPolo(eloAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaEloPolo(filtro)); } filtroSetorComercial = new FiltroSetorComercial(); filtroSetorComercial.adicionarParametro( new ParametroSimples(FiltroSetorComercial.CODIGO_SETOR_COMERCIAL,arrayNumeracao[0])); filtroSetorComercial.adicionarParametro( new ParametroSimples(FiltroSetorComercial.ID_LOCALIDADE,localidade.getId())); filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade.gerenciaRegional"); filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade.localidade"); filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade.unidadeNegocio"); // Recupera Setor Comercial colecaoConsulta = this.getControladorUtil().pesquisar(filtroSetorComercial, SetorComercial.class.getName()); setorComercial = (SetorComercial) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = setorComercial.getLocalidade().getGerenciaRegional().getId()+"-"+setorComercial.getLocalidade().getGerenciaRegional().getNomeAbreviado() +" / "+ setorComercial.getLocalidade().getUnidadeNegocio().getId()+"-"+setorComercial.getLocalidade().getUnidadeNegocio().getNomeAbreviado() +" / "+ setorComercial.getLocalidade().getLocalidade().getId()+"-"+setorComercial.getLocalidade().getLocalidade().getDescricao() +" / "+ setorComercial.getLocalidade().getId()+"-"+setorComercial.getLocalidade().getDescricao() +" / "+ setorComercial.getCodigo()+"-"+setorComercial.getDescricao(); filtro.setLocalidade(localidade); filtro.setEloPolo(eloPolo); filtro.setSetorComercial(setorComercial); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; Iterator itera = colecaoCategorias.iterator(); while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaAguaEconomiaHelper(); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaAguaEconomiaDetalhe = new ArrayList<EmitirHistogramaAguaEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); if ( filtro.getIndicadorTarifaCategoria().intValue() == 1 ){ while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } } else { FiltroSubCategoria filtroSubcategoria = new FiltroSubCategoria(); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.CATEGORIA_ID, idCategoria ) ); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.INDICADOR_CONSUMO_TARIFA, ConstantesSistema.SIM ) ); filtroSubcategoria.setCampoOrderBy( "id" ); Collection colSubcategoria = new ArrayList(); Subcategoria subcategoria0 = new Subcategoria(); subcategoria0.setId( new Integer( 0 ) ); Categoria categoriaX = new Categoria(); categoriaX.setId( Integer.parseInt( idCategoria ) ); subcategoria0.setCategoria( categoriaX ); subcategoria0.setDescricao( "0 - SEM SUBCATEGORIA" ); colSubcategoria.add( subcategoria0 ); colSubcategoria.addAll( this.getControladorUtil().pesquisar( filtroSubcategoria, Subcategoria.class.getName() ) ); Iterator iteSubcategoria = colSubcategoria.iterator(); emitirHistograma.setDescricaoCategoria(descricaoCategoria); while ( iteSubcategoria.hasNext() ){ Subcategoria subcategoria = (Subcategoria)iteSubcategoria.next(); filtro.setSubcategoria( subcategoria ); emitirHistograma.setDescricaoSubcategoria( subcategoria.getDescricao() ); iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); Integer totalEconomiasMedidoSubcategoria = 0; Integer totalVolumeConsumoMedidoSubcategoria = 0; Integer totalVolumeFaturadoMedidoSubcategoria = 0; Integer totalLigacaoMedidoSubcategoria = 0; BigDecimal totalReceitaMedidoSubcategoria = new BigDecimal(0.0); Integer totalEconomiasNaoMedidoSubcategoria = 0; Integer totalVolumeConsumoNaoMedidoSubcategoria = 0; Integer totalVolumeFaturadoNaoMedidoSubcategoria = 0; Integer totalLigacaoNaoMedidoSubcategoria = 0; BigDecimal totalReceitaNaoMedidoSubcategoria = new BigDecimal(0.0); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); detalhe.setDescricaoSubcategoria( subcategoria.getDescricao() ); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); // Guardamos os totais por subcategoria totalEconomiasMedidoSubcategoria += detalhe.getEconomiasMedido(); totalVolumeConsumoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedidoSubcategoria = totalReceitaMedidoSubcategoria.add(detalhe.getReceitaMedido()); totalLigacaoMedidoSubcategoria += detalhe.getLigacoesMedido(); totalEconomiasNaoMedidoSubcategoria += detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedidoSubcategoria = totalReceitaNaoMedidoSubcategoria.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedidoSubcategoria += detalhe.getLigacoesNaoMedido(); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } EmitirHistogramaAguaEconomiaDetalheHelper totalSubcategoria = new EmitirHistogramaAguaEconomiaDetalheHelper (); totalSubcategoria.setDescricaoFaixa("TOTAL " + subcategoria.getDescricao() ); totalSubcategoria.setEconomiasMedido(totalEconomiasMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaMedido(totalVolumeConsumoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaMedido(totalVolumeFaturadoMedidoSubcategoria); totalSubcategoria.setReceitaMedido(totalReceitaMedidoSubcategoria); totalSubcategoria.setLigacoesMedido(totalLigacaoMedidoSubcategoria); totalSubcategoria.setEconomiasNaoMedido(totalEconomiasNaoMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaNaoMedido(totalVolumeConsumoNaoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaNaoMedido(totalVolumeFaturadoNaoMedidoSubcategoria); totalSubcategoria.setReceitaNaoMedido(totalReceitaNaoMedidoSubcategoria); totalSubcategoria.setLigacoesNaoMedido(totalLigacaoNaoMedidoSubcategoria); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(totalSubcategoria); } } /* while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } */ emitirHistograma.setColecaoEmitirHistogramaAguaEconomiaDetalhe(colecaoEmitirHistogramaAguaEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaAguaEconomiaHelper) hashMapTotalGeral.get(chave); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); localidadeAnterior = localidade.getId(); eloPoloAnterior = eloPolo.getId(); } //Localidade Localidade localAnterior = new Localidade(); localAnterior.setId(localidadeAnterior); filtro.setOpcaoTotalizacao(16); filtro.setLocalidade(localAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaLocalidade(filtro)); //Elo Polo Localidade eloAnterior = new Localidade(); eloAnterior.setId(eloPoloAnterior); filtro.setOpcaoTotalizacao(13); filtro.setEloPolo(eloAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaEloPolo(filtro)); } return colecaoEmitirHistogramaAguaEconomia; } /** * [UC0605] Emitir Histograma de �gua Por Economia * * Setor Comercial ,Localidade * * @author Rafael Pinto * @date 20/06/2007 * * @param FiltrarEmitirHistogramaAguaEconomiaHelper * * @return Collection<EmitirHistogramaAguaEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaAguaEconomiaHelper> emitirHistogramaAguaEconomiaSetorComercialLocalidade( FiltrarEmitirHistogramaAguaEconomiaHelper filtro) throws ControladorException { Collection<EmitirHistogramaAguaEconomiaHelper> colecaoEmitirHistogramaAguaEconomia = new ArrayList<EmitirHistogramaAguaEconomiaHelper>(); String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } filtro.setTipoGroupBy("histograma.codigoSetorComercial,histograma.localidade.id"); filtro.setTipoOrderBy("1,2"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaAguaEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaAguaEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaAguaEconomiaDetalheHelper> colecaoEmitirHistogramaAguaEconomiaDetalhe = null; SetorComercial setorComercial = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroSetorComercial filtroSetorComercial = null; Collection colecaoConsulta = null; int localidadeAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); Localidade localidade = new Localidade(); localidade.setId(new Integer(arrayNumeracao[1])); if(localidadeAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ localidadeAnterior = localidade.getId(); } //Mudou de Localidade if(localidadeAnterior != localidade.getId().intValue()){ Localidade localAnterior = new Localidade(); localAnterior.setId(localidadeAnterior); filtro.setOpcaoTotalizacao(16); filtro.setLocalidade(localAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaLocalidade(filtro)); } filtroSetorComercial = new FiltroSetorComercial(); filtroSetorComercial.adicionarParametro( new ParametroSimples(FiltroSetorComercial.CODIGO_SETOR_COMERCIAL,arrayNumeracao[0])); filtroSetorComercial.adicionarParametro( new ParametroSimples(FiltroSetorComercial.ID_LOCALIDADE,localidade)); filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade.gerenciaRegional"); filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade.localidade"); filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade.unidadeNegocio"); // Recupera Setor Comercial colecaoConsulta = this.getControladorUtil().pesquisar(filtroSetorComercial, SetorComercial.class.getName()); setorComercial = (SetorComercial) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = setorComercial.getLocalidade().getGerenciaRegional().getId()+"-"+setorComercial.getLocalidade().getGerenciaRegional().getNomeAbreviado() +" / "+ setorComercial.getLocalidade().getUnidadeNegocio().getId()+"-"+setorComercial.getLocalidade().getUnidadeNegocio().getNomeAbreviado() +" / "+ setorComercial.getLocalidade().getLocalidade().getId()+"-"+setorComercial.getLocalidade().getLocalidade().getDescricao() +" / "+ setorComercial.getLocalidade().getId()+"-"+setorComercial.getLocalidade().getDescricao() +" / "+ setorComercial.getCodigo()+"-"+setorComercial.getDescricao(); filtro.setLocalidade(localidade); filtro.setSetorComercial(setorComercial); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; Iterator itera = colecaoCategorias.iterator(); while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaAguaEconomiaHelper(); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaAguaEconomiaDetalhe = new ArrayList<EmitirHistogramaAguaEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); if ( filtro.getIndicadorTarifaCategoria().intValue() == 1 ){ while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } } else { FiltroSubCategoria filtroSubcategoria = new FiltroSubCategoria(); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.CATEGORIA_ID, idCategoria ) ); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.INDICADOR_CONSUMO_TARIFA, ConstantesSistema.SIM ) ); filtroSubcategoria.setCampoOrderBy( "id" ); Collection colSubcategoria = new ArrayList(); Subcategoria subcategoria0 = new Subcategoria(); subcategoria0.setId( new Integer( 0 ) ); Categoria categoriaX = new Categoria(); categoriaX.setId( Integer.parseInt( idCategoria ) ); subcategoria0.setCategoria( categoriaX ); subcategoria0.setDescricao( "0 - SEM SUBCATEGORIA" ); colSubcategoria.add( subcategoria0 ); colSubcategoria.addAll( this.getControladorUtil().pesquisar( filtroSubcategoria, Subcategoria.class.getName() ) ); Iterator iteSubcategoria = colSubcategoria.iterator(); emitirHistograma.setDescricaoCategoria(descricaoCategoria); while ( iteSubcategoria.hasNext() ){ Subcategoria subcategoria = (Subcategoria)iteSubcategoria.next(); filtro.setSubcategoria( subcategoria ); emitirHistograma.setDescricaoSubcategoria( subcategoria.getDescricao() ); iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); Integer totalEconomiasMedidoSubcategoria = 0; Integer totalVolumeConsumoMedidoSubcategoria = 0; Integer totalVolumeFaturadoMedidoSubcategoria = 0; Integer totalLigacaoMedidoSubcategoria = 0; BigDecimal totalReceitaMedidoSubcategoria = new BigDecimal(0.0); Integer totalEconomiasNaoMedidoSubcategoria = 0; Integer totalVolumeConsumoNaoMedidoSubcategoria = 0; Integer totalVolumeFaturadoNaoMedidoSubcategoria = 0; Integer totalLigacaoNaoMedidoSubcategoria = 0; BigDecimal totalReceitaNaoMedidoSubcategoria = new BigDecimal(0.0); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); detalhe.setDescricaoSubcategoria( subcategoria.getDescricao() ); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); // Guardamos os totais por subcategoria totalEconomiasMedidoSubcategoria += detalhe.getEconomiasMedido(); totalVolumeConsumoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedidoSubcategoria = totalReceitaMedidoSubcategoria.add(detalhe.getReceitaMedido()); totalLigacaoMedidoSubcategoria += detalhe.getLigacoesMedido(); totalEconomiasNaoMedidoSubcategoria += detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedidoSubcategoria = totalReceitaNaoMedidoSubcategoria.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedidoSubcategoria += detalhe.getLigacoesNaoMedido(); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } EmitirHistogramaAguaEconomiaDetalheHelper totalSubcategoria = new EmitirHistogramaAguaEconomiaDetalheHelper (); totalSubcategoria.setDescricaoFaixa("TOTAL " + subcategoria.getDescricao() ); totalSubcategoria.setEconomiasMedido(totalEconomiasMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaMedido(totalVolumeConsumoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaMedido(totalVolumeFaturadoMedidoSubcategoria); totalSubcategoria.setReceitaMedido(totalReceitaMedidoSubcategoria); totalSubcategoria.setLigacoesMedido(totalLigacaoMedidoSubcategoria); totalSubcategoria.setEconomiasNaoMedido(totalEconomiasNaoMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaNaoMedido(totalVolumeConsumoNaoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaNaoMedido(totalVolumeFaturadoNaoMedidoSubcategoria); totalSubcategoria.setReceitaNaoMedido(totalReceitaNaoMedidoSubcategoria); totalSubcategoria.setLigacoesNaoMedido(totalLigacaoNaoMedidoSubcategoria); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(totalSubcategoria); } } /* while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } */ emitirHistograma.setColecaoEmitirHistogramaAguaEconomiaDetalhe(colecaoEmitirHistogramaAguaEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaAguaEconomiaHelper) hashMapTotalGeral.get(chave); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); localidadeAnterior = localidade.getId(); } //Localidade Localidade localAnterior = new Localidade(); localAnterior.setId(localidadeAnterior); filtro.setOpcaoTotalizacao(16); filtro.setLocalidade(localAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaLocalidade(filtro)); } return colecaoEmitirHistogramaAguaEconomia; } /** * [UC0605] Emitir Histograma de �gua Por Economia * * Localidade * * @author Rafael Pinto * @date 19/06/2007 * * @param FiltrarEmitirHistogramaAguaEconomiaHelper * * @return Collection<EmitirHistogramaAguaEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaAguaEconomiaHelper> emitirHistogramaAguaEconomiaLocalidade( FiltrarEmitirHistogramaAguaEconomiaHelper filtro) throws ControladorException { filtro.setSetorComercial(null); filtro.setEloPolo(null); filtro.setMedicao(null); filtro.setConsumoFaixaCategoria(null); Collection<EmitirHistogramaAguaEconomiaHelper> colecaoEmitirHistogramaAguaEconomia = new ArrayList<EmitirHistogramaAguaEconomiaHelper>(); String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } filtro.setTipoGroupBy("histograma.localidade.id"); filtro.setTipoOrderBy("1"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaAguaEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaAguaEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaAguaEconomiaDetalheHelper> colecaoEmitirHistogramaAguaEconomiaDetalhe = null; Localidade localidade = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroLocalidade filtroLocalidade = null; Collection colecaoConsulta = null; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String idLocalidade = (String) iter.next(); Iterator itera = colecaoCategorias.iterator(); filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro( new ParametroSimples(FiltroLocalidade.ID,idLocalidade)); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("unidadeNegocio"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("localidade"); // Recupera Elo Polo colecaoConsulta = this.getControladorUtil().pesquisar(filtroLocalidade, Localidade.class.getName()); localidade = (Localidade) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = localidade.getGerenciaRegional().getId()+"-"+localidade.getGerenciaRegional().getNomeAbreviado() +" / "+ localidade.getUnidadeNegocio().getId()+"-"+localidade.getUnidadeNegocio().getNomeAbreviado() +" / "+ localidade.getLocalidade().getId()+"-"+localidade.getLocalidade().getDescricao() +" / "+ localidade.getId()+"-"+localidade.getDescricao(); filtro.setLocalidade(localidade); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaAguaEconomiaHelper(); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaAguaEconomiaDetalhe = new ArrayList<EmitirHistogramaAguaEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); if ( filtro.getIndicadorTarifaCategoria().intValue() == 1 ){ while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } } else { FiltroSubCategoria filtroSubcategoria = new FiltroSubCategoria(); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.CATEGORIA_ID, idCategoria ) ); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.INDICADOR_CONSUMO_TARIFA, ConstantesSistema.SIM ) ); filtroSubcategoria.setCampoOrderBy( "id" ); Collection colSubcategoria = new ArrayList(); Subcategoria subcategoria0 = new Subcategoria(); subcategoria0.setId( new Integer( 0 ) ); Categoria categoriaX = new Categoria(); categoriaX.setId( Integer.parseInt( idCategoria ) ); subcategoria0.setCategoria( categoriaX ); subcategoria0.setDescricao( "0 - SEM SUBCATEGORIA" ); colSubcategoria.add( subcategoria0 ); colSubcategoria.addAll( this.getControladorUtil().pesquisar( filtroSubcategoria, Subcategoria.class.getName() ) ); Iterator iteSubcategoria = colSubcategoria.iterator(); emitirHistograma.setDescricaoCategoria(descricaoCategoria); while ( iteSubcategoria.hasNext() ){ Subcategoria subcategoria = (Subcategoria)iteSubcategoria.next(); filtro.setSubcategoria( subcategoria ); emitirHistograma.setDescricaoSubcategoria( subcategoria.getDescricao() ); iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); Integer totalEconomiasMedidoSubcategoria = 0; Integer totalVolumeConsumoMedidoSubcategoria = 0; Integer totalVolumeFaturadoMedidoSubcategoria = 0; Integer totalLigacaoMedidoSubcategoria = 0; BigDecimal totalReceitaMedidoSubcategoria = new BigDecimal(0.0); Integer totalEconomiasNaoMedidoSubcategoria = 0; Integer totalVolumeConsumoNaoMedidoSubcategoria = 0; Integer totalVolumeFaturadoNaoMedidoSubcategoria = 0; Integer totalLigacaoNaoMedidoSubcategoria = 0; BigDecimal totalReceitaNaoMedidoSubcategoria = new BigDecimal(0.0); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); detalhe.setDescricaoSubcategoria( subcategoria.getDescricao() ); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); // Guardamos os totais por subcategoria totalEconomiasMedidoSubcategoria += detalhe.getEconomiasMedido(); totalVolumeConsumoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedidoSubcategoria = totalReceitaMedidoSubcategoria.add(detalhe.getReceitaMedido()); totalLigacaoMedidoSubcategoria += detalhe.getLigacoesMedido(); totalEconomiasNaoMedidoSubcategoria += detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedidoSubcategoria = totalReceitaNaoMedidoSubcategoria.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedidoSubcategoria += detalhe.getLigacoesNaoMedido(); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } EmitirHistogramaAguaEconomiaDetalheHelper totalSubcategoria = new EmitirHistogramaAguaEconomiaDetalheHelper (); totalSubcategoria.setDescricaoFaixa("TOTAL " + subcategoria.getDescricao() ); totalSubcategoria.setEconomiasMedido(totalEconomiasMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaMedido(totalVolumeConsumoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaMedido(totalVolumeFaturadoMedidoSubcategoria); totalSubcategoria.setReceitaMedido(totalReceitaMedidoSubcategoria); totalSubcategoria.setLigacoesMedido(totalLigacaoMedidoSubcategoria); totalSubcategoria.setEconomiasNaoMedido(totalEconomiasNaoMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaNaoMedido(totalVolumeConsumoNaoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaNaoMedido(totalVolumeFaturadoNaoMedidoSubcategoria); totalSubcategoria.setReceitaNaoMedido(totalReceitaNaoMedidoSubcategoria); totalSubcategoria.setLigacoesNaoMedido(totalLigacaoNaoMedidoSubcategoria); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(totalSubcategoria); } } /* while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); }*/ emitirHistograma.setColecaoEmitirHistogramaAguaEconomiaDetalhe(colecaoEmitirHistogramaAguaEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaAguaEconomiaHelper) hashMapTotalGeral.get(idLocalidade); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); } } return colecaoEmitirHistogramaAguaEconomia; } /** * [UC0605] Emitir Histograma de �gua Por Economia * * Quadra e Setor Comercial * * @author Rafael Pinto * @date 20/06/2007 * * @param FiltrarEmitirHistogramaAguaEconomiaHelper * * @return Collection<EmitirHistogramaAguaEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaAguaEconomiaHelper> emitirHistogramaAguaEconomiaQuadraSetorComercialLocalidade( FiltrarEmitirHistogramaAguaEconomiaHelper filtro) throws ControladorException { Collection<EmitirHistogramaAguaEconomiaHelper> colecaoEmitirHistogramaAguaEconomia = new ArrayList<EmitirHistogramaAguaEconomiaHelper>(); String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } filtro.setTipoGroupBy("histograma.quadra.id,histograma.setorComercial.id,histograma.localidade.id"); filtro.setTipoOrderBy("1,2,3"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaAguaEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaAguaEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaAguaEconomiaDetalheHelper> colecaoEmitirHistogramaAguaEconomiaDetalhe = null; Quadra quadra = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroQuadra filtroQuadra = null; Collection colecaoConsulta = null; int localidadeAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; int setorComercialAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); SetorComercial setorComercial = new SetorComercial(); setorComercial.setId(new Integer(arrayNumeracao[1])); Localidade localidade = new Localidade(); localidade.setId(new Integer(arrayNumeracao[2])); if(setorComercialAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ setorComercialAnterior = setorComercial.getId(); } if(localidadeAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ localidadeAnterior = localidade.getId(); } //Mudou de Setor Comercial if(setorComercialAnterior != setorComercial.getId().intValue()){ SetorComercial setorAnterior = new SetorComercial(); setorAnterior.setId(setorComercialAnterior); filtro.setOpcaoTotalizacao(19); filtro.setSetorComercial(setorAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaSetorComercial(filtro)); } //Mudou de Localidade if(localidadeAnterior != localidade.getId().intValue()){ Localidade localAnterior = new Localidade(); localAnterior.setId(localidadeAnterior); filtro.setOpcaoTotalizacao(16); filtro.setLocalidade(localAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaLocalidade(filtro)); } filtroQuadra = new FiltroQuadra(); filtroQuadra.adicionarParametro( new ParametroSimples(FiltroQuadra.ID,arrayNumeracao[0])); filtroQuadra.adicionarCaminhoParaCarregamentoEntidade("setorComercial"); filtroQuadra.adicionarCaminhoParaCarregamentoEntidade("setorComercial.localidade"); // Recupera Quadra colecaoConsulta = this.getControladorUtil().pesquisar(filtroQuadra, Quadra.class.getName()); quadra = (Quadra) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = quadra.getSetorComercial().getLocalidade().getId()+"-"+quadra.getSetorComercial().getLocalidade().getDescricao() +" / "+ quadra.getSetorComercial().getCodigo()+"-"+quadra.getSetorComercial().getDescricao() +" / "+ quadra.getNumeroQuadra(); filtro.setQuadra(quadra); filtro.setSetorComercial(setorComercial); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; Iterator itera = colecaoCategorias.iterator(); while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaAguaEconomiaHelper(); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaAguaEconomiaDetalhe = new ArrayList<EmitirHistogramaAguaEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } emitirHistograma.setColecaoEmitirHistogramaAguaEconomiaDetalhe(colecaoEmitirHistogramaAguaEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaAguaEconomiaHelper) hashMapTotalGeral.get(chave); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); localidadeAnterior = localidade.getId(); setorComercialAnterior = setorComercial.getId(); } //Setor Comercial SetorComercial setorAnterior = new SetorComercial(); setorAnterior.setId(setorComercialAnterior); filtro.setOpcaoTotalizacao(19); filtro.setSetorComercial(setorAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaSetorComercial(filtro)); //Mudou Localidade Localidade localAnterior = new Localidade(); localAnterior.setId(localidadeAnterior); filtro.setOpcaoTotalizacao(16); filtro.setLocalidade(localAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaLocalidade(filtro)); } return colecaoEmitirHistogramaAguaEconomia; } /** * [UC0605] Emitir Histograma de �gua Por Economia * * Setor Comercial * * @author Rafael Pinto * @date 19/06/2007 * * @param FiltrarEmitirHistogramaAguaEconomiaHelper * * @return Collection<EmitirHistogramaAguaEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaAguaEconomiaHelper> emitirHistogramaAguaEconomiaSetorComercial( FiltrarEmitirHistogramaAguaEconomiaHelper filtro) throws ControladorException { filtro.setQuadra(null); filtro.setMedicao(null); filtro.setConsumoFaixaCategoria(null); Collection<EmitirHistogramaAguaEconomiaHelper> colecaoEmitirHistogramaAguaEconomia = new ArrayList<EmitirHistogramaAguaEconomiaHelper>(); String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } filtro.setTipoGroupBy("histograma.setorComercial.id"); filtro.setTipoOrderBy("1"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaAguaEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaAguaEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaAguaEconomiaDetalheHelper> colecaoEmitirHistogramaAguaEconomiaDetalhe = null; SetorComercial setorComercial = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroSetorComercial filtroSetorComercial = null; Collection colecaoConsulta = null; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String idSetorComercial = (String) iter.next(); Iterator itera = colecaoCategorias.iterator(); filtroSetorComercial = new FiltroSetorComercial(); filtroSetorComercial.adicionarParametro( new ParametroSimples(FiltroSetorComercial.ID,idSetorComercial)); filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade.gerenciaRegional"); filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade.localidade"); filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade.unidadeNegocio"); // Recupera Setor Comercial colecaoConsulta = this.getControladorUtil().pesquisar(filtroSetorComercial, SetorComercial.class.getName()); setorComercial = (SetorComercial) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = setorComercial.getLocalidade().getGerenciaRegional().getId()+"-"+setorComercial.getLocalidade().getGerenciaRegional().getNomeAbreviado() +" / "+ setorComercial.getLocalidade().getUnidadeNegocio().getId()+"-"+setorComercial.getLocalidade().getUnidadeNegocio().getNomeAbreviado() +" / "+ setorComercial.getLocalidade().getLocalidade().getId()+"-"+setorComercial.getLocalidade().getLocalidade().getDescricao() +" / "+ setorComercial.getLocalidade().getId()+"-"+setorComercial.getLocalidade().getDescricao() +" / "+ setorComercial.getCodigo()+"-"+setorComercial.getDescricao(); filtro.setSetorComercial(setorComercial); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaAguaEconomiaHelper(); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaAguaEconomiaDetalhe = new ArrayList<EmitirHistogramaAguaEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); if ( filtro.getIndicadorTarifaCategoria().intValue() == 1 ){ while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } } else { FiltroSubCategoria filtroSubcategoria = new FiltroSubCategoria(); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.CATEGORIA_ID, idCategoria ) ); filtroSubcategoria.adicionarParametro( new ParametroSimples( FiltroSubCategoria.INDICADOR_CONSUMO_TARIFA, ConstantesSistema.SIM ) ); filtroSubcategoria.setCampoOrderBy( "id" ); Collection colSubcategoria = new ArrayList(); Subcategoria subcategoria0 = new Subcategoria(); subcategoria0.setId( new Integer( 0 ) ); Categoria categoriaX = new Categoria(); categoriaX.setId( Integer.parseInt( idCategoria ) ); subcategoria0.setCategoria( categoriaX ); subcategoria0.setDescricao( "0 - SEM SUBCATEGORIA" ); colSubcategoria.add( subcategoria0 ); colSubcategoria.addAll( this.getControladorUtil().pesquisar( filtroSubcategoria, Subcategoria.class.getName() ) ); Iterator iteSubcategoria = colSubcategoria.iterator(); emitirHistograma.setDescricaoCategoria(descricaoCategoria); while ( iteSubcategoria.hasNext() ){ Subcategoria subcategoria = (Subcategoria)iteSubcategoria.next(); filtro.setSubcategoria( subcategoria ); emitirHistograma.setDescricaoSubcategoria( subcategoria.getDescricao() ); iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); Integer totalEconomiasMedidoSubcategoria = 0; Integer totalVolumeConsumoMedidoSubcategoria = 0; Integer totalVolumeFaturadoMedidoSubcategoria = 0; Integer totalLigacaoMedidoSubcategoria = 0; BigDecimal totalReceitaMedidoSubcategoria = new BigDecimal(0.0); Integer totalEconomiasNaoMedidoSubcategoria = 0; Integer totalVolumeConsumoNaoMedidoSubcategoria = 0; Integer totalVolumeFaturadoNaoMedidoSubcategoria = 0; Integer totalLigacaoNaoMedidoSubcategoria = 0; BigDecimal totalReceitaNaoMedidoSubcategoria = new BigDecimal(0.0); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); detalhe.setDescricaoSubcategoria( subcategoria.getDescricao() ); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); // Guardamos os totais por subcategoria totalEconomiasMedidoSubcategoria += detalhe.getEconomiasMedido(); totalVolumeConsumoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedidoSubcategoria = totalReceitaMedidoSubcategoria.add(detalhe.getReceitaMedido()); totalLigacaoMedidoSubcategoria += detalhe.getLigacoesMedido(); totalEconomiasNaoMedidoSubcategoria += detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedidoSubcategoria += detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedidoSubcategoria += detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedidoSubcategoria = totalReceitaNaoMedidoSubcategoria.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedidoSubcategoria += detalhe.getLigacoesNaoMedido(); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } EmitirHistogramaAguaEconomiaDetalheHelper totalSubcategoria = new EmitirHistogramaAguaEconomiaDetalheHelper (); totalSubcategoria.setDescricaoFaixa("TOTAL " + subcategoria.getDescricao() ); totalSubcategoria.setEconomiasMedido(totalEconomiasMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaMedido(totalVolumeConsumoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaMedido(totalVolumeFaturadoMedidoSubcategoria); totalSubcategoria.setReceitaMedido(totalReceitaMedidoSubcategoria); totalSubcategoria.setLigacoesMedido(totalLigacaoMedidoSubcategoria); totalSubcategoria.setEconomiasNaoMedido(totalEconomiasNaoMedidoSubcategoria); totalSubcategoria.setVolumeConsumoFaixaNaoMedido(totalVolumeConsumoNaoMedidoSubcategoria); totalSubcategoria.setVolumeFaturadoFaixaNaoMedido(totalVolumeFaturadoNaoMedidoSubcategoria); totalSubcategoria.setReceitaNaoMedido(totalReceitaNaoMedidoSubcategoria); totalSubcategoria.setLigacoesNaoMedido(totalLigacaoNaoMedidoSubcategoria); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(totalSubcategoria); } } /* while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } */ emitirHistograma.setColecaoEmitirHistogramaAguaEconomiaDetalhe(colecaoEmitirHistogramaAguaEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaAguaEconomiaHelper) hashMapTotalGeral.get(idSetorComercial); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); } } return colecaoEmitirHistogramaAguaEconomia; } /** * [UC0605] Emitir Histograma de �gua Por Economia * * Quadra e Setor Comercial * * @author Rafael Pinto * @date 20/06/2007 * * @param FiltrarEmitirHistogramaAguaEconomiaHelper * * @return Collection<EmitirHistogramaAguaEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaAguaEconomiaHelper> emitirHistogramaAguaEconomiaQuadraSetorComercial( FiltrarEmitirHistogramaAguaEconomiaHelper filtro) throws ControladorException { Collection<EmitirHistogramaAguaEconomiaHelper> colecaoEmitirHistogramaAguaEconomia = new ArrayList<EmitirHistogramaAguaEconomiaHelper>(); String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } filtro.setTipoGroupBy("histograma.quadra.id,histograma.setorComercial.id"); filtro.setTipoOrderBy("2,1"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaAguaEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaAguaEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaAguaEconomiaDetalheHelper> colecaoEmitirHistogramaAguaEconomiaDetalhe = null; Quadra quadra = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroQuadra filtroQuadra = null; Collection colecaoConsulta = null; int setorComercialAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); SetorComercial setorComercial = new SetorComercial(); setorComercial.setId(new Integer(arrayNumeracao[1])); if(setorComercialAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ setorComercialAnterior = setorComercial.getId(); } //Mudou de Setor Comercial if(setorComercialAnterior != setorComercial.getId().intValue()){ SetorComercial setorAnterior = new SetorComercial(); setorAnterior.setId(setorComercialAnterior); filtro.setOpcaoTotalizacao(19); filtro.setSetorComercial(setorAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaSetorComercial(filtro)); } filtroQuadra = new FiltroQuadra(); filtroQuadra.adicionarParametro( new ParametroSimples(FiltroQuadra.ID,arrayNumeracao[0])); filtroQuadra.adicionarCaminhoParaCarregamentoEntidade("setorComercial"); filtroQuadra.adicionarCaminhoParaCarregamentoEntidade("setorComercial.localidade"); // Recupera Quadra colecaoConsulta = this.getControladorUtil().pesquisar(filtroQuadra, Quadra.class.getName()); quadra = (Quadra) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = quadra.getSetorComercial().getLocalidade().getId()+"-"+quadra.getSetorComercial().getLocalidade().getDescricao() +" / "+ quadra.getSetorComercial().getCodigo()+"-"+quadra.getSetorComercial().getDescricao() +" / "+ quadra.getNumeroQuadra(); filtro.setQuadra(quadra); filtro.setSetorComercial(setorComercial); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; Iterator itera = colecaoCategorias.iterator(); while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaAguaEconomiaHelper(); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaAguaEconomiaDetalhe = new ArrayList<EmitirHistogramaAguaEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } emitirHistograma.setColecaoEmitirHistogramaAguaEconomiaDetalhe(colecaoEmitirHistogramaAguaEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaAguaEconomiaHelper) hashMapTotalGeral.get(chave); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); setorComercialAnterior = setorComercial.getId(); } //Setor Comercial SetorComercial setorAnterior = new SetorComercial(); setorAnterior.setId(setorComercialAnterior); filtro.setOpcaoTotalizacao(19); filtro.setSetorComercial(setorAnterior); colecaoEmitirHistogramaAguaEconomia.addAll(this.emitirHistogramaAguaEconomiaSetorComercial(filtro)); } return colecaoEmitirHistogramaAguaEconomia; } /** * [UC0605] Emitir Histograma de �gua Por Economia * * Quadra * * @author Rafael Pinto * @date 19/06/2007 * * @param FiltrarEmitirHistogramaAguaEconomiaHelper * * @return Collection<EmitirHistogramaAguaEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaAguaEconomiaHelper> emitirHistogramaAguaEconomiaQuadra( FiltrarEmitirHistogramaAguaEconomiaHelper filtro) throws ControladorException { filtro.setMedicao(null); filtro.setConsumoFaixaCategoria(null); Collection<EmitirHistogramaAguaEconomiaHelper> colecaoEmitirHistogramaAguaEconomia = new ArrayList<EmitirHistogramaAguaEconomiaHelper>(); String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } filtro.setTipoGroupBy("histograma.quadra.id"); filtro.setTipoOrderBy("1"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaAguaEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaAguaEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaAguaEconomiaDetalheHelper> colecaoEmitirHistogramaAguaEconomiaDetalhe = null; Quadra quadra = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroQuadra filtroQuadra = null; Collection colecaoConsulta = null; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String idQuadra = (String) iter.next(); Iterator itera = colecaoCategorias.iterator(); filtroQuadra = new FiltroQuadra(); filtroQuadra.adicionarParametro(new ParametroSimples(FiltroQuadra.ID,idQuadra)); filtroQuadra.adicionarCaminhoParaCarregamentoEntidade("setorComercial"); filtroQuadra.adicionarCaminhoParaCarregamentoEntidade("setorComercial.localidade"); // Recupera Quadra colecaoConsulta = this.getControladorUtil().pesquisar(filtroQuadra, Quadra.class.getName()); quadra = (Quadra) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = quadra.getSetorComercial().getLocalidade().getId()+"-"+quadra.getSetorComercial().getLocalidade().getDescricao() +" / "+ quadra.getSetorComercial().getCodigo()+"-"+quadra.getSetorComercial().getDescricao() +" / "+ quadra.getNumeroQuadra(); filtro.setQuadra(quadra); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaAguaEconomiaHelper(); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaAguaEconomiaDetalhe = new ArrayList<EmitirHistogramaAguaEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaAguaEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaAguaEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaAguaEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } emitirHistograma.setColecaoEmitirHistogramaAguaEconomiaDetalhe(colecaoEmitirHistogramaAguaEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaAguaEconomiaHelper) hashMapTotalGeral.get(idQuadra); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaAguaEconomia.add(emitirHistograma); } } return colecaoEmitirHistogramaAguaEconomia; } /** * [UC0605] Emitir Histograma de �gua Por Economia * * Monta o objeto EmitirHistogramaAguaEconomiaDetalheHelper * * @author Rafael Pinto * @date 19/06/2007 * * @param FiltrarEmitirHistogramaAguaEconomiaHelper * @param ConsumoFaixaCategoria * * @return EmitirHistogramaAguaEconomiaDetalheHelper * @throws ControladorException */ private EmitirHistogramaAguaEconomiaDetalheHelper montarEmitirHistogramaAguaEconomiaDetalheHelper( FiltrarEmitirHistogramaAguaEconomiaHelper filtro, ConsumoFaixaCategoria consumoFaixaCategoria, int limiteSuperiorFaixaAnterior) throws ControladorException { EmitirHistogramaAguaEconomiaDetalheHelper detalhe = new EmitirHistogramaAguaEconomiaDetalheHelper(); BigDecimal consumoMedio = null; BigDecimal consumoExcedente = null; filtro.setConsumoFaixaCategoria(consumoFaixaCategoria); detalhe.setDescricaoFaixa(consumoFaixaCategoria.getNumeroFaixaInicio()+" a "+consumoFaixaCategoria.getNumeroFaixaFim()); //Pesquisa com indicador de Hidrometro SIM filtro.setMedicao(ConstantesSistema.INDICADOR_USO_ATIVO); Object[] valoresSomatorio = null; boolean temMedido = false; boolean temNaoMedido = false; try { valoresSomatorio = this.repositorioFaturamento.pesquisarEmitirHistogramaAguaEconomia(filtro); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } if(valoresSomatorio != null){ detalhe.setEconomiasMedido((Integer)valoresSomatorio[2]); detalhe.setVolumeConsumoFaixaMedido((Integer)valoresSomatorio[3]); detalhe.setVolumeFaturadoFaixaMedido((Integer)valoresSomatorio[4]); detalhe.setReceitaMedido((BigDecimal)valoresSomatorio[5]); detalhe.setLigacoesMedido((Integer)valoresSomatorio[6]); consumoMedio = new BigDecimal(detalhe.getVolumeConsumoFaixaMedido()).divide( new BigDecimal(detalhe.getEconomiasMedido()),4, BigDecimal.ROUND_HALF_UP); detalhe.setConsumoMedioMedido(consumoMedio); if(limiteSuperiorFaixaAnterior > 0){ consumoExcedente = detalhe.getConsumoMedioMedido().subtract(new BigDecimal(limiteSuperiorFaixaAnterior)); } detalhe.setConsumoExcedenteMedido(consumoExcedente); temMedido = true; }else{ detalhe.setConsumoMedioMedido(new BigDecimal(0.0)); } //Pesquisa com indicador de Hidrometro Nao filtro.setMedicao(ConstantesSistema.INDICADOR_USO_DESATIVO); try { valoresSomatorio = this.repositorioFaturamento.pesquisarEmitirHistogramaAguaEconomia(filtro); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } if(valoresSomatorio != null){ detalhe.setEconomiasNaoMedido( (Integer)valoresSomatorio[2]); detalhe.setVolumeConsumoFaixaNaoMedido((Integer)valoresSomatorio[3]); detalhe.setVolumeFaturadoFaixaNaoMedido((Integer)valoresSomatorio[4]); detalhe.setReceitaNaoMedido((BigDecimal)valoresSomatorio[5]); detalhe.setLigacoesNaoMedido((Integer)valoresSomatorio[6]); consumoMedio = new BigDecimal(detalhe.getVolumeConsumoFaixaNaoMedido()).divide( new BigDecimal(detalhe.getEconomiasNaoMedido()),4, BigDecimal.ROUND_HALF_UP); detalhe.setConsumoMedioNaoMedido(consumoMedio); if(limiteSuperiorFaixaAnterior > 0){ consumoExcedente = detalhe.getConsumoMedioNaoMedido().subtract(new BigDecimal(limiteSuperiorFaixaAnterior)); } detalhe.setConsumoExcedenteNaoMedido(consumoExcedente); temNaoMedido = true; }else{ detalhe.setConsumoMedioNaoMedido(new BigDecimal(0.0)); } //Caso tenha algum valor ent�o exite histograma para adcionar na colecao detalhe.setExisteHistograma(temMedido || temNaoMedido); return detalhe; } /** * [UC0605] Emitir Histograma de �gua Por Economia * * Agrupa as chaves para totalizacao * * @author Rafael Pinto * @date 18/06/2007 * * @param FiltrarEmitirHistogramaAguaEconomiaHelper * * @return LinkedHashMap * @throws ControladorException */ private LinkedHashMap montarEmitirHistogramaAguaEconomiaAgruparChaves(FiltrarEmitirHistogramaAguaEconomiaHelper filtro) throws ControladorException { LinkedHashMap hashMapTotalizacao = new LinkedHashMap(); Collection<Object[]> colecao = null; try { //filtro.setMedicao(ConstantesSistema.INDICADOR_USO_ATIVO); colecao = this.repositorioFaturamento.pesquisarEmitirHistogramaAguaEconomiaChavesAgrupadas(filtro); } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } if (colecao != null && !colecao.isEmpty()) { Iterator iterator = colecao.iterator(); while (iterator.hasNext()) { String tipoTotalizacao = "0"; int chaveQuadra = 0; int chaveSetorComercial = 0; int chaveLocalidade = 0; int chaveElo = 0; int chaveUnidade = 0; int chaveGerencia = 0; if(filtro.getOpcaoTotalizacao() == 2 || filtro.getOpcaoTotalizacao() == 6 ){ chaveGerencia = (Integer) iterator.next(); tipoTotalizacao = ""+chaveGerencia; }else if(filtro.getOpcaoTotalizacao() == 3 || filtro.getOpcaoTotalizacao() == 7 ){ Object[] objeto = (Object[]) iterator.next(); chaveUnidade = (Integer) objeto[0]; chaveGerencia = (Integer) objeto[1]; tipoTotalizacao = chaveUnidade+";"+chaveGerencia; }else if(filtro.getOpcaoTotalizacao() == 4 || filtro.getOpcaoTotalizacao() == 8){ Object[] objeto = (Object[]) iterator.next(); chaveElo = (Integer) objeto[0]; chaveUnidade = (Integer) objeto[1]; chaveGerencia = (Integer) objeto[2]; tipoTotalizacao = chaveElo+";"+chaveUnidade+";"+chaveGerencia; }else if(filtro.getOpcaoTotalizacao() == 5 || filtro.getOpcaoTotalizacao() == 9){ Object[] objeto = (Object[]) iterator.next(); chaveLocalidade = (Integer) objeto[0]; chaveElo = (Integer) objeto[1]; chaveUnidade = (Integer) objeto[2]; chaveGerencia = (Integer) objeto[3]; tipoTotalizacao = chaveLocalidade+";"+chaveElo+";"+chaveUnidade+";"+chaveGerencia; }else if(filtro.getOpcaoTotalizacao() == 10){ chaveUnidade = (Integer) iterator.next(); tipoTotalizacao = ""+chaveUnidade; }else if(filtro.getOpcaoTotalizacao() == 11){ Object[] objeto = (Object[]) iterator.next(); chaveElo = (Integer) objeto[0]; chaveUnidade = (Integer) objeto[1]; tipoTotalizacao = chaveElo+";"+chaveUnidade; }else if(filtro.getOpcaoTotalizacao() == 12){ Object[] objeto = (Object[]) iterator.next(); chaveLocalidade = (Integer) objeto[0]; chaveElo = (Integer) objeto[1]; chaveUnidade = (Integer) objeto[2]; tipoTotalizacao = chaveLocalidade+";"+chaveElo+";"+chaveUnidade; }else if(filtro.getOpcaoTotalizacao() == 13){ chaveElo = (Integer) iterator.next(); tipoTotalizacao = ""+chaveElo; }else if(filtro.getOpcaoTotalizacao() == 14){ Object[] objeto = (Object[]) iterator.next(); chaveLocalidade = (Integer) objeto[0]; chaveElo = (Integer) objeto[1]; tipoTotalizacao = chaveLocalidade+";"+chaveElo; }else if(filtro.getOpcaoTotalizacao() == 15){ Object[] objeto = (Object[]) iterator.next(); chaveSetorComercial = (Integer) objeto[0]; chaveLocalidade = (Integer) objeto[1]; chaveElo = (Integer) objeto[2]; tipoTotalizacao = chaveSetorComercial+";"+chaveLocalidade+";"+chaveElo; }else if(filtro.getOpcaoTotalizacao() == 16){ chaveLocalidade = (Integer) iterator.next(); tipoTotalizacao = ""+chaveLocalidade; }else if(filtro.getOpcaoTotalizacao() == 17){ Object[] objeto = (Object[]) iterator.next(); chaveSetorComercial = (Integer) objeto[0]; chaveLocalidade = (Integer) objeto[1]; tipoTotalizacao = chaveSetorComercial+";"+chaveLocalidade; }else if(filtro.getOpcaoTotalizacao() == 18){ Object[] objeto = (Object[]) iterator.next(); chaveQuadra = (Integer) objeto[0]; chaveSetorComercial = (Integer) objeto[1]; chaveLocalidade = (Integer) objeto[2]; tipoTotalizacao = chaveQuadra+";"+chaveSetorComercial+";"+chaveLocalidade; }else if(filtro.getOpcaoTotalizacao() == 19){ chaveSetorComercial = (Integer) iterator.next(); tipoTotalizacao = ""+chaveSetorComercial; }else if(filtro.getOpcaoTotalizacao() == 20){ Object[] objeto = (Object[]) iterator.next(); chaveQuadra = (Integer) objeto[0]; chaveSetorComercial = (Integer) objeto[1]; tipoTotalizacao = chaveQuadra+";"+chaveSetorComercial; }else if(filtro.getOpcaoTotalizacao() == 21){ chaveQuadra = (Integer) iterator.next(); tipoTotalizacao = ""+chaveQuadra; } EmitirHistogramaAguaEconomiaHelper emitirHistograma = new EmitirHistogramaAguaEconomiaHelper(); hashMapTotalizacao.put(tipoTotalizacao,emitirHistograma); } } return hashMapTotalizacao; } /** * [UC0600] Emitir Histograma de Esgoto * * @author Rafael Pinto * @date 05/11/2007 * * @param FiltrarEmitirHistogramaEsgotoHelper * * @return Collection<EmitirHistogramaEsgotoHelper> * @throws ControladorException */ public Collection<EmitirHistogramaEsgotoHelper> pesquisarEmitirHistogramaEsgoto( FiltrarEmitirHistogramaEsgotoHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoHelper> colecaoEmitirHistogramaEsgoto = new ArrayList<EmitirHistogramaEsgotoHelper>(); int opcaoTotalizacao = filtro.getOpcaoTotalizacao(); FiltrarEmitirHistogramaEsgotoHelper filtroClone = new FiltrarEmitirHistogramaEsgotoHelper(filtro); switch (opcaoTotalizacao) { // Estado case 1: colecaoEmitirHistogramaEsgoto = this .pesquisarEmitirHistogramaEsgotoEstado(filtro); break; // Estado por Gerencia Regional case 2: colecaoEmitirHistogramaEsgoto = this.emitirHistogramaEsgotoGerenciaRegional(filtro); colecaoEmitirHistogramaEsgoto.addAll(this.pesquisarEmitirHistogramaEsgotoEstado(filtroClone)); break; // Estado por Unidade Negocio case 3: colecaoEmitirHistogramaEsgoto = this.emitirHistogramaEsgotoUnidadeNegocioGerenciaRegional(filtro); colecaoEmitirHistogramaEsgoto.addAll(this.pesquisarEmitirHistogramaEsgotoEstado(filtroClone)); break; // Estado por Elo Polo case 4: colecaoEmitirHistogramaEsgoto = this.emitirHistogramaEsgotoEloUnidadeNegocioGerenciaRegional(filtro); colecaoEmitirHistogramaEsgoto.addAll(this.pesquisarEmitirHistogramaEsgotoEstado(filtroClone)); break; // Estado por Localidade case 5: colecaoEmitirHistogramaEsgoto = this.emitirHistogramaEsgotoLocalidadeEloUnidadeNegocioGerenciaRegional(filtro); colecaoEmitirHistogramaEsgoto.addAll(this.pesquisarEmitirHistogramaEsgotoEstado(filtroClone)); break; // Ger�ncia Regional case 6: colecaoEmitirHistogramaEsgoto = this.emitirHistogramaEsgotoGerenciaRegional(filtro); break; // Ger�ncia Regional por Unidade Negocio case 7: colecaoEmitirHistogramaEsgoto = this.emitirHistogramaEsgotoUnidadeNegocioGerenciaRegional(filtro); break; // Ger�ncia Regional por Elo case 8: colecaoEmitirHistogramaEsgoto = this.emitirHistogramaEsgotoEloUnidadeNegocioGerenciaRegional(filtro); break; // Ger�ncia Regional por Localidade case 9: colecaoEmitirHistogramaEsgoto = this.emitirHistogramaEsgotoLocalidadeEloUnidadeNegocioGerenciaRegional(filtro); break; // Unidade de Negocio case 10: colecaoEmitirHistogramaEsgoto = this.emitirHistogramaEsgotoUnidadeNegocio(filtro); break; // Unidade de Negocio por Elo case 11: colecaoEmitirHistogramaEsgoto = this.emitirHistogramaEsgotoEloUnidadeNegocio(filtro); break; // Unidade de Negocio por Localidade case 12: colecaoEmitirHistogramaEsgoto = this.emitirHistogramaEsgotoLocalidadeEloUnidadeNegocio(filtro); break; // Elo Polo case 13: colecaoEmitirHistogramaEsgoto = this.emitirHistogramaEsgotoElo(filtro); break; // Elo Polo Por Localidade case 14: colecaoEmitirHistogramaEsgoto = this.emitirHistogramaEsgotoLocalidadeElo(filtro); break; // Elo Polo Por Setor Comercial case 15: colecaoEmitirHistogramaEsgoto = this.emitirHistogramaEsgotoSetorComercialLocalidadeElo(filtro); break; // Localidade case 16: colecaoEmitirHistogramaEsgoto = this.emitirHistogramaEsgotoLocalidade(filtro); break; // Localidade Por Setor Comercial case 17: colecaoEmitirHistogramaEsgoto = this.emitirHistogramaEsgotoSetorComercialLocalidade(filtro); break; // Localidade Por Quadra case 18: colecaoEmitirHistogramaEsgoto = this.emitirHistogramaEsgotoQuadraLocalidade(filtro); break; // Setor Comercial case 19: colecaoEmitirHistogramaEsgoto = this.emitirHistogramaEsgotoSetorComercial(filtro); break; // Setor Comercial Por Quadra case 20: colecaoEmitirHistogramaEsgoto = this.emitirHistogramaEsgotoQuadraSetorComercial(filtro); break; // Quadra case 21: colecaoEmitirHistogramaEsgoto = this.emitirHistogramaEsgotoQuadra(filtro); break; } return colecaoEmitirHistogramaEsgoto; } /** * [UC0600] Emitir Histograma de Esgoto - ESTADO * * @author Rafael Pinto * @date 05/11/2007 * * @param FiltrarEmitirHistogramaEsgotoHelper * * @return Collection<EmitirHistogramaEsgotoHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoHelper> pesquisarEmitirHistogramaEsgotoEstado( FiltrarEmitirHistogramaEsgotoHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoHelper> colecaoEmitirHistogramaEsgoto = new ArrayList(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoMedido = filtro .getColecaoConsumoFaixaLigacaoMedido(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoNaoMedido = filtro .getColecaoConsumoFaixaLigacaoNaoMedido(); LinkedHashMap hashMapTotalGeral = new LinkedHashMap(); if ( filtro.getIndicadorTarifaCategoria() != null && filtro.getIndicadorTarifaCategoria().intValue() == ConstantesSistema.NAO ){ filtro.setTipoGroupBy(" subcategoria.id, subcategoria.descricao "); } filtro.setOpcaoTotalizacao(1); try { if (filtro.getMedicao() != null) { if (filtro.getMedicao().shortValue() == ConstantesSistema.INDICADOR_USO_ATIVO) { filtro.setConsumoFaixaLigacaoIntervaloMedido( filtro.retornaOLimiteConsultaTotal(filtro.getMedicao())); } else { filtro.setConsumoFaixaLigacaoIntervaloNaoMedido( filtro.retornaOLimiteConsultaTotal(filtro.getMedicao())); } } else { filtro.setConsumoFaixaLigacaoIntervaloMedido( filtro.retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_ATIVO)); filtro.setConsumoFaixaLigacaoIntervaloNaoMedido( filtro.retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_DESATIVO)); } Collection<Object[]> colecaoTotalGeral = this.repositorioFaturamento.pesquisarEmitirHistogramaEsgoto(filtro); hashMapTotalGeral = this.montarEmitirHistogramaEsgotoTotalGeral(filtro, colecaoTotalGeral); } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } if (hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()) { String descricaoOpcaoTotalizacao = this.getControladorUtil().pesquisarParametrosDoSistema().getNomeEstado(); Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String estado = (String) iter.next(); EmitirHistogramaEsgotoHelper emitirHistogramaEsgotoHelperTotalGeral = (EmitirHistogramaEsgotoHelper) hashMapTotalGeral .get(estado); HashMap mapTotalizacaoCategoria = this.montarEmitirHistogramaEsgotoTotalGeralCategoria( emitirHistogramaEsgotoHelperTotalGeral.getColecaoEmitirHistogramaEsgotoDetalhe()); // Vai gerar Faixa para medido if (colecaoConsumoFaixaLigacaoMedido != null && !colecaoConsumoFaixaLigacaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral.getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral.getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral.getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_ATIVO, mapTotalizacaoCategoria); } // Vai gerar Faixa para N�o medido if (colecaoConsumoFaixaLigacaoNaoMedido != null && !colecaoConsumoFaixaLigacaoNaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoNaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral.getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral.getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral.getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_DESATIVO, mapTotalizacaoCategoria); } // Setar Total Geral emitirHistogramaEsgotoHelperTotalGeral.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistogramaEsgotoHelperTotalGeral.setTotalPercentualParcialLigacao(100.0); emitirHistogramaEsgotoHelperTotalGeral.setTotalPercentualParcialConsumo(100.0); emitirHistogramaEsgotoHelperTotalGeral.setTotalPercentualParcialFaturamento(100.0); colecaoEmitirHistogramaEsgoto.add(emitirHistogramaEsgotoHelperTotalGeral); } } return colecaoEmitirHistogramaEsgoto; } /** * [UC0600] Emitir Histograma de Esgoto - Gerencia Regional * * @author Rafael Pinto * @date 06/11/2007 * * @param FiltrarEmitirHistogramaEsgotoHelper * * @return Collection<EmitirHistogramaEsgotoHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoHelper> emitirHistogramaEsgotoGerenciaRegional( FiltrarEmitirHistogramaEsgotoHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoHelper> colecaoEmitirHistogramaEsgoto = new ArrayList<EmitirHistogramaEsgotoHelper>(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoMedido = filtro .getColecaoConsumoFaixaLigacaoMedido(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoNaoMedido = filtro .getColecaoConsumoFaixaLigacaoNaoMedido(); if ( filtro.getIndicadorTarifaCategoria() != null && filtro.getIndicadorTarifaCategoria().intValue() == ConstantesSistema.NAO ){ filtro.setTipoGroupBy(" histograma.gerenciaRegional.id , subcategoria.descricao "); } else { filtro.setTipoGroupBy("histograma.gerenciaRegional.id "); } LinkedHashMap hashMapTotalGeral = new LinkedHashMap(); filtro.setEloPolo(null); filtro.setUnidadeNegocio(null); filtro.setLocalidade(null); filtro.setConsumoFaixaLigacao(null); try { if (filtro.getMedicao() != null) { if (filtro.getMedicao().shortValue() == ConstantesSistema.INDICADOR_USO_ATIVO) { filtro.setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } else { filtro.setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } } else { filtro .setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_ATIVO)); filtro .setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_DESATIVO)); } Collection<Object[]> colecaoTotalGeral = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgoto(filtro); hashMapTotalGeral = this.montarEmitirHistogramaEsgotoTotalGeral( filtro, colecaoTotalGeral); } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } if (hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()) { FiltroGerenciaRegional filtroGerencia = null; Collection colecaoGerencia = null; GerenciaRegional gerenciaRegional = null; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String gerencia = (String) iter.next(); gerenciaRegional = new GerenciaRegional(); gerenciaRegional.setId(new Integer(gerencia)); filtro.setGerenciaRegional(gerenciaRegional); EmitirHistogramaEsgotoHelper emitirHistogramaEsgotoHelperTotalGeral = (EmitirHistogramaEsgotoHelper) hashMapTotalGeral .get(gerencia); HashMap mapTotalizacaoCategoria = this .montarEmitirHistogramaEsgotoTotalGeralCategoria(emitirHistogramaEsgotoHelperTotalGeral .getColecaoEmitirHistogramaEsgotoDetalhe()); filtroGerencia = new FiltroGerenciaRegional(); filtroGerencia.adicionarParametro(new ParametroSimples( FiltroGerenciaRegional.ID, gerencia)); // Recupera Gerencia Regional colecaoGerencia = this.getControladorUtil().pesquisar( filtroGerencia, GerenciaRegional.class.getName()); gerenciaRegional = (GerenciaRegional) Util .retonarObjetoDeColecao(colecaoGerencia); String descricaoOpcaoTotalizacao = gerenciaRegional.getId() + " - " + gerenciaRegional.getNome(); // Vai gerar Faixa para medido if (colecaoConsumoFaixaLigacaoMedido != null && !colecaoConsumoFaixaLigacaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral.getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral.getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral.getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_ATIVO, mapTotalizacaoCategoria); } // Vai gerar Faixa para N�o medido if (colecaoConsumoFaixaLigacaoNaoMedido != null && !colecaoConsumoFaixaLigacaoNaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoNaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral.getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral.getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral.getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_DESATIVO, mapTotalizacaoCategoria); } // Setar Total Geral emitirHistogramaEsgotoHelperTotalGeral.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistogramaEsgotoHelperTotalGeral.setTotalPercentualParcialLigacao(100.0); emitirHistogramaEsgotoHelperTotalGeral.setTotalPercentualParcialConsumo(100.0); emitirHistogramaEsgotoHelperTotalGeral.setTotalPercentualParcialFaturamento(100.0); colecaoEmitirHistogramaEsgoto.add(emitirHistogramaEsgotoHelperTotalGeral); } } return colecaoEmitirHistogramaEsgoto; } /** * [UC0600] Emitir Histograma de Esgoto * * Unidade Negocio e Gerencia Regional * * @author Rafael Pinto * @date 06/11/2007 * * @param FiltrarEmitirHistogramaEsgotoHelper * * @return Collection<EmitirHistogramaEsgotoHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoHelper> emitirHistogramaEsgotoUnidadeNegocioGerenciaRegional( FiltrarEmitirHistogramaEsgotoHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoHelper> colecaoEmitirHistogramaEsgoto = new ArrayList<EmitirHistogramaEsgotoHelper>(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoMedido = filtro .getColecaoConsumoFaixaLigacaoMedido(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoNaoMedido = filtro .getColecaoConsumoFaixaLigacaoNaoMedido(); if ( filtro.getIndicadorTarifaCategoria() != null && filtro.getIndicadorTarifaCategoria().intValue() == ConstantesSistema.NAO ) { filtro.setTipoGroupBy("histograma.unidadeNegocio.id, subcategoria.descricao , histograma.gerenciaRegional.id "); } else { filtro.setTipoGroupBy("histograma.unidadeNegocio.id,histograma.gerenciaRegional.id "); } LinkedHashMap hashMapTotalGeral = new LinkedHashMap(); Short indicadorMedicao = filtro.getMedicao(); try { if (filtro.getMedicao() != null) { if (filtro.getMedicao().shortValue() == ConstantesSistema.INDICADOR_USO_ATIVO) { filtro.setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } else { filtro.setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } } else { filtro .setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_ATIVO)); filtro .setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_DESATIVO)); } Collection<Object[]> colecaoTotalGeral = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgoto(filtro); hashMapTotalGeral = this.montarEmitirHistogramaEsgotoTotalGeral( filtro, colecaoTotalGeral); } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } if (hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()) { Iterator iter = hashMapTotalGeral.keySet().iterator(); int gerenciaAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; FiltroUnidadeNegocio filtroUnidade = null; Collection colecaoUnidade = null; UnidadeNegocio unidade = null; while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); UnidadeNegocio unidadeNegocio = new UnidadeNegocio(); unidadeNegocio.setId(new Integer(arrayNumeracao[0])); GerenciaRegional gerencia = new GerenciaRegional(); gerencia.setId(new Integer(arrayNumeracao[1])); filtro.setUnidadeNegocio(unidadeNegocio); if (gerenciaAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO) { gerenciaAnterior = gerencia.getId(); } // Mudou de Gerencia if (gerenciaAnterior != gerencia.getId().intValue()) { filtro.setOpcaoTotalizacao(2); GerenciaRegional gereAnterior = new GerenciaRegional(); gereAnterior.setId(gerenciaAnterior); filtro.setGerenciaRegional(gereAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoGerenciaRegional(filtro)); } filtro.setOpcaoTotalizacao(3); filtro.setGerenciaRegional(gerencia); EmitirHistogramaEsgotoHelper emitirHistogramaEsgotoHelperTotalGeral = (EmitirHistogramaEsgotoHelper) hashMapTotalGeral .get(chave); HashMap mapTotalizacaoCategoria = this .montarEmitirHistogramaEsgotoTotalGeralCategoria(emitirHistogramaEsgotoHelperTotalGeral .getColecaoEmitirHistogramaEsgotoDetalhe()); filtroUnidade = new FiltroUnidadeNegocio(); filtroUnidade.adicionarParametro(new ParametroSimples( FiltroUnidadeNegocio.ID, unidadeNegocio.getId())); filtroUnidade .adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); // Recupera Unidade Negocio colecaoUnidade = this.getControladorUtil().pesquisar( filtroUnidade, UnidadeNegocio.class.getName()); unidade = (UnidadeNegocio) Util .retonarObjetoDeColecao(colecaoUnidade); String descricaoOpcaoTotalizacao = unidade .getGerenciaRegional().getId() + "-" + unidade.getGerenciaRegional().getNomeAbreviado() + " / " + unidade.getId() + " - " + unidade.getNome(); // Vai gerar Faixa para medido if (colecaoConsumoFaixaLigacaoMedido != null && !colecaoConsumoFaixaLigacaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral.getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral.getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral.getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_ATIVO, mapTotalizacaoCategoria); } // Vai gerar Faixa para N�o medido if (colecaoConsumoFaixaLigacaoNaoMedido != null && !colecaoConsumoFaixaLigacaoNaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoNaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral.getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral.getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral.getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_DESATIVO, mapTotalizacaoCategoria); } filtro.setMedicao(indicadorMedicao); // Setar Total Geral emitirHistogramaEsgotoHelperTotalGeral.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistogramaEsgotoHelperTotalGeral.setTotalPercentualParcialLigacao(100.0); emitirHistogramaEsgotoHelperTotalGeral.setTotalPercentualParcialConsumo(100.0); emitirHistogramaEsgotoHelperTotalGeral.setTotalPercentualParcialFaturamento(100.0); colecaoEmitirHistogramaEsgoto.add(emitirHistogramaEsgotoHelperTotalGeral); gerenciaAnterior = gerencia.getId(); } filtro.setOpcaoTotalizacao(2); GerenciaRegional gereAnterior = new GerenciaRegional(); gereAnterior.setId(gerenciaAnterior); filtro.setGerenciaRegional(gereAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoGerenciaRegional(filtro)); } return colecaoEmitirHistogramaEsgoto; } /** * [UC0600] Emitir Histograma de Esgoto * * Elo e Unidade Negocio e Gerencia Regional * * @author Rafael Pinto * @date 06/11/2007 * * @param FiltrarEmitirHistogramaEsgotoHelper * * @return Collection<EmitirHistogramaEsgotoHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoHelper> emitirHistogramaEsgotoEloUnidadeNegocioGerenciaRegional( FiltrarEmitirHistogramaEsgotoHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoHelper> colecaoEmitirHistogramaEsgoto = new ArrayList<EmitirHistogramaEsgotoHelper>(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoMedido = filtro .getColecaoConsumoFaixaLigacaoMedido(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoNaoMedido = filtro .getColecaoConsumoFaixaLigacaoNaoMedido(); if ( filtro.getIndicadorTarifaCategoria() != null && filtro.getIndicadorTarifaCategoria().intValue() == ConstantesSistema.NAO ) { filtro.setTipoGroupBy(" histograma.localidadeEelo.id," + "subcategoria.descricao, histograma.unidadeNegocio.id,histograma.gerenciaRegional.id "); } else { filtro .setTipoGroupBy("histograma.localidadeElo.id," + "histograma.unidadeNegocio.id,histograma.gerenciaRegional.id "); } LinkedHashMap hashMapTotalGeral = new LinkedHashMap(); Short indicadorMedicao = filtro.getMedicao(); try { if (filtro.getMedicao() != null) { if (filtro.getMedicao().shortValue() == ConstantesSistema.INDICADOR_USO_ATIVO) { filtro.setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } else { filtro.setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } } else { filtro .setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_ATIVO)); filtro .setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_DESATIVO)); } Collection<Object[]> colecaoTotalGeral = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgoto(filtro); hashMapTotalGeral = this.montarEmitirHistogramaEsgotoTotalGeral( filtro, colecaoTotalGeral); } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } if (hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()) { Iterator iter = hashMapTotalGeral.keySet().iterator(); int gerenciaAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; int unidadeNegocioAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; FiltroLocalidade filtroLocalidade = null; Collection colecaoLocalidade = null; Localidade eloPolo = null; UnidadeNegocio unidadeNegocio = null; GerenciaRegional gerencia = null; while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); eloPolo = new Localidade(); eloPolo.setId(new Integer(arrayNumeracao[0])); unidadeNegocio = new UnidadeNegocio(); unidadeNegocio.setId(new Integer(arrayNumeracao[1])); gerencia = new GerenciaRegional(); gerencia.setId(new Integer(arrayNumeracao[2])); if (unidadeNegocioAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO) { unidadeNegocioAnterior = unidadeNegocio.getId(); } if (gerenciaAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO) { gerenciaAnterior = gerencia.getId(); } filtro.setMedicao(indicadorMedicao); filtro.setEloPolo(eloPolo); filtro.setUnidadeNegocio(unidadeNegocio); filtro.setGerenciaRegional(gerencia); // Mudou de Unidade if (unidadeNegocioAnterior != unidadeNegocio.getId().intValue()) { filtro.setOpcaoTotalizacao(10); UnidadeNegocio uniAnterior = new UnidadeNegocio(); uniAnterior.setId(unidadeNegocioAnterior); filtro.setUnidadeNegocio(uniAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoUnidadeNegocio(filtro)); } filtro.setMedicao(indicadorMedicao); // Mudou de Gerencia if (gerenciaAnterior != gerencia.getId().intValue()) { GerenciaRegional gereAnterior = new GerenciaRegional(); gereAnterior.setId(gerenciaAnterior); filtro.setGerenciaRegional(gereAnterior); filtro.setOpcaoTotalizacao(2); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoGerenciaRegional(filtro)); } filtro.setEloPolo(eloPolo); filtro.setUnidadeNegocio(unidadeNegocio); filtro.setGerenciaRegional(gerencia); filtro.setMedicao(indicadorMedicao); filtro.setOpcaoTotalizacao(4); EmitirHistogramaEsgotoHelper emitirHistogramaEsgotoHelperTotalGeral = (EmitirHistogramaEsgotoHelper) hashMapTotalGeral .get(chave); HashMap mapTotalizacaoCategoria = this .montarEmitirHistogramaEsgotoTotalGeralCategoria(emitirHistogramaEsgotoHelperTotalGeral .getColecaoEmitirHistogramaEsgotoDetalhe()); filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, eloPolo.getId())); filtroLocalidade .adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); filtroLocalidade .adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroLocalidade .adicionarCaminhoParaCarregamentoEntidade("unidadeNegocio"); // Recupera Localidade colecaoLocalidade = this.getControladorUtil().pesquisar( filtroLocalidade, Localidade.class.getName()); eloPolo = (Localidade) Util .retonarObjetoDeColecao(colecaoLocalidade); String descricaoOpcaoTotalizacao = eloPolo .getGerenciaRegional().getId() + "-" + eloPolo.getGerenciaRegional().getNomeAbreviado() + " / " + eloPolo.getUnidadeNegocio().getId() + "-" + eloPolo.getUnidadeNegocio().getNomeAbreviado() + " / " + eloPolo.getId() + "-" + eloPolo.getDescricao(); // Vai gerar Faixa para medido if (colecaoConsumoFaixaLigacaoMedido != null && !colecaoConsumoFaixaLigacaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_ATIVO, mapTotalizacaoCategoria); } // Vai gerar Faixa para N�o medido if (colecaoConsumoFaixaLigacaoNaoMedido != null && !colecaoConsumoFaixaLigacaoNaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoNaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_DESATIVO, mapTotalizacaoCategoria); } filtro.setMedicao(indicadorMedicao); // Setar Total Geral emitirHistogramaEsgotoHelperTotalGeral .setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialLigacao(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialConsumo(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialFaturamento(100.0); colecaoEmitirHistogramaEsgoto .add(emitirHistogramaEsgotoHelperTotalGeral); gerenciaAnterior = gerencia.getId(); unidadeNegocioAnterior = unidadeNegocio.getId(); } filtro.setMedicao(indicadorMedicao); filtro.setOpcaoTotalizacao(10); UnidadeNegocio uniAnterior = new UnidadeNegocio(); uniAnterior.setId(unidadeNegocioAnterior); filtro.setUnidadeNegocio(uniAnterior); colecaoEmitirHistogramaEsgoto.addAll(this.emitirHistogramaEsgotoUnidadeNegocio(filtro)); filtro.setMedicao(indicadorMedicao); filtro.setOpcaoTotalizacao(2); GerenciaRegional gereAnterior = new GerenciaRegional(); gereAnterior.setId(gerenciaAnterior); filtro.setGerenciaRegional(gereAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoGerenciaRegional(filtro)); } return colecaoEmitirHistogramaEsgoto; } /** * [UC0600] Emitir Histograma de Esgoto * * Total Geral * * @author Rafael Pinto * @date 05/11/2007 * * @param FiltrarEmitirHistogramaEsgotoHelper,Collection<Object[]> * * @return LinkedHashMap * @throws ControladorException */ private LinkedHashMap montarEmitirHistogramaEsgotoTotalGeral( FiltrarEmitirHistogramaEsgotoHelper filtro, Collection<Object[]> colecao) throws ControladorException { LinkedHashMap hashMapTotalizacao = new LinkedHashMap(); if (colecao != null && !colecao.isEmpty()) { Iterator iterator = colecao.iterator(); Collection<EmitirHistogramaEsgotoDetalheHelper> colecaoEmitirHistogramaEsgotoDetalhe = null; while (iterator.hasNext()) { Object[] objeto = (Object[]) iterator.next(); EmitirHistogramaEsgotoDetalheHelper detalhe = new EmitirHistogramaEsgotoDetalheHelper(); detalhe.setDescricaoCategoria((String) objeto[1]); detalhe.setQuantidadeLigacoes((Integer) objeto[2]); detalhe.setQuantidadeEconomias((Integer) objeto[3]); detalhe.setValorFaturado((BigDecimal) objeto[4]); if ( filtro.getIndicadorTarifaCategoria() != null && filtro.getIndicadorTarifaCategoria().intValue() == ConstantesSistema.NAO ){ detalhe.setDescricaoSubcategoria((String) objeto[6]); } String tipoTotalizacao = "0"; GerenciaRegional gerencia = null; UnidadeNegocio unidadeNegocio = null; Localidade eloPolo = null; Localidade localidade = null; SetorComercial setorComercial = null; Quadra quadra = null; int chaveQuadra = 0; int chaveSetorComercial = 0; int chaveLocalidade = 0; int chaveElo = 0; int chaveUnidade = 0; int chaveGerencia = 0; if (filtro.getOpcaoTotalizacao() == 2 || filtro.getOpcaoTotalizacao() == 6) { tipoTotalizacao = ((Integer) objeto[5]).toString(); gerencia = new GerenciaRegional(); gerencia.setId(new Integer(tipoTotalizacao)); filtro.setGerenciaRegional(gerencia); } else if (filtro.getOpcaoTotalizacao() == 3 || filtro.getOpcaoTotalizacao() == 7) { chaveUnidade = (Integer) objeto[5]; if ( filtro.getIndicadorTarifaCategoria() != null && filtro.getIndicadorTarifaCategoria().intValue() == ConstantesSistema.NAO ) { chaveGerencia = (Integer) objeto[7]; } else { chaveGerencia = (Integer) objeto[6]; } tipoTotalizacao = chaveUnidade + ";" + chaveGerencia; unidadeNegocio = new UnidadeNegocio(); unidadeNegocio.setId(chaveUnidade); filtro.setUnidadeNegocio(unidadeNegocio); gerencia = new GerenciaRegional(); gerencia.setId(chaveGerencia); filtro.setGerenciaRegional(gerencia); } else if (filtro.getOpcaoTotalizacao() == 4 || filtro.getOpcaoTotalizacao() == 8) { if( filtro.getIndicadorTarifaCategoria() != null && filtro.getIndicadorTarifaCategoria().intValue() == ConstantesSistema.NAO ) { chaveElo = (Integer) objeto[5]; chaveUnidade = (Integer) objeto[7]; chaveGerencia = (Integer) objeto[8]; } else { chaveElo = (Integer) objeto[5]; chaveUnidade = (Integer) objeto[6]; chaveGerencia = (Integer) objeto[7]; } tipoTotalizacao = chaveElo + ";" + chaveUnidade + ";" + chaveGerencia; eloPolo = new Localidade(); eloPolo.setId(chaveElo); filtro.setEloPolo(eloPolo); unidadeNegocio = new UnidadeNegocio(); unidadeNegocio.setId(chaveUnidade); filtro.setUnidadeNegocio(unidadeNegocio); gerencia = new GerenciaRegional(); gerencia.setId(chaveGerencia); filtro.setGerenciaRegional(gerencia); } else if (filtro.getOpcaoTotalizacao() == 5 || filtro.getOpcaoTotalizacao() == 9) { if ( filtro.getIndicadorTarifaCategoria() != null && filtro.getIndicadorTarifaCategoria().intValue() == ConstantesSistema.NAO ) { chaveLocalidade = (Integer) objeto[5]; chaveElo = (Integer) objeto[7]; chaveUnidade = (Integer) objeto[8]; chaveGerencia = (Integer) objeto[9]; } else { chaveLocalidade = (Integer) objeto[5]; chaveElo = (Integer) objeto[6]; chaveUnidade = (Integer) objeto[7]; chaveGerencia = (Integer) objeto[8]; } tipoTotalizacao = chaveLocalidade + ";" + chaveElo + ";" + chaveUnidade + ";" + chaveGerencia; localidade = new Localidade(); localidade.setId(chaveLocalidade); filtro.setLocalidade(localidade); eloPolo = new Localidade(); eloPolo.setId(chaveElo); filtro.setEloPolo(eloPolo); unidadeNegocio = new UnidadeNegocio(); unidadeNegocio.setId(chaveUnidade); filtro.setUnidadeNegocio(unidadeNegocio); gerencia = new GerenciaRegional(); gerencia.setId(chaveGerencia); filtro.setGerenciaRegional(gerencia); } else if (filtro.getOpcaoTotalizacao() == 10) { chaveUnidade = (Integer) objeto[5]; tipoTotalizacao = "" + chaveUnidade; unidadeNegocio = new UnidadeNegocio(); unidadeNegocio.setId(chaveUnidade); filtro.setUnidadeNegocio(unidadeNegocio); } else if (filtro.getOpcaoTotalizacao() == 11) { chaveElo = (Integer) objeto[5]; chaveUnidade = (Integer) objeto[6]; tipoTotalizacao = chaveElo + ";" + chaveUnidade; eloPolo = new Localidade(); eloPolo.setId(chaveElo); filtro.setEloPolo(eloPolo); unidadeNegocio = new UnidadeNegocio(); unidadeNegocio.setId(chaveUnidade); filtro.setUnidadeNegocio(unidadeNegocio); } else if (filtro.getOpcaoTotalizacao() == 12) { chaveLocalidade = (Integer) objeto[5]; chaveElo = (Integer) objeto[6]; chaveUnidade = (Integer) objeto[7]; tipoTotalizacao = chaveLocalidade + ";" + chaveElo + ";" + chaveUnidade; localidade = new Localidade(); localidade.setId(chaveLocalidade); filtro.setLocalidade(localidade); eloPolo = new Localidade(); eloPolo.setId(chaveElo); filtro.setEloPolo(eloPolo); unidadeNegocio = new UnidadeNegocio(); unidadeNegocio.setId(chaveUnidade); filtro.setUnidadeNegocio(unidadeNegocio); } else if (filtro.getOpcaoTotalizacao() == 13) { chaveElo = (Integer) objeto[5]; tipoTotalizacao = "" + chaveElo; eloPolo = new Localidade(); eloPolo.setId(chaveElo); filtro.setEloPolo(eloPolo); } else if (filtro.getOpcaoTotalizacao() == 14) { chaveLocalidade = (Integer) objeto[5]; chaveElo = (Integer) objeto[6]; tipoTotalizacao = chaveLocalidade + ";" + chaveElo; localidade = new Localidade(); localidade.setId(chaveLocalidade); filtro.setLocalidade(localidade); eloPolo = new Localidade(); eloPolo.setId(chaveElo); filtro.setEloPolo(eloPolo); } else if (filtro.getOpcaoTotalizacao() == 15) { chaveSetorComercial = (Integer) objeto[5]; chaveLocalidade = (Integer) objeto[6]; chaveElo = (Integer) objeto[7]; tipoTotalizacao = chaveSetorComercial + ";" + chaveLocalidade + ";" + chaveElo; filtro.setCodigoSetorComercial(chaveSetorComercial); localidade = new Localidade(); localidade.setId(chaveLocalidade); filtro.setLocalidade(localidade); eloPolo = new Localidade(); eloPolo.setId(chaveElo); filtro.setEloPolo(eloPolo); } else if (filtro.getOpcaoTotalizacao() == 16) { chaveLocalidade = (Integer) objeto[5]; tipoTotalizacao = "" + chaveLocalidade; localidade = new Localidade(); localidade.setId(chaveLocalidade); filtro.setLocalidade(localidade); } else if (filtro.getOpcaoTotalizacao() == 17) { chaveSetorComercial = (Integer) objeto[5]; chaveLocalidade = (Integer) objeto[6]; tipoTotalizacao = chaveSetorComercial + ";" + chaveLocalidade; filtro.setCodigoSetorComercial(chaveSetorComercial); localidade = new Localidade(); localidade.setId(chaveLocalidade); filtro.setLocalidade(localidade); } else if (filtro.getOpcaoTotalizacao() == 18) { chaveQuadra = (Integer) objeto[5]; chaveSetorComercial = (Integer) objeto[6]; chaveLocalidade = (Integer) objeto[7]; tipoTotalizacao = chaveQuadra + ";" + chaveSetorComercial + ";" + chaveLocalidade; filtro.setNumeroQuadra(chaveQuadra); setorComercial = new SetorComercial(); setorComercial.setId(chaveSetorComercial); filtro.setSetorComercial(setorComercial); localidade = new Localidade(); localidade.setId(chaveLocalidade); filtro.setLocalidade(localidade); } else if (filtro.getOpcaoTotalizacao() == 19) { chaveSetorComercial = (Integer) objeto[5]; tipoTotalizacao = "" + chaveSetorComercial; setorComercial = new SetorComercial(); setorComercial.setId(chaveSetorComercial); filtro.setSetorComercial(setorComercial); } else if (filtro.getOpcaoTotalizacao() == 20) { chaveQuadra = (Integer) objeto[5]; chaveSetorComercial = (Integer) objeto[6]; tipoTotalizacao = chaveQuadra + ";" + chaveSetorComercial; filtro.setNumeroQuadra(chaveQuadra); setorComercial = new SetorComercial(); setorComercial.setId(chaveSetorComercial); filtro.setSetorComercial(setorComercial); } else if (filtro.getOpcaoTotalizacao() == 21) { chaveQuadra = (Integer) objeto[5]; tipoTotalizacao = "" + chaveQuadra; quadra = new Quadra(); quadra.setId(chaveQuadra); filtro.setQuadra(quadra); } try { Object[] somatorio = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgotoTotalGeral(filtro, null); Integer quantidadeVolumeMedido; Integer quantidadeVolumeEstimado; if ( filtro.getIndicadorTarifaCategoria() != null && filtro.getIndicadorTarifaCategoria().intValue() == ConstantesSistema.SIM ){ Categoria categ = new Categoria(); categ.setId((Integer) objeto[0]); quantidadeVolumeMedido = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgotoVolumeConsumo(filtro, ConstantesSistema.INDICADOR_USO_ATIVO, categ, null); quantidadeVolumeEstimado = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgotoVolumeConsumo(filtro, ConstantesSistema.INDICADOR_USO_DESATIVO, categ, null); } else { Subcategoria subcateg = new Subcategoria(); subcateg.setId((Integer) objeto[5]); Categoria categoria = new Categoria(); categoria.setId( (Integer) objeto[0] ); subcateg.setCategoria( categoria ); if ( filtro.getIndicadorTarifaCategoria() != null && filtro.getIndicadorTarifaCategoria().intValue() == ConstantesSistema.NAO ) { filtro.setTipoGroupBy(" histograma.localidadeEelo.id," + "subcategoria.descricao, histograma.unidadeNegocio.id,histograma.gerenciaRegional.id "); } quantidadeVolumeMedido = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgotoVolumeConsumo(filtro, ConstantesSistema.INDICADOR_USO_ATIVO, subcateg, null); quantidadeVolumeEstimado = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgotoVolumeConsumo(filtro, ConstantesSistema.INDICADOR_USO_DESATIVO, subcateg, null); } if (quantidadeVolumeMedido != null) { detalhe .setQuantidadeVolumeMedido(quantidadeVolumeMedido); } if (quantidadeVolumeEstimado != null) { detalhe .setQuantidadeVolumeEstimado(quantidadeVolumeEstimado); } BigDecimal percentualParcialLigacao = new BigDecimal(0.0); BigDecimal percentualParcialFaturamento = new BigDecimal( 0.0); BigDecimal percentualParcialConsumo = new BigDecimal(0.0); if (((Integer) somatorio[0]).intValue() != 0) { percentualParcialLigacao = Util .calcularPercentualBigDecimal("" + detalhe.getQuantidadeLigacoes(), "" + somatorio[0]); } if (((Integer) somatorio[1]).intValue() != 0) { percentualParcialConsumo = Util .calcularPercentualBigDecimal("" + detalhe.getQuantidadeVolumeTotal(), "" + somatorio[1]); } if (((BigDecimal) somatorio[2]).compareTo(new BigDecimal( 0.0)) > 0) { percentualParcialFaturamento = Util .calcularPercentualBigDecimal(detalhe .getValorFaturado(), new BigDecimal("" + somatorio[2])); } detalhe .setPercentualParcialLigacao(percentualParcialLigacao .doubleValue()); detalhe .setPercentualParcialConsumo(percentualParcialConsumo .doubleValue()); detalhe .setPercentualParcialFaturamento(percentualParcialFaturamento .doubleValue()); } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } if (hashMapTotalizacao.get(tipoTotalizacao) != null) { EmitirHistogramaEsgotoHelper emitirHistogramaEsgotoHelper = (EmitirHistogramaEsgotoHelper) hashMapTotalizacao .get(tipoTotalizacao); int totalLigacoes = emitirHistogramaEsgotoHelper .getTotalQuantidadeLigacoes(); int totalEconomias = emitirHistogramaEsgotoHelper .getTotalQuantidadeEconomias(); int volumeEstimado = emitirHistogramaEsgotoHelper .getTotalQuantidadeVolumeEstimado(); int volumeMedido = emitirHistogramaEsgotoHelper .getTotalQuantidadeVolumeMedido(); BigDecimal totalValorFaturado = emitirHistogramaEsgotoHelper .getTotalValorFaturado(); emitirHistogramaEsgotoHelper .setTotalQuantidadeLigacoes(totalLigacoes + detalhe.getQuantidadeLigacoes()); emitirHistogramaEsgotoHelper .setTotalQuantidadeEconomias(totalEconomias + detalhe.getQuantidadeEconomias()); emitirHistogramaEsgotoHelper .setTotalValorFaturado(totalValorFaturado .add(detalhe.getValorFaturado())); emitirHistogramaEsgotoHelper .setTotalQuantidadeVolumeMedido(volumeMedido + detalhe.getQuantidadeVolumeMedido()); emitirHistogramaEsgotoHelper .setTotalQuantidadeVolumeEstimado(volumeEstimado + detalhe.getQuantidadeVolumeEstimado()); colecaoEmitirHistogramaEsgotoDetalhe = emitirHistogramaEsgotoHelper .getColecaoEmitirHistogramaEsgotoDetalhe(); colecaoEmitirHistogramaEsgotoDetalhe.add(detalhe); emitirHistogramaEsgotoHelper .setColecaoEmitirHistogramaEsgotoDetalhe(colecaoEmitirHistogramaEsgotoDetalhe); hashMapTotalizacao.put(tipoTotalizacao, emitirHistogramaEsgotoHelper); } else { EmitirHistogramaEsgotoHelper emitirHistogramaEsgotoHelper = new EmitirHistogramaEsgotoHelper(); emitirHistogramaEsgotoHelper .setDescricaoTitulo("TOTAL GERAL"); emitirHistogramaEsgotoHelper .setTotalQuantidadeLigacoes(detalhe .getQuantidadeLigacoes()); emitirHistogramaEsgotoHelper .setTotalQuantidadeEconomias(detalhe .getQuantidadeEconomias()); emitirHistogramaEsgotoHelper .setTotalQuantidadeVolumeMedido(detalhe .getQuantidadeVolumeMedido()); emitirHistogramaEsgotoHelper .setTotalQuantidadeVolumeEstimado(detalhe .getQuantidadeVolumeEstimado()); emitirHistogramaEsgotoHelper.setTotalValorFaturado(detalhe .getValorFaturado()); colecaoEmitirHistogramaEsgotoDetalhe = new ArrayList(); colecaoEmitirHistogramaEsgotoDetalhe.add(detalhe); emitirHistogramaEsgotoHelper .setColecaoEmitirHistogramaEsgotoDetalhe(colecaoEmitirHistogramaEsgotoDetalhe); hashMapTotalizacao.put(tipoTotalizacao, emitirHistogramaEsgotoHelper); } } } return hashMapTotalizacao; } /** * [UC0600] Emitir Histograma de Esgoto * * Total Geral Por Categoria * * @author Rafael Pinto * @date 05/11/2007 * * @param Collection<EmitirHistogramaEsgotoDetalheHelper> * * @return LinkedHashMap * @throws ControladorException */ private LinkedHashMap montarEmitirHistogramaEsgotoTotalGeralCategoria( Collection<EmitirHistogramaEsgotoDetalheHelper> colecao) throws ControladorException { LinkedHashMap hashMapTotalizacao = new LinkedHashMap(); if (colecao != null && !colecao.isEmpty()) { Iterator iterator = colecao.iterator(); while (iterator.hasNext()) { EmitirHistogramaEsgotoDetalheHelper detalhe = (EmitirHistogramaEsgotoDetalheHelper) iterator .next(); Object[] objeto = new Object[3]; objeto[0] = detalhe.getQuantidadeLigacoes(); objeto[1] = detalhe.getQuantidadeVolumeTotal(); objeto[2] = detalhe.getValorFaturado(); hashMapTotalizacao.put(detalhe.getDescricaoCategoria(), objeto); } } return hashMapTotalizacao; } /** * [UC0600] Emitir Histograma de Esgoto * * Gera as linhas Por Faixa de Consumo * * @author Rafael Pinto * @date 05/11/2007 * * @param Collection * <Object[]> * * @throws ControladorException */ private void montarEmitirHistogramaEsgotoFaixaConsumo( Collection<ConsumoFaixaLigacao> colecao, FiltrarEmitirHistogramaEsgotoHelper filtro, int totalQuantidadeLigacoesTotalGeral, BigDecimal totalValorFaturado, int totalQuantidadeVolumeTotal, Collection<EmitirHistogramaEsgotoHelper> colecaoEmitirHistogramaEsgoto, String descricaoOpcaoTotalizacao, short indicadorMedicao, HashMap mapTotalizacaoGategoria) throws ControladorException { // Gera os a linhas com a Faixa (PAI) // depois os totalizadores por categoria(FILHO) if (colecao != null && !colecao.isEmpty()) { Collection<Object[]> colecaoRetorno = null; EmitirHistogramaEsgotoHelper emitirTotalizadorIndicador = null; String descricaoTitulo = "TOTAL C/HID."; if (indicadorMedicao != ConstantesSistema.INDICADOR_USO_ATIVO .shortValue()) { descricaoTitulo = "TOTAL S/HID."; filtro.setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(indicadorMedicao)); filtro.setConsumoFaixaLigacaoIntervaloMedido(null); } else { filtro.setConsumoFaixaLigacaoIntervaloNaoMedido(null); filtro.setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(indicadorMedicao)); } try { filtro.setConsumoFaixaLigacao(null); filtro.setMedicao(indicadorMedicao); colecaoRetorno = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgoto(filtro); filtro.setMedicao(null); emitirTotalizadorIndicador = this .montarEmitirHistogramaEsgotoDetalhe(colecaoRetorno, descricaoTitulo, filtro, descricaoOpcaoTotalizacao, totalQuantidadeLigacoesTotalGeral, totalValorFaturado, totalQuantidadeVolumeTotal, indicadorMedicao, mapTotalizacaoGategoria, null, null); } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } if (emitirTotalizadorIndicador != null) { // chave(Id categoria),valores(BigDecimal[3] percentuais) LinkedHashMap mapPercentualParcialPorCategoriaAnterior = new LinkedHashMap(); LinkedHashMap mapPercentualParcialPorTotalAnterior = new LinkedHashMap(); filtro.setMedicao(indicadorMedicao); Iterator itera = colecao.iterator(); while (itera.hasNext()) { ConsumoFaixaLigacao consumo = (ConsumoFaixaLigacao) itera .next(); filtro.setConsumoFaixaLigacao(consumo); try { descricaoTitulo = consumo.getNumeroFaixaInicio() + " a " + consumo.getNumeroFaixaFim(); colecaoRetorno = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgoto(filtro); EmitirHistogramaEsgotoHelper emitirFaixa = this.montarEmitirHistogramaEsgotoDetalhe( colecaoRetorno, descricaoTitulo, filtro, descricaoOpcaoTotalizacao, emitirTotalizadorIndicador.getTotalQuantidadeLigacoes(), emitirTotalizadorIndicador.getTotalValorFaturado(), emitirTotalizadorIndicador.getTotalQuantidadeVolumeTotal(), indicadorMedicao, null, mapPercentualParcialPorCategoriaAnterior, mapPercentualParcialPorTotalAnterior); if (emitirFaixa != null) { colecaoEmitirHistogramaEsgoto.add(emitirFaixa); } } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } } if (emitirTotalizadorIndicador != null) { colecaoEmitirHistogramaEsgoto.add(emitirTotalizadorIndicador); } }// fim do emitir totalizador } } /** * [UC0600] Emitir Histograma de Esgoto * * Linha Faixa * * @author Rafael Pinto * @date 05/11/2007 * * @return EmitirHistogramaEsgotoHelper * @throws ControladorException */ private EmitirHistogramaEsgotoHelper montarEmitirHistogramaEsgotoDetalhe( Collection<Object[]> colecao, String descricaoTitulo, FiltrarEmitirHistogramaEsgotoHelper filtro, String descricaoOpcaoTotalizacao, int quantidadeLigacaoIndicador, BigDecimal valorFaturado, int totalQuantidadeVolumeTotal, short indicadorHidrometro, HashMap mapTotalizacaoGategoria, LinkedHashMap mapPercentualParcialPorCategoriaAnterior, LinkedHashMap mapPercentualParcialPorTotalAnterior) throws ControladorException { EmitirHistogramaEsgotoHelper emitirHistogramaEsgotoHelper = null; if (colecao != null && !colecao.isEmpty()) { Iterator iterator = colecao.iterator(); Collection<EmitirHistogramaEsgotoDetalheHelper> colecaoEmitirHistogramaEsgotoDetalhe = new ArrayList(); EmitirHistogramaEsgotoDetalheHelper detalhe = null; int totalLigacoes = 0; int totalEconomias = 0; int volumeMedido = 0; int volumeEstimado = 0; BigDecimal totalValorFaturado = new BigDecimal("0.0"); while (iterator.hasNext()) { Object[] objeto = (Object[]) iterator.next(); detalhe = new EmitirHistogramaEsgotoDetalheHelper(); detalhe.setDescricaoCategoria((String) objeto[1]); detalhe.setQuantidadeLigacoes((Integer) objeto[2]); detalhe.setQuantidadeEconomias((Integer) objeto[3]); detalhe.setValorFaturado((BigDecimal) objeto[4]); if ( filtro.getIndicadorTarifaCategoria().intValue() == ConstantesSistema.NAO ){ detalhe.setDescricaoSubcategoria((String) objeto[6]); } try { Categoria categ = new Categoria(); categ.setId((Integer) objeto[0]); Object[] somatorio = null; if (mapTotalizacaoGategoria != null) { somatorio = (Object[]) mapTotalizacaoGategoria .get(detalhe.getDescricaoCategoria()); } else { somatorio = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgotoTotalGeral( filtro, categ); } if (somatorio == null) { somatorio = new Object[3]; somatorio[0] = 0; somatorio[1] = 0; somatorio[2] = new BigDecimal(0.0); } BigDecimal percentualParcialLigacao = new BigDecimal(0.0); BigDecimal percentualParcialFaturamento = new BigDecimal( 0.0); BigDecimal percentualParcialConsumo = new BigDecimal(0.0); if (((Integer) somatorio[0]).intValue() != 0) { percentualParcialLigacao = Util .calcularPercentualBigDecimal("" + detalhe.getQuantidadeLigacoes(), "" + somatorio[0]); } detalhe .setPercentualParcialLigacao(percentualParcialLigacao .doubleValue()); if (((BigDecimal) somatorio[2]).compareTo(new BigDecimal( 0.0)) > 0) { percentualParcialFaturamento = Util .calcularPercentualBigDecimal(detalhe .getValorFaturado(), new BigDecimal("" + somatorio[2])); } detalhe .setPercentualParcialFaturamento(percentualParcialFaturamento .doubleValue()); if (indicadorHidrometro == ConstantesSistema.INDICADOR_USO_ATIVO .shortValue()) { Integer quantidadeVolumeMedido; Integer quantidadeVolumeEstimado; if ( filtro.getIndicadorTarifaCategoria().intValue() == ConstantesSistema.SIM ){ categ = new Categoria(); categ.setId((Integer) objeto[0]); quantidadeVolumeMedido = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgotoVolumeConsumo(filtro, ConstantesSistema.INDICADOR_USO_ATIVO, categ, null); quantidadeVolumeEstimado = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgotoVolumeConsumo(filtro, ConstantesSistema.INDICADOR_USO_DESATIVO, categ, null); } else { Subcategoria subcateg = new Subcategoria(); subcateg.setId((Integer) objeto[5]); Categoria categoria = new Categoria(); categoria.setId( (Integer) objeto[0] ); subcateg.setCategoria( categoria ); quantidadeVolumeMedido = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgotoVolumeConsumo(filtro, ConstantesSistema.INDICADOR_USO_ATIVO, subcateg, null); quantidadeVolumeEstimado = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgotoVolumeConsumo(filtro, ConstantesSistema.INDICADOR_USO_DESATIVO, subcateg, null); } if (quantidadeVolumeMedido != null) { detalhe .setQuantidadeVolumeMedido(quantidadeVolumeMedido); } if (quantidadeVolumeEstimado != null) { detalhe .setQuantidadeVolumeEstimado(quantidadeVolumeEstimado); } } else { Integer quantidadeVolumeEstimado; if ( filtro.getIndicadorTarifaCategoria().intValue() == ConstantesSistema.SIM ){ quantidadeVolumeEstimado = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgotoVolumeConsumo( filtro, ConstantesSistema.INDICADOR_USO_DESATIVO, categ, indicadorHidrometro); } else { Subcategoria subcateg = new Subcategoria(); subcateg.setId((Integer) objeto[5]); Categoria categoria = new Categoria(); categoria.setId( (Integer) objeto[0] ); subcateg.setCategoria( categoria ); quantidadeVolumeEstimado = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgotoVolumeConsumo( filtro, ConstantesSistema.INDICADOR_USO_DESATIVO, subcateg, indicadorHidrometro); } if (quantidadeVolumeEstimado != null) { detalhe .setQuantidadeVolumeEstimado(quantidadeVolumeEstimado); } } if (((Integer) somatorio[1]).intValue() != 0) { percentualParcialConsumo = Util .calcularPercentualBigDecimal("" + detalhe.getQuantidadeVolumeTotal(), "" + somatorio[1]); } detalhe .setPercentualParcialConsumo(percentualParcialConsumo .doubleValue()); if (mapPercentualParcialPorCategoriaAnterior != null) { BigDecimal[] valoresPercentual = (BigDecimal[]) mapPercentualParcialPorCategoriaAnterior .get(categ.getId()); BigDecimal percentualAcumuladoLigacao = new BigDecimal( 0.0); BigDecimal percentualAcumuladoConsumo = new BigDecimal( 0.0); BigDecimal percentualAcumuladoFaturamento = new BigDecimal( 0.0); if (valoresPercentual != null) { percentualAcumuladoLigacao = percentualParcialLigacao .add(valoresPercentual[0]); percentualAcumuladoConsumo = percentualParcialConsumo .add(valoresPercentual[1]); percentualAcumuladoFaturamento = percentualParcialFaturamento .add(valoresPercentual[2]); } else { percentualAcumuladoLigacao = percentualParcialLigacao; percentualAcumuladoConsumo = percentualParcialConsumo; percentualAcumuladoFaturamento = percentualParcialFaturamento; } detalhe .setPercentualAcumuladoLigacao(percentualAcumuladoLigacao .doubleValue()); detalhe .setPercentualAcumuladoConsumo(percentualAcumuladoConsumo .doubleValue()); detalhe .setPercentualAcumuladoFaturamento(percentualAcumuladoFaturamento .doubleValue()); valoresPercentual = new BigDecimal[3]; valoresPercentual[0] = percentualAcumuladoLigacao; valoresPercentual[1] = percentualAcumuladoConsumo; valoresPercentual[2] = percentualAcumuladoFaturamento; mapPercentualParcialPorCategoriaAnterior.put(categ .getId(), valoresPercentual); } } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } totalLigacoes += detalhe.getQuantidadeLigacoes(); totalEconomias += detalhe.getQuantidadeEconomias(); volumeMedido += detalhe.getQuantidadeVolumeMedido(); volumeEstimado += detalhe.getQuantidadeVolumeEstimado(); totalValorFaturado = totalValorFaturado.add(detalhe .getValorFaturado()); colecaoEmitirHistogramaEsgotoDetalhe.add(detalhe); } emitirHistogramaEsgotoHelper = new EmitirHistogramaEsgotoHelper(); emitirHistogramaEsgotoHelper .setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistogramaEsgotoHelper.setDescricaoTitulo(descricaoTitulo); emitirHistogramaEsgotoHelper .setColecaoEmitirHistogramaEsgotoDetalhe(colecaoEmitirHistogramaEsgotoDetalhe); emitirHistogramaEsgotoHelper .setTotalQuantidadeLigacoes(totalLigacoes); emitirHistogramaEsgotoHelper .setTotalQuantidadeEconomias(totalEconomias); emitirHistogramaEsgotoHelper .setTotalQuantidadeVolumeMedido(volumeMedido); emitirHistogramaEsgotoHelper .setTotalQuantidadeVolumeEstimado(volumeEstimado); emitirHistogramaEsgotoHelper .setTotalValorFaturado(totalValorFaturado); BigDecimal percentualParcialLigacao = new BigDecimal(0.0); BigDecimal percentualParcialFaturamento = new BigDecimal(0.0); BigDecimal percentualParcialConsumo = new BigDecimal(0.0); if (quantidadeLigacaoIndicador != 0) { percentualParcialLigacao = Util.calcularPercentualBigDecimal("" + emitirHistogramaEsgotoHelper .getTotalQuantidadeLigacoes(), "" + quantidadeLigacaoIndicador); } if (totalQuantidadeVolumeTotal != 0) { percentualParcialConsumo = Util.calcularPercentualBigDecimal("" + emitirHistogramaEsgotoHelper .getTotalQuantidadeVolumeTotal(), "" + totalQuantidadeVolumeTotal); } if (valorFaturado.compareTo(new BigDecimal(0.0)) > 0) { percentualParcialFaturamento = Util .calcularPercentualBigDecimal( emitirHistogramaEsgotoHelper .getTotalValorFaturado(), valorFaturado); } emitirHistogramaEsgotoHelper .setTotalPercentualParcialLigacao(percentualParcialLigacao .doubleValue()); emitirHistogramaEsgotoHelper .setTotalPercentualParcialConsumo(percentualParcialConsumo .doubleValue()); emitirHistogramaEsgotoHelper .setTotalPercentualParcialFaturamento(percentualParcialFaturamento .doubleValue()); if (mapPercentualParcialPorTotalAnterior != null) { BigDecimal[] valoresPercentual = (BigDecimal[]) mapPercentualParcialPorTotalAnterior .get("TOTAL"); BigDecimal percentualAcumuladoLigacao = new BigDecimal(0.0); BigDecimal percentualAcumuladoConsumo = new BigDecimal(0.0); BigDecimal percentualAcumuladoFaturamento = new BigDecimal(0.0); if (valoresPercentual != null) { percentualAcumuladoLigacao = percentualParcialLigacao .add(valoresPercentual[0]); percentualAcumuladoConsumo = percentualParcialConsumo .add(valoresPercentual[1]); percentualAcumuladoFaturamento = percentualParcialFaturamento .add(valoresPercentual[2]); } else { percentualAcumuladoLigacao = percentualParcialLigacao; percentualAcumuladoConsumo = percentualParcialConsumo; percentualAcumuladoFaturamento = percentualParcialFaturamento; } emitirHistogramaEsgotoHelper .setTotalPercentualAcumuladoLigacao(percentualAcumuladoLigacao .doubleValue()); emitirHistogramaEsgotoHelper .setTotalPercentualAcumuladoConsumo(percentualAcumuladoConsumo .doubleValue()); emitirHistogramaEsgotoHelper .setTotalPercentualAcumuladoFaturamento(percentualAcumuladoFaturamento .doubleValue()); valoresPercentual = new BigDecimal[3]; valoresPercentual[0] = percentualAcumuladoLigacao; valoresPercentual[1] = percentualAcumuladoConsumo; valoresPercentual[2] = percentualAcumuladoFaturamento; mapPercentualParcialPorTotalAnterior.put("TOTAL", valoresPercentual); } } return emitirHistogramaEsgotoHelper; } /** * [UC0600] Emitir Histograma de Esgoto * * Elo e Unidade Negocio * * @author Rafael Pinto * @date 12/06/2007 * * @param FiltrarEmitirHistogramaEsgotoHelper * * @return Collection<EmitirHistogramaEsgotoHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoHelper> emitirHistogramaEsgotoEloUnidadeNegocio( FiltrarEmitirHistogramaEsgotoHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoHelper> colecaoEmitirHistogramaEsgoto = new ArrayList<EmitirHistogramaEsgotoHelper>(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoMedido = filtro .getColecaoConsumoFaixaLigacaoMedido(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoNaoMedido = filtro .getColecaoConsumoFaixaLigacaoNaoMedido(); filtro .setTipoGroupBy("histograma.localidadeElo.id,histograma.unidadeNegocio.id "); LinkedHashMap hashMapTotalGeral = new LinkedHashMap(); Short indicadorMedicao = filtro.getMedicao(); try { if (filtro.getMedicao() != null) { if (filtro.getMedicao().shortValue() == ConstantesSistema.INDICADOR_USO_ATIVO) { filtro.setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } else { filtro.setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } } else { filtro .setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_ATIVO)); filtro .setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_DESATIVO)); } Collection<Object[]> colecaoTotalGeral = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgoto(filtro); hashMapTotalGeral = this.montarEmitirHistogramaEsgotoTotalGeral( filtro, colecaoTotalGeral); } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } if (hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()) { Iterator iter = hashMapTotalGeral.keySet().iterator(); int unidadeNegocioAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; FiltroLocalidade filtroLocalidade = null; Collection colecaoLocalidade = null; Localidade eloPolo = null; UnidadeNegocio unidadeNegocio = null; while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); eloPolo = new Localidade(); eloPolo.setId(new Integer(arrayNumeracao[0])); unidadeNegocio = new UnidadeNegocio(); unidadeNegocio.setId(new Integer(arrayNumeracao[1])); if (unidadeNegocioAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO) { unidadeNegocioAnterior = unidadeNegocio.getId(); } filtro.setMedicao(indicadorMedicao); filtro.setEloPolo(eloPolo); filtro.setUnidadeNegocio(unidadeNegocio); // Mudou de Unidade if (unidadeNegocioAnterior != unidadeNegocio.getId().intValue()) { filtro.setOpcaoTotalizacao(10); UnidadeNegocio uniAnterior = new UnidadeNegocio(); uniAnterior.setId(unidadeNegocioAnterior); filtro.setUnidadeNegocio(uniAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoUnidadeNegocio(filtro)); } filtro.setEloPolo(eloPolo); filtro.setUnidadeNegocio(unidadeNegocio); filtro.setMedicao(indicadorMedicao); filtro.setOpcaoTotalizacao(4); EmitirHistogramaEsgotoHelper emitirHistogramaEsgotoHelperTotalGeral = (EmitirHistogramaEsgotoHelper) hashMapTotalGeral .get(chave); HashMap mapTotalizacaoCategoria = this .montarEmitirHistogramaEsgotoTotalGeralCategoria(emitirHistogramaEsgotoHelperTotalGeral .getColecaoEmitirHistogramaEsgotoDetalhe()); filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, eloPolo.getId())); filtroLocalidade .adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); filtroLocalidade .adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroLocalidade .adicionarCaminhoParaCarregamentoEntidade("unidadeNegocio"); // Recupera Localidade colecaoLocalidade = this.getControladorUtil().pesquisar( filtroLocalidade, Localidade.class.getName()); eloPolo = (Localidade) Util .retonarObjetoDeColecao(colecaoLocalidade); String descricaoOpcaoTotalizacao = eloPolo .getGerenciaRegional().getId() + "-" + eloPolo.getGerenciaRegional().getNomeAbreviado() + " / " + eloPolo.getUnidadeNegocio().getId() + "-" + eloPolo.getUnidadeNegocio().getNomeAbreviado() + " / " + eloPolo.getId() + "-" + eloPolo.getDescricao(); // Vai gerar Faixa para medido if (colecaoConsumoFaixaLigacaoMedido != null && !colecaoConsumoFaixaLigacaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_ATIVO, mapTotalizacaoCategoria); } // Vai gerar Faixa para N�o medido if (colecaoConsumoFaixaLigacaoNaoMedido != null && !colecaoConsumoFaixaLigacaoNaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoNaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_DESATIVO, mapTotalizacaoCategoria); } filtro.setMedicao(indicadorMedicao); // Setar Total Geral emitirHistogramaEsgotoHelperTotalGeral .setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialLigacao(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialConsumo(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialFaturamento(100.0); colecaoEmitirHistogramaEsgoto .add(emitirHistogramaEsgotoHelperTotalGeral); unidadeNegocioAnterior = unidadeNegocio.getId(); } filtro.setMedicao(indicadorMedicao); filtro.setOpcaoTotalizacao(10); UnidadeNegocio uniAnterior = new UnidadeNegocio(); uniAnterior.setId(unidadeNegocioAnterior); filtro.setUnidadeNegocio(uniAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoUnidadeNegocio(filtro)); } return colecaoEmitirHistogramaEsgoto; } /** * [UC0600] Emitir Histograma de �gua * * Localidade Elo e Unidade Negocio * * @author Rafael Pinto * @date 12/06/2007 * * @param FiltrarEmitirHistogramaEsgotoHelper * * @return Collection<EmitirHistogramaEsgotoHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoHelper> emitirHistogramaEsgotoLocalidadeEloUnidadeNegocio( FiltrarEmitirHistogramaEsgotoHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoHelper> colecaoEmitirHistogramaEsgoto = new ArrayList<EmitirHistogramaEsgotoHelper>(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoMedido = filtro .getColecaoConsumoFaixaLigacaoMedido(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoNaoMedido = filtro .getColecaoConsumoFaixaLigacaoNaoMedido(); filtro .setTipoGroupBy("histograma.localidade.id,histograma.localidadeElo.id," + "histograma.unidadeNegocio.id "); LinkedHashMap hashMapTotalGeral = new LinkedHashMap(); Short indicadorMedicao = filtro.getMedicao(); try { if (filtro.getMedicao() != null) { if (filtro.getMedicao().shortValue() == ConstantesSistema.INDICADOR_USO_ATIVO) { filtro.setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } else { filtro.setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } } else { filtro .setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_ATIVO)); filtro .setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_DESATIVO)); } Collection<Object[]> colecaoTotalGeral = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgoto(filtro); hashMapTotalGeral = this.montarEmitirHistogramaEsgotoTotalGeral( filtro, colecaoTotalGeral); } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } if (hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()) { Iterator iter = hashMapTotalGeral.keySet().iterator(); int unidadeNegocioAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; int eloPoloAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; FiltroLocalidade filtroLocalidade = null; Collection colecaoLocalidade = null; Localidade localidade = null; Localidade eloPolo = null; UnidadeNegocio unidadeNegocio = null; while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); localidade = new Localidade(); localidade.setId(new Integer(arrayNumeracao[0])); eloPolo = new Localidade(); eloPolo.setId(new Integer(arrayNumeracao[1])); unidadeNegocio = new UnidadeNegocio(); unidadeNegocio.setId(new Integer(arrayNumeracao[2])); if (eloPoloAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO) { eloPoloAnterior = eloPolo.getId(); } if (unidadeNegocioAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO) { unidadeNegocioAnterior = unidadeNegocio.getId(); } filtro.setMedicao(indicadorMedicao); filtro.setLocalidade(localidade); filtro.setEloPolo(eloPolo); filtro.setUnidadeNegocio(unidadeNegocio); // Mudou de Elo Polo if (eloPoloAnterior != eloPolo.getId().intValue()) { filtro.setOpcaoTotalizacao(13); Localidade eloAnterior = new Localidade(); eloAnterior.setId(eloPoloAnterior); filtro.setEloPolo(eloAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoElo(filtro)); } filtro.setMedicao(indicadorMedicao); // Mudou de Unidade if (unidadeNegocioAnterior != unidadeNegocio.getId().intValue()) { filtro.setOpcaoTotalizacao(10); UnidadeNegocio uniAnterior = new UnidadeNegocio(); uniAnterior.setId(unidadeNegocioAnterior); filtro.setUnidadeNegocio(uniAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoUnidadeNegocio(filtro)); } filtro.setLocalidade(localidade); filtro.setEloPolo(eloPolo); filtro.setUnidadeNegocio(unidadeNegocio); filtro.setMedicao(indicadorMedicao); filtro.setOpcaoTotalizacao(4); EmitirHistogramaEsgotoHelper emitirHistogramaEsgotoHelperTotalGeral = (EmitirHistogramaEsgotoHelper) hashMapTotalGeral .get(chave); HashMap mapTotalizacaoCategoria = this .montarEmitirHistogramaEsgotoTotalGeralCategoria(emitirHistogramaEsgotoHelperTotalGeral .getColecaoEmitirHistogramaEsgotoDetalhe()); filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, localidade.getId())); filtroLocalidade .adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); filtroLocalidade .adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroLocalidade .adicionarCaminhoParaCarregamentoEntidade("unidadeNegocio"); // Recupera Localidade colecaoLocalidade = this.getControladorUtil().pesquisar( filtroLocalidade, Localidade.class.getName()); localidade = (Localidade) Util .retonarObjetoDeColecao(colecaoLocalidade); String descricaoOpcaoTotalizacao = localidade .getGerenciaRegional().getId() + "-" + localidade.getGerenciaRegional().getNomeAbreviado() + " / " + localidade.getUnidadeNegocio().getId() + "-" + localidade.getUnidadeNegocio().getNomeAbreviado() + " / " + localidade.getLocalidade().getId() + "-" + localidade.getLocalidade().getDescricao() + " / " + localidade.getId() + "-" + localidade.getDescricao(); // Vai gerar Faixa para medido if (colecaoConsumoFaixaLigacaoMedido != null && !colecaoConsumoFaixaLigacaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_ATIVO, mapTotalizacaoCategoria); } // Vai gerar Faixa para N�o medido if (colecaoConsumoFaixaLigacaoNaoMedido != null && !colecaoConsumoFaixaLigacaoNaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoNaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_DESATIVO, mapTotalizacaoCategoria); } // Setar Total Geral emitirHistogramaEsgotoHelperTotalGeral .setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialLigacao(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialConsumo(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialFaturamento(100.0); colecaoEmitirHistogramaEsgoto .add(emitirHistogramaEsgotoHelperTotalGeral); unidadeNegocioAnterior = unidadeNegocio.getId(); eloPoloAnterior = eloPolo.getId(); } filtro.setOpcaoTotalizacao(13); filtro.setMedicao(indicadorMedicao); Localidade eloAnterior = new Localidade(); eloAnterior.setId(eloPoloAnterior); filtro.setEloPolo(eloAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoElo(filtro)); filtro.setOpcaoTotalizacao(10); filtro.setMedicao(indicadorMedicao); UnidadeNegocio uniAnterior = new UnidadeNegocio(); uniAnterior.setId(unidadeNegocioAnterior); filtro.setUnidadeNegocio(uniAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoUnidadeNegocio(filtro)); } return colecaoEmitirHistogramaEsgoto; } /** * [UC0600] Emitir Histograma de Esgoto * * Localidade Elo e Unidade Negocio e Gerencia Regional * * @author Rafael Pinto * @date 06/11/2007 * * @param FiltrarEmitirHistogramaEsgotoHelper * * @return Collection<EmitirHistogramaEsgotoHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoHelper> emitirHistogramaEsgotoLocalidadeEloUnidadeNegocioGerenciaRegional( FiltrarEmitirHistogramaEsgotoHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoHelper> colecaoEmitirHistogramaEsgoto = new ArrayList<EmitirHistogramaEsgotoHelper>(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoMedido = filtro .getColecaoConsumoFaixaLigacaoMedido(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoNaoMedido = filtro .getColecaoConsumoFaixaLigacaoNaoMedido(); if ( filtro.getIndicadorTarifaCategoria() != null && filtro.getIndicadorTarifaCategoria().intValue() == ConstantesSistema.NAO ) { filtro.setTipoGroupBy("histograma.localidade.id, subcategoria.descricao, histograma.localidadeEelo.id," + "histograma.unidadeNegocio.id,histograma.gerenciaRegional.id "); } else { filtro.setTipoGroupBy("histograma.localidade.id,histograma.localidadeElo.id," + "histograma.unidadeNegocio.id,histograma.gerenciaRegional.id "); } LinkedHashMap hashMapTotalGeral = new LinkedHashMap(); Short indicadorMedicao = filtro.getMedicao(); try { if (filtro.getMedicao() != null) { if (filtro.getMedicao().shortValue() == ConstantesSistema.INDICADOR_USO_ATIVO) { filtro.setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } else { filtro.setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } } else { filtro .setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_ATIVO)); filtro .setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_DESATIVO)); } Collection<Object[]> colecaoTotalGeral = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgoto(filtro); if ( filtro.getIndicadorTarifaCategoria() != null && filtro.getIndicadorTarifaCategoria().intValue() == ConstantesSistema.NAO ) { filtro.setTipoGroupBy("histograma.localidade.id, subcategoria.descricao, histograma.localidadeElo.id," + "histograma.unidadeNegocio.id,histograma.gerenciaRegional.id "); } hashMapTotalGeral = this.montarEmitirHistogramaEsgotoTotalGeral( filtro, colecaoTotalGeral); } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } if (hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()) { Iterator iter = hashMapTotalGeral.keySet().iterator(); int gerenciaAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; int unidadeNegocioAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; int eloPoloAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; FiltroLocalidade filtroLocalidade = null; Collection colecaoLocalidade = null; Localidade localidade = null; Localidade eloPolo = null; UnidadeNegocio unidadeNegocio = null; GerenciaRegional gerencia = null; while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); localidade = new Localidade(); localidade.setId(new Integer(arrayNumeracao[0])); eloPolo = new Localidade(); eloPolo.setId(new Integer(arrayNumeracao[1])); unidadeNegocio = new UnidadeNegocio(); unidadeNegocio.setId(new Integer(arrayNumeracao[2])); gerencia = new GerenciaRegional(); gerencia.setId(new Integer(arrayNumeracao[3])); if (eloPoloAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO) { eloPoloAnterior = eloPolo.getId(); } if (unidadeNegocioAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO) { unidadeNegocioAnterior = unidadeNegocio.getId(); } if (gerenciaAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO) { gerenciaAnterior = gerencia.getId(); } filtro.setMedicao(indicadorMedicao); filtro.setLocalidade(localidade); filtro.setEloPolo(eloPolo); filtro.setUnidadeNegocio(unidadeNegocio); filtro.setGerenciaRegional(gerencia); // Mudou de Elo Polo if (eloPoloAnterior != eloPolo.getId().intValue()) { filtro.setOpcaoTotalizacao(13); Localidade eloAnterior = new Localidade(); eloAnterior.setId(eloPoloAnterior); filtro.setEloPolo(eloAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoElo(filtro)); } filtro.setMedicao(indicadorMedicao); // Mudou de Unidade if (unidadeNegocioAnterior != unidadeNegocio.getId().intValue()) { filtro.setOpcaoTotalizacao(10); UnidadeNegocio uniAnterior = new UnidadeNegocio(); uniAnterior.setId(unidadeNegocioAnterior); filtro.setUnidadeNegocio(uniAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoUnidadeNegocio(filtro)); } filtro.setMedicao(indicadorMedicao); // Mudou de Gerencia if (gerenciaAnterior != gerencia.getId().intValue()) { GerenciaRegional gereAnterior = new GerenciaRegional(); gereAnterior.setId(gerenciaAnterior); filtro.setGerenciaRegional(gereAnterior); filtro.setOpcaoTotalizacao(2); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoGerenciaRegional(filtro)); } filtro.setLocalidade(localidade); filtro.setEloPolo(eloPolo); filtro.setUnidadeNegocio(unidadeNegocio); filtro.setGerenciaRegional(gerencia); filtro.setMedicao(indicadorMedicao); filtro.setOpcaoTotalizacao(4); EmitirHistogramaEsgotoHelper emitirHistogramaEsgotoHelperTotalGeral = (EmitirHistogramaEsgotoHelper) hashMapTotalGeral .get(chave); HashMap mapTotalizacaoCategoria = this .montarEmitirHistogramaEsgotoTotalGeralCategoria(emitirHistogramaEsgotoHelperTotalGeral .getColecaoEmitirHistogramaEsgotoDetalhe()); filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, localidade.getId())); filtroLocalidade .adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); filtroLocalidade .adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroLocalidade .adicionarCaminhoParaCarregamentoEntidade("unidadeNegocio"); // Recupera Localidade colecaoLocalidade = this.getControladorUtil().pesquisar( filtroLocalidade, Localidade.class.getName()); localidade = (Localidade) Util .retonarObjetoDeColecao(colecaoLocalidade); String descricaoOpcaoTotalizacao = localidade .getGerenciaRegional().getId() + "-" + localidade.getGerenciaRegional().getNomeAbreviado() + " / " + localidade.getUnidadeNegocio().getId() + "-" + localidade.getUnidadeNegocio().getNomeAbreviado() + " / " + localidade.getLocalidade().getId() + "-" + localidade.getLocalidade().getDescricao() + " / " + localidade.getId() + "-" + localidade.getDescricao(); // Vai gerar Faixa para medido if (colecaoConsumoFaixaLigacaoMedido != null && !colecaoConsumoFaixaLigacaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_ATIVO, mapTotalizacaoCategoria); } // Vai gerar Faixa para N�o medido if (colecaoConsumoFaixaLigacaoNaoMedido != null && !colecaoConsumoFaixaLigacaoNaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoNaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_DESATIVO, mapTotalizacaoCategoria); } // Setar Total Geral emitirHistogramaEsgotoHelperTotalGeral .setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialLigacao(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialConsumo(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialFaturamento(100.0); colecaoEmitirHistogramaEsgoto .add(emitirHistogramaEsgotoHelperTotalGeral); gerenciaAnterior = gerencia.getId(); unidadeNegocioAnterior = unidadeNegocio.getId(); eloPoloAnterior = eloPolo.getId(); } filtro.setOpcaoTotalizacao(13); filtro.setMedicao(indicadorMedicao); Localidade eloAnterior = new Localidade(); eloAnterior.setId(eloPoloAnterior); filtro.setEloPolo(eloAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoElo(filtro)); filtro.setOpcaoTotalizacao(10); filtro.setMedicao(indicadorMedicao); UnidadeNegocio uniAnterior = new UnidadeNegocio(); uniAnterior.setId(unidadeNegocioAnterior); filtro.setUnidadeNegocio(uniAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoUnidadeNegocio(filtro)); filtro.setOpcaoTotalizacao(2); filtro.setMedicao(indicadorMedicao); GerenciaRegional gereAnterior = new GerenciaRegional(); gereAnterior.setId(gerenciaAnterior); filtro.setGerenciaRegional(gereAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoGerenciaRegional(filtro)); } return colecaoEmitirHistogramaEsgoto; } /** * [UC0600] Emitir Histograma de Esgoto - * * Unidade Negocio * * @author Rafael Pinto * @date 06/11/2007 * * @param FiltrarEmitirHistogramaEsgotoHelper * * @return Collection<EmitirHistogramaEsgotoHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoHelper> emitirHistogramaEsgotoUnidadeNegocio( FiltrarEmitirHistogramaEsgotoHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoHelper> colecaoEmitirHistogramaEsgoto = new ArrayList<EmitirHistogramaEsgotoHelper>(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoMedido = filtro .getColecaoConsumoFaixaLigacaoMedido(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoNaoMedido = filtro .getColecaoConsumoFaixaLigacaoNaoMedido(); if ( filtro.getIndicadorTarifaCategoria() != null && filtro.getIndicadorTarifaCategoria().intValue() == ConstantesSistema.NAO ) { filtro.setTipoGroupBy(" histograma.unidadeNegocio.id , subcategoria.descricao "); } else { filtro.setTipoGroupBy("histograma.unidadeNegocio.id "); } LinkedHashMap hashMapTotalGeral = new LinkedHashMap(); filtro.setEloPolo(null); filtro.setGerenciaRegional(null); filtro.setLocalidade(null); filtro.setConsumoFaixaLigacao(null); Short indicadorMedicao = filtro.getMedicao(); try { if (filtro.getMedicao() != null) { if (filtro.getMedicao().shortValue() == ConstantesSistema.INDICADOR_USO_ATIVO) { filtro.setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } else { filtro.setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } } else { filtro .setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_ATIVO)); filtro .setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_DESATIVO)); } Collection<Object[]> colecaoTotalGeral = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgoto(filtro); hashMapTotalGeral = this.montarEmitirHistogramaEsgotoTotalGeral( filtro, colecaoTotalGeral); } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } if (hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()) { FiltroUnidadeNegocio filtroUnidade = null; Collection colecaoUnidade = null; UnidadeNegocio unidadeNegocio = null; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String chave = (String) iter.next(); unidadeNegocio = new UnidadeNegocio(); unidadeNegocio.setId(new Integer(chave)); filtro.setUnidadeNegocio(unidadeNegocio); EmitirHistogramaEsgotoHelper emitirHistogramaEsgotoHelperTotalGeral = (EmitirHistogramaEsgotoHelper) hashMapTotalGeral .get(chave); HashMap mapTotalizacaoCategoria = this .montarEmitirHistogramaEsgotoTotalGeralCategoria(emitirHistogramaEsgotoHelperTotalGeral .getColecaoEmitirHistogramaEsgotoDetalhe()); filtroUnidade = new FiltroUnidadeNegocio(); filtroUnidade.adicionarParametro(new ParametroSimples( FiltroUnidadeNegocio.ID, chave)); filtroUnidade .adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); // Recupera Unidade Negocio colecaoUnidade = this.getControladorUtil().pesquisar( filtroUnidade, UnidadeNegocio.class.getName()); unidadeNegocio = (UnidadeNegocio) Util .retonarObjetoDeColecao(colecaoUnidade); String descricaoOpcaoTotalizacao = unidadeNegocio .getGerenciaRegional().getId() + "-" + unidadeNegocio.getGerenciaRegional() .getNomeAbreviado() + " / " + unidadeNegocio.getId() + "-" + unidadeNegocio.getNome(); // Vai gerar Faixa para medido if (colecaoConsumoFaixaLigacaoMedido != null && !colecaoConsumoFaixaLigacaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_ATIVO, mapTotalizacaoCategoria); } // Vai gerar Faixa para N�o medido if (colecaoConsumoFaixaLigacaoNaoMedido != null && !colecaoConsumoFaixaLigacaoNaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoNaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_DESATIVO, mapTotalizacaoCategoria); } filtro.setMedicao(indicadorMedicao); // Setar Total Geral emitirHistogramaEsgotoHelperTotalGeral .setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialLigacao(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialConsumo(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialFaturamento(100.0); colecaoEmitirHistogramaEsgoto .add(emitirHistogramaEsgotoHelperTotalGeral); } } return colecaoEmitirHistogramaEsgoto; } /** * [UC0600] Emitir Histograma de Esgoto - * * Elo Polo * * @author Rafael Pinto * @date 06/11/2007 * * @param FiltrarEmitirHistogramaEsgotoHelper * * @return Collection<EmitirHistogramaEsgotoHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoHelper> emitirHistogramaEsgotoElo( FiltrarEmitirHistogramaEsgotoHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoHelper> colecaoEmitirHistogramaEsgoto = new ArrayList<EmitirHistogramaEsgotoHelper>(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoMedido = filtro .getColecaoConsumoFaixaLigacaoMedido(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoNaoMedido = filtro .getColecaoConsumoFaixaLigacaoNaoMedido(); if ( filtro.getIndicadorTarifaCategoria() != null && filtro.getIndicadorTarifaCategoria().intValue() == ConstantesSistema.NAO ) { filtro.setTipoGroupBy(" histograma.localidadeEelo.id , subcategoria.descricao "); } else { filtro.setTipoGroupBy("histograma.localidadeElo.id "); } LinkedHashMap hashMapTotalGeral = new LinkedHashMap(); filtro.setLocalidade(null); filtro.setUnidadeNegocio(null); filtro.setGerenciaRegional(null); filtro.setCodigoSetorComercial(null); filtro.setConsumoFaixaLigacao(null); try { if (filtro.getMedicao() != null) { if (filtro.getMedicao().shortValue() == ConstantesSistema.INDICADOR_USO_ATIVO) { filtro.setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } else { filtro.setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } } else { filtro .setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_ATIVO)); filtro .setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_DESATIVO)); } Collection<Object[]> colecaoTotalGeral = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgoto(filtro); hashMapTotalGeral = this.montarEmitirHistogramaEsgotoTotalGeral( filtro, colecaoTotalGeral); } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } if (hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()) { FiltroLocalidade filtroLocalidade = null; Collection colecaoLocalidade = null; Localidade localidade = null; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String chave = (String) iter.next(); localidade = new Localidade(); localidade.setId(new Integer(chave)); filtro.setEloPolo(localidade); EmitirHistogramaEsgotoHelper emitirHistogramaEsgotoHelperTotalGeral = (EmitirHistogramaEsgotoHelper) hashMapTotalGeral .get(chave); HashMap mapTotalizacaoCategoria = this .montarEmitirHistogramaEsgotoTotalGeralCategoria(emitirHistogramaEsgotoHelperTotalGeral .getColecaoEmitirHistogramaEsgotoDetalhe()); filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, chave)); filtroLocalidade .adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); filtroLocalidade .adicionarCaminhoParaCarregamentoEntidade("unidadeNegocio"); // Recupera Unidade Negocio colecaoLocalidade = this.getControladorUtil().pesquisar( filtroLocalidade, Localidade.class.getName()); localidade = (Localidade) Util .retonarObjetoDeColecao(colecaoLocalidade); String descricaoOpcaoTotalizacao = localidade .getGerenciaRegional().getId() + "-" + localidade.getGerenciaRegional().getNomeAbreviado() + " / " + localidade.getUnidadeNegocio().getId() + "-" + localidade.getUnidadeNegocio().getNomeAbreviado() + " / " + localidade.getId() + "-" + localidade.getDescricao(); // Vai gerar Faixa para medido if (colecaoConsumoFaixaLigacaoMedido != null && !colecaoConsumoFaixaLigacaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_ATIVO, mapTotalizacaoCategoria); } // Vai gerar Faixa para N�o medido if (colecaoConsumoFaixaLigacaoNaoMedido != null && !colecaoConsumoFaixaLigacaoNaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoNaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_DESATIVO, mapTotalizacaoCategoria); } // Setar Total Geral emitirHistogramaEsgotoHelperTotalGeral .setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialLigacao(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialConsumo(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialFaturamento(100.0); colecaoEmitirHistogramaEsgoto .add(emitirHistogramaEsgotoHelperTotalGeral); } } return colecaoEmitirHistogramaEsgoto; } /** * [UC0600] Emitir Histograma de Esgoto * * Localidade, Elo e Unidade Negocio * * @author Rafael Pinto * @date 12/06/2007 * * @param FiltrarEmitirHistogramaEsgotoHelper * * @return Collection<EmitirHistogramaEsgotoHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoHelper> emitirHistogramaEsgotoLocalidadeElo( FiltrarEmitirHistogramaEsgotoHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoHelper> colecaoEmitirHistogramaEsgoto = new ArrayList<EmitirHistogramaEsgotoHelper>(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoMedido = filtro .getColecaoConsumoFaixaLigacaoMedido(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoNaoMedido = filtro .getColecaoConsumoFaixaLigacaoNaoMedido(); filtro .setTipoGroupBy("histograma.localidade.id,histograma.localidadeElo.id "); LinkedHashMap hashMapTotalGeral = new LinkedHashMap(); Short indicadorMedicao = filtro.getMedicao(); try { if (filtro.getMedicao() != null) { if (filtro.getMedicao().shortValue() == ConstantesSistema.INDICADOR_USO_ATIVO) { filtro.setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } else { filtro.setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } } else { filtro .setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_ATIVO)); filtro .setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_DESATIVO)); } Collection<Object[]> colecaoTotalGeral = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgoto(filtro); hashMapTotalGeral = this.montarEmitirHistogramaEsgotoTotalGeral( filtro, colecaoTotalGeral); } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } if (hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()) { Iterator iter = hashMapTotalGeral.keySet().iterator(); int eloPoloAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; FiltroLocalidade filtroLocalidade = null; Collection colecaoLocalidade = null; Localidade localidade = null; Localidade eloPolo = null; while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); localidade = new Localidade(); localidade.setId(new Integer(arrayNumeracao[0])); eloPolo = new Localidade(); eloPolo.setId(new Integer(arrayNumeracao[1])); if (eloPoloAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO) { eloPoloAnterior = eloPolo.getId(); } filtro.setMedicao(indicadorMedicao); filtro.setLocalidade(localidade); filtro.setEloPolo(eloPolo); // Mudou de Elo Polo if (eloPoloAnterior != eloPolo.getId().intValue()) { filtro.setOpcaoTotalizacao(13); Localidade eloAnterior = new Localidade(); eloAnterior.setId(eloPoloAnterior); filtro.setEloPolo(eloAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoElo(filtro)); } filtro.setLocalidade(localidade); filtro.setEloPolo(eloPolo); filtro.setMedicao(indicadorMedicao); filtro.setOpcaoTotalizacao(4); EmitirHistogramaEsgotoHelper emitirHistogramaEsgotoHelperTotalGeral = (EmitirHistogramaEsgotoHelper) hashMapTotalGeral .get(chave); HashMap mapTotalizacaoCategoria = this .montarEmitirHistogramaEsgotoTotalGeralCategoria(emitirHistogramaEsgotoHelperTotalGeral .getColecaoEmitirHistogramaEsgotoDetalhe()); filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, localidade.getId())); filtroLocalidade .adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); filtroLocalidade .adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroLocalidade .adicionarCaminhoParaCarregamentoEntidade("unidadeNegocio"); // Recupera Localidade colecaoLocalidade = this.getControladorUtil().pesquisar( filtroLocalidade, Localidade.class.getName()); localidade = (Localidade) Util .retonarObjetoDeColecao(colecaoLocalidade); String descricaoOpcaoTotalizacao = localidade .getGerenciaRegional().getId() + "-" + localidade.getGerenciaRegional().getNomeAbreviado() + " / " + localidade.getUnidadeNegocio().getId() + "-" + localidade.getUnidadeNegocio().getNomeAbreviado() + " / " + localidade.getLocalidade().getId() + "-" + localidade.getLocalidade().getDescricao() + " / " + localidade.getId() + "-" + localidade.getDescricao(); // Vai gerar Faixa para medido if (colecaoConsumoFaixaLigacaoMedido != null && !colecaoConsumoFaixaLigacaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_ATIVO, mapTotalizacaoCategoria); } // Vai gerar Faixa para N�o medido if (colecaoConsumoFaixaLigacaoNaoMedido != null && !colecaoConsumoFaixaLigacaoNaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoNaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_DESATIVO, mapTotalizacaoCategoria); } // Setar Total Geral emitirHistogramaEsgotoHelperTotalGeral .setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialLigacao(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialConsumo(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialFaturamento(100.0); colecaoEmitirHistogramaEsgoto .add(emitirHistogramaEsgotoHelperTotalGeral); eloPoloAnterior = eloPolo.getId(); } filtro.setOpcaoTotalizacao(13); filtro.setMedicao(indicadorMedicao); Localidade eloAnterior = new Localidade(); eloAnterior.setId(eloPoloAnterior); filtro.setEloPolo(eloAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoElo(filtro)); } return colecaoEmitirHistogramaEsgoto; } /** * [UC0600] Emitir Histograma de �gua * * Setor Comercial ,Localidade e Elo * * @author Rafael Pinto * @date 06/11/2007 * * @param FiltrarEmitirHistogramaEsgotoHelper * * @return Collection<EmitirHistogramaEsgotoHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoHelper> emitirHistogramaEsgotoSetorComercialLocalidadeElo( FiltrarEmitirHistogramaEsgotoHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoHelper> colecaoEmitirHistogramaEsgoto = new ArrayList<EmitirHistogramaEsgotoHelper>(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoMedido = filtro .getColecaoConsumoFaixaLigacaoMedido(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoNaoMedido = filtro .getColecaoConsumoFaixaLigacaoNaoMedido(); filtro .setTipoGroupBy("histograma.codigoSetorComercial,histograma.localidade.id," + "histograma.localidadeElo.id "); LinkedHashMap hashMapTotalGeral = new LinkedHashMap(); Short indicadorMedicao = filtro.getMedicao(); try { if (filtro.getMedicao() != null) { if (filtro.getMedicao().shortValue() == ConstantesSistema.INDICADOR_USO_ATIVO) { filtro.setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } else { filtro.setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } } else { filtro .setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_ATIVO)); filtro .setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_DESATIVO)); } Collection<Object[]> colecaoTotalGeral = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgoto(filtro); hashMapTotalGeral = this.montarEmitirHistogramaEsgotoTotalGeral( filtro, colecaoTotalGeral); } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } if (hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()) { Iterator iter = hashMapTotalGeral.keySet().iterator(); int localidadeAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; int eloPoloAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; FiltroSetorComercial filtroSetorComercial = null; Collection colecaoSetorComercial = null; Integer codigoSetorComercial = null; SetorComercial setorComercial = null; Localidade localidade = null; Localidade eloPolo = null; while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); codigoSetorComercial = new Integer(arrayNumeracao[0]); localidade = new Localidade(); localidade.setId(new Integer(arrayNumeracao[1])); eloPolo = new Localidade(); eloPolo.setId(new Integer(arrayNumeracao[2])); if (eloPoloAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO) { eloPoloAnterior = eloPolo.getId(); } if (localidadeAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO) { localidadeAnterior = localidade.getId(); } filtro.setMedicao(indicadorMedicao); filtro.setCodigoSetorComercial(codigoSetorComercial); filtro.setLocalidade(localidade); filtro.setEloPolo(eloPolo); // Mudou de Localidade if (localidadeAnterior != localidade.getId().intValue()) { filtro.setOpcaoTotalizacao(16); Localidade localAnterior = new Localidade(); localAnterior.setId(localidadeAnterior); filtro.setLocalidade(localAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoLocalidade(filtro)); } filtro.setCodigoSetorComercial(codigoSetorComercial); filtro.setLocalidade(localidade); filtro.setMedicao(indicadorMedicao); // Mudou de Elo Polo if (eloPoloAnterior != eloPolo.getId().intValue()) { filtro.setOpcaoTotalizacao(13); Localidade eloAnterior = new Localidade(); eloAnterior.setId(eloPoloAnterior); filtro.setEloPolo(eloAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoElo(filtro)); } filtro.setCodigoSetorComercial(codigoSetorComercial); filtro.setLocalidade(localidade); filtro.setEloPolo(eloPolo); filtro.setMedicao(indicadorMedicao); filtro.setOpcaoTotalizacao(4); EmitirHistogramaEsgotoHelper emitirHistogramaEsgotoHelperTotalGeral = (EmitirHistogramaEsgotoHelper) hashMapTotalGeral .get(chave); HashMap mapTotalizacaoCategoria = this .montarEmitirHistogramaEsgotoTotalGeralCategoria(emitirHistogramaEsgotoHelperTotalGeral .getColecaoEmitirHistogramaEsgotoDetalhe()); filtroSetorComercial = new FiltroSetorComercial(); filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, codigoSetorComercial)); filtroSetorComercial .adicionarParametro(new ParametroSimples( FiltroSetorComercial.ID_LOCALIDADE, localidade .getId())); filtroSetorComercial .adicionarCaminhoParaCarregamentoEntidade("localidade"); // Recupera Setor Comercial colecaoSetorComercial = this.getControladorUtil().pesquisar( filtroSetorComercial, SetorComercial.class.getName()); setorComercial = (SetorComercial) Util .retonarObjetoDeColecao(colecaoSetorComercial); String descricaoOpcaoTotalizacao = setorComercial .getLocalidade().getId() + "-" + setorComercial.getLocalidade().getDescricao() + " / " + setorComercial.getCodigo() + "-" + setorComercial.getDescricao(); // Vai gerar Faixa para medido if (colecaoConsumoFaixaLigacaoMedido != null && !colecaoConsumoFaixaLigacaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_ATIVO, mapTotalizacaoCategoria); } // Vai gerar Faixa para N�o medido if (colecaoConsumoFaixaLigacaoNaoMedido != null && !colecaoConsumoFaixaLigacaoNaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoNaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_DESATIVO, mapTotalizacaoCategoria); } // Setar Total Geral emitirHistogramaEsgotoHelperTotalGeral .setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialLigacao(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialConsumo(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialFaturamento(100.0); colecaoEmitirHistogramaEsgoto .add(emitirHistogramaEsgotoHelperTotalGeral); localidadeAnterior = localidade.getId(); eloPoloAnterior = eloPolo.getId(); } filtro.setOpcaoTotalizacao(16); filtro.setMedicao(indicadorMedicao); Localidade localAnterior = new Localidade(); localAnterior.setId(localidadeAnterior); filtro.setLocalidade(localAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoLocalidade(filtro)); filtro.setOpcaoTotalizacao(13); filtro.setMedicao(indicadorMedicao); Localidade eloAnterior = new Localidade(); eloAnterior.setId(eloPoloAnterior); filtro.setEloPolo(eloAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoElo(filtro)); } return colecaoEmitirHistogramaEsgoto; } /** * [UC0600] Emitir Histograma de Esgoto * * Setor Comercial ,Localidade e Elo * * @author Rafael Pinto * @date 06/11/2007 * * @param FiltrarEmitirHistogramaEsgotoHelper * * @return Collection<EmitirHistogramaEsgotoHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoHelper> emitirHistogramaEsgotoSetorComercialLocalidade( FiltrarEmitirHistogramaEsgotoHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoHelper> colecaoEmitirHistogramaEsgoto = new ArrayList<EmitirHistogramaEsgotoHelper>(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoMedido = filtro .getColecaoConsumoFaixaLigacaoMedido(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoNaoMedido = filtro .getColecaoConsumoFaixaLigacaoNaoMedido(); filtro .setTipoGroupBy("histograma.codigoSetorComercial,histograma.localidade.id "); LinkedHashMap hashMapTotalGeral = new LinkedHashMap(); Short indicadorMedicao = filtro.getMedicao(); try { if (filtro.getMedicao() != null) { if (filtro.getMedicao().shortValue() == ConstantesSistema.INDICADOR_USO_ATIVO) { filtro.setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } else { filtro.setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } } else { filtro .setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_ATIVO)); filtro .setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_DESATIVO)); } Collection<Object[]> colecaoTotalGeral = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgoto(filtro); hashMapTotalGeral = this.montarEmitirHistogramaEsgotoTotalGeral( filtro, colecaoTotalGeral); } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } if (hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()) { Iterator iter = hashMapTotalGeral.keySet().iterator(); int localidadeAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; FiltroSetorComercial filtroSetorComercial = null; Collection colecaoSetorComercial = null; Integer codigoSetorComercial = null; SetorComercial setorComercial = null; Localidade localidade = null; while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); codigoSetorComercial = new Integer(arrayNumeracao[0]); localidade = new Localidade(); localidade.setId(new Integer(arrayNumeracao[1])); if (localidadeAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO) { localidadeAnterior = localidade.getId(); } filtro.setMedicao(indicadorMedicao); filtro.setCodigoSetorComercial(codigoSetorComercial); filtro.setLocalidade(localidade); EmitirHistogramaEsgotoHelper emitirHistogramaEsgotoHelperTotalGeral = (EmitirHistogramaEsgotoHelper) hashMapTotalGeral .get(chave); HashMap mapTotalizacaoCategoria = this .montarEmitirHistogramaEsgotoTotalGeralCategoria(emitirHistogramaEsgotoHelperTotalGeral .getColecaoEmitirHistogramaEsgotoDetalhe()); filtroSetorComercial = new FiltroSetorComercial(); filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, codigoSetorComercial)); filtroSetorComercial .adicionarParametro(new ParametroSimples( FiltroSetorComercial.ID_LOCALIDADE, localidade .getId())); filtroSetorComercial .adicionarCaminhoParaCarregamentoEntidade("localidade"); // Recupera Setor Comercial colecaoSetorComercial = this.getControladorUtil().pesquisar( filtroSetorComercial, SetorComercial.class.getName()); setorComercial = (SetorComercial) Util .retonarObjetoDeColecao(colecaoSetorComercial); String descricaoOpcaoTotalizacao = setorComercial .getLocalidade().getId() + "-" + setorComercial.getLocalidade().getDescricao() + " / " + setorComercial.getCodigo() + "-" + setorComercial.getDescricao(); // Vai gerar Faixa para medido if (colecaoConsumoFaixaLigacaoMedido != null && !colecaoConsumoFaixaLigacaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_ATIVO, mapTotalizacaoCategoria); } // Vai gerar Faixa para N�o medido if (colecaoConsumoFaixaLigacaoNaoMedido != null && !colecaoConsumoFaixaLigacaoNaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoNaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_DESATIVO, mapTotalizacaoCategoria); } // Setar Total Geral emitirHistogramaEsgotoHelperTotalGeral .setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialLigacao(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialConsumo(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialFaturamento(100.0); colecaoEmitirHistogramaEsgoto .add(emitirHistogramaEsgotoHelperTotalGeral); localidadeAnterior = localidade.getId(); } filtro.setOpcaoTotalizacao(16); filtro.setMedicao(indicadorMedicao); Localidade localAnterior = new Localidade(); localAnterior.setId(localidadeAnterior); filtro.setLocalidade(localAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoLocalidade(filtro)); } return colecaoEmitirHistogramaEsgoto; } /** * [UC0600] Emitir Histograma de Esgoto * * Setor Comercial e Quadra * * @author Rafael Pinto * @date 06/11/2007 * * @param FiltrarEmitirHistogramaEsgotoHelper * * @return Collection<EmitirHistogramaEsgotoHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoHelper> emitirHistogramaEsgotoQuadraSetorComercial( FiltrarEmitirHistogramaEsgotoHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoHelper> colecaoEmitirHistogramaEsgoto = new ArrayList<EmitirHistogramaEsgotoHelper>(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoMedido = filtro .getColecaoConsumoFaixaLigacaoMedido(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoNaoMedido = filtro .getColecaoConsumoFaixaLigacaoNaoMedido(); filtro .setTipoGroupBy("histograma.numeroQuadra,histograma.setorComercial.id "); LinkedHashMap hashMapTotalGeral = new LinkedHashMap(); Short indicadorMedicao = filtro.getMedicao(); try { if (filtro.getMedicao() != null) { if (filtro.getMedicao().shortValue() == ConstantesSistema.INDICADOR_USO_ATIVO) { filtro.setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } else { filtro.setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } } else { filtro .setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_ATIVO)); filtro .setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_DESATIVO)); } Collection<Object[]> colecaoTotalGeral = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgoto(filtro); hashMapTotalGeral = this.montarEmitirHistogramaEsgotoTotalGeral( filtro, colecaoTotalGeral); } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } if (hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()) { Iterator iter = hashMapTotalGeral.keySet().iterator(); int setorComercialAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; FiltroQuadra filtroQuadra = null; Collection colecaoQuadra = null; Integer numeroQuadra = null; SetorComercial setorComercial = null; Quadra quadra = null; while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); numeroQuadra = new Integer(arrayNumeracao[0]); setorComercial = new SetorComercial(); setorComercial.setId(new Integer(arrayNumeracao[1])); if (setorComercialAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO) { setorComercialAnterior = setorComercial.getId(); } filtro.setMedicao(indicadorMedicao); filtro.setNumeroQuadra(numeroQuadra); filtro.setSetorComercial(setorComercial); EmitirHistogramaEsgotoHelper emitirHistogramaEsgotoHelperTotalGeral = (EmitirHistogramaEsgotoHelper) hashMapTotalGeral .get(chave); HashMap mapTotalizacaoCategoria = this .montarEmitirHistogramaEsgotoTotalGeralCategoria(emitirHistogramaEsgotoHelperTotalGeral .getColecaoEmitirHistogramaEsgotoDetalhe()); filtroQuadra = new FiltroQuadra(); filtroQuadra.adicionarParametro(new ParametroSimples( FiltroQuadra.NUMERO_QUADRA, numeroQuadra)); filtroQuadra .adicionarParametro(new ParametroSimples( FiltroQuadra.ID_SETORCOMERCIAL, setorComercial .getId())); filtroQuadra .adicionarCaminhoParaCarregamentoEntidade("setorComercial"); filtroQuadra .adicionarCaminhoParaCarregamentoEntidade("setorComercial.localidade"); // Recupera Quadra colecaoQuadra = this.getControladorUtil().pesquisar( filtroQuadra, Quadra.class.getName()); quadra = (Quadra) Util.retonarObjetoDeColecao(colecaoQuadra); String descricaoOpcaoTotalizacao = quadra.getSetorComercial() .getLocalidade().getId() + "-" + quadra.getSetorComercial().getLocalidade() .getDescricao() + " / " + quadra.getSetorComercial().getCodigo() + "-" + quadra.getSetorComercial().getDescricao() + " / " + quadra.getNumeroQuadra(); // Vai gerar Faixa para medido if (colecaoConsumoFaixaLigacaoMedido != null && !colecaoConsumoFaixaLigacaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_ATIVO, mapTotalizacaoCategoria); } // Vai gerar Faixa para N�o medido if (colecaoConsumoFaixaLigacaoNaoMedido != null && !colecaoConsumoFaixaLigacaoNaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoNaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_DESATIVO, mapTotalizacaoCategoria); } // Setar Total Geral emitirHistogramaEsgotoHelperTotalGeral .setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialLigacao(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialConsumo(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialFaturamento(100.0); colecaoEmitirHistogramaEsgoto .add(emitirHistogramaEsgotoHelperTotalGeral); setorComercialAnterior = setorComercial.getId(); } SetorComercial setorAnterior = new SetorComercial(); setorAnterior.setId(setorComercialAnterior); filtro.setOpcaoTotalizacao(19); filtro.setMedicao(indicadorMedicao); filtro.setSetorComercial(setorAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoSetorComercial(filtro)); } return colecaoEmitirHistogramaEsgoto; } /** * [UC0600] Emitir Histograma de Esgoto * * Setor Comercial ,Localidade e Elo * * @author Rafael Pinto * @date 06/11/2007 * * @param FiltrarEmitirHistogramaEsgotoHelper * * @return Collection<EmitirHistogramaEsgotoHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoHelper> emitirHistogramaEsgotoQuadraLocalidade( FiltrarEmitirHistogramaEsgotoHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoHelper> colecaoEmitirHistogramaEsgoto = new ArrayList<EmitirHistogramaEsgotoHelper>(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoMedido = filtro .getColecaoConsumoFaixaLigacaoMedido(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoNaoMedido = filtro .getColecaoConsumoFaixaLigacaoNaoMedido(); filtro .setTipoGroupBy("histograma.numeroQuadra,histograma.setorComercial.id," + "histograma.localidade.id "); LinkedHashMap hashMapTotalGeral = new LinkedHashMap(); Short indicadorMedicao = filtro.getMedicao(); try { if (filtro.getMedicao() != null) { if (filtro.getMedicao().shortValue() == ConstantesSistema.INDICADOR_USO_ATIVO) { filtro.setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } else { filtro.setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } } else { filtro .setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_ATIVO)); filtro .setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_DESATIVO)); } Collection<Object[]> colecaoTotalGeral = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgoto(filtro); hashMapTotalGeral = this.montarEmitirHistogramaEsgotoTotalGeral( filtro, colecaoTotalGeral); } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } if (hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()) { Iterator iter = hashMapTotalGeral.keySet().iterator(); int localidadeAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; int setorComercialAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; FiltroQuadra filtroQuadra = null; Collection colecaoQuadra = null; Integer numeroQuadra = null; Quadra quadra = null; SetorComercial setorComercial = null; Localidade localidade = null; while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); numeroQuadra = new Integer(arrayNumeracao[0]); setorComercial = new SetorComercial(); setorComercial.setId(new Integer(arrayNumeracao[1])); localidade = new Localidade(); localidade.setId(new Integer(arrayNumeracao[2])); if (setorComercialAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO) { setorComercialAnterior = setorComercial.getId(); } if (localidadeAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO) { localidadeAnterior = localidade.getId(); } filtro.setMedicao(indicadorMedicao); filtro.setSetorComercial(setorComercial); filtro.setLocalidade(localidade); // Mudou de Setor Comercial if (setorComercialAnterior != setorComercial.getId().intValue()) { filtro.setOpcaoTotalizacao(19); SetorComercial setorAnterior = new SetorComercial(); setorAnterior.setId(setorComercialAnterior); filtro.setSetorComercial(setorAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoSetorComercial(filtro)); } filtro.setMedicao(indicadorMedicao); // Mudou de Localidade if (localidadeAnterior != localidade.getId().intValue()) { filtro.setOpcaoTotalizacao(16); Localidade localAnterior = new Localidade(); localAnterior.setId(localidadeAnterior); filtro.setLocalidade(localAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoLocalidade(filtro)); } filtro.setNumeroQuadra(numeroQuadra); filtro.setSetorComercial(setorComercial); filtro.setLocalidade(localidade); filtro.setMedicao(indicadorMedicao); EmitirHistogramaEsgotoHelper emitirHistogramaEsgotoHelperTotalGeral = (EmitirHistogramaEsgotoHelper) hashMapTotalGeral .get(chave); HashMap mapTotalizacaoCategoria = this .montarEmitirHistogramaEsgotoTotalGeralCategoria(emitirHistogramaEsgotoHelperTotalGeral .getColecaoEmitirHistogramaEsgotoDetalhe()); filtroQuadra = new FiltroQuadra(); filtroQuadra.adicionarParametro(new ParametroSimples( FiltroQuadra.NUMERO_QUADRA, numeroQuadra)); filtroQuadra .adicionarParametro(new ParametroSimples( FiltroQuadra.ID_SETORCOMERCIAL, setorComercial .getId())); filtroQuadra .adicionarCaminhoParaCarregamentoEntidade("setorComercial"); filtroQuadra .adicionarCaminhoParaCarregamentoEntidade("setorComercial.localidade"); // Recupera Quadra colecaoQuadra = this.getControladorUtil().pesquisar( filtroQuadra, Quadra.class.getName()); quadra = (Quadra) Util.retonarObjetoDeColecao(colecaoQuadra); String descricaoOpcaoTotalizacao = quadra.getSetorComercial() .getLocalidade().getId() + "-" + quadra.getSetorComercial().getLocalidade() .getDescricao() + " / " + quadra.getSetorComercial().getCodigo() + "-" + quadra.getSetorComercial().getDescricao() + " / " + quadra.getNumeroQuadra(); // Vai gerar Faixa para medido if (colecaoConsumoFaixaLigacaoMedido != null && !colecaoConsumoFaixaLigacaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_ATIVO, mapTotalizacaoCategoria); } // Vai gerar Faixa para N�o medido if (colecaoConsumoFaixaLigacaoNaoMedido != null && !colecaoConsumoFaixaLigacaoNaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoNaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_DESATIVO, mapTotalizacaoCategoria); } // Setar Total Geral emitirHistogramaEsgotoHelperTotalGeral .setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialLigacao(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialConsumo(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialFaturamento(100.0); colecaoEmitirHistogramaEsgoto .add(emitirHistogramaEsgotoHelperTotalGeral); localidadeAnterior = localidade.getId(); setorComercialAnterior = setorComercial.getId(); } SetorComercial setorAnterior = new SetorComercial(); setorAnterior.setId(setorComercialAnterior); filtro.setOpcaoTotalizacao(19); filtro.setMedicao(indicadorMedicao); filtro.setSetorComercial(setorAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoSetorComercial(filtro)); Localidade localAnterior = new Localidade(); localAnterior.setId(localidadeAnterior); filtro.setOpcaoTotalizacao(16); filtro.setMedicao(indicadorMedicao); filtro.setLocalidade(localAnterior); colecaoEmitirHistogramaEsgoto.addAll(this .emitirHistogramaEsgotoLocalidade(filtro)); } return colecaoEmitirHistogramaEsgoto; } /** * [UC0600] Emitir Histograma de Esgoto - * * Localidade * * @author Rafael Pinto * @date 06/11/2007 * * @param FiltrarEmitirHistogramaEsgotoHelper * * @return Collection<EmitirHistogramaEsgotoHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoHelper> emitirHistogramaEsgotoLocalidade( FiltrarEmitirHistogramaEsgotoHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoHelper> colecaoEmitirHistogramaEsgoto = new ArrayList<EmitirHistogramaEsgotoHelper>(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoMedido = filtro .getColecaoConsumoFaixaLigacaoMedido(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoNaoMedido = filtro .getColecaoConsumoFaixaLigacaoNaoMedido(); filtro.setTipoGroupBy("histograma.localidade.id "); LinkedHashMap hashMapTotalGeral = new LinkedHashMap(); filtro.setCodigoSetorComercial(null); filtro.setSetorComercial(null); filtro.setEloPolo(null); filtro.setConsumoFaixaLigacao(null); try { if (filtro.getMedicao() != null) { if (filtro.getMedicao().shortValue() == ConstantesSistema.INDICADOR_USO_ATIVO) { filtro.setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } else { filtro.setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } } else { filtro .setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_ATIVO)); filtro .setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_DESATIVO)); } Collection<Object[]> colecaoTotalGeral = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgoto(filtro); hashMapTotalGeral = this.montarEmitirHistogramaEsgotoTotalGeral( filtro, colecaoTotalGeral); } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } if (hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()) { FiltroLocalidade filtroLocalidade = null; Collection colecaoLocalidade = null; Localidade localidade = null; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String chave = (String) iter.next(); localidade = new Localidade(); localidade.setId(new Integer(chave)); filtro.setLocalidade(localidade); EmitirHistogramaEsgotoHelper emitirHistogramaEsgotoHelperTotalGeral = (EmitirHistogramaEsgotoHelper) hashMapTotalGeral .get(chave); HashMap mapTotalizacaoCategoria = this .montarEmitirHistogramaEsgotoTotalGeralCategoria(emitirHistogramaEsgotoHelperTotalGeral .getColecaoEmitirHistogramaEsgotoDetalhe()); filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, chave)); // Recupera Localidade colecaoLocalidade = this.getControladorUtil().pesquisar( filtroLocalidade, Localidade.class.getName()); localidade = (Localidade) Util .retonarObjetoDeColecao(colecaoLocalidade); String descricaoOpcaoTotalizacao = localidade.getId() + "-" + localidade.getDescricao(); // Vai gerar Faixa para medido if (colecaoConsumoFaixaLigacaoMedido != null && !colecaoConsumoFaixaLigacaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_ATIVO, mapTotalizacaoCategoria); } // Vai gerar Faixa para N�o medido if (colecaoConsumoFaixaLigacaoNaoMedido != null && !colecaoConsumoFaixaLigacaoNaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoNaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_DESATIVO, mapTotalizacaoCategoria); } // Setar Total Geral emitirHistogramaEsgotoHelperTotalGeral .setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialLigacao(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialConsumo(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialFaturamento(100.0); colecaoEmitirHistogramaEsgoto .add(emitirHistogramaEsgotoHelperTotalGeral); } } return colecaoEmitirHistogramaEsgoto; } /** * [UC0600] Emitir Histograma de Esgoto - * * Setor Comercial * * @author Rafael Pinto * @date 06/11/2007 * * @param FiltrarEmitirHistogramaEsgotoHelper * * @return Collection<EmitirHistogramaEsgotoHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoHelper> emitirHistogramaEsgotoSetorComercial( FiltrarEmitirHistogramaEsgotoHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoHelper> colecaoEmitirHistogramaEsgoto = new ArrayList<EmitirHistogramaEsgotoHelper>(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoMedido = filtro .getColecaoConsumoFaixaLigacaoMedido(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoNaoMedido = filtro .getColecaoConsumoFaixaLigacaoNaoMedido(); filtro.setTipoGroupBy("histograma.setorComercial.id "); LinkedHashMap hashMapTotalGeral = new LinkedHashMap(); filtro.setConsumoFaixaLigacao(null); try { if (filtro.getMedicao() != null) { if (filtro.getMedicao().shortValue() == ConstantesSistema.INDICADOR_USO_ATIVO) { filtro.setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } else { filtro.setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } } else { filtro .setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_ATIVO)); filtro .setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_DESATIVO)); } Collection<Object[]> colecaoTotalGeral = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgoto(filtro); hashMapTotalGeral = this.montarEmitirHistogramaEsgotoTotalGeral( filtro, colecaoTotalGeral); } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } if (hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()) { FiltroSetorComercial filtroSetorComercial = null; Collection colecaoSetorComercial = null; SetorComercial setorComercial = null; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String chave = (String) iter.next(); setorComercial = new SetorComercial(); setorComercial.setId(new Integer(chave)); filtro.setSetorComercial(setorComercial); EmitirHistogramaEsgotoHelper emitirHistogramaEsgotoHelperTotalGeral = (EmitirHistogramaEsgotoHelper) hashMapTotalGeral .get(chave); HashMap mapTotalizacaoCategoria = this .montarEmitirHistogramaEsgotoTotalGeralCategoria(emitirHistogramaEsgotoHelperTotalGeral .getColecaoEmitirHistogramaEsgotoDetalhe()); filtroSetorComercial = new FiltroSetorComercial(); filtroSetorComercial.adicionarParametro(new ParametroSimples( FiltroSetorComercial.ID, chave)); filtroSetorComercial .adicionarCaminhoParaCarregamentoEntidade("localidade"); // Recupera Setor Comercial colecaoSetorComercial = this.getControladorUtil().pesquisar( filtroSetorComercial, SetorComercial.class.getName()); setorComercial = (SetorComercial) Util .retonarObjetoDeColecao(colecaoSetorComercial); String descricaoOpcaoTotalizacao = setorComercial .getLocalidade().getId() + "-" + setorComercial.getLocalidade().getDescricao() + " / " + setorComercial.getCodigo() + "-" + setorComercial.getDescricao(); // Vai gerar Faixa para medido if (colecaoConsumoFaixaLigacaoMedido != null && !colecaoConsumoFaixaLigacaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_ATIVO, mapTotalizacaoCategoria); } // Vai gerar Faixa para N�o medido if (colecaoConsumoFaixaLigacaoNaoMedido != null && !colecaoConsumoFaixaLigacaoNaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoNaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_DESATIVO, mapTotalizacaoCategoria); } // Setar Total Geral emitirHistogramaEsgotoHelperTotalGeral .setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialLigacao(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialConsumo(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialFaturamento(100.0); colecaoEmitirHistogramaEsgoto .add(emitirHistogramaEsgotoHelperTotalGeral); } } return colecaoEmitirHistogramaEsgoto; } /** * [UC0600] Emitir Histograma de Esgoto - * * Quadra * * @author Rafael Pinto * @date 06/11/2007 * * @param FiltrarEmitirHistogramaEsgotoHelper * * @return Collection<EmitirHistogramaEsgotoHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoHelper> emitirHistogramaEsgotoQuadra( FiltrarEmitirHistogramaEsgotoHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoHelper> colecaoEmitirHistogramaEsgoto = new ArrayList<EmitirHistogramaEsgotoHelper>(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoMedido = filtro .getColecaoConsumoFaixaLigacaoMedido(); Collection<ConsumoFaixaLigacao> colecaoConsumoFaixaLigacaoNaoMedido = filtro .getColecaoConsumoFaixaLigacaoNaoMedido(); filtro.setTipoGroupBy("histograma.quadra.id "); LinkedHashMap hashMapTotalGeral = new LinkedHashMap(); try { if (filtro.getMedicao() != null) { if (filtro.getMedicao().shortValue() == ConstantesSistema.INDICADOR_USO_ATIVO) { filtro.setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } else { filtro.setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(filtro.getMedicao())); } } else { filtro .setConsumoFaixaLigacaoIntervaloMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_ATIVO)); filtro .setConsumoFaixaLigacaoIntervaloNaoMedido(filtro .retornaOLimiteConsultaTotal(ConstantesSistema.INDICADOR_USO_DESATIVO)); } Collection<Object[]> colecaoTotalGeral = this.repositorioFaturamento .pesquisarEmitirHistogramaEsgoto(filtro); hashMapTotalGeral = this.montarEmitirHistogramaEsgotoTotalGeral( filtro, colecaoTotalGeral); } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } if (hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()) { FiltroQuadra filtroQuadra = null; Collection colecaoQuadra = null; Quadra quadra = null; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String chave = (String) iter.next(); quadra = new Quadra(); quadra.setId(new Integer(chave)); filtro.setQuadra(quadra); EmitirHistogramaEsgotoHelper emitirHistogramaEsgotoHelperTotalGeral = (EmitirHistogramaEsgotoHelper) hashMapTotalGeral .get(chave); HashMap mapTotalizacaoCategoria = this .montarEmitirHistogramaEsgotoTotalGeralCategoria(emitirHistogramaEsgotoHelperTotalGeral .getColecaoEmitirHistogramaEsgotoDetalhe()); filtroQuadra = new FiltroQuadra(); filtroQuadra.adicionarParametro(new ParametroSimples( FiltroQuadra.ID, chave)); filtroQuadra .adicionarCaminhoParaCarregamentoEntidade("setorComercial"); filtroQuadra .adicionarCaminhoParaCarregamentoEntidade("setorComercial.localidade"); // Recupera Setor Comercial colecaoQuadra = this.getControladorUtil().pesquisar( filtroQuadra, Quadra.class.getName()); quadra = (Quadra) Util.retonarObjetoDeColecao(colecaoQuadra); String descricaoOpcaoTotalizacao = quadra.getSetorComercial() .getLocalidade().getId() + "-" + quadra.getSetorComercial().getLocalidade() .getDescricao() + " / " + quadra.getSetorComercial().getCodigo() + "-" + quadra.getSetorComercial().getDescricao() + " / " + quadra.getNumeroQuadra(); // Vai gerar Faixa para medido if (colecaoConsumoFaixaLigacaoMedido != null && !colecaoConsumoFaixaLigacaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_ATIVO, mapTotalizacaoCategoria); } // Vai gerar Faixa para N�o medido if (colecaoConsumoFaixaLigacaoNaoMedido != null && !colecaoConsumoFaixaLigacaoNaoMedido.isEmpty()) { this.montarEmitirHistogramaEsgotoFaixaConsumo( colecaoConsumoFaixaLigacaoNaoMedido, filtro, emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeLigacoes(), emitirHistogramaEsgotoHelperTotalGeral .getTotalValorFaturado(), emitirHistogramaEsgotoHelperTotalGeral .getTotalQuantidadeVolumeTotal(), colecaoEmitirHistogramaEsgoto, descricaoOpcaoTotalizacao, ConstantesSistema.INDICADOR_USO_DESATIVO, mapTotalizacaoCategoria); } // Setar Total Geral emitirHistogramaEsgotoHelperTotalGeral .setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialLigacao(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialConsumo(100.0); emitirHistogramaEsgotoHelperTotalGeral .setTotalPercentualParcialFaturamento(100.0); colecaoEmitirHistogramaEsgoto .add(emitirHistogramaEsgotoHelperTotalGeral); } } return colecaoEmitirHistogramaEsgoto; } /** * [UC0606] Emitir Histograma de �gua por Economia * * @author Rafael Pinto * @date 07/11/2007 * * @param FiltrarEmitirHistogramaEsgotoEconomiaHelper * * @return Collection<EmitirHistogramaEsgotoEconomiaHelper> * @throws ControladorException */ public Collection<EmitirHistogramaEsgotoEconomiaHelper> pesquisarEmitirHistogramaEsgotoEconomia( FiltrarEmitirHistogramaEsgotoEconomiaHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoEconomiaHelper> colecaoEmitirHistogramaEsgotoEconomia = new ArrayList<EmitirHistogramaEsgotoEconomiaHelper>(); Collection<BigDecimal> colecao = filtro.getColecaoPercentualLigacaoEsgoto(); if(colecao != null && !colecao.isEmpty()){ Iterator itera = colecao.iterator(); while (itera.hasNext()) { BigDecimal percentual = (BigDecimal) itera.next(); FiltrarEmitirHistogramaEsgotoEconomiaHelper novoFiltro = new FiltrarEmitirHistogramaEsgotoEconomiaHelper(filtro); FiltrarEmitirHistogramaEsgotoEconomiaHelper novoFiltroClone = new FiltrarEmitirHistogramaEsgotoEconomiaHelper(filtro); novoFiltro.setPercentualLigacaoEsgoto(percentual); novoFiltroClone.setPercentualLigacaoEsgoto(percentual); Collection<Integer> colecaoTarifa = filtro.getColecaoTarifa(); if(colecaoTarifa != null && !colecaoTarifa.isEmpty()){ Iterator iteraTarifa = colecaoTarifa.iterator(); while (iteraTarifa.hasNext()) { Integer tarifa = (Integer) iteraTarifa.next(); novoFiltro.setTarifa(tarifa); novoFiltroClone.setTarifa(tarifa); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.montarSwitchHistogramaEsgotoEconomia(novoFiltro,novoFiltroClone)); } }else{ colecaoEmitirHistogramaEsgotoEconomia.addAll(this.montarSwitchHistogramaEsgotoEconomia(novoFiltro,novoFiltroClone)); } } }else{ Collection<Integer> colecaoTarifa = filtro.getColecaoTarifa(); if(colecaoTarifa != null && !colecaoTarifa.isEmpty()){ Iterator iteraTarifa = colecaoTarifa.iterator(); while (iteraTarifa.hasNext()) { Integer tarifa = (Integer) iteraTarifa.next(); FiltrarEmitirHistogramaEsgotoEconomiaHelper novoFiltro = new FiltrarEmitirHistogramaEsgotoEconomiaHelper(filtro); FiltrarEmitirHistogramaEsgotoEconomiaHelper novoFiltroClone = new FiltrarEmitirHistogramaEsgotoEconomiaHelper(filtro); novoFiltro.setTarifa(tarifa); novoFiltroClone.setTarifa(tarifa); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.montarSwitchHistogramaEsgotoEconomia(novoFiltro,novoFiltroClone)); } } } FiltrarEmitirHistogramaEsgotoEconomiaHelper filtroClone2 = new FiltrarEmitirHistogramaEsgotoEconomiaHelper(filtro); colecaoEmitirHistogramaEsgotoEconomia.addAll( this.montarSwitchHistogramaEsgotoEconomia(filtro,filtroClone2)); return colecaoEmitirHistogramaEsgotoEconomia; } /** * [UC0606] Emitir Histograma de Esgoto Por Economia * * Monta switch * * @author Rafael Pinto * @date 07/11/2007 * * @param FiltrarEmitirHistogramaEsgotoEconomiaHelper * * @return Collection<EmitirHistogramaEsgotoEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoEconomiaHelper> montarSwitchHistogramaEsgotoEconomia( FiltrarEmitirHistogramaEsgotoEconomiaHelper filtro, FiltrarEmitirHistogramaEsgotoEconomiaHelper filtroClone) throws ControladorException { int opcaoTotalizacao = filtro.getOpcaoTotalizacao(); Collection<EmitirHistogramaEsgotoEconomiaHelper> colecaoEmitirHistogramaEsgotoEconomia = new ArrayList<EmitirHistogramaEsgotoEconomiaHelper>(); switch (opcaoTotalizacao) { // Estado case 1: colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaEstado(filtro)); break; // Estado por Gerencia Regional case 2: colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaGerenciaRegional(filtro)); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaEstado(filtroClone)); break; // Estado por Unidade Negocio case 3: colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaUnidadeNegocioGerenciaRegional(filtro)); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaEstado(filtroClone)); break; // Estado por Elo Polo case 4: colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaEloPoloUnidadeNegocioGerenciaRegional(filtro)); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaEstado(filtroClone)); break; // Estado por Localidade case 5: colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaLocalidadeEloPoloUnidadeNegocioGerenciaRegional(filtro)); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaEstado(filtroClone)); break; // Ger�ncia Regional case 6: colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaGerenciaRegional(filtro)); break; // Ger�ncia Regional por Unidade Negocio case 7: colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaUnidadeNegocioGerenciaRegional(filtro)); break; // Ger�ncia Regional por Elo case 8: colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaEloPoloUnidadeNegocioGerenciaRegional(filtro)); break; // Ger�ncia Regional por Localidade case 9: colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaLocalidadeEloPoloUnidadeNegocioGerenciaRegional(filtro)); break; // Unidade de Negocio case 10: colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaUnidadeNegocio(filtro)); break; // Unidade de Negocio por Elo case 11: colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaEloPoloUnidadeNegocio(filtro)); break; // Unidade de Negocio por Localidade case 12: colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaLocalidadeEloPoloUnidadeNegocio(filtro)); break; // Elo Polo case 13: colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaEloPolo(filtro)); break; // Elo Polo Por Localidade case 14: colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaLocalidadeEloPolo(filtro)); break; // Elo Polo Por Setor Comercial case 15: colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaSetorComercialLocalidadeEloPolo(filtro)); break; // Localidade case 16: colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaLocalidade(filtro)); break; // Localidade Por Setor Comercial case 17: colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaSetorComercialLocalidade(filtro)); break; // Localidade Por Quadra case 18: colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaQuadraSetorComercialLocalidade(filtro)); break; // Setor Comercial case 19: colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaSetorComercial(filtro)); break; // Setor Comercial Por Quadra case 20: colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaQuadraSetorComercial(filtro)); break; // Quadra case 21: colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaQuadra(filtro)); break; } return colecaoEmitirHistogramaEsgotoEconomia; } /** * [UC0606] Emitir Histograma de Esgoto Por Economia * * Estado * * @author Rafael Pinto * @date 07/11/2007 * * @param FiltrarEmitirHistogramaEsgotoEconomiaHelper * * @return Collection<EmitirHistogramaEsgotoEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoEconomiaHelper> emitirHistogramaEsgotoEconomiaEstado( FiltrarEmitirHistogramaEsgotoEconomiaHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoEconomiaHelper> colecaoEmitirHistogramaEsgotoEconomia = new ArrayList<EmitirHistogramaEsgotoEconomiaHelper>(); String descricaoPercentual = ""; if(filtro.getPercentualLigacaoEsgoto() != null){ descricaoPercentual = Util.formataBigDecimal(filtro.getPercentualLigacaoEsgoto(),2,true)+"%"; } String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaEsgotoEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaEsgotoEconomiaDetalheHelper> colecaoEmitirHistogramaEsgotoEconomiaDetalhe = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; Collection colecaoConsulta = null; Iterator itera = colecaoCategorias.iterator(); String descricaoOpcaoTotalizacao = this.getControladorUtil().pesquisarParametrosDoSistema().getNomeEstado(); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; int quantidadeCategoriaComValores = 0; while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaEsgotoEconomiaHelper(); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaEsgotoEconomiaDetalhe = new ArrayList<EmitirHistogramaEsgotoEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int quantidadeFaixaComValores = 0; int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaEsgotoEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaEsgotoEconomiaDetalheHelper(filtro, consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaEsgotoEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); if(detalhe.isExisteHistograma()){ quantidadeFaixaComValores++; } } if(quantidadeFaixaComValores != 0){ quantidadeCategoriaComValores++; } emitirHistograma.setColecaoEmitirHistogramaEsgotoEconomiaDetalhe(colecaoEmitirHistogramaEsgotoEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } if (quantidadeCategoriaComValores != 0){ emitirHistograma = new EmitirHistogramaEsgotoEconomiaHelper(); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); }else{ colecaoEmitirHistogramaEsgotoEconomia = new ArrayList<EmitirHistogramaEsgotoEconomiaHelper>(); } return colecaoEmitirHistogramaEsgotoEconomia; } /** * [UC0606] Emitir Histograma de Esgoto Por Economia * * Gerencia Regional * * @author Rafael Pinto * @date 07/11/2007 * * @param FiltrarEmitirHistogramaEsgotoEconomiaHelper * * @return Collection<EmitirHistogramaEsgotoEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoEconomiaHelper> emitirHistogramaEsgotoEconomiaGerenciaRegional( FiltrarEmitirHistogramaEsgotoEconomiaHelper filtro) throws ControladorException { filtro.setEloPolo(null); filtro.setUnidadeNegocio(null); filtro.setLocalidade(null); filtro.setMedicao(null); filtro.setConsumoFaixaCategoria(null); Collection<EmitirHistogramaEsgotoEconomiaHelper> colecaoEmitirHistogramaEsgotoEconomia = new ArrayList<EmitirHistogramaEsgotoEconomiaHelper>(); String descricaoPercentual = ""; if(filtro.getPercentualLigacaoEsgoto() != null){ descricaoPercentual = Util.formataBigDecimal(filtro.getPercentualLigacaoEsgoto(),2,true)+"%"; } filtro.setTipoGroupBy("histograma.gerenciaRegional.id"); filtro.setTipoOrderBy("1"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaEsgotoEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaEsgotoEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaEsgotoEconomiaDetalheHelper> colecaoEmitirHistogramaEsgotoEconomiaDetalhe = null; GerenciaRegional gerencia = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroGerenciaRegional filtroGerencia = null; Collection colecaoConsulta = null; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String IdGerencia = (String) iter.next(); Iterator itera = colecaoCategorias.iterator(); filtroGerencia = new FiltroGerenciaRegional(); filtroGerencia.adicionarParametro( new ParametroSimples(FiltroGerenciaRegional.ID,IdGerencia)); // Recupera Gerencia Regional colecaoConsulta = this.getControladorUtil().pesquisar(filtroGerencia, GerenciaRegional.class.getName()); gerencia = (GerenciaRegional) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = gerencia.getId()+" - "+gerencia.getNome(); filtro.setGerenciaRegional(gerencia); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaEsgotoEconomiaHelper(); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaEsgotoEconomiaDetalhe = new ArrayList<EmitirHistogramaEsgotoEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaEsgotoEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaEsgotoEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaEsgotoEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } emitirHistograma.setColecaoEmitirHistogramaEsgotoEconomiaDetalhe(colecaoEmitirHistogramaEsgotoEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaEsgotoEconomiaHelper) hashMapTotalGeral.get(IdGerencia); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); } } return colecaoEmitirHistogramaEsgotoEconomia; } /** * [UC0606] Emitir Histograma de Esgoto Por Economia * * Unidade de Negocio e Gerencia Regional * * @author Rafael Pinto * @date 07/11/2007 * * @param FiltrarEmitirHistogramaEsgotoEconomiaHelper * * @return Collection<EmitirHistogramaEsgotoEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoEconomiaHelper> emitirHistogramaEsgotoEconomiaUnidadeNegocioGerenciaRegional( FiltrarEmitirHistogramaEsgotoEconomiaHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoEconomiaHelper> colecaoEmitirHistogramaEsgotoEconomia = new ArrayList<EmitirHistogramaEsgotoEconomiaHelper>(); String descricaoPercentual = ""; if(filtro.getPercentualLigacaoEsgoto() != null){ descricaoPercentual = Util.formataBigDecimal(filtro.getPercentualLigacaoEsgoto(),2,true)+"%"; } filtro.setTipoGroupBy("histograma.unidadeNegocio.id,histograma.gerenciaRegional.id"); filtro.setTipoOrderBy("1"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaEsgotoEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaEsgotoEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaEsgotoEconomiaDetalheHelper> colecaoEmitirHistogramaEsgotoEconomiaDetalhe = null; UnidadeNegocio unidadeNegocio = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroUnidadeNegocio filtroUnidadeNegocio = null; Collection colecaoConsulta = null; //Pai da unidade Negocioa(unidade -> gerencia) int gerenciaAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); GerenciaRegional gerencia = new GerenciaRegional(); gerencia.setId(new Integer(arrayNumeracao[1])); if(gerenciaAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ gerenciaAnterior = gerencia.getId(); } //Mudou de Gerencia if(gerenciaAnterior != gerencia.getId().intValue()){ filtro.setOpcaoTotalizacao(2); GerenciaRegional gereAnterior = new GerenciaRegional(); gereAnterior.setId(gerenciaAnterior); filtro.setGerenciaRegional(gereAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaGerenciaRegional(filtro)); } filtroUnidadeNegocio = new FiltroUnidadeNegocio(); filtroUnidadeNegocio.adicionarParametro( new ParametroSimples(FiltroUnidadeNegocio.ID,arrayNumeracao[0])); filtroUnidadeNegocio.adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); // Recupera Unidade Negocio colecaoConsulta = this.getControladorUtil().pesquisar(filtroUnidadeNegocio, UnidadeNegocio.class.getName()); unidadeNegocio = (UnidadeNegocio) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = unidadeNegocio.getGerenciaRegional().getId()+"-"+unidadeNegocio.getGerenciaRegional().getNomeAbreviado() +" / "+ unidadeNegocio.getId()+"-"+unidadeNegocio.getNome(); filtro.setUnidadeNegocio(unidadeNegocio); filtro.setGerenciaRegional(gerencia); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; Iterator itera = colecaoCategorias.iterator(); while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaEsgotoEconomiaHelper(); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaEsgotoEconomiaDetalhe = new ArrayList<EmitirHistogramaEsgotoEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaEsgotoEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaEsgotoEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaEsgotoEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } emitirHistograma.setColecaoEmitirHistogramaEsgotoEconomiaDetalhe(colecaoEmitirHistogramaEsgotoEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaEsgotoEconomiaHelper) hashMapTotalGeral.get(chave); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); gerenciaAnterior = gerencia.getId(); } filtro.setOpcaoTotalizacao(2); GerenciaRegional gereAnterior = new GerenciaRegional(); gereAnterior.setId(gerenciaAnterior); filtro.setGerenciaRegional(gereAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaGerenciaRegional(filtro)); } return colecaoEmitirHistogramaEsgotoEconomia; } /** * [UC0606] Emitir Histograma de Esgoto Por Economia * * Elo Polo e Unidade de Negocio e Gerencia Regional * * @author Rafael Pinto * @date 07/11/2007 * * @param FiltrarEmitirHistogramaEsgotoEconomiaHelper * * @return Collection<EmitirHistogramaEsgotoEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoEconomiaHelper> emitirHistogramaEsgotoEconomiaEloPoloUnidadeNegocioGerenciaRegional( FiltrarEmitirHistogramaEsgotoEconomiaHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoEconomiaHelper> colecaoEmitirHistogramaEsgotoEconomia = new ArrayList<EmitirHistogramaEsgotoEconomiaHelper>(); String descricaoPercentual = ""; if(filtro.getPercentualLigacaoEsgoto() != null){ descricaoPercentual = Util.formataBigDecimal(filtro.getPercentualLigacaoEsgoto(),2,true)+"%"; } filtro.setTipoGroupBy("histograma.localidadeElo.id," + "histograma.unidadeNegocio.id,histograma.gerenciaRegional.id "); filtro.setTipoOrderBy("2,1"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaEsgotoEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaEsgotoEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaEsgotoEconomiaDetalheHelper> colecaoEmitirHistogramaEsgotoEconomiaDetalhe = null; Localidade eloPolo = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroLocalidade filtroLocalidade = null; Collection colecaoConsulta = null; //Pai do elo Polo(eloPolo -> unidade -> gerencia) int gerenciaAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; int unidadeNegocioAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); UnidadeNegocio unidadeNegocio = new UnidadeNegocio(); unidadeNegocio.setId(new Integer(arrayNumeracao[1])); GerenciaRegional gerencia = new GerenciaRegional(); gerencia.setId(new Integer(arrayNumeracao[2])); if(unidadeNegocioAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ unidadeNegocioAnterior = unidadeNegocio.getId(); } if(gerenciaAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ gerenciaAnterior = gerencia.getId(); } //Mudou de Unidade if(unidadeNegocioAnterior != unidadeNegocio.getId().intValue()){ filtro.setOpcaoTotalizacao(10); UnidadeNegocio uniAnterior = new UnidadeNegocio(); uniAnterior.setId(unidadeNegocioAnterior); filtro.setUnidadeNegocio(uniAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaUnidadeNegocio(filtro)); } //Mudou de Gerencia if(gerenciaAnterior != gerencia.getId().intValue()){ filtro.setOpcaoTotalizacao(2); GerenciaRegional gereAnterior = new GerenciaRegional(); gereAnterior.setId(gerenciaAnterior); filtro.setGerenciaRegional(gereAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaGerenciaRegional(filtro)); } filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro( new ParametroSimples(FiltroLocalidade.ID,arrayNumeracao[0])); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("unidadeNegocio"); // Recupera Localidade colecaoConsulta = this.getControladorUtil().pesquisar(filtroLocalidade, Localidade.class.getName()); eloPolo = (Localidade) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = eloPolo.getGerenciaRegional().getId()+"-"+eloPolo.getGerenciaRegional().getNomeAbreviado() +" / "+ eloPolo.getUnidadeNegocio().getId()+"-"+eloPolo.getUnidadeNegocio().getNomeAbreviado() +" / "+ eloPolo.getId()+"-"+eloPolo.getDescricao(); filtro.setEloPolo(eloPolo); filtro.setUnidadeNegocio(unidadeNegocio); filtro.setGerenciaRegional(gerencia); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; Iterator itera = colecaoCategorias.iterator(); while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaEsgotoEconomiaHelper(); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaEsgotoEconomiaDetalhe = new ArrayList<EmitirHistogramaEsgotoEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaEsgotoEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaEsgotoEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaEsgotoEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } emitirHistograma.setColecaoEmitirHistogramaEsgotoEconomiaDetalhe(colecaoEmitirHistogramaEsgotoEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaEsgotoEconomiaHelper) hashMapTotalGeral.get(chave); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); gerenciaAnterior = gerencia.getId(); unidadeNegocioAnterior = unidadeNegocio.getId(); } //Unidade de Negocio filtro.setOpcaoTotalizacao(10); UnidadeNegocio uniAnterior = new UnidadeNegocio(); uniAnterior.setId(unidadeNegocioAnterior); filtro.setUnidadeNegocio(uniAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaUnidadeNegocio(filtro)); //Gerencia Regional filtro.setOpcaoTotalizacao(2); GerenciaRegional gereAnterior = new GerenciaRegional(); gereAnterior.setId(gerenciaAnterior); filtro.setGerenciaRegional(gereAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaGerenciaRegional(filtro)); } return colecaoEmitirHistogramaEsgotoEconomia; } /** * [UC0606] Emitir Histograma de Esgoto Por Economia * * Elo Polo e Unidade de Negocio e Gerencia Regional * * @author Rafael Pinto * @date 07/11/2007 * * @param FiltrarEmitirHistogramaEsgotoEconomiaHelper * * @return Collection<EmitirHistogramaEsgotoEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoEconomiaHelper> emitirHistogramaEsgotoEconomiaLocalidadeEloPoloUnidadeNegocioGerenciaRegional( FiltrarEmitirHistogramaEsgotoEconomiaHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoEconomiaHelper> colecaoEmitirHistogramaEsgotoEconomia = new ArrayList<EmitirHistogramaEsgotoEconomiaHelper>(); String descricaoPercentual = ""; if(filtro.getPercentualLigacaoEsgoto() != null){ descricaoPercentual = Util.formataBigDecimal(filtro.getPercentualLigacaoEsgoto(),2,true)+"%"; } filtro.setTipoGroupBy("histograma.localidade.id,histograma.localidadeElo.id," + "histograma.unidadeNegocio.id,histograma.gerenciaRegional.id "); filtro.setTipoOrderBy("4,3,2,1"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaEsgotoEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaEsgotoEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaEsgotoEconomiaDetalheHelper> colecaoEmitirHistogramaEsgotoEconomiaDetalhe = null; Localidade localidade = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroLocalidade filtroLocalidade = null; Collection colecaoConsulta = null; //Pai do elo Polo(eloPolo -> unidade -> gerencia) int gerenciaAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; int unidadeNegocioAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; int eloPoloAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); Localidade eloPolo = new Localidade(); eloPolo.setId(new Integer(arrayNumeracao[1])); UnidadeNegocio unidadeNegocio = new UnidadeNegocio(); unidadeNegocio.setId(new Integer(arrayNumeracao[2])); GerenciaRegional gerencia = new GerenciaRegional(); gerencia.setId(new Integer(arrayNumeracao[3])); if(unidadeNegocioAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ unidadeNegocioAnterior = unidadeNegocio.getId(); } if(gerenciaAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ gerenciaAnterior = gerencia.getId(); } if(eloPoloAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ eloPoloAnterior = eloPolo.getId(); } //Mudou de Elo Polo if(eloPoloAnterior != eloPolo.getId().intValue()){ Localidade eloAnterior = new Localidade(); eloAnterior.setId(eloPoloAnterior); filtro.setOpcaoTotalizacao(13); filtro.setEloPolo(eloAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaEloPolo(filtro)); } //Mudou de Unidade if(unidadeNegocioAnterior != unidadeNegocio.getId().intValue()){ UnidadeNegocio uniAnterior = new UnidadeNegocio(); uniAnterior.setId(unidadeNegocioAnterior); filtro.setOpcaoTotalizacao(10); filtro.setUnidadeNegocio(uniAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaUnidadeNegocio(filtro)); } //Mudou de Gerencia if(gerenciaAnterior != gerencia.getId().intValue()){ GerenciaRegional gereAnterior = new GerenciaRegional(); gereAnterior.setId(gerenciaAnterior); filtro.setOpcaoTotalizacao(2); filtro.setGerenciaRegional(gereAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaGerenciaRegional(filtro)); } filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro( new ParametroSimples(FiltroLocalidade.ID,arrayNumeracao[0])); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("unidadeNegocio"); // Recupera Localidade colecaoConsulta = this.getControladorUtil().pesquisar(filtroLocalidade, Localidade.class.getName()); localidade = (Localidade) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = localidade.getGerenciaRegional().getId()+"-"+localidade.getGerenciaRegional().getNomeAbreviado() +" / "+ localidade.getUnidadeNegocio().getId()+"-"+localidade.getUnidadeNegocio().getNomeAbreviado() +" / "+ localidade.getLocalidade().getId()+"-"+localidade.getLocalidade().getDescricao() +" / "+ localidade.getId()+"-"+localidade.getDescricao(); filtro.setLocalidade(localidade); filtro.setEloPolo(eloPolo); filtro.setUnidadeNegocio(unidadeNegocio); filtro.setGerenciaRegional(gerencia); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; Iterator itera = colecaoCategorias.iterator(); while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaEsgotoEconomiaHelper(); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaEsgotoEconomiaDetalhe = new ArrayList<EmitirHistogramaEsgotoEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaEsgotoEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaEsgotoEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaEsgotoEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } emitirHistograma.setColecaoEmitirHistogramaEsgotoEconomiaDetalhe(colecaoEmitirHistogramaEsgotoEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaEsgotoEconomiaHelper) hashMapTotalGeral.get(chave); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); gerenciaAnterior = gerencia.getId(); unidadeNegocioAnterior = unidadeNegocio.getId(); eloPoloAnterior = eloPolo.getId(); } //Elo Polo Localidade eloAnterior = new Localidade(); eloAnterior.setId(eloPoloAnterior); filtro.setOpcaoTotalizacao(13); filtro.setEloPolo(eloAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaEloPolo(filtro)); //Unidade de Negocio UnidadeNegocio uniAnterior = new UnidadeNegocio(); uniAnterior.setId(unidadeNegocioAnterior); filtro.setOpcaoTotalizacao(10); filtro.setUnidadeNegocio(uniAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaUnidadeNegocio(filtro)); //Gerencia Regional GerenciaRegional gereAnterior = new GerenciaRegional(); gereAnterior.setId(gerenciaAnterior); filtro.setOpcaoTotalizacao(2); filtro.setGerenciaRegional(gereAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaGerenciaRegional(filtro)); } return colecaoEmitirHistogramaEsgotoEconomia; } /** * [UC0606] Emitir Histograma de Esgoto Por Economia - Unidade de Negocio * * @author Rafael Pinto * @date 07/11/2007 * * @param FiltrarEmitirHistogramaEsgotoEconomiaHelper * * @return Collection<EmitirHistogramaEsgotoEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoEconomiaHelper> emitirHistogramaEsgotoEconomiaUnidadeNegocio( FiltrarEmitirHistogramaEsgotoEconomiaHelper filtro) throws ControladorException { filtro.setEloPolo(null); filtro.setGerenciaRegional(null); filtro.setLocalidade(null); filtro.setMedicao(null); filtro.setConsumoFaixaCategoria(null); Collection<EmitirHistogramaEsgotoEconomiaHelper> colecaoEmitirHistogramaEsgotoEconomia = new ArrayList<EmitirHistogramaEsgotoEconomiaHelper>(); String descricaoPercentual = ""; if(filtro.getPercentualLigacaoEsgoto() != null){ descricaoPercentual = Util.formataBigDecimal(filtro.getPercentualLigacaoEsgoto(),2,true)+"%"; } filtro.setTipoGroupBy("histograma.unidadeNegocio.id"); filtro.setTipoOrderBy("1"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaEsgotoEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaEsgotoEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaEsgotoEconomiaDetalheHelper> colecaoEmitirHistogramaEsgotoEconomiaDetalhe = null; UnidadeNegocio unidadeNegocio = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroUnidadeNegocio filtroUnidadeNegocio = null; Collection colecaoConsulta = null; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String idUnidadeNegocio = (String) iter.next(); Iterator itera = colecaoCategorias.iterator(); filtroUnidadeNegocio = new FiltroUnidadeNegocio(); filtroUnidadeNegocio.adicionarParametro( new ParametroSimples(FiltroUnidadeNegocio.ID,idUnidadeNegocio)); filtroUnidadeNegocio.adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); // Recupera Unidade Negocio colecaoConsulta = this.getControladorUtil().pesquisar(filtroUnidadeNegocio, UnidadeNegocio.class.getName()); unidadeNegocio = (UnidadeNegocio) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = unidadeNegocio.getGerenciaRegional().getId()+"-"+unidadeNegocio.getGerenciaRegional().getNomeAbreviado() +" / "+ unidadeNegocio.getId()+"-"+unidadeNegocio.getNome(); filtro.setUnidadeNegocio(unidadeNegocio); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaEsgotoEconomiaHelper(); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaEsgotoEconomiaDetalhe = new ArrayList<EmitirHistogramaEsgotoEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaEsgotoEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaEsgotoEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaEsgotoEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } emitirHistograma.setColecaoEmitirHistogramaEsgotoEconomiaDetalhe(colecaoEmitirHistogramaEsgotoEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaEsgotoEconomiaHelper) hashMapTotalGeral.get(idUnidadeNegocio); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); } } return colecaoEmitirHistogramaEsgotoEconomia; } /** * [UC0606] Emitir Histograma de Esgoto Por Economia * * Elo Polo e Unidade de Negocio * * @author Rafael Pinto * @date 07/11/2007 * * @param FiltrarEmitirHistogramaEsgotoEconomiaHelper * * @return Collection<EmitirHistogramaEsgotoEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoEconomiaHelper> emitirHistogramaEsgotoEconomiaEloPoloUnidadeNegocio( FiltrarEmitirHistogramaEsgotoEconomiaHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoEconomiaHelper> colecaoEmitirHistogramaEsgotoEconomia = new ArrayList<EmitirHistogramaEsgotoEconomiaHelper>(); String descricaoPercentual = ""; if(filtro.getPercentualLigacaoEsgoto() != null){ descricaoPercentual = Util.formataBigDecimal(filtro.getPercentualLigacaoEsgoto(),2,true)+"%"; } filtro.setTipoGroupBy("histograma.localidadeElo.id,histograma.unidadeNegocio.id"); filtro.setTipoOrderBy("2,1"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaEsgotoEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaEsgotoEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaEsgotoEconomiaDetalheHelper> colecaoEmitirHistogramaEsgotoEconomiaDetalhe = null; Localidade eloPolo = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroLocalidade filtroLocalidade = null; Collection colecaoConsulta = null; //Pai do elo Polo(eloPolo -> unidade) int unidadeNegocioAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); UnidadeNegocio unidadeNegocio = new UnidadeNegocio(); unidadeNegocio.setId(new Integer(arrayNumeracao[1])); if(unidadeNegocioAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ unidadeNegocioAnterior = unidadeNegocio.getId(); } //Mudou de Unidade if(unidadeNegocioAnterior != unidadeNegocio.getId().intValue()){ filtro.setOpcaoTotalizacao(10); UnidadeNegocio uniAnterior = new UnidadeNegocio(); uniAnterior.setId(unidadeNegocioAnterior); filtro.setUnidadeNegocio(uniAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaUnidadeNegocio(filtro)); } filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro( new ParametroSimples(FiltroLocalidade.ID,arrayNumeracao[0])); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("unidadeNegocio"); // Recupera Localidade colecaoConsulta = this.getControladorUtil().pesquisar(filtroLocalidade, Localidade.class.getName()); eloPolo = (Localidade) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = eloPolo.getGerenciaRegional().getId()+"-"+eloPolo.getGerenciaRegional().getNomeAbreviado() +" / "+ eloPolo.getUnidadeNegocio().getId()+"-"+eloPolo.getUnidadeNegocio().getNomeAbreviado() +" / "+ eloPolo.getId()+"-"+eloPolo.getDescricao(); filtro.setEloPolo(eloPolo); filtro.setUnidadeNegocio(unidadeNegocio); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; Iterator itera = colecaoCategorias.iterator(); while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaEsgotoEconomiaHelper(); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaEsgotoEconomiaDetalhe = new ArrayList<EmitirHistogramaEsgotoEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaEsgotoEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaEsgotoEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaEsgotoEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } emitirHistograma.setColecaoEmitirHistogramaEsgotoEconomiaDetalhe(colecaoEmitirHistogramaEsgotoEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaEsgotoEconomiaHelper) hashMapTotalGeral.get(chave); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); unidadeNegocioAnterior = unidadeNegocio.getId(); } //Unidade de Negocio filtro.setOpcaoTotalizacao(10); UnidadeNegocio uniAnterior = new UnidadeNegocio(); uniAnterior.setId(unidadeNegocioAnterior); filtro.setUnidadeNegocio(uniAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaUnidadeNegocio(filtro)); } return colecaoEmitirHistogramaEsgotoEconomia; } /** * [UC0606] Emitir Histograma de Esgoto Por Economia * * Localidade ,Elo Polo e Unidade de Negocio * * @author Rafael Pinto * @date 07/11/2007 * * @param FiltrarEmitirHistogramaEsgotoEconomiaHelper * * @return Collection<EmitirHistogramaEsgotoEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoEconomiaHelper> emitirHistogramaEsgotoEconomiaLocalidadeEloPoloUnidadeNegocio( FiltrarEmitirHistogramaEsgotoEconomiaHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoEconomiaHelper> colecaoEmitirHistogramaEsgotoEconomia = new ArrayList<EmitirHistogramaEsgotoEconomiaHelper>(); String descricaoPercentual = ""; if(filtro.getPercentualLigacaoEsgoto() != null){ descricaoPercentual = Util.formataBigDecimal(filtro.getPercentualLigacaoEsgoto(),2,true)+"%"; } filtro.setTipoGroupBy("histograma.localidade.id,histograma.localidadeElo.id," + "histograma.unidadeNegocio.id"); filtro.setTipoOrderBy("3,2,1"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaEsgotoEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaEsgotoEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaEsgotoEconomiaDetalheHelper> colecaoEmitirHistogramaEsgotoEconomiaDetalhe = null; Localidade localidade = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroLocalidade filtroLocalidade = null; Collection colecaoConsulta = null; //Pai do elo Polo(eloPolo -> unidade -> gerencia) int unidadeNegocioAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; int eloPoloAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); Localidade eloPolo = new Localidade(); eloPolo.setId(new Integer(arrayNumeracao[1])); UnidadeNegocio unidadeNegocio = new UnidadeNegocio(); unidadeNegocio.setId(new Integer(arrayNumeracao[2])); if(unidadeNegocioAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ unidadeNegocioAnterior = unidadeNegocio.getId(); } if(eloPoloAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ eloPoloAnterior = eloPolo.getId(); } //Mudou de Elo Polo if(eloPoloAnterior != eloPolo.getId().intValue()){ Localidade eloAnterior = new Localidade(); eloAnterior.setId(eloPoloAnterior); filtro.setOpcaoTotalizacao(13); filtro.setEloPolo(eloAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaEloPolo(filtro)); } //Mudou de Unidade if(unidadeNegocioAnterior != unidadeNegocio.getId().intValue()){ UnidadeNegocio uniAnterior = new UnidadeNegocio(); uniAnterior.setId(unidadeNegocioAnterior); filtro.setOpcaoTotalizacao(10); filtro.setUnidadeNegocio(uniAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaUnidadeNegocio(filtro)); } filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro( new ParametroSimples(FiltroLocalidade.ID,arrayNumeracao[0])); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("unidadeNegocio"); // Recupera Localidade colecaoConsulta = this.getControladorUtil().pesquisar(filtroLocalidade, Localidade.class.getName()); localidade = (Localidade) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = localidade.getGerenciaRegional().getId()+"-"+localidade.getGerenciaRegional().getNomeAbreviado() +" / "+ localidade.getUnidadeNegocio().getId()+"-"+localidade.getUnidadeNegocio().getNomeAbreviado() +" / "+ localidade.getLocalidade().getId()+"-"+localidade.getLocalidade().getDescricao() +" / "+ localidade.getId()+"-"+localidade.getDescricao(); filtro.setLocalidade(localidade); filtro.setEloPolo(eloPolo); filtro.setUnidadeNegocio(unidadeNegocio); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; Iterator itera = colecaoCategorias.iterator(); while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaEsgotoEconomiaHelper(); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaEsgotoEconomiaDetalhe = new ArrayList<EmitirHistogramaEsgotoEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaEsgotoEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaEsgotoEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaEsgotoEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } emitirHistograma.setColecaoEmitirHistogramaEsgotoEconomiaDetalhe(colecaoEmitirHistogramaEsgotoEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaEsgotoEconomiaHelper) hashMapTotalGeral.get(chave); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); unidadeNegocioAnterior = unidadeNegocio.getId(); eloPoloAnterior = eloPolo.getId(); } //Elo Polo Localidade eloAnterior = new Localidade(); eloAnterior.setId(eloPoloAnterior); filtro.setOpcaoTotalizacao(13); filtro.setEloPolo(eloAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaEloPolo(filtro)); //Unidade de Negocio UnidadeNegocio uniAnterior = new UnidadeNegocio(); uniAnterior.setId(unidadeNegocioAnterior); filtro.setOpcaoTotalizacao(10); filtro.setUnidadeNegocio(uniAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaUnidadeNegocio(filtro)); } return colecaoEmitirHistogramaEsgotoEconomia; } /** * [UC0606] Emitir Histograma de Esgoto Por Economia * * Elo Polo * * @author Rafael Pinto * @date 07/11/2007 * * @param FiltrarEmitirHistogramaEsgotoEconomiaHelper * * @return Collection<EmitirHistogramaEsgotoEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoEconomiaHelper> emitirHistogramaEsgotoEconomiaEloPolo( FiltrarEmitirHistogramaEsgotoEconomiaHelper filtro) throws ControladorException { filtro.setGerenciaRegional(null); filtro.setUnidadeNegocio(null); filtro.setLocalidade(null); filtro.setMedicao(null); filtro.setConsumoFaixaCategoria(null); Collection<EmitirHistogramaEsgotoEconomiaHelper> colecaoEmitirHistogramaEsgotoEconomia = new ArrayList<EmitirHistogramaEsgotoEconomiaHelper>(); String descricaoPercentual = ""; if(filtro.getPercentualLigacaoEsgoto() != null){ descricaoPercentual = Util.formataBigDecimal(filtro.getPercentualLigacaoEsgoto(),2,true)+"%"; } filtro.setTipoGroupBy("histograma.localidadeElo.id"); filtro.setTipoOrderBy("1"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaEsgotoEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaEsgotoEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaEsgotoEconomiaDetalheHelper> colecaoEmitirHistogramaEsgotoEconomiaDetalhe = null; Localidade eloPolo = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroLocalidade filtroLocalidade = null; Collection colecaoConsulta = null; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String idEloPolo = (String) iter.next(); Iterator itera = colecaoCategorias.iterator(); filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro( new ParametroSimples(FiltroLocalidade.ID,idEloPolo)); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("unidadeNegocio"); // Recupera Elo Polo colecaoConsulta = this.getControladorUtil().pesquisar(filtroLocalidade, Localidade.class.getName()); eloPolo = (Localidade) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = eloPolo.getGerenciaRegional().getId()+"-"+eloPolo.getGerenciaRegional().getNomeAbreviado() +" / "+ eloPolo.getUnidadeNegocio().getId()+"-"+eloPolo.getUnidadeNegocio().getNomeAbreviado() +" / "+ eloPolo.getId()+"-"+eloPolo.getDescricao(); filtro.setEloPolo(eloPolo); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaEsgotoEconomiaHelper(); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaEsgotoEconomiaDetalhe = new ArrayList<EmitirHistogramaEsgotoEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaEsgotoEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaEsgotoEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaEsgotoEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } emitirHistograma.setColecaoEmitirHistogramaEsgotoEconomiaDetalhe(colecaoEmitirHistogramaEsgotoEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaEsgotoEconomiaHelper) hashMapTotalGeral.get(idEloPolo); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); } } return colecaoEmitirHistogramaEsgotoEconomia; } /** * [UC0606] Emitir Histograma de Esgoto Por Economia * * Localidade e Elo Polo * * @author Rafael Pinto * @date 07/11/2007 * * @param FiltrarEmitirHistogramaEsgotoEconomiaHelper * * @return Collection<EmitirHistogramaEsgotoEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoEconomiaHelper> emitirHistogramaEsgotoEconomiaLocalidadeEloPolo( FiltrarEmitirHistogramaEsgotoEconomiaHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoEconomiaHelper> colecaoEmitirHistogramaEsgotoEconomia = new ArrayList<EmitirHistogramaEsgotoEconomiaHelper>(); String descricaoPercentual = ""; if(filtro.getPercentualLigacaoEsgoto() != null){ descricaoPercentual = Util.formataBigDecimal(filtro.getPercentualLigacaoEsgoto(),2,true)+"%"; } filtro.setTipoGroupBy("histograma.localidade.id,histograma.localidadeElo.id"); filtro.setTipoOrderBy("1,2"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaEsgotoEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaEsgotoEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaEsgotoEconomiaDetalheHelper> colecaoEmitirHistogramaEsgotoEconomiaDetalhe = null; Localidade localidade = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroLocalidade filtroLocalidade = null; Collection colecaoConsulta = null; //Pai do elo Polo(eloPolo -> unidade -> gerencia) int eloPoloAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); Localidade eloPolo = new Localidade(); eloPolo.setId(new Integer(arrayNumeracao[1])); if(eloPoloAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ eloPoloAnterior = eloPolo.getId(); } //Mudou de Elo Polo if(eloPoloAnterior != eloPolo.getId().intValue()){ Localidade eloAnterior = new Localidade(); eloAnterior.setId(eloPoloAnterior); filtro.setOpcaoTotalizacao(13); filtro.setEloPolo(eloAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaEloPolo(filtro)); } filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro( new ParametroSimples(FiltroLocalidade.ID,arrayNumeracao[0])); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("unidadeNegocio"); // Recupera Localidade colecaoConsulta = this.getControladorUtil().pesquisar(filtroLocalidade, Localidade.class.getName()); localidade = (Localidade) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = localidade.getGerenciaRegional().getId()+"-"+localidade.getGerenciaRegional().getNomeAbreviado() +" / "+ localidade.getUnidadeNegocio().getId()+"-"+localidade.getUnidadeNegocio().getNomeAbreviado() +" / "+ localidade.getLocalidade().getId()+"-"+localidade.getLocalidade().getDescricao() +" / "+ localidade.getId()+"-"+localidade.getDescricao(); filtro.setLocalidade(localidade); filtro.setEloPolo(eloPolo); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; Iterator itera = colecaoCategorias.iterator(); while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaEsgotoEconomiaHelper(); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaEsgotoEconomiaDetalhe = new ArrayList<EmitirHistogramaEsgotoEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaEsgotoEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaEsgotoEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaEsgotoEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } emitirHistograma.setColecaoEmitirHistogramaEsgotoEconomiaDetalhe(colecaoEmitirHistogramaEsgotoEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaEsgotoEconomiaHelper) hashMapTotalGeral.get(chave); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); eloPoloAnterior = eloPolo.getId(); } //Elo Polo Localidade eloAnterior = new Localidade(); eloAnterior.setId(eloPoloAnterior); filtro.setOpcaoTotalizacao(13); filtro.setEloPolo(eloAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaEloPolo(filtro)); } return colecaoEmitirHistogramaEsgotoEconomia; } /** * [UC0606] Emitir Histograma de Esgoto Por Economia * * Setor Comercial ,Localidade e Elo * * @author Rafael Pinto * @date 07/11/2007 * * @param FiltrarEmitirHistogramaEsgotoEconomiaHelper * * @return Collection<EmitirHistogramaEsgotoEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoEconomiaHelper> emitirHistogramaEsgotoEconomiaSetorComercialLocalidadeEloPolo( FiltrarEmitirHistogramaEsgotoEconomiaHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoEconomiaHelper> colecaoEmitirHistogramaEsgotoEconomia = new ArrayList<EmitirHistogramaEsgotoEconomiaHelper>(); String descricaoPercentual = ""; if(filtro.getPercentualLigacaoEsgoto() != null){ descricaoPercentual = Util.formataBigDecimal(filtro.getPercentualLigacaoEsgoto(),2,true)+"%"; } filtro.setTipoGroupBy("histograma.codigoSetorComercial,histograma.localidade.id,histograma.localidadeElo.id"); filtro.setTipoOrderBy("1,2,3"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaEsgotoEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaEsgotoEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaEsgotoEconomiaDetalheHelper> colecaoEmitirHistogramaEsgotoEconomiaDetalhe = null; SetorComercial setorComercial = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroSetorComercial filtroSetorComercial = null; Collection colecaoConsulta = null; int localidadeAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; int eloPoloAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); Localidade localidade = new Localidade(); localidade.setId(new Integer(arrayNumeracao[1])); Localidade eloPolo = new Localidade(); eloPolo.setId(new Integer(arrayNumeracao[2])); if(localidadeAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ localidadeAnterior = localidade.getId(); } if(eloPoloAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ eloPoloAnterior = eloPolo.getId(); } //Mudou de Localidade if(localidadeAnterior != localidade.getId().intValue()){ Localidade localAnterior = new Localidade(); localAnterior.setId(localidadeAnterior); filtro.setOpcaoTotalizacao(16); filtro.setLocalidade(localAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaLocalidade(filtro)); } //Mudou de Elo Polo if(eloPoloAnterior != eloPolo.getId().intValue()){ Localidade eloAnterior = new Localidade(); eloAnterior.setId(eloPoloAnterior); filtro.setOpcaoTotalizacao(13); filtro.setEloPolo(eloAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaEloPolo(filtro)); } filtroSetorComercial = new FiltroSetorComercial(); filtroSetorComercial.adicionarParametro( new ParametroSimples(FiltroSetorComercial.CODIGO_SETOR_COMERCIAL,arrayNumeracao[0])); filtroSetorComercial.adicionarParametro( new ParametroSimples(FiltroSetorComercial.ID_LOCALIDADE,localidade.getId())); filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade.gerenciaRegional"); filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade.localidade"); filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade.unidadeNegocio"); // Recupera Setor Comercial colecaoConsulta = this.getControladorUtil().pesquisar(filtroSetorComercial, SetorComercial.class.getName()); setorComercial = (SetorComercial) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = setorComercial.getLocalidade().getGerenciaRegional().getId()+"-"+setorComercial.getLocalidade().getGerenciaRegional().getNomeAbreviado() +" / "+ setorComercial.getLocalidade().getUnidadeNegocio().getId()+"-"+setorComercial.getLocalidade().getUnidadeNegocio().getNomeAbreviado() +" / "+ setorComercial.getLocalidade().getLocalidade().getId()+"-"+setorComercial.getLocalidade().getLocalidade().getDescricao() +" / "+ setorComercial.getLocalidade().getId()+"-"+setorComercial.getLocalidade().getDescricao() +" / "+ setorComercial.getCodigo()+"-"+setorComercial.getDescricao(); filtro.setLocalidade(localidade); filtro.setEloPolo(eloPolo); filtro.setSetorComercial(setorComercial); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; Iterator itera = colecaoCategorias.iterator(); while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaEsgotoEconomiaHelper(); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaEsgotoEconomiaDetalhe = new ArrayList<EmitirHistogramaEsgotoEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaEsgotoEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaEsgotoEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaEsgotoEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } emitirHistograma.setColecaoEmitirHistogramaEsgotoEconomiaDetalhe(colecaoEmitirHistogramaEsgotoEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaEsgotoEconomiaHelper) hashMapTotalGeral.get(chave); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); localidadeAnterior = localidade.getId(); eloPoloAnterior = eloPolo.getId(); } //Localidade Localidade localAnterior = new Localidade(); localAnterior.setId(localidadeAnterior); filtro.setOpcaoTotalizacao(16); filtro.setLocalidade(localAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaLocalidade(filtro)); //Elo Polo Localidade eloAnterior = new Localidade(); eloAnterior.setId(eloPoloAnterior); filtro.setOpcaoTotalizacao(13); filtro.setEloPolo(eloAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaEloPolo(filtro)); } return colecaoEmitirHistogramaEsgotoEconomia; } /** * [UC0606] Emitir Histograma de Esgoto Por Economia * * Setor Comercial ,Localidade * * @author Rafael Pinto * @date 07/11/2007 * * @param FiltrarEmitirHistogramaEsgotoEconomiaHelper * * @return Collection<EmitirHistogramaEsgotoEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoEconomiaHelper> emitirHistogramaEsgotoEconomiaSetorComercialLocalidade( FiltrarEmitirHistogramaEsgotoEconomiaHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoEconomiaHelper> colecaoEmitirHistogramaEsgotoEconomia = new ArrayList<EmitirHistogramaEsgotoEconomiaHelper>(); String descricaoPercentual = ""; if(filtro.getPercentualLigacaoEsgoto() != null){ descricaoPercentual = Util.formataBigDecimal(filtro.getPercentualLigacaoEsgoto(),2,true)+"%"; } filtro.setTipoGroupBy("histograma.codigoSetorComercial,histograma.localidade.id"); filtro.setTipoOrderBy("1,2"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaEsgotoEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaEsgotoEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaEsgotoEconomiaDetalheHelper> colecaoEmitirHistogramaEsgotoEconomiaDetalhe = null; SetorComercial setorComercial = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroSetorComercial filtroSetorComercial = null; Collection colecaoConsulta = null; int localidadeAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); Localidade localidade = new Localidade(); localidade.setId(new Integer(arrayNumeracao[1])); if(localidadeAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ localidadeAnterior = localidade.getId(); } //Mudou de Localidade if(localidadeAnterior != localidade.getId().intValue()){ Localidade localAnterior = new Localidade(); localAnterior.setId(localidadeAnterior); filtro.setOpcaoTotalizacao(16); filtro.setLocalidade(localAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaLocalidade(filtro)); } filtroSetorComercial = new FiltroSetorComercial(); filtroSetorComercial.adicionarParametro( new ParametroSimples(FiltroSetorComercial.CODIGO_SETOR_COMERCIAL,arrayNumeracao[0])); filtroSetorComercial.adicionarParametro( new ParametroSimples(FiltroSetorComercial.ID_LOCALIDADE,localidade)); filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade.gerenciaRegional"); filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade.localidade"); filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade.unidadeNegocio"); // Recupera Setor Comercial colecaoConsulta = this.getControladorUtil().pesquisar(filtroSetorComercial, SetorComercial.class.getName()); setorComercial = (SetorComercial) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = setorComercial.getLocalidade().getGerenciaRegional().getId()+"-"+setorComercial.getLocalidade().getGerenciaRegional().getNomeAbreviado() +" / "+ setorComercial.getLocalidade().getUnidadeNegocio().getId()+"-"+setorComercial.getLocalidade().getUnidadeNegocio().getNomeAbreviado() +" / "+ setorComercial.getLocalidade().getLocalidade().getId()+"-"+setorComercial.getLocalidade().getLocalidade().getDescricao() +" / "+ setorComercial.getLocalidade().getId()+"-"+setorComercial.getLocalidade().getDescricao() +" / "+ setorComercial.getId()+"-"+setorComercial.getDescricao(); filtro.setLocalidade(localidade); filtro.setSetorComercial(setorComercial); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; Iterator itera = colecaoCategorias.iterator(); while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaEsgotoEconomiaHelper(); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaEsgotoEconomiaDetalhe = new ArrayList<EmitirHistogramaEsgotoEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaEsgotoEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaEsgotoEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaEsgotoEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } emitirHistograma.setColecaoEmitirHistogramaEsgotoEconomiaDetalhe(colecaoEmitirHistogramaEsgotoEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaEsgotoEconomiaHelper) hashMapTotalGeral.get(chave); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); localidadeAnterior = localidade.getId(); } //Localidade Localidade localAnterior = new Localidade(); localAnterior.setId(localidadeAnterior); filtro.setOpcaoTotalizacao(16); filtro.setLocalidade(localAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaLocalidade(filtro)); } return colecaoEmitirHistogramaEsgotoEconomia; } /** * [UC0606] Emitir Histograma de Esgoto Por Economia * * Localidade * * @author Rafael Pinto * @date 07/11/2007 * * @param FiltrarEmitirHistogramaEsgotoEconomiaHelper * * @return Collection<EmitirHistogramaEsgotoEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoEconomiaHelper> emitirHistogramaEsgotoEconomiaLocalidade( FiltrarEmitirHistogramaEsgotoEconomiaHelper filtro) throws ControladorException { filtro.setSetorComercial(null); filtro.setEloPolo(null); filtro.setMedicao(null); filtro.setConsumoFaixaCategoria(null); Collection<EmitirHistogramaEsgotoEconomiaHelper> colecaoEmitirHistogramaEsgotoEconomia = new ArrayList<EmitirHistogramaEsgotoEconomiaHelper>(); String descricaoPercentual = ""; if(filtro.getPercentualLigacaoEsgoto() != null){ descricaoPercentual = Util.formataBigDecimal(filtro.getPercentualLigacaoEsgoto(),2,true)+"%"; } filtro.setTipoGroupBy("histograma.localidade.id"); filtro.setTipoOrderBy("1"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaEsgotoEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaEsgotoEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaEsgotoEconomiaDetalheHelper> colecaoEmitirHistogramaEsgotoEconomiaDetalhe = null; Localidade localidade = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroLocalidade filtroLocalidade = null; Collection colecaoConsulta = null; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String idLocalidade = (String) iter.next(); Iterator itera = colecaoCategorias.iterator(); filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro( new ParametroSimples(FiltroLocalidade.ID,idLocalidade)); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("gerenciaRegional"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("unidadeNegocio"); filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("localidade"); // Recupera Elo Polo colecaoConsulta = this.getControladorUtil().pesquisar(filtroLocalidade, Localidade.class.getName()); localidade = (Localidade) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = localidade.getGerenciaRegional().getId()+"-"+localidade.getGerenciaRegional().getNomeAbreviado() +" / "+ localidade.getUnidadeNegocio().getId()+"-"+localidade.getUnidadeNegocio().getNomeAbreviado() +" / "+ localidade.getLocalidade().getId()+"-"+localidade.getLocalidade().getDescricao() +" / "+ localidade.getId()+"-"+localidade.getDescricao(); filtro.setLocalidade(localidade); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaEsgotoEconomiaHelper(); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaEsgotoEconomiaDetalhe = new ArrayList<EmitirHistogramaEsgotoEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaEsgotoEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaEsgotoEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaEsgotoEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } emitirHistograma.setColecaoEmitirHistogramaEsgotoEconomiaDetalhe(colecaoEmitirHistogramaEsgotoEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaEsgotoEconomiaHelper) hashMapTotalGeral.get(idLocalidade); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); } } return colecaoEmitirHistogramaEsgotoEconomia; } /** * [UC0606] Emitir Histograma de Esgoto Por Economia * * Quadra e Setor Comercial * * @author Rafael Pinto * @date 07/11/2007 * * @param FiltrarEmitirHistogramaEsgotoEconomiaHelper * * @return Collection<EmitirHistogramaEsgotoEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoEconomiaHelper> emitirHistogramaEsgotoEconomiaQuadraSetorComercialLocalidade( FiltrarEmitirHistogramaEsgotoEconomiaHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoEconomiaHelper> colecaoEmitirHistogramaEsgotoEconomia = new ArrayList<EmitirHistogramaEsgotoEconomiaHelper>(); String descricaoPercentual = ""; if(filtro.getPercentualLigacaoEsgoto() != null){ descricaoPercentual = Util.formataBigDecimal(filtro.getPercentualLigacaoEsgoto(),2,true)+"%"; } filtro.setTipoGroupBy("histograma.quadra.id,histograma.setorComercial.id,histograma.localidade.id"); filtro.setTipoOrderBy("1,2,3"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaEsgotoEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaEsgotoEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaEsgotoEconomiaDetalheHelper> colecaoEmitirHistogramaEsgotoEconomiaDetalhe = null; Quadra quadra = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroQuadra filtroQuadra = null; Collection colecaoConsulta = null; int localidadeAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; int setorComercialAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); SetorComercial setorComercial = new SetorComercial(); setorComercial.setId(new Integer(arrayNumeracao[1])); Localidade localidade = new Localidade(); localidade.setId(new Integer(arrayNumeracao[2])); if(setorComercialAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ setorComercialAnterior = setorComercial.getId(); } if(localidadeAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ localidadeAnterior = localidade.getId(); } //Mudou de Setor Comercial if(setorComercialAnterior != setorComercial.getId().intValue()){ SetorComercial setorAnterior = new SetorComercial(); setorAnterior.setId(setorComercialAnterior); filtro.setOpcaoTotalizacao(19); filtro.setSetorComercial(setorAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaSetorComercial(filtro)); } //Mudou de Localidade if(localidadeAnterior != localidade.getId().intValue()){ Localidade localAnterior = new Localidade(); localAnterior.setId(localidadeAnterior); filtro.setOpcaoTotalizacao(16); filtro.setLocalidade(localAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaLocalidade(filtro)); } filtroQuadra = new FiltroQuadra(); filtroQuadra.adicionarParametro( new ParametroSimples(FiltroQuadra.ID,arrayNumeracao[0])); filtroQuadra.adicionarCaminhoParaCarregamentoEntidade("setorComercial"); filtroQuadra.adicionarCaminhoParaCarregamentoEntidade("setorComercial.localidade"); // Recupera Quadra colecaoConsulta = this.getControladorUtil().pesquisar(filtroQuadra, Quadra.class.getName()); quadra = (Quadra) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = quadra.getSetorComercial().getLocalidade().getId()+"-"+quadra.getSetorComercial().getLocalidade().getDescricao() +" / "+ quadra.getSetorComercial().getCodigo()+"-"+quadra.getSetorComercial().getDescricao() +" / "+ quadra.getNumeroQuadra(); filtro.setQuadra(quadra); filtro.setSetorComercial(setorComercial); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; Iterator itera = colecaoCategorias.iterator(); while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaEsgotoEconomiaHelper(); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaEsgotoEconomiaDetalhe = new ArrayList<EmitirHistogramaEsgotoEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaEsgotoEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaEsgotoEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaEsgotoEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } emitirHistograma.setColecaoEmitirHistogramaEsgotoEconomiaDetalhe(colecaoEmitirHistogramaEsgotoEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaEsgotoEconomiaHelper) hashMapTotalGeral.get(chave); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); localidadeAnterior = localidade.getId(); setorComercialAnterior = setorComercial.getId(); } //Setor Comercial SetorComercial setorAnterior = new SetorComercial(); setorAnterior.setId(setorComercialAnterior); filtro.setOpcaoTotalizacao(19); filtro.setSetorComercial(setorAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaSetorComercial(filtro)); //Mudou Localidade Localidade localAnterior = new Localidade(); localAnterior.setId(localidadeAnterior); filtro.setOpcaoTotalizacao(16); filtro.setLocalidade(localAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaLocalidade(filtro)); } return colecaoEmitirHistogramaEsgotoEconomia; } /** * [UC0606] Emitir Histograma de Esgoto Por Economia * * Setor Comercial * * @author Rafael Pinto * @date 07/11/2007 * * @param FiltrarEmitirHistogramaEsgotoEconomiaHelper * * @return Collection<EmitirHistogramaEsgotoEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoEconomiaHelper> emitirHistogramaEsgotoEconomiaSetorComercial( FiltrarEmitirHistogramaEsgotoEconomiaHelper filtro) throws ControladorException { filtro.setQuadra(null); filtro.setMedicao(null); filtro.setConsumoFaixaCategoria(null); Collection<EmitirHistogramaEsgotoEconomiaHelper> colecaoEmitirHistogramaEsgotoEconomia = new ArrayList<EmitirHistogramaEsgotoEconomiaHelper>(); String descricaoPercentual = ""; if(filtro.getPercentualLigacaoEsgoto() != null){ descricaoPercentual = Util.formataBigDecimal(filtro.getPercentualLigacaoEsgoto(),2,true)+"%"; } filtro.setTipoGroupBy("histograma.setorComercial.id"); filtro.setTipoOrderBy("1"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaEsgotoEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaEsgotoEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaEsgotoEconomiaDetalheHelper> colecaoEmitirHistogramaEsgotoEconomiaDetalhe = null; SetorComercial setorComercial = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroSetorComercial filtroSetorComercial = null; Collection colecaoConsulta = null; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String idSetorComercial = (String) iter.next(); Iterator itera = colecaoCategorias.iterator(); filtroSetorComercial = new FiltroSetorComercial(); filtroSetorComercial.adicionarParametro( new ParametroSimples(FiltroSetorComercial.ID,idSetorComercial)); filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade.gerenciaRegional"); filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade.localidade"); filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade("localidade.unidadeNegocio"); // Recupera Setor Comercial colecaoConsulta = this.getControladorUtil().pesquisar(filtroSetorComercial, SetorComercial.class.getName()); setorComercial = (SetorComercial) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = setorComercial.getLocalidade().getGerenciaRegional().getId()+"-"+setorComercial.getLocalidade().getGerenciaRegional().getNomeAbreviado() +" / "+ setorComercial.getLocalidade().getUnidadeNegocio().getId()+"-"+setorComercial.getLocalidade().getUnidadeNegocio().getNomeAbreviado() +" / "+ setorComercial.getLocalidade().getLocalidade().getId()+"-"+setorComercial.getLocalidade().getLocalidade().getDescricao() +" / "+ setorComercial.getLocalidade().getId()+"-"+setorComercial.getLocalidade().getDescricao() +" / "+ setorComercial.getId()+"-"+setorComercial.getDescricao(); filtro.setSetorComercial(setorComercial); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaEsgotoEconomiaHelper(); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaEsgotoEconomiaDetalhe = new ArrayList<EmitirHistogramaEsgotoEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaEsgotoEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaEsgotoEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaEsgotoEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } emitirHistograma.setColecaoEmitirHistogramaEsgotoEconomiaDetalhe(colecaoEmitirHistogramaEsgotoEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaEsgotoEconomiaHelper) hashMapTotalGeral.get(idSetorComercial); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); } } return colecaoEmitirHistogramaEsgotoEconomia; } /** * [UC0606] Emitir Histograma de Esgoto Por Economia * * Quadra e Setor Comercial * * @author Rafael Pinto * @date 07/11/2007 * * @param FiltrarEmitirHistogramaEsgotoEconomiaHelper * * @return Collection<EmitirHistogramaEsgotoEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoEconomiaHelper> emitirHistogramaEsgotoEconomiaQuadraSetorComercial( FiltrarEmitirHistogramaEsgotoEconomiaHelper filtro) throws ControladorException { Collection<EmitirHistogramaEsgotoEconomiaHelper> colecaoEmitirHistogramaEsgotoEconomia = new ArrayList<EmitirHistogramaEsgotoEconomiaHelper>(); String descricaoPercentual = ""; if(filtro.getPercentualLigacaoEsgoto() != null){ descricaoPercentual = Util.formataBigDecimal(filtro.getPercentualLigacaoEsgoto(),2,true)+"%"; } filtro.setTipoGroupBy("histograma.quadra.id,histograma.setorComercial.id"); filtro.setTipoOrderBy("2,1"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaEsgotoEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaEsgotoEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaEsgotoEconomiaDetalheHelper> colecaoEmitirHistogramaEsgotoEconomiaDetalhe = null; Quadra quadra = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroQuadra filtroQuadra = null; Collection colecaoConsulta = null; int setorComercialAnterior = ConstantesSistema.NUMERO_NAO_INFORMADO; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String chave = (String) iter.next(); String[] arrayNumeracao = chave.split(";"); SetorComercial setorComercial = new SetorComercial(); setorComercial.setId(new Integer(arrayNumeracao[1])); if(setorComercialAnterior == ConstantesSistema.NUMERO_NAO_INFORMADO){ setorComercialAnterior = setorComercial.getId(); } //Mudou de Setor Comercial if(setorComercialAnterior != setorComercial.getId().intValue()){ SetorComercial setorAnterior = new SetorComercial(); setorAnterior.setId(setorComercialAnterior); filtro.setOpcaoTotalizacao(19); filtro.setSetorComercial(setorAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaSetorComercial(filtro)); } filtroQuadra = new FiltroQuadra(); filtroQuadra.adicionarParametro( new ParametroSimples(FiltroQuadra.ID,arrayNumeracao[0])); filtroQuadra.adicionarCaminhoParaCarregamentoEntidade("setorComercial"); filtroQuadra.adicionarCaminhoParaCarregamentoEntidade("setorComercial.localidade"); // Recupera Quadra colecaoConsulta = this.getControladorUtil().pesquisar(filtroQuadra, Quadra.class.getName()); quadra = (Quadra) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = quadra.getSetorComercial().getLocalidade().getId()+"-"+quadra.getSetorComercial().getLocalidade().getDescricao() +" / "+ quadra.getSetorComercial().getCodigo()+"-"+quadra.getSetorComercial().getDescricao() +" / "+ quadra.getNumeroQuadra(); filtro.setQuadra(quadra); filtro.setSetorComercial(setorComercial); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; Iterator itera = colecaoCategorias.iterator(); while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaEsgotoEconomiaHelper(); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaEsgotoEconomiaDetalhe = new ArrayList<EmitirHistogramaEsgotoEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaEsgotoEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaEsgotoEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaEsgotoEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } emitirHistograma.setColecaoEmitirHistogramaEsgotoEconomiaDetalhe(colecaoEmitirHistogramaEsgotoEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaEsgotoEconomiaHelper) hashMapTotalGeral.get(chave); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); setorComercialAnterior = setorComercial.getId(); } //Setor Comercial SetorComercial setorAnterior = new SetorComercial(); setorAnterior.setId(setorComercialAnterior); filtro.setOpcaoTotalizacao(19); filtro.setSetorComercial(setorAnterior); colecaoEmitirHistogramaEsgotoEconomia.addAll(this.emitirHistogramaEsgotoEconomiaSetorComercial(filtro)); } return colecaoEmitirHistogramaEsgotoEconomia; } /** * [UC0606] Emitir Histograma de Esgoto Por Economia * * Quadra * * @author Rafael Pinto * @date 07/11/2007 * * @param FiltrarEmitirHistogramaEsgotoEconomiaHelper * * @return Collection<EmitirHistogramaEsgotoEconomiaHelper> * @throws ControladorException */ private Collection<EmitirHistogramaEsgotoEconomiaHelper> emitirHistogramaEsgotoEconomiaQuadra( FiltrarEmitirHistogramaEsgotoEconomiaHelper filtro) throws ControladorException { filtro.setMedicao(null); filtro.setConsumoFaixaCategoria(null); Collection<EmitirHistogramaEsgotoEconomiaHelper> colecaoEmitirHistogramaEsgotoEconomia = new ArrayList<EmitirHistogramaEsgotoEconomiaHelper>(); String descricaoPercentual = ""; if(filtro.getPercentualLigacaoEsgoto() != null){ descricaoPercentual = Util.formataBigDecimal(filtro.getPercentualLigacaoEsgoto(),2,true)+"%"; } filtro.setTipoGroupBy("histograma.quadra.id"); filtro.setTipoOrderBy("1"); LinkedHashMap hashMapTotalGeral = this.montarEmitirHistogramaEsgotoEconomiaAgruparChaves(filtro); if(hashMapTotalGeral != null && !hashMapTotalGeral.isEmpty()){ String descricaoTarifa = "TOTALIZADOR"; if(filtro.getTarifa() != null){ FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.setCampoOrderBy(FiltroConsumoTarifa.DESCRICAO); filtroConsumoTarifa.adicionarParametro( new ParametroSimples(FiltroConsumoTarifa.ID,filtro.getTarifa())); Collection colecaoTarifa = this.getControladorUtil().pesquisar(filtroConsumoTarifa,ConsumoTarifa.class.getName()); ConsumoTarifa consumoTarifa = (ConsumoTarifa) Util.retonarObjetoDeColecao(colecaoTarifa); descricaoTarifa = consumoTarifa.getId()+" "+consumoTarifa.getDescricao().trim(); } LinkedHashMap linkedHashMapConsumoFaixaCategoria = filtro.getLinkedHashMapConsumoFaixaCategoria(); Collection colecaoCategorias = linkedHashMapConsumoFaixaCategoria.keySet(); Collection colecaoConsumoFaixaCategoria = null; EmitirHistogramaEsgotoEconomiaHelper emitirHistograma = null; Collection<EmitirHistogramaEsgotoEconomiaDetalheHelper> colecaoEmitirHistogramaEsgotoEconomiaDetalhe = null; Quadra quadra = null; Categoria categoria = null; FiltroCategoria filtroCategoria = null; FiltroQuadra filtroQuadra = null; Collection colecaoConsulta = null; Iterator iter = hashMapTotalGeral.keySet().iterator(); while (iter.hasNext()) { String idQuadra = (String) iter.next(); Iterator itera = colecaoCategorias.iterator(); filtroQuadra = new FiltroQuadra(); filtroQuadra.adicionarParametro(new ParametroSimples(FiltroQuadra.ID,idQuadra)); filtroQuadra.adicionarCaminhoParaCarregamentoEntidade("setorComercial"); filtroQuadra.adicionarCaminhoParaCarregamentoEntidade("setorComercial.localidade"); // Recupera Quadra colecaoConsulta = this.getControladorUtil().pesquisar(filtroQuadra, Quadra.class.getName()); quadra = (Quadra) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoOpcaoTotalizacao = quadra.getSetorComercial().getLocalidade().getId()+"-"+quadra.getSetorComercial().getLocalidade().getDescricao() +" / "+ quadra.getSetorComercial().getCodigo()+"-"+quadra.getSetorComercial().getDescricao() +" / "+ quadra.getNumeroQuadra(); filtro.setQuadra(quadra); Integer totalGeralEconomiasMedido = 0; Integer totalGeralVolumeConsumoMedido = 0; Integer totalGeralVolumeFaturadoMedido = 0; BigDecimal totalGeralReceitaMedido = new BigDecimal(0.0); Integer totalGeralLigacaoMedido = 0; Integer totalGeralEconomiasNaoMedido = 0; Integer totalGeralVolumeConsumoNaoMedido = 0; Integer totalGeralVolumeFaturadoNaoMedido = 0; BigDecimal totalGeralReceitaNaoMedido = new BigDecimal(0.0); Integer totalGeralLigacaoNaoMedido = 0; while (itera.hasNext()) { String idCategoria = (String) itera.next(); emitirHistograma = new EmitirHistogramaEsgotoEconomiaHelper(); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); colecaoEmitirHistogramaEsgotoEconomiaDetalhe = new ArrayList<EmitirHistogramaEsgotoEconomiaDetalheHelper>(); colecaoConsumoFaixaCategoria = (Collection) linkedHashMapConsumoFaixaCategoria.get(idCategoria); Iterator iteraFaixas = colecaoConsumoFaixaCategoria.iterator(); int limiteSuperiorFaixaAnterior = 0; Integer totalEconomiasMedido = 0; Integer totalVolumeConsumoMedido = 0; Integer totalVolumeFaturadoMedido = 0; Integer totalLigacaoMedido = 0; BigDecimal totalReceitaMedido = new BigDecimal(0.0); Integer totalEconomiasNaoMedido = 0; Integer totalVolumeConsumoNaoMedido = 0; Integer totalVolumeFaturadoNaoMedido = 0; Integer totalLigacaoNaoMedido = 0; BigDecimal totalReceitaNaoMedido = new BigDecimal(0.0); filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro( new ParametroSimples(FiltroCategoria.CODIGO,idCategoria)); // Recupera Categoria colecaoConsulta = this.getControladorUtil().pesquisar(filtroCategoria, Categoria.class.getName()); categoria = (Categoria) Util.retonarObjetoDeColecao(colecaoConsulta); String descricaoCategoria = categoria.getDescricao(); filtro.setCategoria(categoria); while (iteraFaixas.hasNext()) { ConsumoFaixaCategoria consumoFaixaCategoria = (ConsumoFaixaCategoria) iteraFaixas.next(); EmitirHistogramaEsgotoEconomiaDetalheHelper detalhe = this.montarEmitirHistogramaEsgotoEconomiaDetalheHelper(filtro,consumoFaixaCategoria,limiteSuperiorFaixaAnterior); emitirHistograma.setDescricaoCategoria(descricaoCategoria); limiteSuperiorFaixaAnterior = consumoFaixaCategoria.getNumeroFaixaFim(); colecaoEmitirHistogramaEsgotoEconomiaDetalhe.add(detalhe); totalEconomiasMedido = totalEconomiasMedido + detalhe.getEconomiasMedido(); totalVolumeConsumoMedido = totalVolumeConsumoMedido + detalhe.getVolumeConsumoFaixaMedido(); totalVolumeFaturadoMedido = totalVolumeFaturadoMedido + detalhe.getVolumeFaturadoFaixaMedido(); totalReceitaMedido = totalReceitaMedido.add(detalhe.getReceitaMedido()); totalLigacaoMedido = totalLigacaoMedido + detalhe.getLigacoesMedido(); totalEconomiasNaoMedido = totalEconomiasNaoMedido + detalhe.getEconomiasNaoMedido(); totalVolumeConsumoNaoMedido = totalVolumeConsumoNaoMedido + detalhe.getVolumeConsumoFaixaNaoMedido(); totalVolumeFaturadoNaoMedido = totalVolumeFaturadoNaoMedido + detalhe.getVolumeFaturadoFaixaNaoMedido(); totalReceitaNaoMedido = totalReceitaNaoMedido.add(detalhe.getReceitaNaoMedido()); totalLigacaoNaoMedido = totalLigacaoNaoMedido + detalhe.getLigacoesNaoMedido(); } emitirHistograma.setColecaoEmitirHistogramaEsgotoEconomiaDetalhe(colecaoEmitirHistogramaEsgotoEconomiaDetalhe); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); emitirHistograma.setDescricaoFaixa("TOTAL"); emitirHistograma.setTotalEconomiasMedido(totalEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalLigacaoMedido); emitirHistograma.setTotalEconomiasNaoMedido(totalEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalLigacaoNaoMedido); colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); totalGeralEconomiasMedido = totalGeralEconomiasMedido + emitirHistograma.getTotalEconomiasMedido(); totalGeralVolumeConsumoMedido = totalGeralVolumeConsumoMedido + emitirHistograma.getTotalVolumeConsumoMedido(); totalGeralVolumeFaturadoMedido = totalGeralVolumeFaturadoMedido + emitirHistograma.getTotalVolumeFaturadoMedido(); totalGeralReceitaMedido = totalGeralReceitaMedido.add(emitirHistograma.getTotalReceitaMedido()); totalGeralLigacaoMedido = totalGeralLigacaoMedido + emitirHistograma.getTotalLigacoesMedido(); totalGeralEconomiasNaoMedido = totalGeralEconomiasNaoMedido + emitirHistograma.getTotalEconomiasNaoMedido(); totalGeralVolumeConsumoNaoMedido = totalGeralVolumeConsumoNaoMedido + emitirHistograma.getTotalVolumeConsumoNaoMedido(); totalGeralVolumeFaturadoNaoMedido = totalGeralVolumeFaturadoNaoMedido + emitirHistograma.getTotalVolumeFaturadoNaoMedido(); totalGeralReceitaNaoMedido = totalGeralReceitaNaoMedido.add(emitirHistograma.getTotalReceitaNaoMedido()); totalGeralLigacaoNaoMedido = totalGeralLigacaoNaoMedido + emitirHistograma.getTotalLigacoesNaoMedido(); } emitirHistograma = (EmitirHistogramaEsgotoEconomiaHelper) hashMapTotalGeral.get(idQuadra); emitirHistograma.setDescricaoPercentual(descricaoPercentual); emitirHistograma.setDescricaoTarifa(descricaoTarifa); emitirHistograma.setDescricaoCategoria(null); emitirHistograma.setDescricaoFaixa("TOTAL GERAL"); emitirHistograma.setOpcaoTotalizacao(descricaoOpcaoTotalizacao); //Medido(COM HIDROMETRO) emitirHistograma.setTotalEconomiasMedido(totalGeralEconomiasMedido); emitirHistograma.setTotalVolumeConsumoMedido(totalGeralVolumeConsumoMedido); emitirHistograma.setTotalVolumeFaturadoMedido(totalGeralVolumeFaturadoMedido); emitirHistograma.setTotalReceitaMedido(totalGeralReceitaMedido); emitirHistograma.setTotalLigacoesMedido(totalGeralLigacaoMedido); //N�o Medido(SEM HIDROMETRO) emitirHistograma.setTotalEconomiasNaoMedido(totalGeralEconomiasNaoMedido); emitirHistograma.setTotalVolumeConsumoNaoMedido(totalGeralVolumeConsumoNaoMedido); emitirHistograma.setTotalVolumeFaturadoNaoMedido(totalGeralVolumeFaturadoNaoMedido); emitirHistograma.setTotalReceitaNaoMedido(totalGeralReceitaNaoMedido); emitirHistograma.setTotalLigacoesNaoMedido(totalGeralLigacaoNaoMedido); // TOTAL GERAL colecaoEmitirHistogramaEsgotoEconomia.add(emitirHistograma); } } return colecaoEmitirHistogramaEsgotoEconomia; } /** * [UC0606] Emitir Histograma de Esgoto Por Economia * * Monta o objeto EmitirHistogramaEsgotoEconomiaDetalheHelper * * @author Rafael Pinto * @date 07/11/2007 * * @param FiltrarEmitirHistogramaEsgotoEconomiaHelper * @param ConsumoFaixaCategoria * * @return EmitirHistogramaEsgotoEconomiaDetalheHelper * @throws ControladorException */ private EmitirHistogramaEsgotoEconomiaDetalheHelper montarEmitirHistogramaEsgotoEconomiaDetalheHelper( FiltrarEmitirHistogramaEsgotoEconomiaHelper filtro, ConsumoFaixaCategoria consumoFaixaCategoria, int limiteSuperiorFaixaAnterior) throws ControladorException { EmitirHistogramaEsgotoEconomiaDetalheHelper detalhe = new EmitirHistogramaEsgotoEconomiaDetalheHelper(); BigDecimal consumoMedio = null; BigDecimal consumoExcedente = null; filtro.setConsumoFaixaCategoria(consumoFaixaCategoria); detalhe.setDescricaoFaixa(consumoFaixaCategoria.getNumeroFaixaInicio()+" a "+consumoFaixaCategoria.getNumeroFaixaFim()); //Pesquisa com indicador de Hidrometro SIM filtro.setMedicao(ConstantesSistema.INDICADOR_USO_ATIVO); Object[] valoresSomatorio = null; boolean temMedido = false; boolean temNaoMedido = false; try { valoresSomatorio = this.repositorioFaturamento.pesquisarEmitirHistogramaEsgotoEconomia(filtro); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } if(valoresSomatorio != null){ detalhe.setEconomiasMedido((Integer)valoresSomatorio[2]); detalhe.setVolumeConsumoFaixaMedido((Integer)valoresSomatorio[3]); detalhe.setVolumeFaturadoFaixaMedido((Integer)valoresSomatorio[4]); detalhe.setReceitaMedido((BigDecimal)valoresSomatorio[5]); detalhe.setLigacoesMedido((Integer)valoresSomatorio[6]); consumoMedio = new BigDecimal(detalhe.getVolumeConsumoFaixaMedido()).divide( new BigDecimal(detalhe.getEconomiasMedido()),4, BigDecimal.ROUND_HALF_UP); detalhe.setConsumoMedioMedido(consumoMedio); if(limiteSuperiorFaixaAnterior > 0){ consumoExcedente = detalhe.getConsumoMedioMedido().subtract(new BigDecimal(limiteSuperiorFaixaAnterior)); } detalhe.setConsumoExcedenteMedido(consumoExcedente); temMedido = true; }else{ detalhe.setConsumoMedioMedido(new BigDecimal(0.0)); } //Pesquisa com indicador de Hidrometro Nao filtro.setMedicao(ConstantesSistema.INDICADOR_USO_DESATIVO); try { valoresSomatorio = this.repositorioFaturamento.pesquisarEmitirHistogramaEsgotoEconomia(filtro); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } if(valoresSomatorio != null){ detalhe.setEconomiasNaoMedido( (Integer)valoresSomatorio[2]); detalhe.setVolumeConsumoFaixaNaoMedido((Integer)valoresSomatorio[3]); detalhe.setVolumeFaturadoFaixaNaoMedido((Integer)valoresSomatorio[4]); detalhe.setReceitaNaoMedido((BigDecimal)valoresSomatorio[5]); detalhe.setLigacoesNaoMedido((Integer)valoresSomatorio[6]); consumoMedio = new BigDecimal(detalhe.getVolumeConsumoFaixaNaoMedido()).divide( new BigDecimal(detalhe.getEconomiasNaoMedido()),4, BigDecimal.ROUND_HALF_UP); detalhe.setConsumoMedioNaoMedido(consumoMedio); if(limiteSuperiorFaixaAnterior > 0){ consumoExcedente = detalhe.getConsumoMedioNaoMedido().subtract(new BigDecimal(limiteSuperiorFaixaAnterior)); } detalhe.setConsumoExcedenteNaoMedido(consumoExcedente); temNaoMedido = true; }else{ detalhe.setConsumoMedioNaoMedido(new BigDecimal(0.0)); } //Caso tenha algum valor ent�o exite histograma para adcionar na colecao detalhe.setExisteHistograma(temMedido || temNaoMedido); return detalhe; } /** * [UC0606] Emitir Histograma de Esgoto Por Economia * * Agrupa as chaves para totalizacao * * @author Rafael Pinto * @date 07/11/2007 * * @param FiltrarEmitirHistogramaEsgotoEconomiaHelper * * @return LinkedHashMap * @throws ControladorException */ private LinkedHashMap montarEmitirHistogramaEsgotoEconomiaAgruparChaves(FiltrarEmitirHistogramaEsgotoEconomiaHelper filtro) throws ControladorException { LinkedHashMap hashMapTotalizacao = new LinkedHashMap(); Collection<Object[]> colecao = null; try { //filtro.setMedicao(ConstantesSistema.INDICADOR_USO_ATIVO); colecao = this.repositorioFaturamento.pesquisarEmitirHistogramaEsgotoEconomiaChavesAgrupadas(filtro); } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } if (colecao != null && !colecao.isEmpty()) { Iterator iterator = colecao.iterator(); while (iterator.hasNext()) { String tipoTotalizacao = "0"; int chaveQuadra = 0; int chaveSetorComercial = 0; int chaveLocalidade = 0; int chaveElo = 0; int chaveUnidade = 0; int chaveGerencia = 0; if(filtro.getOpcaoTotalizacao() == 2 || filtro.getOpcaoTotalizacao() == 6 ){ chaveGerencia = (Integer) iterator.next(); tipoTotalizacao = ""+chaveGerencia; }else if(filtro.getOpcaoTotalizacao() == 3 || filtro.getOpcaoTotalizacao() == 7 ){ Object[] objeto = (Object[]) iterator.next(); chaveUnidade = (Integer) objeto[0]; chaveGerencia = (Integer) objeto[1]; tipoTotalizacao = chaveUnidade+";"+chaveGerencia; }else if(filtro.getOpcaoTotalizacao() == 4 || filtro.getOpcaoTotalizacao() == 8){ Object[] objeto = (Object[]) iterator.next(); chaveElo = (Integer) objeto[0]; chaveUnidade = (Integer) objeto[1]; chaveGerencia = (Integer) objeto[2]; tipoTotalizacao = chaveElo+";"+chaveUnidade+";"+chaveGerencia; }else if(filtro.getOpcaoTotalizacao() == 5 || filtro.getOpcaoTotalizacao() == 9){ Object[] objeto = (Object[]) iterator.next(); chaveLocalidade = (Integer) objeto[0]; chaveElo = (Integer) objeto[1]; chaveUnidade = (Integer) objeto[2]; chaveGerencia = (Integer) objeto[3]; tipoTotalizacao = chaveLocalidade+";"+chaveElo+";"+chaveUnidade+";"+chaveGerencia; }else if(filtro.getOpcaoTotalizacao() == 10){ chaveUnidade = (Integer) iterator.next(); tipoTotalizacao = ""+chaveUnidade; }else if(filtro.getOpcaoTotalizacao() == 11){ Object[] objeto = (Object[]) iterator.next(); chaveElo = (Integer) objeto[0]; chaveUnidade = (Integer) objeto[1]; tipoTotalizacao = chaveElo+";"+chaveUnidade; }else if(filtro.getOpcaoTotalizacao() == 12){ Object[] objeto = (Object[]) iterator.next(); chaveLocalidade = (Integer) objeto[0]; chaveElo = (Integer) objeto[1]; chaveUnidade = (Integer) objeto[2]; tipoTotalizacao = chaveLocalidade+";"+chaveElo+";"+chaveUnidade; }else if(filtro.getOpcaoTotalizacao() == 13){ chaveElo = (Integer) iterator.next(); tipoTotalizacao = ""+chaveElo; }else if(filtro.getOpcaoTotalizacao() == 14){ Object[] objeto = (Object[]) iterator.next(); chaveLocalidade = (Integer) objeto[0]; chaveElo = (Integer) objeto[1]; tipoTotalizacao = chaveLocalidade+";"+chaveElo; }else if(filtro.getOpcaoTotalizacao() == 15){ Object[] objeto = (Object[]) iterator.next(); chaveSetorComercial = (Integer) objeto[0]; chaveLocalidade = (Integer) objeto[1]; chaveElo = (Integer) objeto[2]; tipoTotalizacao = chaveSetorComercial+";"+chaveLocalidade+";"+chaveElo; }else if(filtro.getOpcaoTotalizacao() == 16){ chaveLocalidade = (Integer) iterator.next(); tipoTotalizacao = ""+chaveLocalidade; }else if(filtro.getOpcaoTotalizacao() == 17){ Object[] objeto = (Object[]) iterator.next(); chaveSetorComercial = (Integer) objeto[0]; chaveLocalidade = (Integer) objeto[1]; tipoTotalizacao = chaveSetorComercial+";"+chaveLocalidade; }else if(filtro.getOpcaoTotalizacao() == 18){ Object[] objeto = (Object[]) iterator.next(); chaveQuadra = (Integer) objeto[0]; chaveSetorComercial = (Integer) objeto[1]; chaveLocalidade = (Integer) objeto[2]; tipoTotalizacao = chaveQuadra+";"+chaveSetorComercial+";"+chaveLocalidade; }else if(filtro.getOpcaoTotalizacao() == 19){ chaveSetorComercial = (Integer) iterator.next(); tipoTotalizacao = ""+chaveSetorComercial; }else if(filtro.getOpcaoTotalizacao() == 20){ Object[] objeto = (Object[]) iterator.next(); chaveQuadra = (Integer) objeto[0]; chaveSetorComercial = (Integer) objeto[1]; tipoTotalizacao = chaveQuadra+";"+chaveSetorComercial; }else if(filtro.getOpcaoTotalizacao() == 21){ chaveQuadra = (Integer) iterator.next(); tipoTotalizacao = ""+chaveQuadra; } EmitirHistogramaEsgotoEconomiaHelper emitirHistograma = new EmitirHistogramaEsgotoEconomiaHelper(); hashMapTotalizacao.put(tipoTotalizacao,emitirHistograma); } } return hashMapTotalizacao; } /** * [UC0099] Emitir Rela��o Sint�tica de Faturas * * @author Rafael Pinto * @date 19/11/2007 * * @param colecaoFatura * @throws ControladorException */ public void emitirRelacaoSinteticaFaturas(Collection<Fatura> colecaoFatura,Integer anoMesFaturamento) throws ControladorException { Collection<FaturaClienteResponsavelHelper> colecaoFaturaHelper = new ArrayList(); if (colecaoFatura != null) { for (Fatura fatura : colecaoFatura) { FaturaClienteResponsavelHelper faturaHelper = new FaturaClienteResponsavelHelper(); Cliente cliente = this.getControladorCliente().pesquisarCliente(fatura.getCliente().getId()); int anoMes = fatura.getAnoMesReferencia(); faturaHelper.setCodigoCliente(cliente.getId().toString()); faturaHelper.setNomeCliente(cliente.getNome()); faturaHelper.setMesAno(Util.formatarAnoMesParaMesAno(anoMes)); faturaHelper.setValorTotalAPagar(Util.formatarMoedaReal(fatura.getDebito())); colecaoFaturaHelper.add(faturaHelper); } RelatorioRelacaoSinteticaFaturas relatorio = new RelatorioRelacaoSinteticaFaturas( Usuario.USUARIO_BATCH); relatorio.addParametro("colecaoFaturas", colecaoFaturaHelper); relatorio.addParametro("tipoFormatoRelatorio", TarefaRelatorio.TIPO_PDF); byte[] relatorioGerado = (byte[]) relatorio.executar(); try { String mesReferencia = anoMesFaturamento .toString().substring(4, 6); String anoReferencia = anoMesFaturamento .toString().substring(0, 4); String nomeRelatorio = "RELATORIO_RELACAO_SINTETICA_FATURA_" + mesReferencia + "_" + anoReferencia + ".PDF"; File leitura = new File(nomeRelatorio); FileOutputStream out = new FileOutputStream(leitura .getAbsolutePath()); out.write(relatorioGerado); out.flush(); out.close(); } catch (IOException e) { throw new ControladorException("erro.sistema", e); } } } }