Example usage for org.hibernate Query setParameterList

List of usage examples for org.hibernate Query setParameterList

Introduction

In this page you can find the example usage for org.hibernate Query setParameterList.

Prototype

Query<R> setParameterList(int position, Object[] values);

Source Link

Usage

From source file:fr.hoteia.qalingo.core.dao.impl.RetailerDaoImpl.java

License:Apache License

public List<Retailer> findRetailersByTags(final Long marketAreaId, final Long retailerId,
        final List<String> tags) {
    Session session = (Session) em.getDelegate();
    initRetailerFilter(session, marketAreaId, retailerId);
    String sql = "SELECT DISTINCT r from  Retailer r JOIN r.retailerTags t WHERE t.code in (:tags) ORDER BY r.name";
    Query query = session.createQuery(sql);
    query.setParameterList("tags", tags);
    List<Retailer> retailers = (List<Retailer>) query.list();
    return retailers;
}

From source file:fr.mael.microrss.dao.impl.UserArticleDaoImpl.java

License:Open Source License

@Override
public void read(Integer[] userArticleIds) {
    StringBuffer query = new StringBuffer("update UserArticle ua ");
    query.append("set read = :isRead ");
    query.append("where ua.id in (:articleIds) ");
    Query q = getSession().createQuery(query.toString());
    q.setBoolean("isRead", true);
    q.setParameterList("articleIds", userArticleIds);
    q.executeUpdate();//from   ww w.j  a  v  a  2  s .c o  m
}

From source file:gcom.atendimentopublico.RepositorioAtendimentoPublicoHBM.java

License:Open Source License

/**
 * [UC1056] Gerar Relatrio de Acompanhamento dos Registros de Atendimento
 * /*ww  w.j av a  2s.c o m*/
 * @author Hugo Leonardo, Diogo Peixoto
 * @date 28/09/2010, 26/04/2011
 * 
 * @param FiltrarAcompanhamentoRegistroAtendimentoHelper
 * @return Collection
 * @throws ErroRepositorioException
 */
public Collection pesquisarRelatorioAcompanhamentoRAAnalitico(
        FiltrarAcompanhamentoRegistroAtendimentoHelper helper) throws ErroRepositorioException {

    Collection retorno = null;
    String consulta = "";
    Query query = null;
    Session session = HibernateUtil.getSession();
    String groupByMunicipio = "";
    String orderBy = " rau.unidadeOrganizacional ";

    if (!Util.isVazioOrNulo(helper.getMunicipiosAssociados())) {
        groupByMunicipio = " GROUP BY munRA.nome, munRA.id,  rau.unidadeOrganizacional.id, step.descricao, ra.registroAtendimento, "
                + " ra.dataEncerramento, ra.dataEncerramento, ame.descricao, rau.unidadeOrganizacional.descricao, ame.id, ra.id ";
        orderBy = " munRA.nome ";
    }

    try {
        consulta += this.montarSelectRelatorioAcompanhamentoAnalitico(helper)
                + this.montarFromRelatorioAcompanhamentoAnalitico(helper)
                + " where ra.unidadeAtual = uni.id and ";

        if (Util.verificarNaoVazio(helper.getIdUnidadeAtendimento())) {
            consulta += " rau.unidadeOrganizacional = :unidade  and " + " rau.atendimentoRelacaoTipo = 1 and ";
        }

        if (!Util.isVazioOrNulo(helper.getMunicipiosAssociados())) {
            consulta += " (munRA.id IN (:municipios) or munImo.id IN (:municipios)) and ";
        }

        if (!Util.isVazioOrNulo(helper.getIdsMotivoEncerramentoSelecionados())) {

            consulta += " ame.id in (:motivo) and ";
        }

        if (helper.getPeriodoAtendimentoInicial() != null && helper.getPeriodoAtendimentoFinal() != null) {

            consulta += " (ra.registroAtendimento between :dtAtendimentoIncial and :dtAtendimentoFinal) and ";
        }

        if (helper.getPeriodoEncerramentoInicial() != null && helper.getPeriodoEncerramentoFinal() != null) {
            consulta += " (ra.dataEncerramento between :dtEncerramentoIncial and :dtEncerramentoFinal) and ";
        }

        if (Util.verificarNaoVazio(helper.getSituacaoRA())) {
            consulta += " ra.codigoSituacao = :situacao and ";
        }

        if (Util.verificarNaoVazio(helper.getSituacaoRA()) && helper.getSituacaoRA().equals("0")
                && Util.verificarNaoVazio(helper.getSituacaoRAAbertos())
                && helper.getSituacaoRAAbertos().equals("1")) {

            consulta += " (ra.dataPrevistaAtual >= :dtCorrente "
                    + " or ra.dataPrevistaOriginal >= :dtCorrente) and ";

        } else if (Util.verificarNaoVazio(helper.getSituacaoRA()) && helper.getSituacaoRA().equals("0")
                && Util.verificarNaoVazio(helper.getSituacaoRAAbertos())
                && helper.getSituacaoRAAbertos().equals("0")) {

            consulta += " (ra.dataPrevistaAtual < :dtCorrente "
                    + " or ra.dataPrevistaOriginal < :dtCorrente) and ";
        }

        // remove o ltimo AND
        consulta = Util.removerUltimosCaracteres(consulta, 4);
        consulta += groupByMunicipio;
        consulta += " ORDER BY " + orderBy;

        query = (Query) session.createQuery(consulta);

        if (Util.verificarNaoVazio(helper.getIdUnidadeAtendimento())) {

            query.setString("unidade", helper.getIdUnidadeAtendimento().toString());
        }

        if (!Util.isVazioOrNulo(helper.getMunicipiosAssociados())) {
            query.setParameterList("municipios", helper.getMunicipiosAssociados());
        }

        if (!Util.isVazioOrNulo(helper.getIdsMotivoEncerramentoSelecionados())) {

            query.setParameterList("motivo", helper.getIdsMotivoEncerramentoSelecionados());
        }

        if (helper.getPeriodoAtendimentoInicial() != null && helper.getPeriodoAtendimentoFinal() != null) {

            query.setDate("dtAtendimentoIncial",
                    Util.formatarDataInicial(helper.getPeriodoAtendimentoInicial()));
            query.setDate("dtAtendimentoFinal", Util.formatarDataFinal(helper.getPeriodoAtendimentoFinal()));
        }

        if (helper.getPeriodoEncerramentoInicial() != null && helper.getPeriodoEncerramentoFinal() != null) {

            query.setDate("dtEncerramentoIncial",
                    Util.formatarDataInicial(helper.getPeriodoEncerramentoInicial()));
            query.setDate("dtEncerramentoFinal", Util.formatarDataFinal(helper.getPeriodoEncerramentoFinal()));
        }

        if (Util.verificarNaoVazio(helper.getSituacaoRA()) && helper.getSituacaoRA().equals("0")
                && Util.verificarNaoVazio(helper.getSituacaoRAAbertos())
                && (helper.getSituacaoRAAbertos().equals("0") || helper.getSituacaoRAAbertos().equals("1"))) {

            query.setDate("dtCorrente", new Date());
        }

        if (Util.verificarNaoVazio(helper.getSituacaoRA()) && helper.getSituacaoRA().equals("0")) {

            query.setShort("situacao", RegistroAtendimento.SITUACAO_PENDENTE);
        } else if (Util.verificarNaoVazio(helper.getSituacaoRA()) && helper.getSituacaoRA().equals("1")) {

            query.setShort("situacao", RegistroAtendimento.SITUACAO_ENCERRADO);
        }

        retorno = query.list();

    } catch (HibernateException e) {
        throw new ErroRepositorioException(e, "Erro no Hibernate");
    } finally {
        HibernateUtil.closeSession(session);
    }

    return retorno;
}

