/** * */ package net.conselldemallorca.helium.core.model.dao; import java.util.Date; import java.util.List; import net.conselldemallorca.helium.core.model.hibernate.ExecucioMassiva; import net.conselldemallorca.helium.core.model.hibernate.ExecucioMassivaExpedient; import org.hibernate.Query; import org.hibernate.criterion.Restrictions; import org.springframework.stereotype.Component; /** * Dao pels objectes del tipus ExecucioMassiva. * * @author Limit Tecnologies <limit@limit.es> */ @Component public class ExecucioMassivaDao extends HibernateGenericDao<ExecucioMassiva, Long> { public ExecucioMassivaDao() { super(ExecucioMassiva.class); } public List<ExecucioMassiva> getExecucionsMassivesActives() { return findByCriteria( Restrictions.and( Restrictions.le("dataInici", new Date()), Restrictions.isNull("dataFi"))); } public List<ExecucioMassiva> getExecucionsMassivesActivesByUser(String username) { return findByCriteria( Restrictions.and( Restrictions.le("dataInici", new Date()), Restrictions.isNull("dataFi")), Restrictions.eq("usuari", username)); } @SuppressWarnings("unchecked") public List<ExecucioMassiva> getExecucionsMassivesByUser(String username, Long entorn, Integer results) { Query query = null; query = getSession().createQuery( "from ExecucioMassiva e " + "where e.usuari = '" + username + "' " + "and (e.entorn is null or e.entorn = " + entorn + ")" + "order by e.dataInici desc, e.id desc"); if (results != null) query.setMaxResults(results); return (List<ExecucioMassiva>)query.list(); } @SuppressWarnings("unchecked") public List<ExecucioMassiva> getExecucionsMassivesByIdTipusExpedient(Long idTipusExpedient) { Query query = null; query = getSession().createQuery( "from ExecucioMassiva e " + "where e.expedientTipus.id = " + idTipusExpedient); return (List<ExecucioMassiva>)query.list(); } public List<ExecucioMassiva> getExecucionsPendentsMassivesByUser(String username) { return findByCriteria( Restrictions.and( Restrictions.isNull("dataFi"), Restrictions.eq("usuari", username))); } public Long getNombreExecucionsMassivesActivesByUser(String username) { Query query = null; query = getSession().createQuery( "select count(e) " + "from ExecucioMassiva e " + "where e.usuari = '" + username + "' " + "and e.dataFi is null"); return (Long)query.uniqueResult(); } @SuppressWarnings("unchecked") public String getExecucioMassivaTasca(Long execucioMassivaId) { String tasca = null; Query query = null; query = getSession().createQuery( "select e " + "from ExecucioMassivaExpedient e " + "where e.execucioMassiva.id = " + execucioMassivaId); List<ExecucioMassivaExpedient> exps = (List<ExecucioMassivaExpedient>)query.list(); if (exps != null && !exps.isEmpty()) { tasca = exps.get(0).getTascaId(); } return tasca; } public Long getMinExecucioMassiva(Date ara) { Query query = null; query = getSession().createQuery( "select min(id) " + " from ExecucioMassiva " + " where dataInici <= ? " + " and dataFi is null") .setTimestamp(0, ara); return (Long)query.uniqueResult(); } }