package com.megatim.apifdxweb.dao.impl.referentiel;
|
|
import com.megatim.apifdxweb.dao.ifaces.referentiel.RoutageDAO;
|
import com.megatim.fdxcommons.model.referentiel.Participant;
|
import javax.ejb.Stateless;
|
import javax.persistence.EntityManager;
|
import javax.persistence.PersistenceContext;
|
|
/**
|
*
|
* @author ASUS
|
*/
|
@Stateless
|
public class RoutageDAOImpl implements RoutageDAO {
|
|
@PersistenceContext(unitName = "fdxPU")
|
protected EntityManager em;
|
|
public RoutageDAOImpl() {
|
}
|
|
@Override
|
public EntityManager getEntityManager() {
|
return em;
|
}
|
|
@Override
|
public Long countRoutageByReferentielTypeFichierForParticipantForReceive(String versionReferentiel, String codeTypeFichier, Participant participant) {
|
return (Long) getEntityManager().createQuery("SELECT COALESCE(COUNT(r), 0) FROM Routage r "
|
+ "LEFT JOIN r.participantsReception p "
|
+ "LEFT JOIN r.noeudsReception n "
|
+ "LEFT JOIN r.groupeParticipantsReception gp LEFT JOIN gp.participants pa "
|
+ "LEFT JOIN r.groupeNoeudsReception gn LEFT JOIN gn.noeuds no "
|
+ "WHERE r.referentiel.version = :versionReferentiel AND r.typeFichier.code = :codeTypeFichier "
|
+ "AND (p = :participant OR pa = :participant OR n.participant = :participant OR no.participant = :participant)")
|
.setParameter("versionReferentiel", versionReferentiel)
|
.setParameter("codeTypeFichier", codeTypeFichier)
|
.setParameter("participant", participant)
|
.getSingleResult();
|
}
|
|
@Override
|
public Long countRoutageByReferentielTypeFichierForParticipantForSend(String versionReferentiel, String codeTypeFichier, Participant participant) {
|
return (Long) getEntityManager().createQuery("SELECT COALESCE(COUNT(r), 0) FROM Routage r "
|
+ "LEFT JOIN r.participantsEnvoi p "
|
+ "LEFT JOIN r.noeudsEnvoi n "
|
+ "LEFT JOIN r.groupeParticipantsEnvoi gp LEFT JOIN gp.participants pa "
|
+ "LEFT JOIN r.groupeNoeudsEnvoi gn LEFT JOIN gn.noeuds no "
|
+ "WHERE r.referentiel.version = :versionReferentiel AND r.typeFichier.code = :codeTypeFichier "
|
+ "AND (p = :participant OR pa = :participant OR n.participant = :participant OR no.participant = :participant)")
|
.setParameter("versionReferentiel", versionReferentiel)
|
.setParameter("codeTypeFichier", codeTypeFichier)
|
.setParameter("participant", participant)
|
.getSingleResult();
|
}
|
|
}
|