From source file:gcom.atendimentopublico.RepositorioAtendimentoPublicoHBM.java

License:Open Source License

/**
 * [UC1056] Gerar Relatrio de Acompanhamento dos Registros de Atendimento
 * //from   ww  w  . j a  va2 s  .  c o  m
 * @author Hugo Leonardo, Diogo Peixoto
 * @date 30/09/2010, 26/04/2011
 * 
 * @param FiltrarAcompanhamentoRegistroAtendimentoHelper
 * @return Integer
 * @throws ErroRepositorioException
 */
public Integer countPesquisarRelatorioAcompanhamentoRAAnalitico(
        FiltrarAcompanhamentoRegistroAtendimentoHelper helper) throws ErroRepositorioException {

    Integer retorno = 0;
    String consulta = "";
    Query query = null;
    Session session = HibernateUtil.getSession();

    try {
        consulta += " select count(distinct ra.id) " //0 
                + " from gcom.atendimentopublico.registroatendimento.RegistroAtendimento ra "
                + " inner join ra.solicitacaoTipoEspecificacao step "
                + " left join ra.atendimentoMotivoEncerramento ame ";

        consulta += " inner join ra.registroAtendimentoUnidades rau "
                + " inner join rau.unidadeOrganizacional uni " + " left join ra.localidade locRA "
                + " left join locRA.municipio munRA " + " left join ra.imovel imov "
                + " left join imov.localidade locImo " + " left join locImo.municipio munImo "

                + " where ra.unidadeAtual = uni.id and ";

        if (Util.verificarNaoVazio(helper.getIdUnidadeAtendimento())) {

            consulta += " rau.unidadeOrganizacional = :unidade  and " + " rau.atendimentoRelacaoTipo = 1 and ";
        }

        if (!Util.isVazioOrNulo(helper.getMunicipiosAssociados())) {
            consulta += " (munRA.id IN (:municipios) or munImo.id IN (:municipios)) and ";
        }

        if (!Util.isVazioOrNulo(helper.getIdsMotivoEncerramentoSelecionados())) {

            consulta += " ame.id in (:motivo) and ";
        }

        if (helper.getPeriodoAtendimentoInicial() != null && helper.getPeriodoAtendimentoFinal() != null) {

            consulta += " (ra.registroAtendimento between :dtAtendimentoIncial and :dtAtendimentoFinal) and ";
        }

        if (helper.getPeriodoEncerramentoInicial() != null && helper.getPeriodoEncerramentoFinal() != null) {

            consulta += " (ra.dataEncerramento between :dtEncerramentoIncial and :dtEncerramentoFinal) and ";
        }

        if (Util.verificarNaoVazio(helper.getSituacaoRA())) {

            consulta += " ra.codigoSituacao = :situacao and ";
        }

        if (Util.verificarNaoVazio(helper.getSituacaoRA()) && helper.getSituacaoRA().equals("0")
                && Util.verificarNaoVazio(helper.getSituacaoRAAbertos())
                && helper.getSituacaoRAAbertos().equals("1")) {

            consulta += " (ra.dataPrevistaAtual >= :dtCorrente "
                    + " or ra.dataPrevistaOriginal >= :dtCorrente) and ";
        } else if (Util.verificarNaoVazio(helper.getSituacaoRA()) && helper.getSituacaoRA().equals("0")
                && Util.verificarNaoVazio(helper.getSituacaoRAAbertos())
                && helper.getSituacaoRAAbertos().equals("0")) {

            consulta += " (ra.dataPrevistaAtual < :dtCorrente "
                    + " or ra.dataPrevistaOriginal < :dtCorrente) and ";
        }

        // remove o ltimo AND
        consulta = Util.removerUltimosCaracteres(consulta, 4);

        query = (Query) session.createQuery(consulta);

        if (Util.verificarNaoVazio(helper.getIdUnidadeAtendimento())) {

            query.setString("unidade", helper.getIdUnidadeAtendimento().toString());
        }

        if (!Util.isVazioOrNulo(helper.getMunicipiosAssociados())) {
            query.setParameterList("municipios", helper.getMunicipiosAssociados());
        }

        if (!Util.isVazioOrNulo(helper.getIdsMotivoEncerramentoSelecionados())) {

            query.setParameterList("motivo", helper.getIdsMotivoEncerramentoSelecionados());
        }

        if (helper.getPeriodoAtendimentoInicial() != null && helper.getPeriodoAtendimentoFinal() != null) {

            query.setDate("dtAtendimentoIncial",
                    Util.formatarDataInicial(helper.getPeriodoAtendimentoInicial()));
            query.setDate("dtAtendimentoFinal", Util.formatarDataFinal(helper.getPeriodoAtendimentoFinal()));
        }

        if (helper.getPeriodoEncerramentoInicial() != null && helper.getPeriodoEncerramentoFinal() != null) {

            query.setDate("dtEncerramentoIncial",
                    Util.formatarDataInicial(helper.getPeriodoEncerramentoInicial()));
            query.setDate("dtEncerramentoFinal", Util.formatarDataFinal(helper.getPeriodoEncerramentoFinal()));
        }

        if (Util.verificarNaoVazio(helper.getSituacaoRA()) && helper.getSituacaoRA().equals("0")
                && Util.verificarNaoVazio(helper.getSituacaoRAAbertos())
                && (helper.getSituacaoRAAbertos().equals("0") || helper.getSituacaoRAAbertos().equals("1"))) {

            query.setDate("dtCorrente", new Date());
        }

        if (Util.verificarNaoVazio(helper.getSituacaoRA()) && helper.getSituacaoRA().equals("0")) {

            query.setShort("situacao", RegistroAtendimento.SITUACAO_PENDENTE);

        } else if (Util.verificarNaoVazio(helper.getSituacaoRA()) && helper.getSituacaoRA().equals("1")) {

            query.setShort("situacao", RegistroAtendimento.SITUACAO_ENCERRADO);
        }

        retorno = (Integer) query.setMaxResults(1).uniqueResult();

    } catch (HibernateException e) {
        throw new ErroRepositorioException(e, "Erro no Hibernate");
    } finally {
        HibernateUtil.closeSession(session);
    }

    return retorno;
}

