/** * */ package net.conselldemallorca.helium.core.model.dao; import java.util.ArrayList; import java.util.List; import net.conselldemallorca.helium.core.model.hibernate.AreaJbpmId; import org.hibernate.Query; import org.hibernate.criterion.Restrictions; import org.springframework.stereotype.Component; /** * Dao pels objectes de tipus AreaJbpmId * * @author Limit Tecnologies <limit@limit.es> */ @Component public class AreaJbpmIdDao extends HibernateGenericDao<AreaJbpmId, Long> { public AreaJbpmIdDao() { super(AreaJbpmId.class); } public AreaJbpmId findAmbCodi(String codi) { List<AreaJbpmId> carrecs = findByCriteria( Restrictions.eq("codi", codi)); if (carrecs.size() > 0) return carrecs.get(0); return null; } @SuppressWarnings({ "unchecked"}) public List<String> findAmbUsuariCodi(final String usuariCodi) { Query query = getSession().createQuery( "select " + " m.group.name " + "from " + " org.jbpm.identity.Membership m " + "where " + " m.user.name = :usuariCodi"); query.setString("usuariCodi", usuariCodi); List<String> resposta = query.list(); return resposta; } @SuppressWarnings({ "unchecked"}) public List<AreaJbpmId> findSenseAssignar() { List<AreaJbpmId> resposta = new ArrayList<AreaJbpmId>(); Query query = getSession().createQuery( "select " + " g.name " + "from " + " org.jbpm.identity.Group g " + "where " + " g.type = 'organisation'" + " and g.name not in (" + " select " + " a.codi " + " from " + " AreaJbpmId a) "); List<String> files = query.list(); for (String grup: files) { AreaJbpmId area = new AreaJbpmId(); area.setCodi(grup); resposta.add(area); } return resposta; } @SuppressWarnings("unchecked") public List<String> findRolesAmbUsuariCodi(final String usuariCodi) { Query query = getSession().createQuery( "select distinct " + " m.group.name " + "from " + " org.jbpm.identity.Membership m " + "where " + " m.user.name = :usuariCodi " + " and m.group.type = 'security-role'"); query.setString("usuariCodi", usuariCodi); List<String> resposta = query.list(); return resposta; } @SuppressWarnings({ "unchecked"}) public List<AreaJbpmId> findDistinctJbpmGrupAll() { List<AreaJbpmId> resposta = new ArrayList<AreaJbpmId>(); Query query = getSession().createQuery( "select distinct name from org.jbpm.identity.Group"); List<String> files = query.list(); for (String grup: files) { AreaJbpmId area = new AreaJbpmId(); area.setCodi(grup); resposta.add(area); } return resposta; } }