package gcom.relatorio.gerencial.faturamento;
import gcom.batch.Relatorio;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.fachada.Fachada;
import gcom.gerencial.faturamento.bean.FiltrarRelatorioDemonstrativoSinteticoLigacoesHelper;
import gcom.gui.ActionServletException;
import gcom.relatorio.ConstantesRelatorios;
import gcom.relatorio.RelatorioDataSource;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.tarefa.TarefaException;
import gcom.tarefa.TarefaRelatorio;
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;
public class RelatorioDemonstrativoSinteticoLigacoes extends TarefaRelatorio {
private static final long serialVersionUID = 1L;
public RelatorioDemonstrativoSinteticoLigacoes(Usuario usuario) {
super(usuario, ConstantesRelatorios.RELATORIO_DEMONSTRATIVO_SINTETICO_LIGACOES);
}
@Deprecated
public RelatorioDemonstrativoSinteticoLigacoes() {
super(null, "");
}
public Object executar() throws TarefaException {
// valor de retorno
byte[] retorno = null;
// ------------------------------------
Integer idFuncionalidadeIniciada = this.getIdFuncionalidadeIniciada();
// ------------------------------------
FiltrarRelatorioDemonstrativoSinteticoLigacoesHelper filtro =
(FiltrarRelatorioDemonstrativoSinteticoLigacoesHelper) getParametro("filtrarRelatorioDemonstrativoSinteticoLigacoesHelper");
int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio");
// cole��o de beans do relat�rio
List relatorioBeans = new ArrayList();
Fachada fachada = Fachada.getInstancia();
Collection<Object> colecaoResumoLigacaoEconomia =
fachada.pesquisarResumoLigacaoEconomiaRelatorioDemonstrativo(filtro);
Collection<Object> colecaoResumoConsumoAgua =
fachada.pesquisarResumoConsumoAguaRelatorioDemonstrativo(filtro);
Collection<Object> colecaoResumoLeituraAnormalidade =
fachada.pesquisaResumoLeituraAnormalidadeRelatorioDemonstrativo(filtro);
Collection<Object> colecaoInstalacaoHidrometro =
fachada.pesquisaResumoInstalacaoHidrometroRelatorioDemonstrativo(filtro);
RelatorioDemonstrativoSinteticoLigacoesBean relatorioBean = null;
//cria variaveis para gerar o total por relatorio.
Long sumAgua_movLig_existentes = new Long(0);
Long sumAgua_movLig_funcionando = new Long(0);
Long sumAgua_movLig_cortadas = new Long(0);
Long sumAgua_movLig_suprimidas = new Long(0);
Long sumAgua_movLig_corteMes = new Long(0);
Long sumAgua_movLig_ligacaoMes = new Long(0);
Long sumAgua_movLig_religacaoMes = new Long(0);
Long sumAgua_eco_existentes = new Long(0);
Long sumAgua_eco_funcionando = new Long(0);
Long sumAgua_eco_cortadas = new Long(0);
Long sumAgua_eco_suprimidas = new Long(0);
Long sumAgua_eco_ecoExist_residencial = new Long(0);
Long sumAgua_eco_ecoExist_comercial = new Long(0);
Long sumAgua_eco_ecoExist_publica = new Long(0);
Long sumAgua_eco_ecoExist_industrial = new Long(0);
Long sumAgua_eco_ecoFunc_residencial = new Long(0);
Long sumAgua_eco_ecoFunc_comercial = new Long(0);
Long sumAgua_eco_ecoFunc_publica = new Long(0);
Long sumAgua_eco_ecoFunc_industrial = new Long(0);
Long sumAgua_hid_funcionando = new Long(0);
Long sumAgua_hid_cortados = new Long(0);
Long sumAgua_hid_lidos = new Long(0);
Long sumAgua_hid_instalados = new Long(0);
Long sumAgua_hid_parados = new Long(0);
Long sumAgua_cons_estNHidrometrado = new Long(0);
Long sumAgua_cons_estHidrometrado = new Long(0);
Long sumAgua_cons_realHidrometrado = new Long(0);
Long sumAgua_cons_faturado = new Long(0);
Long sumEsgoto_movLig_existente = new Long(0);
Long sumEsgoto_movLig_funcionando = new Long(0);
Long sumEsgoto_movLig_cortadas = new Long(0);
Long sumEsgoto_movLig_suprimidas = new Long(0);
Long sumEsgoto_eco_existentes = new Long(0);
Long sumEsgoto_eco_funcionando = new Long(0);
Long sumEsgoto_eco_cortadas = new Long(0);
Long sumEsgoto_eco_supridas = new Long(0);
Long sumEsgoto_eco_ecoExist_residencial = new Long(0);
Long sumEsgoto_eco_ecoExist_comercial = new Long(0);
Long sumEsgoto_eco_ecoExist_publica = new Long(0);
Long sumEsgoto_eco_ecoExist_industrial = new Long(0);
Long sumEsgoto_eco_ecoFunc_residencial = new Long(0);
Long sumEsgoto_eco_ecoFunc_comercial = new Long(0);
Long sumEsgoto_eco_ecoFunc_publica = new Long(0);
Long sumEsgoto_eco_ecoFunc_industrial = new Long(0);
if (colecaoResumoLigacaoEconomia != null && !colecaoResumoLigacaoEconomia.isEmpty()) {
Iterator iteratorRELE = colecaoResumoLigacaoEconomia.iterator();
Iterator iteratorRECA = colecaoResumoConsumoAgua.iterator();
Iterator iteratorRELT = colecaoResumoLeituraAnormalidade.iterator();
Iterator iteratorREIH = colecaoInstalacaoHidrometro.iterator();
while (iteratorRELE.hasNext() || iteratorRECA.hasNext() ||
iteratorRELT.hasNext() || iteratorREIH.hasNext() ) {
relatorioBean = new RelatorioDemonstrativoSinteticoLigacoesBean();
Object[] objRELE = (Object[]) iteratorRELE.next();
relatorioBean.setAgua_movLig_existentes((Long)objRELE[0]);
relatorioBean.setAgua_movLig_funcionando((Long)objRELE[1]);
relatorioBean.setAgua_movLig_cortadas((Long)objRELE[2]);
relatorioBean.setAgua_movLig_suprimidas((Long)objRELE[3]);
relatorioBean.setAgua_movLig_corteMes((Long)objRELE[4]);
relatorioBean.setAgua_movLig_ligacaoMes((Long)objRELE[5]);
relatorioBean.setAgua_movLig_religacaoMes((Long)objRELE[6]);
relatorioBean.setAgua_eco_existentes((Long)objRELE[7]);
relatorioBean.setAgua_eco_funcionando((Long)objRELE[8]);
relatorioBean.setAgua_eco_cortadas((Long)objRELE[9]);
relatorioBean.setAgua_eco_suprimidas((Long)objRELE[10]);
relatorioBean.setAgua_eco_ecoExist_residencial((Long)objRELE[11]);
relatorioBean.setAgua_eco_ecoExist_comercial((Long)objRELE[12]);
relatorioBean.setAgua_eco_ecoExist_publica((Long)objRELE[13]);
relatorioBean.setAgua_eco_ecoExist_industrial((Long)objRELE[14]);
relatorioBean.setAgua_eco_ecoFunc_residencial((Long)objRELE[15]);
relatorioBean.setAgua_eco_ecoFunc_comercial((Long)objRELE[16]);
relatorioBean.setAgua_eco_ecoFunc_publica((Long)objRELE[17]);
relatorioBean.setAgua_eco_ecoFunc_industrial((Long)objRELE[18]);
relatorioBean.setAgua_hid_funcionando((Long)objRELE[19]);
relatorioBean.setAgua_hid_cortados((Long)objRELE[20]);
relatorioBean.setEsgoto_movLig_existente((Long)objRELE[21]);
relatorioBean.setEsgoto_movLig_funcionando((Long)objRELE[22]);
relatorioBean.setEsgoto_movLig_cortadas((Long)objRELE[23]);
relatorioBean.setEsgoto_movLig_suprimidas((Long)objRELE[24]);
relatorioBean.setEsgoto_eco_existentes((Long)objRELE[25]);
relatorioBean.setEsgoto_eco_funcionando((Long)objRELE[26]);
relatorioBean.setEsgoto_eco_cortadas((Long)objRELE[27]);
relatorioBean.setEsgoto_eco_supridas((Long)objRELE[28]);
relatorioBean.setEsgoto_eco_ecoExist_residencial((Long)objRELE[29]);
relatorioBean.setEsgoto_eco_ecoExist_comercial((Long)objRELE[30]);
relatorioBean.setEsgoto_eco_ecoExist_publica((Long)objRELE[31]);
relatorioBean.setEsgoto_eco_ecoExist_industrial((Long)objRELE[32]);
relatorioBean.setEsgoto_eco_ecoFunc_residencial((Long)objRELE[33]);
relatorioBean.setEsgoto_eco_ecoFunc_comercial((Long)objRELE[34]);
relatorioBean.setEsgoto_eco_ecoFunc_publica((Long)objRELE[35]);
relatorioBean.setEsgoto_eco_ecoFunc_industrial((Long)objRELE[36]);
relatorioBean.setGerenciaRegionalID((String)objRELE[37]);
relatorioBean.setGerenciaRegional((String)objRELE[38]);
relatorioBean.setUnidadeNegocioID((String)objRELE[39]);
relatorioBean.setUnidadeNegocio((String)objRELE[40]);
relatorioBean.setLocalidadeID((String)objRELE[41]);
relatorioBean.setLocalidade((String)objRELE[42]);
relatorioBean.setMunicipioID((String)objRELE[43]);
relatorioBean.setMunicipio((String)objRELE[44]);
Object[] objRECA = null;
if(colecaoResumoConsumoAgua != null && colecaoResumoConsumoAgua.size() != 0 && iteratorRECA.hasNext()){
objRECA = (Object[]) iteratorRECA.next();
relatorioBean.setAgua_cons_faturado((Long)objRECA[0]);
relatorioBean.setAgua_cons_estNHidrometrado((Long)objRECA[1]);
relatorioBean.setAgua_cons_estHidrometrado((Long)objRECA[2]);
relatorioBean.setAgua_cons_realHidrometrado((Long)objRECA[3]);
}else{
relatorioBean.setAgua_cons_faturado(new Long (0));
relatorioBean.setAgua_cons_estNHidrometrado(new Long (0));
relatorioBean.setAgua_cons_estHidrometrado(new Long (0));
relatorioBean.setAgua_cons_realHidrometrado(new Long (0));
}
Object[] objRELT = null;
if(colecaoResumoLeituraAnormalidade != null && colecaoResumoLeituraAnormalidade.size() != 0 && iteratorRELT.hasNext()){
objRELT = (Object[]) iteratorRELT.next();
relatorioBean.setAgua_hid_lidos((Long)objRELT[0]);
relatorioBean.setAgua_hid_parados((Long)objRELT[1]);
}else{
relatorioBean.setAgua_hid_lidos(new Long(0));
relatorioBean.setAgua_hid_parados(new Long(0));
}
Object[] objREIH = null;
if(colecaoInstalacaoHidrometro != null && colecaoInstalacaoHidrometro.size() != 0 && iteratorREIH.hasNext()){
objREIH = (Object[]) iteratorREIH.next();
relatorioBean.setAgua_hid_instalados((Long)objREIH[0]);
}else{
relatorioBean.setAgua_hid_instalados(new Long(0));
}
relatorioBeans.add(relatorioBean);
//se opcao de totalizacao for estado por ..., soma os valores
if (filtro.getOpcaoTotalizacao() == 2 || filtro.getOpcaoTotalizacao() == 3 ||
filtro.getOpcaoTotalizacao() == 4 || filtro.getOpcaoTotalizacao() == 5){
sumAgua_movLig_existentes += (Long)objRELE[0];
sumAgua_movLig_funcionando += (Long)objRELE[1];
sumAgua_movLig_cortadas += (Long)objRELE[2];
sumAgua_movLig_suprimidas += (Long)objRELE[3];
sumAgua_movLig_corteMes += (Long)objRELE[4];
sumAgua_movLig_ligacaoMes += (Long)objRELE[5];
sumAgua_movLig_religacaoMes += (Long)objRELE[6];
sumAgua_eco_existentes += (Long)objRELE[7];
sumAgua_eco_funcionando += (Long)objRELE[8];
sumAgua_eco_cortadas += (Long)objRELE[9];
sumAgua_eco_suprimidas += (Long)objRELE[10];
sumAgua_eco_ecoExist_residencial += (Long)objRELE[11];
sumAgua_eco_ecoExist_comercial += (Long)objRELE[12];
sumAgua_eco_ecoExist_publica += (Long)objRELE[13];
sumAgua_eco_ecoExist_industrial += (Long)objRELE[14];
sumAgua_eco_ecoFunc_residencial += (Long)objRELE[15];
sumAgua_eco_ecoFunc_comercial += (Long)objRELE[16];
sumAgua_eco_ecoFunc_publica += (Long)objRELE[17];
sumAgua_eco_ecoFunc_industrial += (Long)objRELE[18];
sumAgua_hid_funcionando += (Long)objRELE[19];
sumAgua_hid_cortados += (Long)objRELE[20];
sumEsgoto_movLig_existente += (Long)objRELE[21];
sumEsgoto_movLig_funcionando += (Long)objRELE[22];
sumEsgoto_movLig_cortadas += (Long)objRELE[23];
sumEsgoto_movLig_suprimidas += (Long)objRELE[24];
sumEsgoto_eco_existentes += (Long)objRELE[25];
sumEsgoto_eco_funcionando += (Long)objRELE[26];
sumEsgoto_eco_cortadas += (Long)objRELE[27];
sumEsgoto_eco_supridas += (Long)objRELE[28];
sumEsgoto_eco_ecoExist_residencial += (Long)objRELE[29];
sumEsgoto_eco_ecoExist_comercial += (Long)objRELE[30];
sumEsgoto_eco_ecoExist_publica += (Long)objRELE[31];
sumEsgoto_eco_ecoExist_industrial += (Long)objRELE[32];
sumEsgoto_eco_ecoFunc_residencial += (Long)objRELE[33];
sumEsgoto_eco_ecoFunc_comercial += (Long)objRELE[34];
sumEsgoto_eco_ecoFunc_publica += (Long)objRELE[35];
sumEsgoto_eco_ecoFunc_industrial += (Long)objRELE[36];
if(objRECA != null){
sumAgua_cons_faturado += (Long)objRECA[0];
sumAgua_cons_estNHidrometrado += (Long)objRECA[1];
sumAgua_cons_estHidrometrado += (Long)objRECA[2];
sumAgua_cons_realHidrometrado += (Long)objRECA[3];
}
if(objRELT != null){
sumAgua_hid_lidos += (Long)objRELT[0];
sumAgua_hid_parados += (Long)objRELT[1];
}
if(objREIH != null){
sumAgua_hid_instalados += (Long)objREIH[0];
}
}
}
//caso a opcao de totalizacao for estado por ..., adiciona o total do estado
if (filtro.getOpcaoTotalizacao() == 2 || filtro.getOpcaoTotalizacao() == 3 ||
filtro.getOpcaoTotalizacao() == 4 || filtro.getOpcaoTotalizacao() == 5){
relatorioBean = new RelatorioDemonstrativoSinteticoLigacoesBean();
relatorioBean.setAgua_movLig_existentes(Long.valueOf(sumAgua_movLig_existentes));
relatorioBean.setAgua_movLig_funcionando(Long.valueOf(sumAgua_movLig_funcionando));
relatorioBean.setAgua_movLig_cortadas(Long.valueOf(sumAgua_movLig_cortadas));
relatorioBean.setAgua_movLig_suprimidas(Long.valueOf(sumAgua_movLig_suprimidas));
relatorioBean.setAgua_movLig_corteMes(Long.valueOf(sumAgua_movLig_corteMes));
relatorioBean.setAgua_movLig_ligacaoMes(Long.valueOf(sumAgua_movLig_ligacaoMes));
relatorioBean.setAgua_movLig_religacaoMes(Long.valueOf(sumAgua_movLig_religacaoMes));
relatorioBean.setAgua_eco_existentes(Long.valueOf(sumAgua_eco_existentes));
relatorioBean.setAgua_eco_funcionando(Long.valueOf(sumAgua_eco_funcionando));
relatorioBean.setAgua_eco_cortadas(Long.valueOf(sumAgua_eco_cortadas));
relatorioBean.setAgua_eco_suprimidas(Long.valueOf(sumAgua_eco_suprimidas));
relatorioBean.setAgua_eco_ecoExist_residencial(Long.valueOf(sumAgua_eco_ecoExist_residencial));
relatorioBean.setAgua_eco_ecoExist_comercial(Long.valueOf(sumAgua_eco_ecoExist_comercial));
relatorioBean.setAgua_eco_ecoExist_publica(Long.valueOf(sumAgua_eco_ecoExist_publica));
relatorioBean.setAgua_eco_ecoExist_industrial(Long.valueOf(sumAgua_eco_ecoExist_industrial));
relatorioBean.setAgua_eco_ecoFunc_residencial(Long.valueOf(sumAgua_eco_ecoFunc_residencial));
relatorioBean.setAgua_eco_ecoFunc_comercial(Long.valueOf(sumAgua_eco_ecoFunc_comercial));
relatorioBean.setAgua_eco_ecoFunc_publica(Long.valueOf(sumAgua_eco_ecoFunc_publica));
relatorioBean.setAgua_eco_ecoFunc_industrial(Long.valueOf(sumAgua_eco_ecoFunc_industrial));
relatorioBean.setAgua_hid_funcionando(Long.valueOf(sumAgua_hid_funcionando));
relatorioBean.setAgua_hid_cortados(Long.valueOf(sumAgua_hid_cortados));
relatorioBean.setAgua_cons_faturado(Long.valueOf(sumAgua_cons_faturado));
relatorioBean.setAgua_cons_estNHidrometrado(Long.valueOf(sumAgua_cons_estNHidrometrado));
relatorioBean.setAgua_cons_estHidrometrado(Long.valueOf(sumAgua_cons_estHidrometrado));
relatorioBean.setAgua_cons_realHidrometrado(Long.valueOf(sumAgua_cons_realHidrometrado));
relatorioBean.setAgua_hid_lidos(Long.valueOf(sumAgua_hid_lidos));
relatorioBean.setAgua_hid_parados(Long.valueOf(sumAgua_hid_parados));
relatorioBean.setAgua_hid_instalados(Long.valueOf(sumAgua_hid_instalados));
relatorioBean.setEsgoto_movLig_existente(Long.valueOf(sumEsgoto_movLig_existente));
relatorioBean.setEsgoto_movLig_funcionando(Long.valueOf(sumEsgoto_movLig_funcionando));
relatorioBean.setEsgoto_movLig_cortadas(Long.valueOf(sumEsgoto_movLig_cortadas));
relatorioBean.setEsgoto_movLig_suprimidas(Long.valueOf(sumEsgoto_movLig_suprimidas));
relatorioBean.setEsgoto_eco_existentes(Long.valueOf(sumEsgoto_eco_existentes));
relatorioBean.setEsgoto_eco_funcionando(Long.valueOf(sumEsgoto_eco_funcionando));
relatorioBean.setEsgoto_eco_cortadas(Long.valueOf(sumEsgoto_eco_cortadas));
relatorioBean.setEsgoto_eco_supridas(Long.valueOf(sumEsgoto_eco_supridas));
relatorioBean.setEsgoto_eco_ecoExist_residencial(Long.valueOf(sumEsgoto_eco_ecoExist_residencial));
relatorioBean.setEsgoto_eco_ecoExist_comercial(Long.valueOf(sumEsgoto_eco_ecoExist_comercial));
relatorioBean.setEsgoto_eco_ecoExist_publica(Long.valueOf(sumEsgoto_eco_ecoExist_publica));
relatorioBean.setEsgoto_eco_ecoExist_industrial(Long.valueOf(sumEsgoto_eco_ecoExist_industrial));
relatorioBean.setEsgoto_eco_ecoFunc_residencial(Long.valueOf(sumEsgoto_eco_ecoFunc_residencial));
relatorioBean.setEsgoto_eco_ecoFunc_comercial(Long.valueOf(sumEsgoto_eco_ecoFunc_comercial));
relatorioBean.setEsgoto_eco_ecoFunc_publica(Long.valueOf(sumEsgoto_eco_ecoFunc_publica));
relatorioBean.setEsgoto_eco_ecoFunc_industrial(Long.valueOf(sumEsgoto_eco_ecoFunc_industrial));
//colocar zero para informar que esse bean � o total do estado
relatorioBean.setGerenciaRegionalID((String)"0");
relatorioBean.setUnidadeNegocioID((String)"0");
relatorioBean.setLocalidadeID((String)"0");
relatorioBean.setMunicipioID((String)"0");
relatorioBeans.add(relatorioBean);
}
}
// __________________________________________________________________
// Par�metros do relat�rio
Map parametros = new HashMap();
// adiciona os par�metros do relat�rio
// adiciona o laudo da an�lise
SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema();
parametros.put("imagem", sistemaParametro.getImagemRelatorio());
parametros.put("anoMesReferencia", Util.formatarAnoMesParaMesAno(filtro.getAnoMesReferencia()));
parametros.put("codOpcaoTotalizacao", filtro.getOpcaoTotalizacao());
parametros.put("tipoFormatoRelatorio", "R1003");
// cria uma inst�ncia do dataSource do relat�rio
RelatorioDataSource ds = new RelatorioDataSource(relatorioBeans);
retorno = gerarRelatorio(ConstantesRelatorios.RELATORIO_DEMONSTRATIVO_SINTETICO_LIGACOES,
parametros, ds, tipoFormatoRelatorio);
// ------------------------------------
// Grava o relat�rio no sistema
try {
persistirRelatorioConcluido(retorno, Relatorio.RELATORIO_DEMONSTRATIVO_SINTETICO_LIGACOES,
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() {
FiltrarRelatorioDemonstrativoSinteticoLigacoesHelper filtro =
(FiltrarRelatorioDemonstrativoSinteticoLigacoesHelper) getParametro("filtrarRelatorioDemonstrativoSinteticoLigacoesHelper");
Fachada fachada = Fachada.getInstancia();
int retorno = 0;
retorno = (Integer) fachada.pesquisarResumoLigacaoEconomiaRelatorioDemonstrativo(filtro).size();
if(retorno == 0){
throw new ActionServletException("atencao.pesquisa.nenhumresultado", null, "");
}
return retorno;
}
public void agendarTarefaBatch() {
AgendadorTarefas.agendarTarefa("RelatorioDemonstrativoSinteticoLigacoes", this);
}
}