From source file:gcom.atendimentopublico.RepositorioAtendimentoPublicoHBM.java

License:Open Source License

/**
 * [UC1056] Gerar Relatrio de Acompanhamento dos Registros de Atendimento
 * /*from   w w w. ja va 2 s  .  co  m*/
 * @author Hugo Leonardo, Diogo Peixoto
 * @date 01/10/2010, 28/04/2011
 * 
 * @param FiltrarAcompanhamentoRegistroAtendimentoHelper
 * @return Collection
 * @throws ErroRepositorioException
 */
public Collection pesquisarRelatorioAcompanhamentoRASinteticoAberto(
        FiltrarAcompanhamentoRegistroAtendimentoHelper helper) throws ErroRepositorioException {

    Collection retorno = null;
    String consulta = "";
    Query query = null;
    Session session = HibernateUtil.getSession();
    String joinMunicipio = "";

    if (!Util.isVazioOrNulo(helper.getMunicipiosAssociados())
            && (helper.getIdUnidadeAtendimento() == null || helper.getIdUnidadeAtendimento().equals(""))) {
        consulta += " select rau.unidadeOrganizacional.descricao, " + " muni.nome, " + " count(distinct ra.id) "
                + " from gcom.atendimentopublico.registroatendimento.RegistroAtendimento ra "
                + " inner join ra.solicitacaoTipoEspecificacao step "
                + " left join ra.atendimentoMotivoEncerramento ame ";

        consulta += " inner join ra.localidade loc " + " inner join loc.municipio muni ";
    } else {

        consulta += " select rau.unidadeOrganizacional.descricao, ";
        if (!Util.isVazioOrNulo(helper.getMunicipiosAssociados())) {
            consulta += " muni.nome, ";
            joinMunicipio = " inner join ra.localidade loc " + " inner join loc.municipio muni ";
        }
        consulta += " count(distinct ra.id) "
                + " from gcom.atendimentopublico.registroatendimento.RegistroAtendimento ra "
                + " inner join ra.solicitacaoTipoEspecificacao step "
                + " left join ra.atendimentoMotivoEncerramento ame ";
    }
    consulta += joinMunicipio + " inner join ra.registroAtendimentoUnidades rau "
            + " inner join rau.unidadeOrganizacional uni " + " where ra.unidadeAtual = uni.id and ";

    try {
        if (Util.verificarNaoVazio(helper.getIdUnidadeAtendimento())) {

            consulta += " rau.unidadeOrganizacional = :unidade  and " + " rau.atendimentoRelacaoTipo = 1 and ";
        }

        if (!Util.isVazioOrNulo(helper.getIdsMotivoEncerramentoSelecionados())) {

            consulta += " ame.id in (:motivo) and ";
        }

        if (!Util.isVazioOrNulo(helper.getMunicipiosAssociados())) {

            consulta += " muni.id in (:municipios) and ";
        }

        if (helper.getPeriodoAtendimentoInicial() != null && helper.getPeriodoAtendimentoFinal() != null) {

            consulta += " (ra.registroAtendimento between :dtAtendimentoIncial and :dtAtendimentoFinal) and ";
        }

        if (helper.getPeriodoEncerramentoInicial() != null && helper.getPeriodoEncerramentoFinal() != null) {

            consulta += " (ra.dataEncerramento between :dtEncerramentoIncial and :dtEncerramentoFinal) and ";
        }

        if (Util.verificarNaoVazio(helper.getSituacaoRA())) {

            consulta += " ra.codigoSituacao = :situacao and ";
        }

        if (Util.verificarNaoVazio(helper.getSituacaoRA()) && helper.getSituacaoRA().equals("0")
                && Util.verificarNaoVazio(helper.getSituacaoRAAbertos())
                && helper.getSituacaoRAAbertos().equals("1")) {

            consulta += " (ra.dataPrevistaAtual >= :dtCorrente "
                    + " or ra.dataPrevistaOriginal >= :dtCorrente) and ";
        } else if (Util.verificarNaoVazio(helper.getSituacaoRA()) && helper.getSituacaoRA().equals("0")
                && Util.verificarNaoVazio(helper.getSituacaoRAAbertos())
                && helper.getSituacaoRAAbertos().equals("0")) {

            consulta += " (ra.dataPrevistaAtual < :dtCorrente "
                    + " or ra.dataPrevistaOriginal < :dtCorrente) and ";
        }

        // remove o ltimo AND
        consulta = Util.removerUltimosCaracteres(consulta, 4);

        if (!Util.isVazioOrNulo(helper.getMunicipiosAssociados())
                && (helper.getIdUnidadeAtendimento() == null || helper.getIdUnidadeAtendimento().equals(""))) {

            consulta += " GROUP BY muni.nome, rau.unidadeOrganizacional.descricao "
                    + " ORDER BY muni.nome, rau.unidadeOrganizacional.descricao  ";
        } else {
            String groupBy = " GROUP BY ";
            String orderBy = " ORDER BY ";
            if (!Util.isVazioOrNulo(helper.getMunicipiosAssociados())) {
                groupBy += " muni.nome, ";
                orderBy += " muni.nome, ";
            }
            groupBy += " rau.unidadeOrganizacional.descricao ";
            orderBy += " rau.unidadeOrganizacional.descricao ";
            consulta += groupBy + orderBy;
        }

        query = (Query) session.createQuery(consulta);

        if (Util.verificarNaoVazio(helper.getIdUnidadeAtendimento())) {

            query.setString("unidade", helper.getIdUnidadeAtendimento().toString());
        }

        if (!Util.isVazioOrNulo(helper.getIdsMotivoEncerramentoSelecionados())) {

            query.setParameterList("motivo", helper.getIdsMotivoEncerramentoSelecionados());
        }

        if (!Util.isVazioOrNulo(helper.getMunicipiosAssociados())) {

            query.setParameterList("municipios", helper.getMunicipiosAssociados());
        }

        if (helper.getPeriodoAtendimentoInicial() != null && helper.getPeriodoAtendimentoFinal() != null) {

            query.setDate("dtAtendimentoIncial",
                    Util.formatarDataInicial(helper.getPeriodoAtendimentoInicial()));
            query.setDate("dtAtendimentoFinal", Util.formatarDataFinal(helper.getPeriodoAtendimentoFinal()));
        }

        if (helper.getPeriodoEncerramentoInicial() != null && helper.getPeriodoEncerramentoFinal() != null) {

            query.setDate("dtEncerramentoIncial",
                    Util.formatarDataInicial(helper.getPeriodoEncerramentoInicial()));
            query.setDate("dtEncerramentoFinal", Util.formatarDataFinal(helper.getPeriodoEncerramentoFinal()));
        }

        if (Util.verificarNaoVazio(helper.getSituacaoRA()) && helper.getSituacaoRA().equals("0")
                && Util.verificarNaoVazio(helper.getSituacaoRAAbertos())
                && (helper.getSituacaoRAAbertos().equals("0") || helper.getSituacaoRAAbertos().equals("1"))) {

            query.setDate("dtCorrente", new Date());
        }

        if (Util.verificarNaoVazio(helper.getSituacaoRA()) && helper.getSituacaoRA().equals("0")) {

            query.setShort("situacao", RegistroAtendimento.SITUACAO_PENDENTE);
        } else if (Util.verificarNaoVazio(helper.getSituacaoRA()) && helper.getSituacaoRA().equals("1")) {

            query.setShort("situacao", RegistroAtendimento.SITUACAO_ENCERRADO);
        }

        retorno = query.list();

    } catch (HibernateException e) {
        throw new ErroRepositorioException(e, "Erro no Hibernate");
    } finally {
        HibernateUtil.closeSession(session);
    }

    return retorno;
}

