package gcom.relatorio.faturamento;
import gcom.batch.Relatorio;
import gcom.cadastro.imovel.Categoria;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.fachada.Fachada;
import gcom.faturamento.bean.GerarRelatorioAnormalidadeConsumoHelper;
import gcom.gui.ActionServletException;
import gcom.relatorio.ConstantesRelatorios;
import gcom.relatorio.RelatorioDataSource;
import gcom.relatorio.RelatorioVazioException;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.tarefa.TarefaException;
import gcom.tarefa.TarefaRelatorio;
import gcom.util.ConstantesSistema;
import gcom.util.ControladorException;
import gcom.util.Util;
import gcom.util.agendadortarefas.AgendadorTarefas;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* classe respons�vel por criar o relat�rio de volumes faturados
*
* @author Rafael Corr�a
* @created 12/09/2007
*/
public class RelatorioAnormalidadeConsumo extends TarefaRelatorio {
private static final long serialVersionUID = 1L;
public RelatorioAnormalidadeConsumo(Usuario usuario) {
super(usuario,
ConstantesRelatorios.RELATORIO_ANORMALIDADE_CONSUMO);
}
@Deprecated
public RelatorioAnormalidadeConsumo() {
super(null, "");
}
/**
* < <Descri��o do m�todo>>
*
* @param bairros
* Description of the Parameter
* @param bairroParametros
* Description of the Parameter
* @return Descri��o do retorno
* @exception RelatorioVazioException
* Descri��o da exce��o
*/
public Object executar() throws TarefaException {
// ------------------------------------
Integer idFuncionalidadeIniciada = this.getIdFuncionalidadeIniciada();
// ------------------------------------
Integer idGrupo = (Integer) getParametro("idGrupo");
Short cdRota = (Short) getParametro("cdRota");
Integer idGerenciaRegional = (Integer) getParametro("idGerenciaRegional");
Integer idUnidadeNegocio = (Integer) getParametro("idUnidadeNegocio");
Integer idLocalidadeInicial = (Integer) getParametro("idLocalidadeInicial");
Integer idLocalidadeFinal = (Integer) getParametro("idLocalidadeFinal");
Integer idSetorComercialInicial = (Integer) getParametro("idSetorComercialInicial");
Integer idSetorComercialFinal = (Integer) getParametro("idSetorComercialFinal");
Collection<Integer> colecaoIdsEmpresa = (Collection<Integer>) getParametro("colecaoIdsEmpresa");
// Collection<Integer> colecaoIdsAnormalidadeLeitura = (Collection<Integer>) getParametro("colecaoIdsAnormalidadeLeitura");
Collection<Integer> colecaoIdsAnormalidadeLeituraInformada = (Collection<Integer>) getParametro("colecaoIdsAnormalidadeLeituraInformada");
// Collection<Integer> colecaoIdsAnormalidadeConsumo = (Collection<Integer>) getParametro("colecaoIdsAnormalidadeConsumo");
Integer numeroOcorrencias = (Integer) getParametro("numeroOcorrencias");
String indicadorOcorrenciasIguais = (String) getParametro("ocorrenciasIguais");
Integer idImovelPerfil = (Integer) getParametro("idImovelPerfil");
Integer referencia = (Integer) getParametro("referencia");
Integer mediaConsumoInicial = (Integer) getParametro("mediaConsumoInicial");
Integer mediaConsumoFinal = (Integer) getParametro("mediaConsumoFinal");
Integer tipoMedicao = (Integer) getParametro("tipoMedicao");
int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio");
Integer idCategoria = (Integer)getParametro("idCategoria");
Integer numeroQuadraInicial = (Integer)getParametro("numeroQuadraInicial");
Integer numeroQuadraFinal = (Integer)getParametro("numeroQuadraFinal");
// valor de retorno
byte[] retorno = null;
// cole��o de beans do relat�rio
List relatorioBeans = new ArrayList();
Fachada fachada = Fachada.getInstancia();
RelatorioAnormalidadeConsumoBean relatorioBean = null;
//CRC4561 - comentado por Vivianne Sousa - 07/06/2010 - analista:Adriana Ribeiro
// Collection colecaoGerarRelatorioAnormalidadeConsumoHelper = fachada.pesquisarDadosRelatorioAnormalidadeConsumo(idGrupo, cdRota,
// idGerenciaRegional, idUnidadeNegocio, idLocalidadeInicial, idLocalidadeFinal,
// idSetorComercialInicial, idSetorComercialFinal ,referencia,
// idImovelPerfil, numeroOcorrencias, indicadorOcorrenciasIguais,
// mediaConsumoInicial, mediaConsumoFinal, colecaoIdsAnormalidadeConsumo,
// colecaoIdsAnormalidadeLeitura, colecaoIdsAnormalidadeLeituraInformada, tipoMedicao, colecaoIdsEmpresa);
Collection colecaoGerarRelatorioAnormalidadeConsumoHelper = fachada.pesquisarDadosRelatorioAnormalidadeConsumo(idGrupo, cdRota,
idGerenciaRegional, idUnidadeNegocio, idLocalidadeInicial, idLocalidadeFinal,
idSetorComercialInicial, idSetorComercialFinal ,referencia,
idImovelPerfil, numeroOcorrencias, indicadorOcorrenciasIguais,
mediaConsumoInicial, mediaConsumoFinal, null,
null, colecaoIdsAnormalidadeLeituraInformada, tipoMedicao, colecaoIdsEmpresa,
numeroQuadraInicial, numeroQuadraFinal, idCategoria);
/* if (colecaoGerarRelatorioAnormalidadeConsumoHelper == null ||
colecaoGerarRelatorioAnormalidadeConsumoHelper.isEmpty()) {
throw new ActionServletException("atencao.relatorio.vazio");
}*/
// se a cole��o de par�metros da analise n�o for vazia
if (colecaoGerarRelatorioAnormalidadeConsumoHelper != null
&& !colecaoGerarRelatorioAnormalidadeConsumoHelper.isEmpty()) {
// coloca a cole��o de par�metros da analise no iterator
Iterator colecaoGerarRelatorioAnormalidadeConsumoHelperIterator = colecaoGerarRelatorioAnormalidadeConsumoHelper
.iterator();
Integer totalGrupo = new Integer("0");
Integer totalGerenciaRegional = new Integer("0");
Integer totalUnidadeNegocio = new Integer("0");
Integer totalElo = new Integer("0");
Integer totalLocalidade = new Integer("0");
Integer totalSetorComercial = new Integer("0");
Integer idGrupoAnterior = null;
Integer idGerenciaRegionalAnterior = null;
Integer idUnidadeNegocioAnterior = null;
Integer idEloAnterior = null;
Integer idLocalidadeAnterior = null;
Integer idSetorComercialAnterior = null;
boolean zerarGrupo = false;
boolean zerarGerenciaRegional = false;
boolean zerarUnidadeNegocio = false;
boolean zerarElo = false;
boolean zerarLocalidade = false;
boolean zerarSetorComercial = false;
// la�o para criar a cole��o de par�metros da analise
while (colecaoGerarRelatorioAnormalidadeConsumoHelperIterator.hasNext()) {
GerarRelatorioAnormalidadeConsumoHelper gerarRelatorioAnormalidadeConsumoHelper = (GerarRelatorioAnormalidadeConsumoHelper) colecaoGerarRelatorioAnormalidadeConsumoHelperIterator
.next();
// Faz as valida��es dos campos necess�riose e formata a String
// para a forma como ir� aparecer no relat�rio
// Grupo
String grupo = "";
if (gerarRelatorioAnormalidadeConsumoHelper.getIdGrupo() != null) {
grupo = gerarRelatorioAnormalidadeConsumoHelper
.getIdGrupo()
+ " - "
+ gerarRelatorioAnormalidadeConsumoHelper
.getNomeGrupo();
if (idGrupoAnterior == null) {
idGrupoAnterior = gerarRelatorioAnormalidadeConsumoHelper.getIdGrupo();
} else {
if (!idGrupoAnterior.equals(gerarRelatorioAnormalidadeConsumoHelper.getIdGrupo())) {
zerarGrupo = true;
}
}
}
// Ger�ncia Regional
String gerenciaRegional = "";
if (gerarRelatorioAnormalidadeConsumoHelper.getIdGerenciaRegional() != null) {
gerenciaRegional = gerarRelatorioAnormalidadeConsumoHelper
.getIdGerenciaRegional()
+ " - "
+ gerarRelatorioAnormalidadeConsumoHelper
.getNomeGerenciaRegional();
if (idGerenciaRegionalAnterior == null) {
idGerenciaRegionalAnterior = gerarRelatorioAnormalidadeConsumoHelper.getIdGerenciaRegional();
} else {
if (!idGerenciaRegionalAnterior.equals(gerarRelatorioAnormalidadeConsumoHelper.getIdGerenciaRegional())) {
zerarGerenciaRegional = true;
}
}
}
// Unidade de Neg�cio
String unidadeNegocio = "";
if (gerarRelatorioAnormalidadeConsumoHelper.getIdUnidadeNegocio() != null) {
unidadeNegocio = gerarRelatorioAnormalidadeConsumoHelper
.getIdUnidadeNegocio()
+ " - "
+ gerarRelatorioAnormalidadeConsumoHelper
.getNomeUnidadeNegocio();
if (idUnidadeNegocioAnterior == null) {
idUnidadeNegocioAnterior = gerarRelatorioAnormalidadeConsumoHelper.getIdUnidadeNegocio();
} else {
if (!idUnidadeNegocioAnterior.equals(gerarRelatorioAnormalidadeConsumoHelper.getIdUnidadeNegocio())) {
zerarUnidadeNegocio = true;
}
}
}
// Elo
String elo = "";
if (gerarRelatorioAnormalidadeConsumoHelper.getIdElo() != null) {
elo = gerarRelatorioAnormalidadeConsumoHelper
.getIdElo()
+ " - "
+ gerarRelatorioAnormalidadeConsumoHelper
.getNomeElo();
if (idEloAnterior == null) {
idEloAnterior = gerarRelatorioAnormalidadeConsumoHelper.getIdElo();
} else {
if (!idEloAnterior.equals(gerarRelatorioAnormalidadeConsumoHelper.getIdElo())) {
zerarElo = true;
}
}
}
// Localidade
String localidade = "";
if (gerarRelatorioAnormalidadeConsumoHelper.getIdLocalidade() != null) {
localidade = gerarRelatorioAnormalidadeConsumoHelper
.getIdLocalidade()
+ " - "
+ gerarRelatorioAnormalidadeConsumoHelper
.getNomeLocalidade();
if (idLocalidadeAnterior == null) {
idLocalidadeAnterior = gerarRelatorioAnormalidadeConsumoHelper.getIdLocalidade();
} else {
if (!idLocalidadeAnterior.equals(gerarRelatorioAnormalidadeConsumoHelper.getIdLocalidade())) {
zerarLocalidade = true;
}
}
}
// Setor Comercial
String setorComercial = "";
String idSetorComercial = "";
if (gerarRelatorioAnormalidadeConsumoHelper.getIdSetorComercial() != null) {
setorComercial = gerarRelatorioAnormalidadeConsumoHelper
.getCodigoSetorComercial().toString();
idSetorComercial = gerarRelatorioAnormalidadeConsumoHelper
.getIdSetorComercial().toString();
if (idSetorComercialAnterior == null) {
idSetorComercialAnterior = gerarRelatorioAnormalidadeConsumoHelper.getIdSetorComercial();
} else {
if (!idSetorComercialAnterior.equals(gerarRelatorioAnormalidadeConsumoHelper.getIdSetorComercial())) {
zerarSetorComercial = true;
}
}
}
// Caso tenha mudado de Grupo zera seus totalizadores
if (zerarGrupo) {
totalGrupo = new Integer("0");
idGrupoAnterior = gerarRelatorioAnormalidadeConsumoHelper.getIdGrupo();
zerarGrupo = false;
}
// Caso tenha mudado de Ger�ncia Regional zera seus totalizadores
if (zerarGerenciaRegional) {
totalGerenciaRegional = new Integer("0");
idGerenciaRegionalAnterior = gerarRelatorioAnormalidadeConsumoHelper.getIdGerenciaRegional();
zerarGerenciaRegional = false;
}
// Caso tenha mudado de Unidade de Neg�cio zera seus totalizadores
if (zerarUnidadeNegocio) {
totalUnidadeNegocio = new Integer("0");
idUnidadeNegocioAnterior = gerarRelatorioAnormalidadeConsumoHelper.getIdUnidadeNegocio();
zerarUnidadeNegocio = false;
}
// Caso tenha mudado de Elo zera seus totalizadores
if (zerarElo) {
totalElo = new Integer("0");
idEloAnterior = gerarRelatorioAnormalidadeConsumoHelper.getIdElo();
zerarElo = false;
}
// Caso tenha mudado de Localidade zera seus totalizadores
if (zerarLocalidade) {
totalLocalidade = new Integer("0");
idLocalidadeAnterior = gerarRelatorioAnormalidadeConsumoHelper.getIdLocalidade();
zerarLocalidade = false;
}
// Caso tenha mudado de setor comercial zera seus totalizadores
if (zerarSetorComercial) {
totalSetorComercial = new Integer("0");
idSetorComercialAnterior = gerarRelatorioAnormalidadeConsumoHelper.getIdSetorComercial();
zerarSetorComercial = false;
}
totalGrupo = totalGrupo + 1;
totalGerenciaRegional = totalGerenciaRegional + 1;
totalUnidadeNegocio = totalUnidadeNegocio + 1;
totalElo = totalElo + 1;
totalLocalidade = totalLocalidade + 1;
totalSetorComercial = totalSetorComercial + 1;
// Im�vel, Endere�o e Categoria
String idImovel = "";
String endereco = "";
String descricaoCategoria = "";
if (gerarRelatorioAnormalidadeConsumoHelper.getIdImovel() != null) {
idImovel = gerarRelatorioAnormalidadeConsumoHelper.getIdImovel()
.toString();
Imovel imovel = new Imovel();
imovel.setId(gerarRelatorioAnormalidadeConsumoHelper.getIdImovel());
// endereco = fachada.pesquisarEndereco(gerarRelatorioAnormalidadeConsumoHelper.getIdImovel());
Categoria categoria = fachada.obterDescricoesCategoriaImovel(imovel);
if (categoria.getDescricaoAbreviada() != null) {
descricaoCategoria = categoria.getDescricaoAbreviada();
}
}
if(gerarRelatorioAnormalidadeConsumoHelper.getEnderecoImovel() != null){
endereco = gerarRelatorioAnormalidadeConsumoHelper.getEnderecoImovel() ;
}
// Nome do Usu�rio
String nomeUsuario = "";
if (gerarRelatorioAnormalidadeConsumoHelper.getNomeUsuario() != null) {
nomeUsuario = gerarRelatorioAnormalidadeConsumoHelper
.getNomeUsuario();
}
// Situa��o da Liga��o de �gua
String situacaoAgua = "";
if (gerarRelatorioAnormalidadeConsumoHelper.getSituacaoLigacaoAgua() != null) {
situacaoAgua = gerarRelatorioAnormalidadeConsumoHelper
.getSituacaoLigacaoAgua().toString();
}
// Situa��o de Esgoto
String situacaoEsgoto = "";
if (gerarRelatorioAnormalidadeConsumoHelper.getSituacaoLigacaoEsgoto() != null) {
situacaoEsgoto = gerarRelatorioAnormalidadeConsumoHelper
.getSituacaoLigacaoEsgoto().toString();
}
// D�bito Autom�tico
String debitoAutomatico = "";
if (gerarRelatorioAnormalidadeConsumoHelper.getIndicadorDebito() != null) {
if (gerarRelatorioAnormalidadeConsumoHelper.getIndicadorDebito().equals(ConstantesSistema.SIM)) {
debitoAutomatico = "SIM";
} else {
debitoAutomatico = "N�O";
}
}
// M�dia de Consumo
String media = "";
if (gerarRelatorioAnormalidadeConsumoHelper.getConsumoMedio() != null) {
media = gerarRelatorioAnormalidadeConsumoHelper.getConsumoMedio()
.toString();
}
// Consumo
String consumo = "";
if (gerarRelatorioAnormalidadeConsumoHelper.getConsumoMes() != null) {
consumo = gerarRelatorioAnormalidadeConsumoHelper
.getConsumoMes().toString();
}
// Anormalidade de Consumo
String anormalidadeConsumo = "";
if (gerarRelatorioAnormalidadeConsumoHelper.getDescricaoAbrevConsumoAnormalidade() != null) {
anormalidadeConsumo = gerarRelatorioAnormalidadeConsumoHelper.getDescricaoAbrevConsumoAnormalidade();
}
// Anormalidade de Leitura
String anormalidadeLeitura = "";
if (gerarRelatorioAnormalidadeConsumoHelper.getIdLeituraAnormalidade() != null) {
anormalidadeLeitura = gerarRelatorioAnormalidadeConsumoHelper.getIdLeituraAnormalidade().toString();
}
String nnLeituraAtualInformada = "";
if (gerarRelatorioAnormalidadeConsumoHelper.getNnLeituraAtualInformada() != null) {
nnLeituraAtualInformada = gerarRelatorioAnormalidadeConsumoHelper.getNnLeituraAtualInformada().toString();
}
// Quantidade de Economias
String qtdeEconomias = "";
if (gerarRelatorioAnormalidadeConsumoHelper.getQuantidadeEconomias() != null) {
qtdeEconomias = gerarRelatorioAnormalidadeConsumoHelper.getQuantidadeEconomias().toString();
}
// Capacidade do Hidr�metro
String capacidadeHidrometro = "";
if (gerarRelatorioAnormalidadeConsumoHelper.getCapacidadeHidrometro() != null) {
capacidadeHidrometro = gerarRelatorioAnormalidadeConsumoHelper.getCapacidadeHidrometro();
}
// Local de Instala��o do Hidr�metro
String localInstalacaoHidrometro = "";
if (gerarRelatorioAnormalidadeConsumoHelper.getLocalInstalacaoHidrometro() != null) {
localInstalacaoHidrometro = gerarRelatorioAnormalidadeConsumoHelper.getLocalInstalacaoHidrometro();
}
// Setor Comercial
String idEmpresa = "";
String nomeEmpresa = "";
if (gerarRelatorioAnormalidadeConsumoHelper.getIdEmpresa() != null) {
idEmpresa = gerarRelatorioAnormalidadeConsumoHelper.getIdEmpresa().toString();
nomeEmpresa = idEmpresa + " - " +gerarRelatorioAnormalidadeConsumoHelper.getNomeEmpresa();
}
String inscricaoImovel = gerarRelatorioAnormalidadeConsumoHelper.getInscricaoImovel();
if(gerarRelatorioAnormalidadeConsumoHelper.getInscricaoImovel() != null){
inscricaoImovel = gerarRelatorioAnormalidadeConsumoHelper.getInscricaoImovel();
}
relatorioBean = new RelatorioAnormalidadeConsumoBean(
// Grupo
grupo,
// Ger�ncia Regional
gerenciaRegional,
// Unidade de Neg�cio
unidadeNegocio,
// Elo
elo,
// Localidade
localidade,
// Id do Setor Comercial
idSetorComercial,
// Setor Comercial
setorComercial,
// Im�vel
idImovel,
// Usu�rio
nomeUsuario,
// Endere�o
endereco,
// Situa��o de �gua
situacaoAgua,
// Situa��o de Esgoto
situacaoEsgoto,
// D�bito Autom�tico
debitoAutomatico,
// M�dia de Consumo
media,
// Consumo
consumo,
// Anormalidade de Consumo
anormalidadeConsumo,
// Anormalidade de Leitura
anormalidadeLeitura,
// N�mero leitura atual informada
nnLeituraAtualInformada,
// Categoria
descricaoCategoria,
// Quantidade de Economias
qtdeEconomias,
// Tipo de Medi��o
gerarRelatorioAnormalidadeConsumoHelper.getTipoMedicao(),
// Capacidade do Hidr�metro
capacidadeHidrometro,
// Local de Instala��o do Hidr�metro
localInstalacaoHidrometro,
// Total do Grupo
totalGrupo.toString(),
// Total da Ger�ncia Regional
totalGerenciaRegional.toString(),
// Total da Unidade de Neg�cio
totalUnidadeNegocio.toString(),
// Total do Elo
totalElo.toString(),
// Total da Localidade
totalLocalidade.toString(),
// Total do Setor Comercial
totalSetorComercial.toString(),
//Id Empresa
idEmpresa,
//Nome Empresa
nomeEmpresa,
inscricaoImovel
);
// adiciona o bean a cole��o
relatorioBeans.add(relatorioBean);
}
} else {
throw new ActionServletException("atencao.relatorio.vazio");
}
// __________________________________________________________________
// Par�metros do relat�rio
Map parametros = new HashMap();
// adiciona os par�metros do relat�rio
// adiciona o laudo da an�lise
SistemaParametro sistemaParametro = fachada
.pesquisarParametrosDoSistema();
parametros.put("imagem", sistemaParametro.getImagemRelatorio());
parametros.put("mesAno", Util.formatarAnoMesParaMesAno(referencia));
parametros.put("tipoFormatoRelatorio", "R0638");
// cria uma inst�ncia do dataSource do relat�rio
RelatorioDataSource ds = new RelatorioDataSource(relatorioBeans);
retorno = gerarRelatorio(
ConstantesRelatorios.RELATORIO_ANORMALIDADE_CONSUMO,
parametros, ds, tipoFormatoRelatorio);
// ------------------------------------
// Grava o relat�rio no sistema
try {
persistirRelatorioConcluido(retorno,
Relatorio.ANORMALIDADE_CONSUMO,
idFuncionalidadeIniciada);
} catch (ControladorException e) {
e.printStackTrace();
throw new TarefaException("Erro ao gravar relat�rio no sistema", e);
}
// ------------------------------------
// retorna o relat�rio gerado
return retorno;
}
@Override
public int calcularTotalRegistrosRelatorio() {
int retorno = 1;
return retorno;
}
public void agendarTarefaBatch() {
AgendadorTarefas.agendarTarefa("RelatorioAnormalidadeConsumo",
this);
}
}