package gcom.batch;
import gcom.arrecadacao.Devolucao;
import gcom.arrecadacao.pagamento.GuiaPagamento;
import gcom.arrecadacao.pagamento.GuiaPagamentoCategoria;
import gcom.arrecadacao.pagamento.Pagamento;
import gcom.cadastro.cliente.ClienteConta;
import gcom.cadastro.cliente.ClienteGuiaPagamento;
import gcom.faturamento.FaturamentoAtividadeCronograma;
import gcom.faturamento.conta.Conta;
import gcom.faturamento.conta.ContaCategoria;
import gcom.faturamento.conta.ContaCategoriaConsumoFaixa;
import gcom.faturamento.conta.ContaImpostosDeduzidos;
import gcom.faturamento.credito.CreditoARealizar;
import gcom.faturamento.credito.CreditoRealizado;
import gcom.faturamento.credito.CreditoRealizadoCategoria;
import gcom.faturamento.debito.DebitoACobrar;
import gcom.faturamento.debito.DebitoACobrarCategoria;
import gcom.faturamento.debito.DebitoCobrado;
import gcom.faturamento.debito.DebitoCobradoCategoria;
import gcom.micromedicao.Rota;
import gcom.micromedicao.consumo.ConsumoHistorico;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.ErroRepositorioException;
import gcom.util.HibernateUtil;
import gcom.util.Util;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import org.hibernate.Hibernate;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.StatelessSession;
public class RepositorioBatchHBM implements IRepositorioBatch {
private static IRepositorioBatch instancia;
private RepositorioBatchHBM() {
}
public static IRepositorioBatch getInstancia() {
if (instancia == null) {
instancia = new RepositorioBatchHBM();
}
return instancia;
}
@SuppressWarnings("rawtypes")
public Collection pesquisarRotasProcessamentoBatchFaturamentoComandado(
Integer idFaturamentoAtividadeCronograma)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT fatAtivCronRota, rota "
+ "FROM FaturamentoAtivCronRota as fatAtivCronRota "
+ "left join fatAtivCronRota.faturamentoAtividadeCronograma fatAtividadeCronograma "
+ "left join fatAtivCronRota.rota rota "
+ "left join fetch rota.empresa empr "
+ "left join fetch rota.leiturista leit "
+ "left join fetch leit.usuario usu "
+ "left join fetch rota.leituraTipo lt "
+ "left join rota.setorComercial stcm "
+ "left join stcm.localidade loca "
+ "where fatAtividadeCronograma.id in (:ids) "
+ "order by loca.id, stcm.codigo, rota.codigo ";
retorno = session.createQuery(consulta).setInteger("ids",
idFaturamentoAtividadeCronograma).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
@SuppressWarnings("unchecked")
public Collection<ProcessoIniciado> pesquisarProcessosIniciadosProntosParaEncerramento() throws ErroRepositorioException {
Collection<ProcessoIniciado> retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select distinct processo1 from ProcessoIniciado processo1 "
+ "inner join processo1.funcionalidadesIniciadas as iniciada "
+ "where iniciada.id is not null and "
+ "processo1.processoSituacao.id <> :situacaoProcessoConcluida and processo1.id not in ("
+ "select distinct processo.id from ProcessoIniciado as processo "
+ "inner join processo.funcionalidadesIniciadas as iniciada "
+ "inner join iniciada.funcionalidadeSituacao as situacao "
+ "where situacao.id <> :situacaoConcluida)";
retorno = session.createQuery(consulta).setInteger(
"situacaoProcessoConcluida", ProcessoSituacao.CONCLUIDO)
.setInteger("situacaoConcluida",
FuncionalidadeSituacao.CONCLUIDA).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
@SuppressWarnings("unchecked")
public Collection<ProcessoIniciado> pesquisarProcessosIniciadosExecucaoFalha()
throws ErroRepositorioException {
Collection<ProcessoIniciado> retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select distinct processo1 from ProcessoIniciado processo1 "
+ "inner join processo1.funcionalidadesIniciadas as iniciada "
+ "inner join iniciada.funcionalidadeSituacao as situacao "
+ "where processo1.processoSituacao <> :processoIniciadoConcluidoComErro and "
+ "iniciada.id is not null and "
+ "situacao = :situacaoConcluidaComErro";
retorno = session.createQuery(consulta).setInteger(
"situacaoConcluidaComErro",
FuncionalidadeSituacao.CONCLUIDA_COM_ERRO).setInteger(
"processoIniciadoConcluidoComErro",
ProcessoSituacao.CONCLUIDO_COM_ERRO).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
@SuppressWarnings({ "unchecked"})
public Collection<FuncionalidadeIniciada> pesquisarFuncionaldadesIniciadasProntasParaEncerramento()
throws ErroRepositorioException {
Collection<FuncionalidadeIniciada> retorno = new ArrayList();
Collection<Object> ids = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
// consulta = "select distinct func.id from FuncionalidadeIniciada as func "
// + "inner join func.unidadesIniciadas as iniciada "
// + "inner join fetch func.processoFuncionalidade as procFunc "
// + "inner join fetch procFunc.funcionalidade "
// + "where iniciada.id is not null and "
// //+ "func.funcionalidadeSituacao.id <> :situacaoFuncionalidadeConcluida "
// + "func.funcionalidadeSituacao.id = :situacaoFuncionalidadeEmProcessamento "
// + "and func.id not in ("
// + "select distinct func.id from FuncionalidadeIniciada as func2 "
// + "inner join func2.unidadesIniciadas as iniciada "
// + "inner join iniciada.unidadeSituacao as situacao "
// + "where situacao.id <> :situacaoConcluida and and func2.id = func.id)";
consulta = "select distinct func.fuin_id as idFuncionalidade "
+ " from batch.funcionalidade_iniciada func "
+ " inner join batch.unidade_iniciada iniciada on iniciada.fuin_id = func.fuin_id "
+ " inner join batch.processo_funcionalidade procFunc on procFunc.prfn_id = func.prfn_id "
+ " inner join seguranca.funcionalidade funcionalidade on funcionalidade.fncd_id = procFunc.fncd_id "
+ " where iniciada.undi_id is not null "
+ " and func.fnst_id <> :situacaoFuncionalidadeConcluida "
+ " and func.fuin_id not in (select func.fuin_id "
+ " from batch.funcionalidade_iniciada func2 "
+ " inner join batch.unidade_iniciada iniciada on iniciada.fuin_id = func2.fuin_id "
+ " inner join batch.unidade_situacao situacao on situacao.unst_id = iniciada.unst_id "
+ " where situacao.unst_id <> :situacaoConcluida and func2.fuin_id = func.fuin_id) ";
ids = session.createSQLQuery(consulta)
.addScalar("idFuncionalidade", Hibernate.INTEGER)
.setInteger("situacaoConcluida", UnidadeSituacao.CONCLUIDA)
.setInteger("situacaoFuncionalidadeConcluida",FuncionalidadeSituacao.CONCLUIDA)
//.setInteger("situacaoFuncionalidadeEmProcessamento",FuncionalidadeSituacao.EM_PROCESSAMENTO)
.list();
Iterator iter = ids.iterator();
while (iter.hasNext()) {
Object objeto = (Object) iter.next();
Integer id = (Integer) objeto;
FuncionalidadeIniciada funcionalidadeIniciada = new FuncionalidadeIniciada();
funcionalidadeIniciada.setId(id);
retorno.add(funcionalidadeIniciada);
}
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
@SuppressWarnings({ "unchecked", "rawtypes" })
public Collection<FuncionalidadeIniciada> pesquisarFuncionaldadesIniciadasExecucaoFalha()
throws ErroRepositorioException {
Collection<FuncionalidadeIniciada> retorno = new ArrayList();
Session session = HibernateUtil.getSession();
String consulta;
Collection<Object> ids = null;
try {
consulta = "select distinct func1.id from FuncionalidadeIniciada as func1 "
+ "inner join func1.unidadesIniciadas as iniciada1 "
+ "inner join iniciada1.unidadeSituacao as situacao "
+ "where func1.funcionalidadeSituacao <> :funcionalidadeSituacaoConcluidaComErro and "
+ "iniciada1 is not null and "
+ "situacao = :situacaoConcluidaComErro";
ids = session.createQuery(consulta).setInteger(
"situacaoConcluidaComErro",
UnidadeSituacao.CONCLUIDA_COM_ERRO).setInteger(
"funcionalidadeSituacaoConcluidaComErro",
FuncionalidadeSituacao.CONCLUIDA_COM_ERRO).list();
Iterator iter = ids.iterator();
while (iter.hasNext()) {
Object objeto = (Object) iter.next();
Integer id = (Integer) objeto;
FuncionalidadeIniciada funcionalidadeIniciada = new FuncionalidadeIniciada();
funcionalidadeIniciada.setId(id);
retorno.add(funcionalidadeIniciada);
}
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
@SuppressWarnings("unchecked")
public Collection<Object[]> pesquisarFuncionaldadesIniciadasProntasExecucao()
throws ErroRepositorioException {
Collection<Object[]> retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select func, func.processoFuncionalidade.sequencialExecucao "
+ "from FuncionalidadeIniciada func "
+ "inner join fetch func.processoIniciado as procIniciado "
+ "inner join procIniciado.processoSituacao as procSituacao "
+ "left join procIniciado.processoIniciadoPrecedente as procPrecedente "
+ "left join procPrecedente.processoSituacao as procPrecedenteSituacao "
+ "left join func.unidadesIniciadas as unidIniciada "
+ "where unidIniciada is null and func.funcionalidadeSituacao <> :emProcessamento and (procSituacao.id = :emEspera or procSituacao.id = :emProcessamento) "
+ "and (procPrecedente is null or procPrecedenteSituacao.id = :situacaoProcessoConcluido) order by func.processoFuncionalidade.sequencialExecucao";
retorno = session.createQuery(consulta).setInteger("emEspera",
ProcessoSituacao.EM_ESPERA).setInteger("emProcessamento",
ProcessoSituacao.EM_PROCESSAMENTO).setInteger(
"situacaoProcessoConcluido", ProcessoSituacao.CONCLUIDO)
.setInteger("emProcessamento",
FuncionalidadeSituacao.EM_PROCESSAMENTO).list();
// AGENDADO -- NAO EH PARA EXECUTAR
// EM ESPERA -- PRONTO PARA EXECUCAO
// .setInteger("agendado",ProcessoSituacao.AGENDADO)
// query - or procSituacao.id = :agendado)
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
public Integer pesquisarQuantidadeFuncionaldadesIniciadasForaOrdemExecucao(
int idSequencialExecucao, int idProcessoIniciado)
throws ErroRepositorioException {
Integer retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select count(distinct func.id) from FuncionalidadeIniciada func "
+ "inner join func.processoFuncionalidade as procFunc "
+ "where func.processoIniciado = :idProcessoIniciado"
+ " and procFunc.sequencialExecucao < :sequencialExecucao and "
+ "func.funcionalidadeSituacao <> :situacaoFuncionalidadeConcluida";
retorno = (Integer) session.createQuery(consulta).setInteger(
"sequencialExecucao", idSequencialExecucao).setInteger(
"situacaoFuncionalidadeConcluida",
FuncionalidadeSituacao.CONCLUIDA).setInteger(
"idProcessoIniciado", idProcessoIniciado).uniqueResult();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
public int pesquisarFuncionaldadesIniciadasConcluidasErro(
int idFuncionalidadeIniciada) throws ErroRepositorioException {
int retorno = 0;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "select count(unid.id) from UnidadeIniciada unid "
+ "where unid.funcionalidadeIniciada.id = :idFuncionalidadeIniciada and "
+ "unid.unidadeSituacao.id = :unidadeSituacaoConcluidaComErro";
retorno = (Integer) session.createQuery(consulta).setInteger(
"idFuncionalidadeIniciada", idFuncionalidadeIniciada)
.setInteger("unidadeSituacaoConcluidaComErro",
UnidadeSituacao.CONCLUIDA_COM_ERRO).uniqueResult();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
@SuppressWarnings("rawtypes")
public void inserirColecaoObjetoParaBatch(Collection<? extends Object> colecaoObjetos)
throws ErroRepositorioException {
// obt�m uma inst�ncia com o hibernate
Session session = HibernateUtil.getSession();
Iterator iteratorObjetos = colecaoObjetos.iterator();
Object objetoParaInserir = null;
try {
while (iteratorObjetos.hasNext()) {
objetoParaInserir = iteratorObjetos.next();
session.save(objetoParaInserir);
session.flush();
session.clear();
}
}
catch (HibernateException e) {
if (objetoParaInserir != null && (objetoParaInserir instanceof ConsumoHistorico)) {
System.out.println("CONSISTIR ID MATRICULA ERRO = " + ((ConsumoHistorico) objetoParaInserir).getImovel().getId());
}
// levanta a exce��o para a pr�xima camada
e.printStackTrace();
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
session.flush();
session.clear();
// fecha a sess�o com o hibernate
HibernateUtil.closeSession(session);
}
}
@SuppressWarnings("rawtypes")
public void inserirColecaoObjetoParaBatchTransacao(Collection<Object> colecaoObjetos)
throws ErroRepositorioException {
// obt�m uma inst�ncia com o hibernate
Session session = HibernateUtil.getSession();
Iterator iteratorObjetos = colecaoObjetos.iterator();
try {
while (iteratorObjetos.hasNext()) {
Object objetoParaInserir = iteratorObjetos.next();
session.save(objetoParaInserir);
session.flush();
session.clear();
}
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
e.printStackTrace();
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o com o hibernate
HibernateUtil.closeSession(session);
}
}
@SuppressWarnings("rawtypes")
public void inserirColecaoObjetoParaBatchGerencial(Collection<? extends Object> colecaoObjetos)
throws ErroRepositorioException {
// obt�m uma inst�ncia com o hibernate
Session session = HibernateUtil.getSessionGerencial();
Iterator iteratorObjetos = colecaoObjetos.iterator();
try {
while (iteratorObjetos.hasNext()) {
Object objetoParaInserir = iteratorObjetos.next();
session.save(objetoParaInserir);
}
session.flush();
session.clear();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o com o hibernate
HibernateUtil.closeSession(session);
}
}
@SuppressWarnings("rawtypes")
public void atualizarColecaoObjetoParaBatch(
Collection<? extends Object> colecaoObjetos) throws ErroRepositorioException {
// obt�m uma inst�ncia com o hibernate
Session session = HibernateUtil.getSession();
Iterator iteratorObjetos = colecaoObjetos.iterator();
try {
while (iteratorObjetos.hasNext()) {
Object objetoParaAtualizar = iteratorObjetos.next();
session.update(objetoParaAtualizar);
session.flush();
session.clear();
}
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o com o hibernate
HibernateUtil.closeSession(session);
}
}
public void iniciarFuncionalidadeIniciadaRelatorio(
int idFuncionalidadeIniciada) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "update FuncionalidadeIniciada "
+ "set funcionalidadeSituacao.id = :emProcessamento, dataHoraInicio = :dataHoraInicio "
+ "where id = :idFuncionalidadeIniciada";
session.createQuery(consulta).
setInteger("idFuncionalidadeIniciada", idFuncionalidadeIniciada).
setInteger("emProcessamento",FuncionalidadeSituacao.EM_PROCESSAMENTO).
setTimestamp("dataHoraInicio",new Date()).
executeUpdate();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
}
public void iniciarProcessoIniciadoRelatorio(int idFuncionalidadeIniciada)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "update ProcessoIniciado "
+ "set processoSituacao.id = :emProcessamento, dataHoraInicio = :dataHoraInicio "
+ "where id IN (select func.processoIniciado.id from FuncionalidadeIniciada func "
+ "where func.id = :idFuncionalidadeIniciada) ";
session.createQuery(consulta).
setInteger("idFuncionalidadeIniciada", idFuncionalidadeIniciada).
setInteger("emProcessamento",FuncionalidadeSituacao.EM_PROCESSAMENTO).
setTimestamp("dataHoraInicio",new Date()).
executeUpdate();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
}
public void encerrarFuncionalidadeIniciadaRelatorio(int idFuncionalidadeIniciada,
int situacaoConclusaoFuncionalidade) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "update FuncionalidadeIniciada "
+ "set funcionalidadeSituacao.id = :situacao, dataHoraTermino = :dataHoraInicio "
+ "where id = :idFuncionalidadeIniciada";
session.createQuery(consulta).
setInteger("idFuncionalidadeIniciada", idFuncionalidadeIniciada).
setInteger("situacao", situacaoConclusaoFuncionalidade).
setTimestamp("dataHoraInicio",new Date()).
executeUpdate();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
}
public void encerrarProcessoIniciadoRelatorio(int idFuncionalidadeIniciada,
int situacaoConclusaoFuncionalidade)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "update ProcessoIniciado "
+ "set processoSituacao.id = :situacao, dataHoraTermino = :dataHoraInicio "
+ "where id IN (select func.processoIniciado.id from FuncionalidadeIniciada func "
+ "where func.id = :idFuncionalidadeIniciada) ";
session.createQuery(consulta).
setInteger("idFuncionalidadeIniciada", idFuncionalidadeIniciada).
setInteger("situacao", situacaoConclusaoFuncionalidade).
setTimestamp("dataHoraInicio",new Date()).
executeUpdate();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
}
@SuppressWarnings({ "unchecked", "rawtypes" })
public Collection<byte[]> iniciarRelatoriosAgendados()
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String consulta;
Collection<byte[]> retorno = new ArrayList();
try {
consulta = "select func.tarefaBatch from FuncionalidadeIniciada func "
+ "where func.funcionalidadeSituacao = :agendada and 2 > (select count(f.id) from FuncionalidadeIniciada f "
+ "where f.funcionalidadeSituacao = :emProcessamento and f.processoIniciado.processo.processoTipo =:tipoRelatorio) ";
retorno = session.createQuery(consulta).
setInteger("emProcessamento",FuncionalidadeSituacao.EM_PROCESSAMENTO).
setInteger("agendada",FuncionalidadeSituacao.AGENDADA).
setInteger("tipoRelatorio", ProcessoTipo.RELATORIO).
setMaxResults(2).
list();
return retorno;
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
}
@SuppressWarnings("unchecked")
public Collection<Object[]> pesquisarRelatoriosBatchSistema()
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String consulta;
Collection<Object[]> retorno = null;
try {
consulta = "select COALESCE(q1.col_1_0_,q2.col_1_0_) as nomeRelatorio , "
+ "COALESCE(q1.col_0_0_,0) as quantidadeDisponivel, "
+ "COALESCE(q2.col_0_0_,0) as quantidadeEmProcessamento, "
+ "COALESCE(q1.processoId,q2.processoId) as processo "
+ "from (select count(funcionali0_.fuin_id) as col_0_0_, "
+ "processo4_.proc_dsprocesso as col_1_0_ , processoin3_.proc_id as processoId "
+ "from batch.funcionalidade_iniciada funcionali0_, "
+ "batch.processo_funcionalidade processofu1_, seguranca.funcionalidade funcionali2_, "
+ "batch.processo_iniciado processoin3_, batch.processo processo4_ where "
+ "processoin3_.proc_id=processo4_.proc_id "
+ "and funcionali0_.proi_id=processoin3_.proi_id "
+ "and processofu1_.fncd_id=funcionali2_.fncd_id "
+ "and funcionali0_.prfn_id=processofu1_.prfn_id "
+ "and processo4_.prtp_id=:relatorio and (funcionali0_.fnst_id = :situacaoConcluida) "
+ "group by processo4_.proc_dsprocesso, processoin3_.proc_id ) q1 full join "
+ "(select count(funcionali0_.fuin_id) as col_0_0_, "
+ "processo4_.proc_dsprocesso as col_1_0_, processoin3_.proc_id as processoId "
+ "from batch.funcionalidade_iniciada funcionali0_, "
+ "batch.processo_funcionalidade processofu1_, "
+ "seguranca.funcionalidade funcionali2_, batch.processo_iniciado processoin3_, "
+ "batch.processo processo4_ where processoin3_.proc_id=processo4_.proc_id "
+ "and funcionali0_.proi_id=processoin3_.proi_id "
+ "and processofu1_.fncd_id=funcionali2_.fncd_id "
+ "and funcionali0_.prfn_id=processofu1_.prfn_id "
+ "and processo4_.prtp_id=:relatorio and "
+ "(funcionali0_.fnst_id = :situacaoEmProcessamento) "
+ "group by processo4_.proc_dsprocesso, processoin3_.proc_id ) q2 on q1.processoid = q2.processoid";
retorno = (Collection<Object[]>)
session.createSQLQuery(consulta).
addScalar("nomeRelatorio", Hibernate.STRING).
addScalar("quantidadeDisponivel", Hibernate.INTEGER).
addScalar("quantidadeEmProcessamento", Hibernate.INTEGER).
addScalar("processo", Hibernate.INTEGER).
setInteger("relatorio", ProcessoTipo.RELATORIO).
setInteger("situacaoConcluida",FuncionalidadeSituacao.CONCLUIDA).
setInteger("situacaoEmProcessamento",FuncionalidadeSituacao.EM_PROCESSAMENTO).
list();
return retorno;
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
}
@SuppressWarnings("rawtypes")
public void removerColecaoObjetoParaBatch(Collection<Object> colecaoObjetos)
throws ErroRepositorioException {
if(colecaoObjetos != null && !colecaoObjetos.isEmpty()){
// obt�m uma inst�ncia com o hibernate
StatelessSession session = HibernateUtil.getStatelessSession();
Iterator iteratorObjetos = colecaoObjetos.iterator();
try {
while (iteratorObjetos.hasNext()) {
Object objetoParaRemover = iteratorObjetos.next();
session.delete(objetoParaRemover);
}
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o com o hibernate
HibernateUtil.closeSession(session);
}
}
}
public void removerObjetoParaBatch(Object objeto)
throws ErroRepositorioException {
// obt�m uma inst�ncia com o hibernate
StatelessSession session = HibernateUtil.getStatelessSession();
try {
session.delete(objeto);
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o com o hibernate
HibernateUtil.closeSession(session);
}
}
@SuppressWarnings({ "unchecked", "rawtypes" })
public Collection<Object[]> pesquisarRelatoriosBatchPorUsuarioSistema(
int idProcesso) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String consulta;
Collection<Object[]> retorno = new ArrayList();
try {
consulta = "select usuario.nomeUsuario, "
+ "unidadeOrganizacional.descricao, "
+ "funcIni.funcionalidadeSituacao.id, "
+ "funcIni.dataHoraTermino, "
+ "funcIni.id, "
+ "funcIni.funcionalidadeSituacao.descricaoOperacaoSituacao, "
+ "procIni.dataHoraInicio "
+ "from ProcessoIniciado procIni "
+ "inner join procIni.processo proc with proc.id = :idProcesso "
+ "inner join procIni.funcionalidadesIniciadas funcIni "
+ "inner join funcIni.processoIniciado procIni "
+ "inner join procIni.usuario usuario "
+ "inner join usuario.unidadeOrganizacional unidadeOrganizacional "
+ "order by usuario.nomeUsuario,procIni.dataHoraInicio ";
retorno = (Collection<Object[]>) session.createQuery(consulta)
.setInteger("idProcesso", idProcesso).list();
return retorno;
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
}
@SuppressWarnings("unchecked")
public void deletarRelatoriosBatchDataExpiracao(Date dataDeExpiracao)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String consulta;
PreparedStatement st = null;
try {
Connection jdbcCon = session.connection();
String delete = "delete from batch.relatorio_gerado where rege_id in "
+ "(select distinct(rege_id) from batch.processo_iniciado proi "
+ "inner join batch.funcionalidade_iniciada fuin on fuin.proi_id = proi.proi_id "
+ "inner join batch.relatorio_gerado rege on rege.fuin_id = fuin.fuin_id "
+ "where fuin.fuin_tmtermino <= ?)";
st = jdbcCon.prepareStatement(delete);
st.setTimestamp(1, Util.getSQLTimesTemp(dataDeExpiracao));
st.executeUpdate();
// deletar todos os processos que nao tem mais relatorios associados
consulta = "select procIni from ProcessoIniciado procIni " +
" inner join procIni.funcionalidadesIniciadas funcIni " +
" where procIni.processo.processoTipo = :tipoRelatorio and" +
" funcIni.dataHoraTermino <= :dataExpiracao ";
Iterator<ProcessoIniciado> iteratorProcessos = (Iterator<ProcessoIniciado>)
session.createQuery(consulta)
.setInteger("tipoRelatorio",ProcessoTipo.RELATORIO)
.setTimestamp("dataExpiracao", dataDeExpiracao).iterate();
while (iteratorProcessos.hasNext()) {
iteratorProcessos.next();
iteratorProcessos.remove();
}
session.flush();
} catch (SQLException e) {
// e.printStackTrace();
throw new ErroRepositorioException(e, "Erro no Hibernate");
}catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
if (null != st)
try {
st.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
HibernateUtil.closeSession(session);
}
}
public void removerUnidadesIniciadas(Integer idFuncionalidadeIniciada)
throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "DELETE FROM UnidadeIniciada unidIni "
+ " WHERE unidIni.funcionalidadeIniciada.id = :idFuncionalidadeIniciada ";
session.createQuery(consulta).setInteger(
"idFuncionalidadeIniciada", idFuncionalidadeIniciada)
.executeUpdate();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
}
@SuppressWarnings({ "unchecked", "rawtypes" })
public Collection<Rota> pesquisarRotasProcessamentoBatchCobrancaGrupoNaoInformado(
Integer idCobrancaAcaoAtividadeComando)
throws ErroRepositorioException {
Collection retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT comandoRota.rota "
+ "FROM CobrancaAtividadeComandoRota as comandoRota "
+ "inner join comandoRota.cobrancaAcaoAtividadeComando "
+ "where comandoRota.cobrancaAcaoAtividadeComando = :id";
retorno = session.createQuery(consulta).setInteger("id",
idCobrancaAcaoAtividadeComando).list();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
return retorno;
}
public Object inserirObjetoParaBatchGerencial(Object objeto)
throws ErroRepositorioException {
// obt�m uma inst�ncia com o hibernate
Session session = HibernateUtil.getSessionGerencial();
Object retorno = null;
try {
retorno = session.save(objeto);
session.flush();
return retorno;
} catch (HibernateException e) {
System.out.println(e);
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o com o hibernate
HibernateUtil.closeSession(session);
}
}
public void removerColecaoGuiaPagamentoCategoriaParaBatch(Collection<GuiaPagamentoCategoria> colecaoGuiaPagamentoCategoria) throws ErroRepositorioException {
String delete;
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
try {
if(colecaoGuiaPagamentoCategoria != null && !colecaoGuiaPagamentoCategoria.isEmpty()){
//declara o tipo de conexao
Connection jdbcCon = session.connection();
//update
delete = "delete from faturamento.guia_pagamento_categoria gpcg " +
"where gpcg.gpag_id = ? and " +
"gpcg.catg_id = ? ";
Iterator<GuiaPagamentoCategoria> iteratorObjetos = colecaoGuiaPagamentoCategoria.iterator();
GuiaPagamentoCategoria guiaPagamentoCategoria = null;
//abre a conexao
st = jdbcCon.prepareStatement(delete);
while (iteratorObjetos.hasNext()) {
guiaPagamentoCategoria = iteratorObjetos.next();
//seta os parametros
st.setInt(1, guiaPagamentoCategoria.getGuiaPagamento().getId());
st.setInt(2, guiaPagamentoCategoria.getCategoria().getId());
//executa o update
st.executeUpdate();
}
}
} catch (SQLException e) {
// e.printStackTrace();
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
if (null != st)
try {
st.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
HibernateUtil.closeSession(session);
}
}
public void removerColecaoClienteGuiaPagamentoParaBatch(Collection<ClienteGuiaPagamento> colecaoClienteGuiaPagamento) throws ErroRepositorioException {
String delete;
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
try {
if(colecaoClienteGuiaPagamento != null && !colecaoClienteGuiaPagamento.isEmpty()){
//declara o tipo de conexao
Connection jdbcCon = session.connection();
//update
delete = "delete from cadastro.cliente_guia_pagamento clgp " +
"where clgp.clgp_id = ? " ;
Iterator<ClienteGuiaPagamento> iteratorObjetos = colecaoClienteGuiaPagamento.iterator();
ClienteGuiaPagamento clienteGuiaPagamento = null;
//abre a conexao
st = jdbcCon.prepareStatement(delete);
while (iteratorObjetos.hasNext()) {
clienteGuiaPagamento = iteratorObjetos.next();
//seta os parametros
st.setInt(1, clienteGuiaPagamento.getId());
//executa o update
st.executeUpdate();
}
}
} catch (SQLException e) {
// e.printStackTrace();
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
if (null != st)
try {
st.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
HibernateUtil.closeSession(session);
}
}
public void removerColecaoGuiaPagamentoParaBatch(Collection<GuiaPagamento> colecaoGuiaPagamento) throws ErroRepositorioException {
String delete;
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
try {
if(colecaoGuiaPagamento != null && !colecaoGuiaPagamento.isEmpty()){
//declara o tipo de conexao
Connection jdbcCon = session.connection();
//jdbcCon.setAutoCommit(true);
//update
delete = "delete from faturamento.guia_pagamento gpag " +
"where gpag.gpag_id = ? " ;
Iterator<GuiaPagamento> iteratorObjetos = colecaoGuiaPagamento.iterator();
GuiaPagamento guiaPagamento = null;
//abre a conexao
st = jdbcCon.prepareStatement(delete);
while (iteratorObjetos.hasNext()) {
guiaPagamento = iteratorObjetos.next();
//seta os parametros
st.setInt(1, guiaPagamento.getId().intValue());
//executa o update
st.executeUpdate();
}
}
} catch (SQLException e) {
// e.printStackTrace();
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
if (null != st)
try {
st.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
HibernateUtil.closeSession(session);
}
}
public void removerColecaoDebitoACobrarParaBatch(Collection<DebitoACobrar> colecaoDebitoACobrar) throws ErroRepositorioException {
String delete;
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
try {
if(colecaoDebitoACobrar != null && !colecaoDebitoACobrar.isEmpty()){
//declara o tipo de conexao
Connection jdbcCon = session.connection();
//update
delete = "delete from faturamento.debito_a_cobrar dbac " +
"where dbac.dbac_id = ? " ;
Iterator<DebitoACobrar> iteratorObjetos = colecaoDebitoACobrar.iterator();
DebitoACobrar debitoACobrar = null;
//abre a conexao
st = jdbcCon.prepareStatement(delete);
while (iteratorObjetos.hasNext()) {
debitoACobrar = iteratorObjetos.next();
//seta os parametros
st.setInt(1, debitoACobrar.getId());
//executa o update
st.executeUpdate();
}
}
} catch (SQLException e) {
// e.printStackTrace();
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
if (null != st)
try {
st.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
HibernateUtil.closeSession(session);
}
}
public void removerColecaoDebitoACobrarCategoriaParaBatch(Collection<DebitoACobrarCategoria> colecaoDebitoACobrarCategoria) throws ErroRepositorioException {
String delete;
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
try {
if(colecaoDebitoACobrarCategoria != null && !colecaoDebitoACobrarCategoria.isEmpty()){
//declara o tipo de conexao
Connection jdbcCon = session.connection();
//update
delete = "delete from faturamento.deb_a_cobrar_catg dbcg " +
"where dbcg.dbac_id = ? and " +
"dbcg.catg_id = ? " ;
Iterator<DebitoACobrarCategoria> iteratorObjetos = colecaoDebitoACobrarCategoria.iterator();
DebitoACobrarCategoria debitoACobrarCategoria = null;
//abre a conexao
st = jdbcCon.prepareStatement(delete);
while (iteratorObjetos.hasNext()) {
debitoACobrarCategoria = iteratorObjetos.next();
//seta os parametros
st.setInt(1, debitoACobrarCategoria.getDebitoACobrar().getId());
st.setInt(2, debitoACobrarCategoria.getCategoria().getId());
//executa o update
st.executeUpdate();
}
}
} catch (SQLException e) {
// e.printStackTrace();
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
if (null != st)
try {
st.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
HibernateUtil.closeSession(session);
}
}
public void removerColecaoPagamentoParaBatch(Collection<Pagamento> colecaoPagamento) throws ErroRepositorioException {
String delete;
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
try {
if(colecaoPagamento != null && !colecaoPagamento.isEmpty()){
//declara o tipo de conexao
Connection jdbcCon = session.connection();
//update
delete = "delete from arrecadacao.pagamento pgmt " +
"where pgmt.pgmt_id = ? " ;
Iterator<Pagamento> iteratorObjetos = colecaoPagamento.iterator();
Pagamento pagamento = null;
//abre a conexao
st = jdbcCon.prepareStatement(delete);
while (iteratorObjetos.hasNext()) {
pagamento = iteratorObjetos.next();
//seta os parametros
st.setInt(1, pagamento.getId());
//executa o update
st.executeUpdate();
}
}
} catch (SQLException e) {
// e.printStackTrace();
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
if (null != st)
try {
st.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
HibernateUtil.closeSession(session);
}
}
public void removerColecaoDevolucaoParaBatch(Collection<Devolucao> colecaoDevolucao) throws ErroRepositorioException {
String delete;
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
try {
if(colecaoDevolucao != null && !colecaoDevolucao.isEmpty()){
//declara o tipo de conexao
Connection jdbcCon = session.connection();
//update
delete = "delete from arrecadacao.devolucao devl " +
"where devl.devl_id = ? " ;
Iterator<Devolucao> iteratorObjetos = colecaoDevolucao.iterator();
Devolucao devolucao = null;
//abre a conexao
st = jdbcCon.prepareStatement(delete);
while (iteratorObjetos.hasNext()) {
devolucao = iteratorObjetos.next();
//seta os parametros
st.setInt(1, devolucao.getId());
//executa o update
st.executeUpdate();
}
}
} catch (SQLException e) {
// e.printStackTrace();
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
if (null != st)
try {
st.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
HibernateUtil.closeSession(session);
}
}
public void removerColecaoContaParaBatch(Collection<Conta> colecaoConta) throws ErroRepositorioException {
String delete;
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
try {
if(colecaoConta != null && !colecaoConta.isEmpty()){
//declara o tipo de conexao
Connection jdbcCon = session.connection();
//update
delete = "delete from faturamento.conta cnta " +
"where cnta.cnta_id = ? " ;
Iterator<Conta> iteratorObjetos = colecaoConta.iterator();
Conta conta = null;
//abre a conexao
st = jdbcCon.prepareStatement(delete);
while (iteratorObjetos.hasNext()) {
conta = iteratorObjetos.next();
//seta os parametros
st.setInt(1, conta.getId());
//executa o update
st.executeUpdate();
}
}
} catch (SQLException e) {
// e.printStackTrace();
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
if (null != st)
try {
st.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
HibernateUtil.closeSession(session);
}
}
public void removerColecaoContaCategoriaParaBatch(Collection<ContaCategoria> colecaoContaCategoria) throws ErroRepositorioException {
String delete;
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
try {
if(colecaoContaCategoria != null && !colecaoContaCategoria.isEmpty()){
//declara o tipo de conexao
Connection jdbcCon = session.connection();
//update
delete = "delete from faturamento.conta_categoria ctcg " +
"where ctcg.cnta_id = ? and ctcg.catg_id = ? " ;
Iterator<ContaCategoria> iteratorObjetos = colecaoContaCategoria.iterator();
ContaCategoria contaCategoria = null;
//abre a conexao
st = jdbcCon.prepareStatement(delete);
while (iteratorObjetos.hasNext()) {
contaCategoria = iteratorObjetos.next();
//seta os parametros
st.setInt(1, contaCategoria.getComp_id().getConta().getId());
st.setInt(2, contaCategoria.getComp_id().getCategoria().getId());
//executa o update
st.executeUpdate();
}
}
} catch (SQLException e) {
// e.printStackTrace();
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
if (null != st)
try {
st.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
HibernateUtil.closeSession(session);
}
}
public void removerColecaoContaCategoriaConsumoFaixaParaBatch(Collection<ContaCategoriaConsumoFaixa> colecaoContaCategoriaConsumoFaixa) throws ErroRepositorioException {
String delete;
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
try {
if(colecaoContaCategoriaConsumoFaixa != null && !colecaoContaCategoriaConsumoFaixa.isEmpty()){
//declara o tipo de conexao
Connection jdbcCon = session.connection();
//delete
delete = "delete from faturamento.conta_catg_cons_fx cccf " +
"where cccf.cccf_id = ? " ;
Iterator<ContaCategoriaConsumoFaixa> iteratorObjetos = colecaoContaCategoriaConsumoFaixa.iterator();
ContaCategoriaConsumoFaixa contaCategoriaConsumoFaixa = null;
//abre a conexao
st = jdbcCon.prepareStatement(delete);
while (iteratorObjetos.hasNext()) {
contaCategoriaConsumoFaixa = iteratorObjetos.next();
//seta os parametros
st.setInt(1, contaCategoriaConsumoFaixa.getId());
//executa o delete
st.executeUpdate();
}
}
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
if (null != st)
try {
st.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
HibernateUtil.closeSession(session);
}
}
public void removerColecaoCreditoRealizadoParaBatch(Collection<CreditoRealizado> colecaoCreditoRealizado) throws ErroRepositorioException {
String delete;
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
try {
if(colecaoCreditoRealizado != null && !colecaoCreditoRealizado.isEmpty()){
//declara o tipo de conexao
Connection jdbcCon = session.connection();
//delete
delete = "delete from faturamento.credito_realizado crrz " +
"where crrz.crrz_id = ? " ;
Iterator<CreditoRealizado> iteratorObjetos = colecaoCreditoRealizado.iterator();
CreditoRealizado creditoRealizado = null;
//abre a conexao
st = jdbcCon.prepareStatement(delete);
while (iteratorObjetos.hasNext()) {
creditoRealizado = iteratorObjetos.next();
//seta os parametros
st.setInt(1, creditoRealizado.getId());
//executa o delete
st.executeUpdate();
}
}
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
if (null != st)
try {
st.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
HibernateUtil.closeSession(session);
}
}
public void removerColecaoDebitoCobradoParaBatch(Collection<DebitoCobrado> colecaoDebitoCobrado) throws ErroRepositorioException {
String delete;
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
try {
if(colecaoDebitoCobrado != null && !colecaoDebitoCobrado.isEmpty()){
//declara o tipo de conexao
Connection jdbcCon = session.connection();
//delete
delete = "delete from faturamento.debito_cobrado dbcb " +
"where dbcb.dbcb_id = ? " ;
Iterator<DebitoCobrado> iteratorObjetos = colecaoDebitoCobrado.iterator();
DebitoCobrado debitoCobrado = null;
//abre a conexao
st = jdbcCon.prepareStatement(delete);
while (iteratorObjetos.hasNext()) {
debitoCobrado = iteratorObjetos.next();
//seta os parametros
st.setInt(1, debitoCobrado.getId());
//executa o delete
st.executeUpdate();
}
}
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
if (null != st)
try {
st.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
HibernateUtil.closeSession(session);
}
}
public void removerColecaoContaImpostosDeduzidosParaBatch(Collection<ContaImpostosDeduzidos> colecaoContaImpostosDeduzidos) throws ErroRepositorioException {
String delete;
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
try {
if(colecaoContaImpostosDeduzidos != null && !colecaoContaImpostosDeduzidos.isEmpty()){
//declara o tipo de conexao
Connection jdbcCon = session.connection();
//delete
delete = "delete from faturamento.conta_impostos_deduzidos cnid " +
"where cnid.cnid_id = ? " ;
Iterator<ContaImpostosDeduzidos> iteratorObjetos = colecaoContaImpostosDeduzidos.iterator();
ContaImpostosDeduzidos contaImpostosDeduzidos = null;
//abre a conexao
st = jdbcCon.prepareStatement(delete);
while (iteratorObjetos.hasNext()) {
contaImpostosDeduzidos = iteratorObjetos.next();
//seta os parametros
st.setInt(1, contaImpostosDeduzidos.getId());
//executa o delete
st.executeUpdate();
}
}
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
if (null != st)
try {
st.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
HibernateUtil.closeSession(session);
}
}
public void removerColecaoClienteContaParaBatch(Collection<ClienteConta> colecaoClienteConta) throws ErroRepositorioException {
String delete;
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
try {
if(colecaoClienteConta != null && !colecaoClienteConta.isEmpty()){
//declara o tipo de conexao
Connection jdbcCon = session.connection();
//delete
delete = "delete from cadastro.cliente_conta clct " +
"where clct.clct_id = ? " ;
Iterator<ClienteConta> iteratorObjetos = colecaoClienteConta.iterator();
ClienteConta clienteConta = null;
//abre a conexao
st = jdbcCon.prepareStatement(delete);
while (iteratorObjetos.hasNext()) {
clienteConta = iteratorObjetos.next();
//seta os parametros
st.setInt(1, clienteConta.getId());
//executa o delete
st.executeUpdate();
}
}
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
if (null != st)
try {
st.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
HibernateUtil.closeSession(session);
}
}
public void removerColecaoDebitoCobradoCategoriaParaBatch(Collection<DebitoCobradoCategoria> colecaoDebitoCobradoCategoria) throws ErroRepositorioException {
String delete;
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
try {
if(colecaoDebitoCobradoCategoria != null && !colecaoDebitoCobradoCategoria.isEmpty()){
//declara o tipo de conexao
Connection jdbcCon = session.connection();
//delete
delete = "delete from faturamento.debito_cobrado_categoria dccg " +
"where dccg.dbcb_id = ? and dccg.catg_id = ? " ;
Iterator<DebitoCobradoCategoria> iteratorObjetos = colecaoDebitoCobradoCategoria.iterator();
DebitoCobradoCategoria debitoCobradoCategoria = null;
//abre a conexao
st = jdbcCon.prepareStatement(delete);
while (iteratorObjetos.hasNext()) {
debitoCobradoCategoria = iteratorObjetos.next();
//seta os parametros
st.setInt(1, debitoCobradoCategoria.getDebitoCobrado().getId());
st.setInt(2, debitoCobradoCategoria.getCategoria().getId());
//executa o delete
st.executeUpdate();
}
}
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
if (null != st)
try {
st.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
HibernateUtil.closeSession(session);
}
}
public void removerColecaoCreditoRealizadoCategoriaParaBatch(Collection<CreditoRealizadoCategoria> colecaoCreditoRealizadoCategoria) throws ErroRepositorioException {
String delete;
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
try {
if(colecaoCreditoRealizadoCategoria != null && !colecaoCreditoRealizadoCategoria.isEmpty()){
//declara o tipo de conexao
Connection jdbcCon = session.connection();
//delete
delete = "delete from faturamento.cred_realizado_catg crcg " +
"where crcg.crrz_id = ? and crcg.catg_id = ? " ;
Iterator<CreditoRealizadoCategoria> iteratorObjetos = colecaoCreditoRealizadoCategoria.iterator();
CreditoRealizadoCategoria creditoRealizadoCategoria = null;
//abre a conexao
st = jdbcCon.prepareStatement(delete);
while (iteratorObjetos.hasNext()) {
creditoRealizadoCategoria = iteratorObjetos.next();
//seta os parametros
st.setInt(1, creditoRealizadoCategoria.getCreditoRealizado().getId());
st.setInt(2, creditoRealizadoCategoria.getCategoria().getId());
//executa o delete
st.executeUpdate();
}
}
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
if (null != st)
try {
st.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
HibernateUtil.closeSession(session);
}
}
public void pesquisarQueriesDemoradasSistema()
throws ErroRepositorioException {
Connection con = null;
Statement stmt = null;
Session session = HibernateUtil.getSession();
String consulta = null;
try {
con = session.connection();
stmt = con.createStatement();
//UPDATE NOS PROCESSOS
consulta = "update cadastro.db_query_start "+
"set dbqs_hrtempoexec = (select substr(query_start - sysdate,2,8) "+
"from pg_stat_activity psa "+
"where psa.procpid||'.'||psa.current_query = cadastro.db_query_start.dbqs_nnprocpid||'.'||cadastro.db_query_start.dbqs_txquery), "+
"dbqs_tmultimaalteracao = sysdate "+
"where cadastro.db_query_start.dbqs_nnprocpid||'.'||cadastro.db_query_start.dbqs_txquery "+
"in (select procpid||'.'||current_query "+
"from pg_stat_activity "+
"where current_query not like '<IDLE>%' and "+
"((usename not in ('gcom_batch') and "+
"substr(query_start - sysdate,2,5) >= '01:00') or "+
"(usename in ('gcom_batch') and "+
"substr(query_start - sysdate,2,5) >= '04:00')))";
stmt.executeUpdate(consulta);
//INSERT NOS PROCESSOS
//ONLINE
consulta = "insert into cadastro.db_query_start "+
"(dbqs_id, dbqs_nnprocpid, dbqs_nmdatabase, dbqs_nnip, dbqs_nmusuario, dbqs_dtstartquery, dbqs_hrtempoexec, dbqs_txquery) "+
"select "+
Util.obterNextValSequence("cadastro.sequence_db_query_start")
+", procpid, datname, client_addr, usename, substr(query_start,1,16), substr(query_start - sysdate,2,8), current_query "+
"from pg_stat_activity "+
"where current_query not like '<IDLE>%' and "+
"((usename not in ('gcom_batch') and "+
"substr(query_start - sysdate,2,5) >= '01:00') or "+
"(usename in ('gcom_batch') and "+
"substr(query_start - sysdate,2,5) >= '04:00')) and "+
"procpid||'.'||current_query not in (select cadastro.db_query_start.dbqs_nnprocpid||'.'||cadastro.db_query_start.dbqs_txquery from cadastro.db_query_start)";
stmt.executeUpdate(consulta);
} catch (HibernateException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
HibernateUtil.closeSession(session);
try {
stmt.close();
con.close();
} catch (SQLException e) {
System.out.println("Erro ao fechar conex�es");
}
}
}
public void removerColecaoCreditoARealizarParaBatch(Collection<CreditoARealizar> colecaoCreditoARealizar)
throws ErroRepositorioException {
String delete;
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
try {
if(colecaoCreditoARealizar != null && !colecaoCreditoARealizar.isEmpty()){
//declara o tipo de conexao
Connection jdbcCon = session.connection();
//delete
delete = "delete from faturamento.credito_a_realizar crar " +
"where crar.crar_id = ? " ;
Iterator<CreditoARealizar> iteratorObjetos = colecaoCreditoARealizar.iterator();
CreditoARealizar creditoARealizar = null;
//abre a conexao
st = jdbcCon.prepareStatement(delete);
while (iteratorObjetos.hasNext()) {
creditoARealizar = iteratorObjetos.next();
//seta os parametros
st.setInt(1, creditoARealizar.getId());
//executa o delete
st.executeUpdate();
}
}
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
if (null != st)
try {
st.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
HibernateUtil.closeSession(session);
}
}
public void removerColecaoCreditoARealizarCategoriaParaBatch(Collection<Integer> colecaoIdsCreditoARealizar) throws ErroRepositorioException {
String delete;
Session session = HibernateUtil.getSession();
PreparedStatement st = null;
try {
if(colecaoIdsCreditoARealizar != null && !colecaoIdsCreditoARealizar.isEmpty()){
//declara o tipo de conexao
Connection jdbcCon = session.connection();
//delete
delete = "delete from faturamento.cred_a_realiz_catg cacg " +
"where cacg.crar_id = ? " ;
Iterator<Integer> iteratorObjetos = colecaoIdsCreditoARealizar.iterator();
Integer idCreditoARealizar = null;
//abre a conexao
st = jdbcCon.prepareStatement(delete);
while (iteratorObjetos.hasNext()) {
idCreditoARealizar = iteratorObjetos.next();
//seta os parametros
st.setInt(1, idCreditoARealizar);
//executa o delete
st.executeUpdate();
}
}
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
if (null != st)
try {
st.close();
} catch (SQLException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
}
HibernateUtil.closeSession(session);
}
}
public void inserirLogExcecaoFuncionalidadeIniciada(UnidadeIniciada unidadeIniciada, Throwable excecao) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "update FuncionalidadeIniciada "
+ "set descricaoExcecao = :excecao "
+ "where descricaoExcecao is null and" +
" id IN (select unid.funcionalidadeIniciada.id from UnidadeIniciada unid where unid.id =:unidadeId)";
//Preparando o stacktrace da exce��o para atualiza��o na tabela
ByteArrayOutputStream baos = new ByteArrayOutputStream();
excecao.printStackTrace(new PrintStream(baos));
String erro = baos.toString();
int indiceCausedBy = erro.indexOf("Caused by:");
if (indiceCausedBy == -1) {
if(erro.length() > 4000) {
erro = erro.substring(0, 4000);
}
} else {
if (erro.length() > 4000){
String strAux = erro.substring(indiceCausedBy);
if(strAux.length() >= 2990)
erro = erro.substring(0, 1000) + "/n" + strAux.substring(0, 2990);
else
erro = erro.substring(0, 1000) + "/n" + strAux;
}
}
session.createQuery(consulta).setInteger(
"unidadeId", unidadeIniciada.getId())
.setString("excecao", erro)
.executeUpdate();
baos.close();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
}
public void atualizarSituacaoFuncionalidadeIniciadaConcluida(FuncionalidadeIniciada funcionalidadeIniciada) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
try {
FuncionalidadeSituacao funcionalidadeSituacao = new FuncionalidadeSituacao();
funcionalidadeSituacao.setId(FuncionalidadeSituacao.CONCLUIDA);
funcionalidadeIniciada.setFuncionalidadeSituacao(funcionalidadeSituacao);
session.update(funcionalidadeIniciada);
session.flush();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o
HibernateUtil.closeSession(session);
}
}
public boolean verificarProcessoEmExecucao(Integer idProcesso)
throws ErroRepositorioException {
boolean retorno = false;
Session session = HibernateUtil.getSession();
String consulta;
Integer retornoHQL = null;
try {
consulta = " select proi.id"
+ " from ProcessoIniciado proi"
+ " where proi.processo.id = :idProcesso"
+ " and proi.processoSituacao.id = :idSituacaoProcesso";
retornoHQL = (Integer)session.createQuery(consulta)
.setInteger("idProcesso", idProcesso)
.setInteger("idSituacaoProcesso",ProcessoSituacao.EM_PROCESSAMENTO)
.setMaxResults(1).uniqueResult();
if (retornoHQL != null) {retorno = true;}
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
public boolean validarAutorizacaoInserirRelatorioBatch(Usuario usuario, int idProcesso)
throws ErroRepositorioException {
boolean retorno = false;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = " select count(proi.id)"
+ " from ProcessoIniciado proi"
+ " where proi.processo.id = :idProcesso"
+ " and proi.usuario.login = :loginUsuario"
+ " and proi.processoSituacao.id = :idSituacaoProcesso";
Integer retornoHQL = (Integer)session.createQuery(consulta)
.setInteger("idProcesso", idProcesso)
.setString("loginUsuario",usuario.getLogin())
.setInteger("idSituacaoProcesso", ProcessoSituacao.AGUARDANDO_AUTORIZACAO)
.setMaxResults(1).uniqueResult();
if (retornoHQL < 2) {retorno = true;}
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
public void autorizarProcessoIniciado(ProcessoIniciado processoIniciado, Integer processoSituacao) throws ErroRepositorioException
{
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "update ProcessoIniciado proi set processoSituacao.id = :situacao "
+ "where proi.id = :id " ;
session.createQuery(consulta)
.setInteger("situacao", processoSituacao)
.setInteger("id",processoIniciado.getId()).executeUpdate();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
}
public void autorizarFuncionalidadeIniciada(ProcessoIniciado processoIniciado,Integer funcionalidadeSituacao) throws ErroRepositorioException
{
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = " update FuncionalidadeIniciada funi set funi.funcionalidadeSituacao.id = :situacao "
+ "where funi.processoIniciado.id = :id ";
session.createQuery(consulta)
.setInteger("situacao", funcionalidadeSituacao)
.setInteger("id",processoIniciado.getId()).executeUpdate();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
}
public void atualizarObjetoParaBatch(
Object objetoParaAtualizar) throws ErroRepositorioException {
// obt�m uma inst�ncia com o hibernate
Session session = HibernateUtil.getSession();
try {
session.update(objetoParaAtualizar);
session.flush();
session.clear();
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o com o hibernate
HibernateUtil.closeSession(session);
}
}
public Object inserirObjetoParaBatch(Object objeto)
throws ErroRepositorioException {
// obt�m uma inst�ncia com o hibernate
Session session = HibernateUtil.getSession();
Object retorno = null;
try {
retorno = session.save(objeto);
session.flush();
return retorno;
} catch (HibernateException e) {
// levanta a exce��o para a pr�xima camada
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
// fecha a sess�o com o hibernate
HibernateUtil.closeSession(session);
}
}
@SuppressWarnings("rawtypes")
public Collection retornaProcessoFuncionalidadeEmExecucao() throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
String consulta;
Collection retornoHQL = null;
try {
consulta = " select pro.descricaoProcesso, func.descricao"
+ " from ProcessoFuncionalidade proFun"
+ " inner join proFun.funcionalidade func"
+ " inner join proFun.funcionalidadesIniciadas proIni"
+ " inner join proFun.processo pro"
+ " where proIni.funcionalidadeSituacao = :idSituacaoProcesso";
retornoHQL = session.createQuery(consulta)
.setInteger("idSituacaoProcesso",ProcessoSituacao.EM_PROCESSAMENTO)
.list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retornoHQL;
}
public FaturamentoAtividadeCronograma pesquisarProcessoIniciadoParaGrupo(Integer idGrupo, Integer referencia, Integer idAtividadeFaturamento) throws ErroRepositorioException {
Session session = HibernateUtil.getSession();
StringBuilder consulta = new StringBuilder();
FaturamentoAtividadeCronograma retorno = null;
try {
consulta.append(" select faturamentoAtividadeCronograma from FaturamentoAtividadeCronograma faturamentoAtividadeCronograma ");
consulta.append(" inner join faturamentoAtividadeCronograma.faturamentoGrupoCronogramaMensal faturamentoGrupoCronogramaMensal ");
consulta.append(" inner join faturamentoAtividadeCronograma.faturamentoAtividade faturamentoAtividade ");
consulta.append(" where faturamentoGrupoCronogramaMensal.faturamentoGrupo.id = :idGrupo ");
consulta.append(" and faturamentoGrupoCronogramaMensal.anoMesReferencia = :referencia ");
consulta.append(" and faturamentoAtividade.id = :idAtividadeFaturamento ");
retorno = (FaturamentoAtividadeCronograma)session.createQuery(consulta.toString())
.setInteger("idGrupo",idGrupo)
.setInteger("referencia",referencia)
.setInteger("idAtividadeFaturamento",idAtividadeFaturamento)
.uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
public Usuario obterUsuarioQueDisparouProcesso(Integer idFuncionalidadeIniciada) throws ErroRepositorioException{
Session session = HibernateUtil.getSession();
StringBuilder sql = new StringBuilder();
try {
sql.append("select proi.usuario ")
.append(" from ProcessoIniciado proi ")
.append(" inner join proi.funcionalidadesIniciadas fuin ")
.append(" where fuin.id = :idFuncionalidadeIniciada");
Usuario user = (Usuario) session.createQuery(sql.toString())
.setParameter("idFuncionalidadeIniciada", idFuncionalidadeIniciada)
.setMaxResults(1)
.uniqueResult();
return user;
} catch (Exception e) {
throw new ErroRepositorioException(e, "Erro ao consultar usuario que disparou processo");
}
finally{
HibernateUtil.closeSession(session);
}
}
}