From source file:gcom.atendimentopublico.RepositorioAtendimentoPublicoHBM.java

License:Open Source License

/**
 * [UC1056] Gerar Relatrio de Acompanhamento dos Registros de Atendimento
 * //from  w ww  .  j a  v a  2s. com
 * @author Hugo Leonardo, Diogo Peixoto
 * @date 01/10/2010, 28/04/2011
 * 
 * @param FiltrarAcompanhamentoRegistroAtendimentoHelper
 * @return Collection
 * @throws ErroRepositorioException
 */
public Collection pesquisarRelatorioAcompanhamentoRASinteticoEncerrado(
        FiltrarAcompanhamentoRegistroAtendimentoHelper helper) throws ErroRepositorioException {

    Collection retorno = null;
    String consulta = "";
    Query query = null;
    Session session = HibernateUtil.getSession();

    String selectMunicipio = "";
    String joinMunicipio = "";
    if (!Util.isVazioOrNulo(helper.getMunicipiosAssociados())) {
        selectMunicipio = ", muni.nome";
        joinMunicipio = " inner join ra.localidade loc inner join loc.municipio muni ";
    }

    try {
        consulta += " select rau.unidadeOrganizacional.descricao, ame.descricao, " + " count(distinct ra.id) "
                + selectMunicipio + " from gcom.atendimentopublico.registroatendimento.RegistroAtendimento ra "
                + " inner join ra.solicitacaoTipoEspecificacao step "
                + " left join ra.atendimentoMotivoEncerramento ame ";

        consulta += " inner join ra.registroAtendimentoUnidades rau "
                + " inner join rau.unidadeOrganizacional uni " + joinMunicipio
                + " where ra.unidadeAtual = uni.id and ";

        if (Util.verificarNaoVazio(helper.getIdUnidadeAtendimento())) {

            consulta += " rau.unidadeOrganizacional = :unidade  and " + " rau.atendimentoRelacaoTipo = 1 and ";
        }

        if (!Util.isVazioOrNulo(helper.getIdsMotivoEncerramentoSelecionados())) {
            consulta += " ame.id in (:motivo) and ";
        }

        if (!Util.isVazioOrNulo(helper.getMunicipiosAssociados())) {
            consulta += " muni.id in (:municipios) and ";
        }

        if (helper.getPeriodoAtendimentoInicial() != null && helper.getPeriodoAtendimentoFinal() != null) {

            consulta += " (ra.registroAtendimento between :dtAtendimentoIncial and :dtAtendimentoFinal) and ";
        }

        if (helper.getPeriodoEncerramentoInicial() != null && helper.getPeriodoEncerramentoFinal() != null) {

            consulta += " (ra.dataEncerramento between :dtEncerramentoIncial and :dtEncerramentoFinal) and ";
        }

        if (Util.verificarNaoVazio(helper.getSituacaoRA())) {

            consulta += " ra.codigoSituacao = :situacao and ";
        }

        if (Util.verificarNaoVazio(helper.getSituacaoRA()) && helper.getSituacaoRA().equals("0")
                && Util.verificarNaoVazio(helper.getSituacaoRAAbertos())
                && helper.getSituacaoRAAbertos().equals("1")) {

            consulta += " (ra.dataPrevistaAtual >= :dtCorrente "
                    + " or ra.dataPrevistaOriginal >= :dtCorrente) and ";
        } else if (Util.verificarNaoVazio(helper.getSituacaoRA()) && helper.getSituacaoRA().equals("0")
                && Util.verificarNaoVazio(helper.getSituacaoRAAbertos())
                && helper.getSituacaoRAAbertos().equals("0")) {

            consulta += " (ra.dataPrevistaAtual < :dtCorrente "
                    + " or ra.dataPrevistaOriginal < :dtCorrente) and ";
        }

        // remove o ltimo AND
        consulta = Util.removerUltimosCaracteres(consulta, 4);

        if (!Util.isVazioOrNulo(helper.getMunicipiosAssociados())
                && (helper.getIdUnidadeAtendimento() == null || helper.getIdUnidadeAtendimento().equals(""))) {

            consulta += " GROUP BY muni.nome, rau.unidadeOrganizacional.descricao, ame.descricao "
                    + " ORDER BY muni.nome, rau.unidadeOrganizacional.descricao, ame.descricao ";
        } else {
            String groupBy = " GROUP BY ";
            String orderBy = " ORDER BY ";
            if (!Util.isVazioOrNulo(helper.getMunicipiosAssociados())) {
                groupBy += " muni.nome, ";
                orderBy += " muni.nome, ";
            }
            groupBy += " rau.unidadeOrganizacional.descricao, ame.descricao ";
            orderBy += " rau.unidadeOrganizacional.descricao, ame.descricao ";
            consulta += groupBy + orderBy;
        }

        query = (Query) session.createQuery(consulta);

        if (Util.verificarNaoVazio(helper.getIdUnidadeAtendimento())) {
            query.setString("unidade", helper.getIdUnidadeAtendimento().toString());
        }

        if (!Util.isVazioOrNulo(helper.getIdsMotivoEncerramentoSelecionados())) {
            query.setParameterList("motivo", helper.getIdsMotivoEncerramentoSelecionados());
        }

        if (!Util.isVazioOrNulo(helper.getMunicipiosAssociados())) {
            query.setParameterList("municipios", helper.getMunicipiosAssociados());
        }

        if (helper.getPeriodoAtendimentoInicial() != null && helper.getPeriodoAtendimentoFinal() != null) {

            query.setDate("dtAtendimentoIncial",
                    Util.formatarDataInicial(helper.getPeriodoAtendimentoInicial()));
            query.setDate("dtAtendimentoFinal", Util.formatarDataFinal(helper.getPeriodoAtendimentoFinal()));
        }

        if (helper.getPeriodoEncerramentoInicial() != null && helper.getPeriodoEncerramentoFinal() != null) {

            query.setDate("dtEncerramentoIncial",
                    Util.formatarDataInicial(helper.getPeriodoEncerramentoInicial()));
            query.setDate("dtEncerramentoFinal", Util.formatarDataFinal(helper.getPeriodoEncerramentoFinal()));
        }

        if (Util.verificarNaoVazio(helper.getSituacaoRA()) && helper.getSituacaoRA().equals("0")
                && Util.verificarNaoVazio(helper.getSituacaoRAAbertos())
                && (helper.getSituacaoRAAbertos().equals("0") || helper.getSituacaoRAAbertos().equals("1"))) {

            query.setDate("dtCorrente", new Date());
        }

        if (Util.verificarNaoVazio(helper.getSituacaoRA()) && helper.getSituacaoRA().equals("0")) {

            query.setShort("situacao", RegistroAtendimento.SITUACAO_PENDENTE);
        } else if (Util.verificarNaoVazio(helper.getSituacaoRA()) && helper.getSituacaoRA().equals("1")) {

            query.setShort("situacao", RegistroAtendimento.SITUACAO_ENCERRADO);
        }

        retorno = query.list();

    } catch (HibernateException e) {
        throw new ErroRepositorioException(e, "Erro no Hibernate");
    } finally {
        HibernateUtil.closeSession(session);
    }

    return retorno;
}

