TrizRis/src/main/java/com/triz/trizservice/service/impl/DaoServiceImpl.java

291 lines
12 KiB
Java
Raw Normal View History

2026-07-26 14:39:10 +02:00
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.triz.trizservice.service.impl;
2026-07-30 10:37:16 +02:00
import com.triz.trizservice.modeles.Centre;
2026-07-26 14:39:10 +02:00
import com.triz.trizservice.service.DaoService;
import com.triz.trizservice.modeles.ServiceFonctiongroupe;
import com.triz.trizservice.modeles.ServiceFonctionnaliter;
import com.triz.trizservice.modeles.ServiceGroupe;
import com.triz.trizservice.modeles.ServiceIncrementation;
import com.triz.trizservice.modeles.ServiceMember;
import com.triz.trizservice.modeles.ServiceUser;
import com.triz.trizservice.modeles.ServicehistoriqueConnection;
import com.triz.trizservice.modeles.ServiceHistoriqueManipulation;
2026-07-30 10:37:16 +02:00
import com.triz.trizservice.modeles.ServiceUserCentre;
import com.triz.trizservice.modeles.Wilaya;
2026-07-26 14:39:10 +02:00
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import javax.persistence.NoResultException;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;
/**
*
* @author abder_000
*/
@Repository()
public class DaoServiceImpl implements DaoService {
@Resource(name = "sessionFactory")
SessionFactory sessionFactory;
private Session getCurrentSession() {
if (sessionFactory.getCurrentSession() == null) {
return sessionFactory.openSession();
}
sessionFactory.getCurrentSession().clear();
return sessionFactory.getCurrentSession();
}
@Override
public List<ServiceUser> getAllUsers() {
return getCurrentSession().createCriteria(ServiceUser.class).list();
}
@Override
public List<ServiceFonctionnaliter> getAllFonctionalite() {
return getCurrentSession().createCriteria(ServiceFonctionnaliter.class).list();
}
@Override
public boolean isItTimeToChangePass() {
return true;
}
@Override
public ServiceUser getUserById(String userId) {
return (ServiceUser) getCurrentSession()
.createQuery("SELECT user FROM ServiceUser user WHERE user.userid = :userid")
.setParameter("userid", userId)
.setMaxResults(1)
.uniqueResult();
}
@Override
public List<ServiceMember> getGroupsByUser(ServiceUser user) {
return getCurrentSession()
.createQuery("SELECT membre FROM ServiceMember membre WHERE membre.fkUser = :user", ServiceMember.class)
.setParameter("user", user)
.getResultList();
}
@Override
public ServiceMember getGroupByUser(ServiceUser user) {
return getCurrentSession()
.createQuery("SELECT membre FROM ServiceMember membre WHERE membre.fkUser = :user", ServiceMember.class)
.setParameter("user", user)
.setMaxResults(1)
.uniqueResult();
}
@Override
public void saveUser(ServiceUser object) {
getCurrentSession().saveOrUpdate(object);
}
@Override
public ServiceGroupe getGroupsById(String id) {
return (ServiceGroupe) getCurrentSession().createCriteria(ServiceGroupe.class).add(Restrictions.eq("id", id)).setMaxResults(1).uniqueResult();
}
@Override
public void saveGroup(ServiceGroupe object) {
getCurrentSession().saveOrUpdate(object);
}
@Override
public void saveMembership(ServiceMember object) {
getCurrentSession().saveOrUpdate(object);
}
@Override
public void saveFonctionsGroupes(ServiceFonctiongroupe object) {
getCurrentSession().saveOrUpdate(object);
}
@Override
public ServicehistoriqueConnection getLastHistoriqueConnectionByUsers(ServiceUser user) {
return (ServicehistoriqueConnection) getCurrentSession().createCriteria(ServicehistoriqueConnection.class).add(Restrictions.eq("fkUser", user)).addOrder(Order.desc("id")).setMaxResults(1).uniqueResult();
}
@Override
public ServicehistoriqueConnection getLastHistoriqueConnectionById(Long id) {
return (ServicehistoriqueConnection) getCurrentSession().createCriteria(ServicehistoriqueConnection.class).add(Restrictions.eq("id", id)).setMaxResults(1).uniqueResult();
}
@Override
public void save(ServicehistoriqueConnection historique) {
getCurrentSession().saveOrUpdate(historique);
}
@Override
public List<ServiceGroupe> getAllGroups() {
return getCurrentSession().createCriteria(ServiceGroupe.class).add(Restrictions.eq("actif", "true")).list();
}
@Override
public List<ServiceMember> getAllMembershipByUser(ServiceUser user) {
return getCurrentSession().createCriteria(ServiceMember.class).add(Restrictions.eq("fkUser", user)).list();
}
@Override
public List<ServiceFonctiongroupe> getAllFonctionsGroupesByGroupe(ServiceGroupe group) {
return getCurrentSession().createCriteria(ServiceFonctiongroupe.class).add(Restrictions.eq("fkGroupe", group)).list();
}
@Override
public List<ServiceMember> getAllMembership() {
return getCurrentSession().createCriteria(ServiceMember.class).addOrder(Order.desc("date")).list();
}
@Override
public ServiceFonctionnaliter getFonctionnaliteById(String id) {
return (ServiceFonctionnaliter) getCurrentSession().createCriteria(ServiceFonctionnaliter.class).add(Restrictions.eq("id", id)).setMaxResults(1).uniqueResult();
}
@Override
public List<ServiceFonctionnaliter> getAllFonctionnaliteServer() {
return getCurrentSession().createCriteria(ServiceFonctionnaliter.class).list();
}
@Override
public void save(ServiceFonctionnaliter object) {
getCurrentSession().saveOrUpdate(object);
}
@Override
public void save(ServiceHistoriqueManipulation object) {
getCurrentSession().saveOrUpdate(object);
}
@Override
public List<ServiceFonctiongroupe> getAllFonctionsGroups() {
return getCurrentSession().createCriteria(ServiceFonctiongroupe.class).list();
}
@Override
public List<ServiceFonctionnaliter> getFonctionServerByGroups(ServiceGroupe groupe) {
2026-07-30 10:37:16 +02:00
return getCurrentSession().createQuery("select sf from ServiceFonctionnaliter sf,ServiceFonctiongroupe sfg where sf.nom=sfg.fkFonctionnalite.nom and sfg.fkGroupe =:groupeS").setParameter("groupeS", groupe).list();
2026-07-26 14:39:10 +02:00
}
@Override
public List<ServiceFonctionnaliter> getFonctionServerByUsers(ServiceUser user) {
2026-07-30 10:37:16 +02:00
return getCurrentSession().createQuery("select sf from ServiceFonctionnaliter sf,ServiceFonctiongroupe sfg, ServiceMember mem where sf.id=sfg.fkFonctionnalite.id and sfg.fkGroupe = mem.fkGroupe and mem.fkUser= :user ").setParameter("user", user).list();
2026-07-26 14:39:10 +02:00
}
@Override
public ServiceFonctionnaliter getFonctionnaliteServerByFonction(String fonction) {
return (ServiceFonctionnaliter) getCurrentSession().createCriteria(ServiceFonctionnaliter.class).add(Restrictions.eq("fonction", fonction)).setMaxResults(1).uniqueResult();
}
@Override
public int genererBDD(String chemain, String nomSql) {
return getCurrentSession().createSQLQuery("BACKUP DATABASE " + nomSql + " TO DISK = '" + chemain + "' WITH FORMAT, MEDIANAME = 'SQLServerBackups', NAME = 'Full Backup of " + nomSql + "' ").executeUpdate();
}
@Override
public List<ServiceMember> getAllMemberShipByUser(ServiceUser user) {
return getCurrentSession().createQuery("select m from ServiceMember m where m.fkUser =:idUser").setParameter("idUser", user).list();
}
@Override
public ServiceFonctiongroupe getFonctionGroupByFonctionIdAndGoupe(String id, ServiceGroupe group) {
2026-07-30 10:37:16 +02:00
return (ServiceFonctiongroupe) getCurrentSession().createQuery("select fg from ServiceFonctiongroupe fg where fg.fkFonctionnalite.id =:fonction and fg.fkGroupe.id =:group").setParameter("fonction", id).setParameter("group", group.getId()).setMaxResults(1).uniqueResult();
2026-07-26 14:39:10 +02:00
}
@Override
public void save(ServiceIncrementation object) {
getCurrentSession().saveOrUpdate(object);
}
@Override
public ServiceIncrementation getIncrementation() {
return (ServiceIncrementation) getCurrentSession().createQuery("select increm from ServiceIncrementation increm").setMaxResults(1).uniqueResult();
}
@Override
public ServiceIncrementation getFirstIncrementation() {
return getCurrentSession().createQuery("SELECT s FROM ServiceIncrementation s ORDER BY s.id ASC", ServiceIncrementation.class).setMaxResults(1).getSingleResult();
}
@Override
public void save(ServiceGroupe object) {
getCurrentSession().saveOrUpdate(object);
}
@Override
public void removeFonctionsGroupes(ServiceFonctiongroupe fonctionGroupe) {
getCurrentSession().delete(fonctionGroupe);
}
@Override
public List<ServicehistoriqueConnection> getListHistoriqueConnectionByUsers(ServiceUser user) {
return getCurrentSession()
.createQuery("select e from ServicehistoriqueConnection e where e.fkUser = :user", ServicehistoriqueConnection.class)
.setParameter("user", user)
.list();
}
@Override
public List<ServiceHistoriqueManipulation> getListHistoriqueManipulationByUsersByEntreprise(ServiceUser user) {
return getCurrentSession()
.createQuery("select e from ServiceHistoriqueManipulation e where e.fkManipulateur = :user", ServiceHistoriqueManipulation.class)
.setParameter("user", user)
.list();
}
@Override
2026-07-30 10:37:16 +02:00
public Centre getEtablissementById(Object id) {
return (Centre) getCurrentSession().createQuery("select ca from Centre ca where ca.id = :id ").setParameter("id", id).setMaxResults(1).uniqueResult();
2026-07-26 14:39:10 +02:00
}
@Override
2026-07-30 10:37:16 +02:00
public List<Centre> getAllStockEtablissementFromUsersEtablissementByUser(ServiceUser user) {
2026-07-26 14:39:10 +02:00
CriteriaBuilder cb = getCurrentSession().getCriteriaBuilder();
2026-07-30 10:37:16 +02:00
CriteriaQuery<Centre> cq = cb.createQuery(Centre.class);
Root<ServiceUserCentre> root = cq.from(ServiceUserCentre.class);
2026-07-26 14:39:10 +02:00
2026-07-30 10:37:16 +02:00
cq.select(root.get("fkCentre")) // sélectionne la relation
2026-07-26 14:39:10 +02:00
.where(
cb.and(
cb.equal(root.get("fkUser"), user),
2026-07-30 10:37:16 +02:00
cb.equal(root.get("fkCentre").get("actif"), "true")
2026-07-26 14:39:10 +02:00
)
);
return getCurrentSession().createQuery(cq).getResultList();
}
@Override
2026-07-30 10:37:16 +02:00
public ServiceUserCentre getAllUserCentreByCentreByUser(Centre etablissement,ServiceUser user) {
return (ServiceUserCentre) getCurrentSession().createCriteria(ServiceUserCentre.class).add(Restrictions.eq("fkCentre", etablissement)).add(Restrictions.eq("fkUser", user)).setMaxResults(1).uniqueResult();
2026-07-26 14:39:10 +02:00
}
@Override
2026-07-30 10:37:16 +02:00
public List<ServiceFonctionnaliter> getFonctionServerByUsersByEtablissement(ServiceUser user, Centre etablissement) {
return getCurrentSession().createQuery("select sf from ServiceFonctionnaliter sf,ServiceFonctiongroupe sfg, ServiceMember mem where sf.id=sfg.fkFonctionnalite and sfg.fkGroupe= mem.fkGroupe and mem.fkUser=:user and mem.fkGroupe.fkCentre=:etab ").setParameter("etab", etablissement).setParameter("user", user).list();
2026-07-26 14:39:10 +02:00
}
@Override
public ServicehistoriqueConnection getLastStockHistoriqueConnectionByUsers(ServiceUser user) {
return (ServicehistoriqueConnection) getCurrentSession().createCriteria(ServicehistoriqueConnection.class).add(Restrictions.eq("fkUser", user)).addOrder(Order.desc("id")).setMaxResults(1).uniqueResult();
}
@Override
2026-07-30 10:37:16 +02:00
public List<Wilaya> getAllWilaya() {
return getCurrentSession().createQuery("select m from Wilaya m ").list();
2026-07-26 14:39:10 +02:00
}
}