package br.gov.mc.arquitetura.util; import java.util.Collection; import org.hibernate.Criteria; import org.hibernate.criterion.Restrictions; import org.springframework.stereotype.Repository; import br.gov.mc.arquitetura.persistencia.impl.UniversalDaoImpl; import br.gov.mc.corporativo.entidade.CrpDistrito; import br.gov.mc.corporativo.entidade.CrpMunicipio; import br.gov.mc.corporativo.entidade.CrpPais; import br.gov.mc.corporativo.entidade.CrpRegiao; import br.gov.mc.corporativo.entidade.CrpSubdistrito; import br.gov.mc.corporativo.entidade.CrpUf; @Repository("localizacaoUtil") public class LocalizacaoUtil extends UniversalDaoImpl { public Collection pesquisar(CrpPais pais) { Criteria c = getCurrentSession().createCriteria(pais.getClass()); if (pais != null) { if (pais.getAtivo() != null) { c.add(Restrictions.eq("ativo", pais.getAtivo())); } if (pais.getId() != null) { c.add(Restrictions.idEq(pais.getId())); } if (pais.getNome() != null && !"".equals(pais.getNome())) { c.add(Restrictions.ilike("nome", "%" + pais.getNome() + "%")); } if (pais.getSigla() != null && !"".equals(pais.getSigla())) { c.add(Restrictions.ilike("sigla", "%" + pais.getSigla() + "%")); } } return listByExample(c); } public Collection pesquisar(CrpRegiao regiao) { Criteria c = getCurrentSession().createCriteria(regiao.getClass()); if (regiao != null) { if (regiao.getId() != null) { c.add(Restrictions.idEq(regiao.getId())); } if (regiao.getNome() != null && !"".equals(regiao.getNome())) { c.add(Restrictions.ilike("nome", "%" + regiao.getNome() + "%")); } if (regiao.getSigla() != null && !"".equals(regiao.getSigla())) { c.add(Restrictions.ilike("sigla", "%" + regiao.getSigla() + "%")); } } return listByExample(c); } public Collection pesquisar(CrpUf uf) { Criteria c = getCurrentSession().createCriteria(uf.getClass()); if (uf != null) { if (uf.getId() != null) { c.add(Restrictions.idEq(uf.getId())); } if (uf.getNome() != null && !"".equals(uf.getNome())) { c.add(Restrictions.ilike("nome", "%" + uf.getNome() + "%")); } if (uf.getSigla() != null && !"".equals(uf.getSigla())) { c.add(Restrictions.ilike("sigla", "%" + uf.getSigla() + "%")); } if (uf.getRegiao() != null) { if (uf.getRegiao().getId() != null) { c.createCriteria("regiao").add(Restrictions.idEq(uf.getRegiao().getId())); } if (uf.getRegiao().getNome() != null && !"".equals(uf.getRegiao().getNome())) { c.createCriteria("regiao").add(Restrictions.ilike("nome", "%" + uf.getRegiao().getNome() + "%")); } if (uf.getRegiao().getSigla() != null && !"".equals(uf.getRegiao().getSigla())) { c.createCriteria("regiao").add(Restrictions.ilike("sigla", "%" + uf.getRegiao().getSigla() + "%")); } } if (uf.getPais() != null && !"".equals(uf.getPais())) { c.createCriteria("pais").add(Restrictions.idEq(uf.getPais().getId())); } } return c.list(); } public Collection pesquisar(CrpDistrito distrito) { Criteria c = getCurrentSession().createCriteria(distrito.getClass()); if (distrito != null) { if (distrito.getId() != null) { c.add(Restrictions.idEq(distrito.getId())); } if (distrito.getLatitude() != null && !"".equals(distrito.getLatitude())) { c.add(Restrictions.eq("latitude", distrito.getLatitude())); } if (distrito.getLongitude() != null && !"".equals(distrito.getLongitude())) { c.add(Restrictions.eq("longitude", distrito.getLongitude())); } if (distrito.getMunicipio() != null) { if (distrito.getMunicipio() != null) { Criteria cm = c.createCriteria("municipio"); if (distrito.getMunicipio().getId() != null && !"".equals(distrito.getMunicipio().getId())) { cm.add(Restrictions.idEq(distrito.getMunicipio().getId())); } if (distrito.getMunicipio().getUf() != null) { Criteria cuf = cm.createCriteria("uf"); if (distrito.getMunicipio().getUf().getId() != null) { cuf.add(Restrictions.idEq(distrito.getMunicipio().getUf().getId())); } if (distrito.getMunicipio().getUf().getNome() != null && !"".equals(distrito.getMunicipio().getUf().getNome())) { cuf.add(Restrictions.ilike("nome", "%" + distrito.getMunicipio().getUf().getNome() + "%")); } if (distrito.getMunicipio().getUf().getSigla() != null && !"".equals(distrito.getMunicipio().getUf().getSigla())) { cuf .add(Restrictions.ilike("sigla", "%" + distrito.getMunicipio().getUf().getSigla() + "%")); } if (distrito.getMunicipio().getUf().getRegiao() != null) { if (distrito.getMunicipio().getUf().getRegiao().getId() != null) { cuf.createCriteria("regiao").add( Restrictions.idEq(distrito.getMunicipio().getUf().getRegiao().getId())); } if (distrito.getMunicipio().getUf().getRegiao().getNome() != null && !"".equals(distrito.getMunicipio().getUf().getRegiao().getNome())) { cuf.createCriteria("regiao").add( Restrictions.ilike("nome", "%" + distrito.getMunicipio().getUf().getRegiao().getNome() + "%")); } if (distrito.getMunicipio().getUf().getRegiao().getSigla() != null && !"".equals(distrito.getMunicipio().getUf().getRegiao().getSigla())) { cuf.createCriteria("regiao").add( Restrictions.ilike("sigla", "%" + distrito.getMunicipio().getUf().getRegiao() .getSigla() + "%")); } } } } } if (distrito.getNome() != null && !"".equals(distrito.getNome())) { c.add(Restrictions.ilike("nome", "%" + distrito.getNome() + "%")); } } return listByExample(c); } public Collection pesquisar(CrpSubdistrito subDistrito) { Criteria c = getCurrentSession().createCriteria(subDistrito.getClass()); if (subDistrito != null) { if (subDistrito.getId() != null) { c.add(Restrictions.idEq(subDistrito.getId())); } if (subDistrito.getLatitude() != null && !"".equals(subDistrito.getLatitude())) { c.add(Restrictions.eq("latitude", subDistrito.getLatitude())); } if (subDistrito.getLongitude() != null && !"".equals(subDistrito.getLongitude())) { c.add(Restrictions.eq("longitude", subDistrito.getLongitude())); } if (subDistrito.getNome() != null && !"".equals(subDistrito.getNome())) { c.add(Restrictions.ilike("nome", "%" + subDistrito.getNome() + "%")); } if (subDistrito.getDistrito() != null) { Criteria cd = c.createCriteria("distrito"); if (subDistrito.getDistrito().getId() != null && !subDistrito.getDistrito().getId().equals("")) { cd.add(Restrictions.idEq(subDistrito.getDistrito().getId())); } if (subDistrito.getDistrito().getLatitude() != null && !"".equals(subDistrito.getDistrito().getLatitude())) { cd.createCriteria("distrito").add( Restrictions.eq("latitude", subDistrito.getDistrito().getLatitude())); } if (subDistrito.getDistrito().getLongitude() != null && !"".equals(subDistrito.getDistrito().getLongitude())) { cd.createCriteria("distrito").add( Restrictions.eq("longitude", subDistrito.getDistrito().getLongitude())); } if (subDistrito.getDistrito().getMunicipio() != null) { Criteria cm = cd.createCriteria("municipio"); if (subDistrito.getDistrito().getMunicipio().getId() != null && !"".equals(subDistrito.getDistrito().getMunicipio().getId())) { cm.add(Restrictions.idEq(subDistrito.getDistrito().getMunicipio().getId())); } if (subDistrito.getDistrito().getMunicipio().getUf() != null) { Criteria cuf = cm.createCriteria("uf"); if (subDistrito.getDistrito().getMunicipio().getUf().getId() != null) { cuf.add(Restrictions.idEq(subDistrito.getDistrito().getMunicipio().getUf().getId())); } if (subDistrito.getDistrito().getMunicipio().getUf().getNome() != null && !"".equals(subDistrito.getDistrito().getMunicipio().getUf().getNome())) { cuf.add(Restrictions.ilike("nome", "%" + subDistrito.getDistrito().getMunicipio().getUf().getNome() + "%")); } if (subDistrito.getDistrito().getMunicipio().getUf().getSigla() != null && !"".equals(subDistrito.getDistrito().getMunicipio().getUf().getSigla())) { cuf.add(Restrictions.ilike("sigla", "%" + subDistrito.getDistrito().getMunicipio().getUf().getSigla() + "%")); } if (subDistrito.getDistrito().getMunicipio().getUf().getRegiao() != null) { if (subDistrito.getDistrito().getMunicipio().getUf().getRegiao().getId() != null) { cuf.createCriteria("regiao").add( Restrictions.idEq(subDistrito.getDistrito().getMunicipio().getUf() .getRegiao().getId())); } if (subDistrito.getDistrito().getMunicipio().getUf().getRegiao().getNome() != null && !"".equals(subDistrito.getDistrito().getMunicipio().getUf().getRegiao() .getNome())) { cuf.createCriteria("regiao").add( Restrictions.ilike("nome", "%" + subDistrito.getDistrito().getMunicipio().getUf() .getRegiao().getNome() + "%")); } if (subDistrito.getDistrito().getMunicipio().getUf().getRegiao().getSigla() != null && !"".equals(subDistrito.getDistrito().getMunicipio().getUf().getRegiao() .getSigla())) { cuf.createCriteria("regiao").add( Restrictions.ilike("sigla", "%" + subDistrito.getDistrito().getMunicipio().getUf() .getRegiao().getSigla() + "%")); } } } } if (subDistrito.getDistrito().getNome() != null && !"".equals(subDistrito.getDistrito().getNome())) { c.createCriteria("distrito").add( Restrictions.ilike("nome", "%" + subDistrito.getDistrito().getNome() + "%")); } } } return listByExample(c); } public Collection pesquisar(CrpMunicipio municipio) { Criteria c = getCurrentSession().createCriteria(municipio.getClass()); if (municipio != null) { if (municipio.getId() != null && !"".equals(municipio.getId())) { c.add(Restrictions.idEq(municipio.getId())); } if(municipio.getNome() != null && !municipio.getNome().equals("")){ c.add(Restrictions.like("nome", municipio.getNome())); } if (municipio.getUf() != null) { Criteria cuf = c.createCriteria("uf"); if (municipio.getUf().getId() != null) { cuf.add(Restrictions.idEq(municipio.getUf().getId())); } if (municipio.getUf().getNome() != null && !"".equals(municipio.getUf().getNome())) { cuf.add(Restrictions.ilike("nome", "%" + municipio.getUf().getNome() + "%")); } if (municipio.getUf().getSigla() != null && !"".equals(municipio.getUf().getSigla())) { cuf.add(Restrictions.ilike("sigla", "%" + municipio.getUf().getSigla() + "%")); } if (municipio.getUf().getRegiao() != null) { Criteria cRegiao = cuf.createCriteria("regiao"); if (municipio.getUf().getRegiao().getId() != null) { cRegiao.add(Restrictions.idEq(municipio.getUf().getRegiao().getId())); } if (municipio.getUf().getRegiao().getNome() != null && !"".equals(municipio.getUf().getRegiao().getNome())) { cRegiao.add( Restrictions .ilike("nome", "%" + municipio.getUf().getRegiao() .getNome() + "%")); } if (municipio.getUf().getRegiao().getSigla() != null && !"".equals(municipio.getUf().getRegiao().getSigla())) { cRegiao.add( Restrictions.ilike("sigla", "%" + municipio.getUf().getRegiao().getSigla() + "%")); } } } } return listByExample(c); } }