From source file:gcom.atendimentopublico.RepositorioAtendimentoPublicoHBM.java

License:Open Source License

/**
* [UC1120] Gerar Relatrio de religao de clientes inadimplentes.
*
* @author Hugo Leonardo/*  www.j  a v  a 2s.  c o m*/
* @date 25/01/2011
*
* @throws ErroRepositorioException
*/
public Collection pesquisarRelatorioReligacaoClientesInadiplentesOS(
        FiltrarRelatorioReligacaoClientesInadiplentesHelper relatorioHelper) throws ErroRepositorioException {

    Collection retorno = null;

    Session session = HibernateUtil.getSession();
    String consulta = "";
    Query query = null;
    Map parameters = new HashMap();

    try {

        if (relatorioHelper.getEscolhaRelatorio() == 1) {

            consulta = " select distinct (os.id), os.imovel.id, os.dataEncerramento " + " from OrdemServico os "
                    + " inner join os.imovel imo " + " inner join os.ordemServicoUnidades orseunid "
                    + " inner join os.servicoTipo servtipo " + " inner join imo.localidade loca ";
        } else if (relatorioHelper.getEscolhaRelatorio() == 2) {

            consulta = " select os.imovel.id, count(os.imovel.id) " + " from OrdemServico os "
                    + " inner join os.imovel imo " + " inner join os.servicoTipo servtipo "
                    + " inner join imo.localidade loca ";
        } else if (relatorioHelper.getEscolhaRelatorio() == 3 || relatorioHelper.getEscolhaRelatorio() == 4) {
            /*
            consulta = " select os.imovel.id, "
                   + " orseunid.usuario.id, "
                   + " count(os.imovel.id), "
                   + " count (orseunid.usuario.id) "
            + " from OrdemServico os "
            + " inner join os.imovel imo "
            + " inner join os.ordemServicoUnidades orseunid "
                   + " inner join os.servicoTipo servtipo "
                   + " inner join imo.localidade loca ";
            */

            consulta = " select orseunid.usuario.id " + " from OrdemServico os " + " inner join os.imovel imo "
                    + " inner join os.ordemServicoUnidades orseunid " + " inner join os.servicoTipo servtipo "
                    + " inner join imo.localidade loca ";
        } else if (relatorioHelper.getEscolhaRelatorio() == 5) {

            consulta = " select os.imovel.id, " + " orseunid.usuario.id, " + " clieimo.cliente.id, "
                    + " count(os.imovel.id), " + " count (orseunid.usuario.id), "
                    + " count (clieimo.cliente.id) " + " from OrdemServico os " + " inner join os.imovel imo "
                    + " inner join imo.clienteImoveis clieimo "
                    + " inner join os.ordemServicoUnidades orseunid " + " inner join os.servicoTipo servtipo "
                    + " inner join imo.localidade loca ";
        }

        // Gerncia Regional
        if (relatorioHelper.getGerenciaRegional() != null) {

            consulta += " inner join loca.gerenciaRegional gereg ";
        }

        // Unidade Negcio
        if (relatorioHelper.getUnidadeNegocio() != null) {

            consulta += " inner join loca.unidadeNegocio unineg ";
        }

        // Setor Comercial
        if (relatorioHelper.getSetorComercial() != null) {

            consulta += " inner join imo.setorComercial setcom ";
        }

        // Cliente
        if (relatorioHelper.getCliente() != null && relatorioHelper.getEscolhaRelatorio() != 5) {

            consulta += " inner join imo.clienteImoveis clieimo ";
        }

        // Usurio
        if (relatorioHelper.getUsuario() != null) {

            consulta += " inner join orseunid.usuario usua ";
        }

        consulta += " where 1=1 ";

        if (relatorioHelper.getEscolhaRelatorio() == 1) {
            if (relatorioHelper.getDataInicioEncerramento() != null
                    && relatorioHelper.getDataFimEncerramento() != null) {

                consulta += " and os.dataEncerramento between :dataInicialEncerramento and :dataFinalEncerramento ";

                parameters.put("dataInicialEncerramento", relatorioHelper.getDataInicioEncerramento());
                parameters.put("dataFinalEncerramento", relatorioHelper.getDataFimEncerramento());
            }
        } else {

            consulta += " and os.dataEncerramento between :dataInicialEncerramento and :dataFinalEncerramento ";

            parameters.put("dataInicialEncerramento", relatorioHelper.getDataInicioRecorrencia());
            parameters.put("dataFinalEncerramento", relatorioHelper.getDataFimRecorrencia());
        }

        consulta += " and os.situacao = 2 " + " and servtipo.constanteFuncionalidadeTipoServico = 243 ";

        if (relatorioHelper.getEscolhaRelatorio() == 1) {

            consulta += " and orseunid.atendimentoRelacaoTipo in (1, 3) ";
        } else if (relatorioHelper.getEscolhaRelatorio() == 2) {

            //consulta += " and orseunid.atendimentoRelacaoTipo in (1, 3) ";
        } else if (relatorioHelper.getEscolhaRelatorio() == 3) {

            consulta += " and orseunid.atendimentoRelacaoTipo = 1 ";
        } else if (relatorioHelper.getEscolhaRelatorio() == 4) {

            consulta += " and orseunid.atendimentoRelacaoTipo = 3 ";
        } else if (relatorioHelper.getEscolhaRelatorio() == 5) {

            consulta += " and orseunid.atendimentoRelacaoTipo = 3 " + " and clieimo.clienteRelacaoTipo.id = 2 "
                    + " and clieimo.dataFimRelacao is null ";
        }

        // Gerncia Regional
        if (relatorioHelper.getGerenciaRegional() != null) {

            consulta += " and gereg.id = :gerencia ";
            parameters.put("gerencia", relatorioHelper.getGerenciaRegional());
        }

        // Unidade Negcio
        if (relatorioHelper.getUnidadeNegocio() != null) {

            consulta += " and unineg.id = :unidade ";
            parameters.put("unidade", relatorioHelper.getUnidadeNegocio());
        }

        // Localidade
        if (relatorioHelper.getLocalidade() != null) {

            consulta += " and loca.id = :localidade ";
            parameters.put("localidade", relatorioHelper.getLocalidade());
        }

        // Setor Comercial
        if (relatorioHelper.getSetorComercial() != null) {

            consulta += " and setcom.id = :setor ";
            parameters.put("setor", relatorioHelper.getSetorComercial());
        }

        // Cliente
        if (relatorioHelper.getCliente() != null) {

            consulta += " and clieimo.clie.id = :cliente ";
            parameters.put("cliente", relatorioHelper.getCliente());
        }

        // Usurio
        if (relatorioHelper.getUsuario() != null) {

            consulta += " and usua.id = :usuario ";
            parameters.put("usuario", relatorioHelper.getUsuario());
        }

        if (relatorioHelper.getEscolhaRelatorio() == 1) {

            consulta += " order by os.imovel, os.id ";
        } else if (relatorioHelper.getEscolhaRelatorio() == 2) {

            consulta += " group by os.imovel.id " + " having count(os.imovel.id) > 1 "
                    + " order by os.imovel.id ";
        } else if (relatorioHelper.getEscolhaRelatorio() == 3 || relatorioHelper.getEscolhaRelatorio() == 4) {
            /*
            consulta += " group by os.imovel.id, orseunid.usuario.id "
            + " having count(os.imovel.id) > 1 and count(orseunid.usuario.id) > 1 " 
            + " order by os.imovel.id ";
            */

            consulta += " group by orseunid.usuario.id " + " having count(orseunid.usuario.id) > 1 "
                    + " order by orseunid.usuario.id ";
        } else if (relatorioHelper.getEscolhaRelatorio() == 5) {

            consulta += " group by os.imovel.id, orseunid.usuario.id, clieimo.cliente.id "
                    + " having count(os.imovel.id) > 1 and count(orseunid.usuario.id) > 1 "
                    + " and count(clieimo.cliente.id) > 1 " + " order by os.imovel.id ";
        }

        query = session.createQuery(consulta);

        //ITERA OS PARAMETROS E COLOCA 
        // OS MESMOS NA QUERY
        Set set = parameters.keySet();
        Iterator iterMap = set.iterator();
        while (iterMap.hasNext()) {
            String key = (String) iterMap.next();
            if (parameters.get(key) instanceof Set) {
                Set setList = (HashSet) parameters.get(key);
                query.setParameterList(key, setList);
            } else if (parameters.get(key) instanceof Collection) {
                Collection collection = (ArrayList) parameters.get(key);
                query.setParameterList(key, collection);
            } else if (parameters.get(key) instanceof Date) {
                Date data = (Date) parameters.get(key);
                query.setTimestamp(key, data);
            } else {
                query.setParameter(key, parameters.get(key));
            }
        }

        retorno = query.list();

    } catch (HibernateException e) {
        throw new ErroRepositorioException(e, "Erro no Hibernate");
    } finally {
        HibernateUtil.closeSession(session);
    }

    return retorno;
}

