/**
*
*/
package net.conselldemallorca.helium.core.model.dao;
import java.util.ArrayList;
import java.util.List;
import net.conselldemallorca.helium.core.model.hibernate.TerminiIniciat;
import org.hibernate.Query;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Component;
/**
* Dao pels objectes de tipus TerminiIniciat
*
* @author Limit Tecnologies <limit@limit.es>
*/
@Component
public class TerminiIniciatDao extends HibernateGenericDao<TerminiIniciat, Long> {
public TerminiIniciatDao() {
super(TerminiIniciat.class);
}
public TerminiIniciat findAmbTerminiIdIProcessInstanceId(
Long terminiId,
String processInstanceId) {
List<TerminiIniciat> terminis = findByCriteria(
Restrictions.eq("termini.id", terminiId),
Restrictions.eq("processInstanceId", processInstanceId));
if (terminis.size() > 0) {
return terminis.get(0);
}
return null;
}
public List<TerminiIniciat> findAmbProcessInstanceId(String processInstanceId) {
return findByCriteria(
Restrictions.eq("processInstanceId", processInstanceId));
}
public List<TerminiIniciat> findAmbTaskInstanceId(Long taskInstanceId) {
return findByCriteria(
Restrictions.eq("taskInstanceId", taskInstanceId.toString()));
}
public List<TerminiIniciat> findAmbTaskInstanceIds(String[] taskInstanceIds) {
return findByCriteria(
Restrictions.in("taskInstanceId", taskInstanceIds));
}
@SuppressWarnings("unchecked")
public List<TerminiIniciat> findIniciatsAmbAlertesPrevies() {
List<TerminiIniciat> resultat = new ArrayList<TerminiIniciat>();
String hql = "from TerminiIniciat as ti "
+ "where "
+ " ti.dataCompletat is null "
+ "and (ti.termini.alertaPrevia = true and ti.alertaPrevia = false) "
+ "and ti.dataAturada is null "
+ "and ti.dataCancelacio is null";
Query query = getSession().createQuery(hql);
resultat = (List<TerminiIniciat>) query.list();
return resultat;
}
@SuppressWarnings("unchecked")
public List<TerminiIniciat> findIniciatsAmbAlertesFinals() {
List<TerminiIniciat> resultat = new ArrayList<TerminiIniciat>();
String hql = "from TerminiIniciat as ti "
+ "where "
+ " ti.dataCompletat is null "
+ "and (ti.termini.alertaFinal = true and ti.alertaFinal = false) "
+ "and ti.dataAturada is null "
+ "and ti.dataCancelacio is null";
Query query = getSession().createQuery(hql);
resultat = (List<TerminiIniciat>) query.list();
return resultat;
}
}