package gcom.gerencial.micromedicao;
import gcom.util.ErroRepositorioException;
import gcom.util.HibernateUtil;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import org.hibernate.HibernateException;
import org.hibernate.Session;
/**
* < <Descri��o da Classe>>
*
* @author Administrador
*/
public class RepositorioGerencialMicromedicaoPostgresHBM extends
RepositorioGerencialMicromedicaoHBM {
/**
* Atualiza os dados na tabela un_resumo_indicador_desempenho_micromedicao
*
* [UC????] - Gerar Resumo Indicadores da Micromedi��o
*
* @author Arthur Carvalho
* @date 09/12/2010
* @alteracao: Alterado o esquema de cadastro para micromedicao.
*
* @return
* @throws ErroRepositorioException
*/
@Override
public void atualizarDadosResumoIndicadorDesempenhoMicromedicao(
Integer anoMesReferenciaIndicador, Integer anoMesReferenciaTabelas)
throws ErroRepositorioException {
Connection con = null;
Statement stmt = null;
Session session = HibernateUtil.getSessionGerencial();
String consulta;
try {
con = session.connection();
stmt = con.createStatement();
/**
* @author Adriana Muniz
* @date 18/10/2013
* Altera��o do nextval para o formatto aceito pelo postgres */
consulta = "INSERT INTO micromedicao.un_resi_des_mmd "
+ " SELECT (nextval('micromedicao.seq_un_resi_des_mmd')), "
+ " reca_amreferencia, to_number(reca_anoreferencia, 9999), "
+ " reca_mesreferencia, greg_id, uneg_id, loca_id, loca_cdelo, "
+ " stcm_id, qdra_id, rota_id, reca_cdsetorcomercial, reca_nnquadra, "
+ " iper_id, last_id, lest_id, catg_id, scat_id, epod_id, cltp_id, "
+ " lapf_id, lepf_id, reca_qtligacoes_ativas, reca_qtligacoes_com_hidrometro, "
+ " reca_qtligacoes_com_medicao_real, reca_qtligacoes_com_hidrometro_e_medicao_estimada, "
+ " reca_qteconomias_ativas, reca_qteconomias_com_hidrometro, reca_qteconomias_com_medicao_real, "
+ " reca_qteconomias_com_hidrometro_e_medicao_estimada, "
+ " reca_consumoagua_ativas, reca_consumoagua_com_hidrometro, reca_consumoagua_com_medicao_real, "
+ " reca_consumoagua_com_hidrometro_e_medicao_estimada, "
+ " reca_vofaturadoagua, reca_vofaturadoaguamedido, reca_vofaturadoaguanaomedido, "
+ " rece_qtligacoes, rece_qteconomias, rece_voesgoto, "
+ " rece_vofaturadoesgoto, rece_vofaturadoesgotomedido, rece_vofaturadoesgotonaomedido, "
+ " relt_qtvisitas_realizadas, relt_qtleituras_efetuadas, relt_qtleituras_com_anormalidade_hidrometro, "
+ " reih_qthidrometro_instalado_ramal, reih_qthidrometro_substituido_ramal, reih_qthidrometro_remanejado_ramal, "
+ " reih_qthidrometro_retirado_ramal, reih_qthidrometrosatualinstaladosramal, "
+ " reih_qthidrometro_instalado_poco, reih_qthidrometro_substituido_poco, reih_qthidrometro_remanejado_poco, "
+ " reih_qthidrometro_retirado_poco, reih_qthidrometrosatualinstaladospoco, "
+ " reih_qthidrometro_dadosatualizados, now() "
+ " FROM micromedicao.vw_un_resi_des_mmd ";
if (anoMesReferenciaIndicador != null) {
consulta = consulta + " WHERE reca_amreferencia > "
+ anoMesReferenciaIndicador
+ " and reca_amreferencia <= "
+ anoMesReferenciaTabelas;
} else {
consulta = consulta + " WHERE reca_amreferencia <= "
+ anoMesReferenciaTabelas;
}
//consulta += "\n limit 1";
System.out.println("inicio Batch atualizarDadosResumoIndicadorDesempenhoMicromedicao:" + new Date());
stmt.executeUpdate(consulta);
System.out.println("fim Batch atualizarDadosResumoIndicadorDesempenhoMicromedicao:" + new Date());
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} catch (SQLException e) {
e.printStackTrace();
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
try {
stmt.close();
con.close();
} catch (SQLException e) {
System.out.println("Erro ao fechar conex�es");
}
}
}
/**
* Atualiza os dados na tabela un_resumo_indicador_desempenho_micromedicao_ref_2010
*
* @author Arthur Carvalho
* @date 09/12/2010
*
* @return
* @throws ErroRepositorioException
*/
@Override
public void atualizarDadosResumoIndicadorDesempenhoMicromedicaoPorAno(
Integer anoMesReferenciaIndicador, Integer anoMesReferenciaTabelas)
throws ErroRepositorioException {
Connection con = null;
Statement stmt = null;
Session session = HibernateUtil.getSessionGerencial();
String consulta;
try {
con = session.connection();
stmt = con.createStatement();
consulta = "INSERT INTO micromedicao.un_resi_des_mmd_ref_2010 ("
+ " reca_id, "
+ " reca_amreferencia, "
+ " greg_id, "
+ " uneg_id, "
+ " loca_id, "
+ " loca_cdelo, "
+ " stcm_id, "
+ " reca_cdsetorcomercial, "
+ " iper_id, "
+ " last_id, "
+ " lest_id, "
+ " catg_id, "
+ " epod_id, "
+ " cltp_id, "
+ " lapf_id, "
+ " lepf_id, "
+ " reca_qtligacoes_ativas, "
+ " reca_qtligacoes_com_hidrometro, "
+ " reca_qtligacoes_com_medicao_real, "
+ " reca_qtligacoes_com_hidrometro_e_medicao_estimada, "
+ " reca_qteconomias_ativas, "
+ " reca_qteconomias_com_hidrometro, "
+ " reca_qteconomias_com_medicao_real, "
+ " reca_qteconomias_com_hidrometro_e_medicao_estimada, "
+ " reca_consumoagua_ativas, "
+ " reca_consumoagua_com_hidrometro, "
+ " reca_consumoagua_com_medicao_real, "
+ " reca_consumoagua_com_hidrometro_e_medicao_estimada, "
+ " reca_vofaturadoagua, "
+ " reca_vofaturadoaguamedido, "
+ " reca_vofaturadoaguanaomedido, "
+ " rece_qtligacoes, "
+ " rece_qteconomias, "
+ " rece_voesgoto, "
+ " rece_vofaturadoesgoto, "
+ " rece_vofaturadoesgotomedido, "
+ " rece_vofaturadoesgotonaomedido, "
+ " relt_qtvisitas_realizadas, "
+ " relt_qtleituras_efetuadas, "
+ " relt_qtleituras_com_anormalidade_hidrometro, "
+ " reih_qthidrometro_instalado_ramal, "
+ " reih_qthidrometro_substituido_ramal, "
+ " reih_qthidrometro_remanejado_ramal, "
+ " reih_qthidrometro_retirado_ramal, "
+ " reih_qthidrometrosatualinstaladosramal, "
+ " reih_qthidrometro_instalado_poco, "
+ " reih_qthidrometro_substituido_poco, "
+ " reih_qthidrometro_remanejado_poco, "
+ " reih_qthidrometro_retirado_poco, "
+ " reih_qthidrometrosatualinstaladospoco, "
+ " reih_qthidrometro_dadosatualizados, "
+ " reca_tmultimaalteracao "
+ " ) "
+ " SELECT "
+ " micromedicao.seq_un_resi_des_mmd_ref_2007.nextval, "
+ " reca_amreferencia, "
//+ " to_number(reca_anoreferencia, 9999), "
//+ " reca_mesreferencia,"
+ " greg_id, "
+ " uneg_id, "
+ " loca_id, "
+ " loca_cdelo, "
+ " stcm_id, "
//+ " qdra_id, "
//+ " rota_id, "
+ " reca_cdsetorcomercial, "
//+ " reca_nnquadra, "
+ " iper_id, "
+ " last_id, "
+ " lest_id, "
+ " catg_id, "
//+ " scat_id, "
+ " epod_id, "
+ " cltp_id, "
+ " lapf_id, "
+ " lepf_id, "
+ " reca_qtligacoes_ativas, "
+ " reca_qtligacoes_com_hidrometro, "
+ " reca_qtligacoes_com_medicao_real, "
+ " reca_qtligacoes_com_hidrometro_e_medicao_estimada, "
+ " reca_qteconomias_ativas, "
+ " reca_qteconomias_com_hidrometro, "
+ " reca_qteconomias_com_medicao_real, "
+ " reca_qteconomias_com_hidrometro_e_medicao_estimada, "
+ " reca_consumoagua_ativas, "
+ " reca_consumoagua_com_hidrometro, "
+ " reca_consumoagua_com_medicao_real, "
+ " reca_consumoagua_com_hidrometro_e_medicao_estimada, "
+ " reca_vofaturadoagua, "
+ " reca_vofaturadoaguamedido, "
+ " reca_vofaturadoaguanaomedido, "
+ " rece_qtligacoes, "
+ " rece_qteconomias, "
+ " rece_voesgoto, "
+ " rece_vofaturadoesgoto, "
+ " rece_vofaturadoesgotomedido, "
+ " rece_vofaturadoesgotonaomedido, "
+ " relt_qtvisitas_realizadas, "
+ " relt_qtleituras_efetuadas, "
+ " relt_qtleituras_com_anormalidade_hidrometro, "
+ " reih_qthidrometro_instalado_ramal, "
+ " reih_qthidrometro_substituido_ramal, "
+ " reih_qthidrometro_remanejado_ramal, "
+ " reih_qthidrometro_retirado_ramal, "
+ " reih_qthidrometrosatualinstaladosramal, "
+ " reih_qthidrometro_instalado_poco, "
+ " reih_qthidrometro_substituido_poco, "
+ " reih_qthidrometro_remanejado_poco, "
+ " reih_qthidrometro_retirado_poco, "
+ " reih_qthidrometrosatualinstaladospoco, "
+ " reih_qthidrometro_dadosatualizados,"
+ " now() "
+ " FROM micromedicao.vw_un_resi_des_mmd ";
if (anoMesReferenciaIndicador != null) {
consulta = consulta + " WHERE reca_amreferencia > "
+ anoMesReferenciaIndicador
+ " and reca_amreferencia <= "
+ anoMesReferenciaTabelas;
} else {
consulta = consulta + " WHERE reca_amreferencia <= "
+ anoMesReferenciaTabelas;
}
System.out.println("inicio Batch atualizarDadosResumoIndicadorDesempenhoMicromedicaoPorAno:" + new Date());
stmt.executeUpdate(consulta);
System.out.println("fim Batch atualizarDadosResumoIndicadorDesempenhoMicromedicaoPorAno:" + new Date());
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} catch (SQLException e) {
e.printStackTrace();
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
try {
stmt.close();
con.close();
} catch (SQLException e) {
System.out.println("Erro ao fechar conex�es");
}
}
}
}