From source file:gcom.atendimentopublico.RepositorioAtendimentoPublicoHBM.java

License:Open Source License

/**
 * [UC1120] Gerar Relatrio de religao de clientes inadimplentes
 *
 * @author Hugo Leonardo//from  ww w . j  a v a2 s. com
 * @date 01/02/2011
 *
 * @throws ErroRepositorioException
 */
public Collection pesquisarRelatorioReligacaoClientesInadiplentesRecorrentes(Integer imovel,
        FiltrarRelatorioReligacaoClientesInadiplentesHelper relatorioHelper) throws ErroRepositorioException {

    Collection retorno = null;

    Session session = HibernateUtil.getSession();
    String consulta = "";
    Query query = null;
    Map parameters = new HashMap();

    try {

        consulta = " select distinct (os.id) " + " from OrdemServico os " + " inner join os.imovel imo "
                + " inner join os.ordemServicoUnidades orseunid " + " inner join os.servicoTipo servtipo "
                + " inner join imo.localidade loca ";

        // Gerncia Regional
        if (relatorioHelper.getGerenciaRegional() != null) {

            consulta += " inner join loca.gerenciaRegional gereg ";
        }

        // Unidade Negcio
        if (relatorioHelper.getUnidadeNegocio() != null) {

            consulta += " inner join loca.unidadeNegocio unineg ";
        }

        // Setor Comercial
        if (relatorioHelper.getSetorComercial() != null) {

            consulta += " inner join imo.setorComercial setcom ";
        }

        // Cliente
        if (relatorioHelper.getCliente() != null) {

            consulta += " inner join imo.clienteImoveis clieimo ";
        }

        // Usurio
        if (relatorioHelper.getUsuario() != null) {

            consulta += " inner join orseunid.usuario usua ";
        }

        consulta += " where imo.id = :imovel ";
        parameters.put("imovel", imovel);

        if (relatorioHelper.getEscolhaRelatorio() == 1) {

            if (relatorioHelper.getDataInicioEncerramento() != null
                    && relatorioHelper.getDataFimEncerramento() != null) {

                consulta += " and os.dataEncerramento between :dataInicialEncerramento and :dataFinalEncerramento ";

                parameters.put("dataInicialEncerramento", relatorioHelper.getDataInicioEncerramento());
                parameters.put("dataFinalEncerramento", relatorioHelper.getDataFimEncerramento());
            }
        } else {

            if (relatorioHelper.getDataInicioRecorrencia() != null
                    && relatorioHelper.getDataFimRecorrencia() != null) {

                consulta += " and os.dataEncerramento between :dataInicialRecorrencia and :dataFinalRecorrencia ";

                parameters.put("dataInicialRecorrencia", relatorioHelper.getDataInicioRecorrencia());
                parameters.put("dataFinalRecorrencia", relatorioHelper.getDataFimRecorrencia());
            }
        }

        consulta += " and os.situacao = 2 " + " and servtipo.constanteFuncionalidadeTipoServico = 243 "
                + " and orseunid.atendimentoRelacaoTipo.id in (1, 3) ";

        // Gerncia Regional
        if (relatorioHelper.getGerenciaRegional() != null) {

            consulta += " and gereg.id = :gerencia ";
            parameters.put("gerencia", relatorioHelper.getGerenciaRegional());
        }

        // Unidade Negcio
        if (relatorioHelper.getUnidadeNegocio() != null) {

            consulta += " and unineg.id = :unidade ";
            parameters.put("unidade", relatorioHelper.getUnidadeNegocio());
        }

        // Localidade
        if (relatorioHelper.getLocalidade() != null) {

            consulta += " and loca.id = :localidade ";
            parameters.put("localidade", relatorioHelper.getLocalidade());
        }

        // Setor Comercial
        if (relatorioHelper.getSetorComercial() != null) {

            consulta += " and setcom.id = :setor ";
            parameters.put("setor", relatorioHelper.getSetorComercial());
        }

        // Cliente
        if (relatorioHelper.getCliente() != null) {

            consulta += " and clieimo.cliente.id = :cliente ";
            parameters.put("cliente", relatorioHelper.getCliente());
        }

        // Usurio
        if (relatorioHelper.getUsuario() != null) {

            consulta += " and usua.id = :usuario ";
            parameters.put("usuario", relatorioHelper.getUsuario());
        }

        consulta += " order by os.id ";

        query = session.createQuery(consulta);

        //ITERA OS PARAMETROS E COLOCA 
        // OS MESMOS NA QUERY
        Set set = parameters.keySet();
        Iterator iterMap = set.iterator();
        while (iterMap.hasNext()) {
            String key = (String) iterMap.next();
            if (parameters.get(key) instanceof Set) {
                Set setList = (HashSet) parameters.get(key);
                query.setParameterList(key, setList);
            } else if (parameters.get(key) instanceof Collection) {
                Collection collection = (ArrayList) parameters.get(key);
                query.setParameterList(key, collection);
            } else if (parameters.get(key) instanceof Date) {
                Date data = (Date) parameters.get(key);
                query.setTimestamp(key, data);
            } else {
                query.setParameter(key, parameters.get(key));
            }
        }

        retorno = query.list();

    } catch (HibernateException e) {
        throw new ErroRepositorioException(e, "Erro no Hibernate");
    } finally {
        HibernateUtil.closeSession(session);
    }

    return retorno;
}

From source file:gcom.atendimentopublico.RepositorioAtendimentoPublicoHBM.java

License:Open Source License

/**
 * [UC1120] Gerar Relatrio de religao de clientes inadimplentes.
 *
 * @author Hugo Leonardo//  ww  w .j  a  v  a2 s.  c om
 * @date 09/02/2011
 *
 * @throws ErroRepositorioException
 */
public Collection pesquisarRelatorioReligacaoClientesInadiplentesDatasOS(
        FiltrarRelatorioReligacaoClientesInadiplentesHelper relatorioHelper, Integer imovel)
        throws ErroRepositorioException {

    Collection<Object[]> retorno = null;

    Session session = HibernateUtil.getSession();
    String consulta = "";
    Query query = null;
    Map parameters = new HashMap();

    try {

        consulta = " select distinct(os.dataEncerramento), os.id " + " from OrdemServico os "
                + " inner join os.imovel imo " + " inner join os.ordemServicoUnidades orseunid "
                + " inner join os.servicoTipo servtipo " + " inner join imo.localidade loca ";

        // Gerncia Regional
        if (relatorioHelper.getGerenciaRegional() != null) {

            consulta += " inner join loca.gerenciaRegional gereg ";
        }

        // Unidade Negcio
        if (relatorioHelper.getUnidadeNegocio() != null) {

            consulta += " inner join loca.unidadeNegocio unineg ";
        }

        // Setor Comercial
        if (relatorioHelper.getSetorComercial() != null) {

            consulta += " inner join imo.setorComercial setcom ";
        }

        // Cliente
        if (relatorioHelper.getCliente() != null) {

            consulta += " inner join imo.clienteImoveis clieimo ";
        }

        // Usurio
        if (relatorioHelper.getUsuario() != null) {

            consulta += " inner join orseunid.usuario usua ";
        }

        consulta += " where imo.id = :imovel "
                + " and os.dataEncerramento between :dataInicialEncerramento and :dataFinalEncerramento ";

        parameters.put("imovel", imovel);
        parameters.put("dataInicialEncerramento", relatorioHelper.getDataInicioRecorrencia());
        parameters.put("dataFinalEncerramento", relatorioHelper.getDataFimRecorrencia());

        consulta += " and os.situacao = 2 " + " and servtipo.constanteFuncionalidadeTipoServico = 243 "
                + " and orseunid.atendimentoRelacaoTipo in (1,3) ";

        // Gerncia Regional
        if (relatorioHelper.getGerenciaRegional() != null) {

            consulta += " and gereg.id = :gerencia ";
            parameters.put("gerencia", relatorioHelper.getGerenciaRegional());
        }

        // Unidade Negcio
        if (relatorioHelper.getUnidadeNegocio() != null) {

            consulta += " and unineg.id = :unidade ";
            parameters.put("unidade", relatorioHelper.getUnidadeNegocio());
        }

        // Localidade
        if (relatorioHelper.getLocalidade() != null) {

            consulta += " and loca.id = :localidade ";
            parameters.put("localidade", relatorioHelper.getLocalidade());
        }

        // Setor Comercial
        if (relatorioHelper.getSetorComercial() != null) {

            consulta += " and setcom.id = :setor ";
            parameters.put("setor", relatorioHelper.getSetorComercial());
        }

        // Cliente
        if (relatorioHelper.getCliente() != null) {

            consulta += " and clieimo.cliente.id = :cliente ";
            parameters.put("cliente", relatorioHelper.getCliente());
        }

        // Usurio
        if (relatorioHelper.getUsuario() != null) {

            consulta += " and usua.id = :usuario ";
            parameters.put("usuario", relatorioHelper.getUsuario());
        }

        consulta += " order by os.dataEncerramento ";

        query = session.createQuery(consulta);

        //ITERA OS PARAMETROS E COLOCA 
        // OS MESMOS NA QUERY
        Set set = parameters.keySet();
        Iterator iterMap = set.iterator();
        while (iterMap.hasNext()) {
            String key = (String) iterMap.next();
            if (parameters.get(key) instanceof Set) {
                Set setList = (HashSet) parameters.get(key);
                query.setParameterList(key, setList);
            } else if (parameters.get(key) instanceof Collection) {
                Collection collection = (ArrayList) parameters.get(key);
                query.setParameterList(key, collection);
            } else if (parameters.get(key) instanceof Date) {
                Date data = (Date) parameters.get(key);
                query.setTimestamp(key, data);
            } else {
                query.setParameter(key, parameters.get(key));
            }
        }

        retorno = query.list();

    } catch (HibernateException e) {
        throw new ErroRepositorioException(e, "Erro no Hibernate");
    } finally {
        HibernateUtil.closeSession(session);
    }

    return retorno;
}

From source file:gcom.atendimentopublico.RepositorioAtendimentoPublicoHBM.java

License:Open Source License

/**
 * [UC1120] Gerar Relatrio de religao de clientes inadimplentes
 *
 * @author Hugo Leonardo/*from  w  ww.  ja  va  2 s  . com*/
 * @date 16/02/2011
 *
 * @throws ErroRepositorioException
 */
public Collection pesquisarRecorrenciaPorUsuarioQueAbriuOuEncerrouOS(Integer usuario,
        FiltrarRelatorioReligacaoClientesInadiplentesHelper relatorioHelper) throws ErroRepositorioException {

    Collection retorno = null;

    Session session = HibernateUtil.getSession();
    String consulta = "";
    Query query = null;
    Map parameters = new HashMap();

    try {

        consulta = " select os.id, imo.id, os.dataEncerramento " + " from OrdemServico os "
                + " inner join os.imovel imo " + " inner join os.ordemServicoUnidades orseunid "
                + " inner join os.servicoTipo servtipo " + " inner join imo.localidade loca ";

        // Gerncia Regional
        if (relatorioHelper.getGerenciaRegional() != null) {

            consulta += " inner join loca.gerenciaRegional gereg ";
        }

        // Unidade Negcio
        if (relatorioHelper.getUnidadeNegocio() != null) {

            consulta += " inner join loca.unidadeNegocio unineg ";
        }

        // Setor Comercial
        if (relatorioHelper.getSetorComercial() != null) {

            consulta += " inner join imo.setorComercial setcom ";
        }

        // Cliente
        if (relatorioHelper.getCliente() != null) {

            consulta += " inner join imo.clienteImoveis clieimo ";
        }

        // Usurio
        if (relatorioHelper.getUsuario() != null) {

            //consulta +=" inner join orseunid.usuario usua ";
        }

        consulta += " where orseunid.usuario.id = :usuario ";
        parameters.put("usuario", usuario);

        if (relatorioHelper.getEscolhaRelatorio() == 1) {

            if (relatorioHelper.getDataInicioEncerramento() != null
                    && relatorioHelper.getDataFimEncerramento() != null) {

                consulta += " and os.dataEncerramento between :dataInicialEncerramento and :dataFinalEncerramento ";

                parameters.put("dataInicialEncerramento", relatorioHelper.getDataInicioEncerramento());
                parameters.put("dataFinalEncerramento", relatorioHelper.getDataFimEncerramento());
            }
        } else {

            if (relatorioHelper.getDataInicioRecorrencia() != null
                    && relatorioHelper.getDataFimRecorrencia() != null) {

                consulta += " and os.dataEncerramento between :dataInicialRecorrencia and :dataFinalRecorrencia ";

                parameters.put("dataInicialRecorrencia", relatorioHelper.getDataInicioRecorrencia());
                parameters.put("dataFinalRecorrencia", relatorioHelper.getDataFimRecorrencia());
            }
        }

        consulta += " and os.situacao = 2 " + " and servtipo.constanteFuncionalidadeTipoServico = 243 ";

        if (relatorioHelper.getEscolhaRelatorio() == 3) {

            consulta += " and orseunid.atendimentoRelacaoTipo.id = 1 ";
        } else if (relatorioHelper.getEscolhaRelatorio() == 4) {

            consulta += " and orseunid.atendimentoRelacaoTipo.id = 3 ";
        }

        // Gerncia Regional
        if (relatorioHelper.getGerenciaRegional() != null) {

            consulta += " and gereg.id = :gerencia ";
            parameters.put("gerencia", relatorioHelper.getGerenciaRegional());
        }

        // Unidade Negcio
        if (relatorioHelper.getUnidadeNegocio() != null) {

            consulta += " and unineg.id = :unidade ";
            parameters.put("unidade", relatorioHelper.getUnidadeNegocio());
        }

        // Localidade
        if (relatorioHelper.getLocalidade() != null) {

            consulta += " and loca.id = :localidade ";
            parameters.put("localidade", relatorioHelper.getLocalidade());
        }

        // Setor Comercial
        if (relatorioHelper.getSetorComercial() != null) {

            consulta += " and setcom.id = :setor ";
            parameters.put("setor", relatorioHelper.getSetorComercial());
        }

        // Cliente
        if (relatorioHelper.getCliente() != null) {

            consulta += " and clieimo.cliente.id = :cliente ";
            parameters.put("cliente", relatorioHelper.getCliente());
        }

        // Usurio
        if (relatorioHelper.getUsuario() != null) {

            consulta += " and orseunid.usuario.id = :usuario ";
            parameters.put("usuario", relatorioHelper.getUsuario());
        }

        consulta += " order by os.id ";

        query = session.createQuery(consulta);

        //ITERA OS PARAMETROS E COLOCA 
        // OS MESMOS NA QUERY
        Set set = parameters.keySet();
        Iterator iterMap = set.iterator();
        while (iterMap.hasNext()) {
            String key = (String) iterMap.next();
            if (parameters.get(key) instanceof Set) {
                Set setList = (HashSet) parameters.get(key);
                query.setParameterList(key, setList);
            } else if (parameters.get(key) instanceof Collection) {
                Collection collection = (ArrayList) parameters.get(key);
                query.setParameterList(key, collection);
            } else if (parameters.get(key) instanceof Date) {
                Date data = (Date) parameters.get(key);
                query.setTimestamp(key, data);
            } else {
                query.setParameter(key, parameters.get(key));
            }
        }

        retorno = query.list();

    } catch (HibernateException e) {
        throw new ErroRepositorioException(e, "Erro no Hibernate");
    } finally {
        HibernateUtil.closeSession(session);
    }

    return retorno;
}