Skip to content

Commit

Permalink
Merge pull request #89 from abes-esr/ITEM-342-back-modifier-dto-et-re…
Browse files Browse the repository at this point in the history
…quete

Item 342 back modifier dto et requete
  • Loading branch information
pierre-maraval authored Nov 13, 2024
2 parents 4d83d13 + 2d36caf commit 4cb2c6c
Show file tree
Hide file tree
Showing 17 changed files with 375 additions and 158 deletions.
54 changes: 54 additions & 0 deletions core/src/main/java/fr/abes/item/core/dto/DemandeDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package fr.abes.item.core.dto;

import fr.abes.item.core.entities.baseXml.LibProfile;
import fr.abes.item.core.entities.item.Demande;
import lombok.Getter;
import lombok.Setter;

import java.util.List;
import java.util.Objects;

@Getter
@Setter
public class DemandeDto {
private Demande demande;

private Integer nbLignes;

public DemandeDto(Demande demande, Integer nbLignes) {
this.demande = demande;
this.nbLignes = nbLignes;
}

public DemandeDto(Demande demande, Long nbLignes) {
this.demande = demande;
this.nbLignes = Math.toIntExact(nbLignes);
}

public DemandeDto(Demande demande) {
this.demande = demande;
}

public String getRcr() {
return this.demande.getRcr();
}

public void feedIlnAndShortname(List<LibProfile> libProfileList){
//Si l'iln de la demande est nul, on l'alimente avec la liste d'entités Libprofile récupérée précédemment
if(this.demande.getIln() == null) {
for (LibProfile libProfile : libProfileList) {
if (Objects.equals(libProfile.getRcr(), this.demande.getRcr())) {
this.demande.setIln(libProfile.getIln());
}
}
}
//Si le shortname de la demande est nul, on l'alimente avec la liste d'entités Libprofile récupérée précédemment
if (this.demande.getShortname() == null) {
for (LibProfile libProfile : libProfileList) {
if (libProfile.getRcr().equals(this.demande.getRcr())) {
this.demande.setShortname(libProfile.getShortName());
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package fr.abes.item.core.repository.item;

import fr.abes.item.core.configuration.ItemConfiguration;
import fr.abes.item.core.dto.DemandeDto;
import fr.abes.item.core.entities.item.DemandeExemp;
import fr.abes.item.core.entities.item.TypeExemp;
import org.springframework.data.jpa.repository.JpaRepository;
Expand All @@ -26,20 +27,20 @@ public interface IDemandeExempDao extends JpaRepository<DemandeExemp, Integer> {
@Query("select e from TypeExemp e where e.numTypeExemp in (select d.typeExemp.numTypeExemp from DemandeExemp d where d.numDemande = :numDemande)")
TypeExemp getTypeExemp(@Param("numDemande") Integer numDemande);

@Query("select d from DemandeExemp d where d.iln = :iln and d.etatDemande.numEtat not in (9, 2, 10)")
List<DemandeExemp> getActiveDemandesExempForUserExceptedPreparedStatus(@Param("iln") String iln);
@Query("select new fr.abes.item.core.dto.DemandeDto(d, COUNT(l)) from DemandeExemp d JOIN d.ligneFichierExemps l where d.iln = :iln and d.etatDemande.numEtat not in (9, 2, 10) GROUP BY d")
List<DemandeDto> getActiveDemandesExempForUserExceptedPreparedStatus(@Param("iln") String iln);

@Query("select d from DemandeExemp d where d.iln = :iln and d.etatDemande.numEtat not in (9, 10)")
List<DemandeExemp> getAllActiveDemandesExempForAdmin(@Param("iln") String iln);
@Query("select new fr.abes.item.core.dto.DemandeDto(d, COUNT(l)) from DemandeExemp d JOIN d.ligneFichierExemps l where d.iln = :iln and d.etatDemande.numEtat not in (9, 10) GROUP BY d")
List<DemandeDto> getAllActiveDemandesExempForAdmin(@Param("iln") String iln);

@Query("select d from DemandeExemp d where d.etatDemande.numEtat not in (9, 10)")
List<DemandeExemp> getAllActiveDemandesExempForAdminExtended();
@Query("select new fr.abes.item.core.dto.DemandeDto(d, COUNT(l)) from DemandeExemp d JOIN d.ligneFichierExemps l where d.etatDemande.numEtat not in (9, 10) GROUP BY d")
List<DemandeDto> getAllActiveDemandesExempForAdminExtended();

@Query("select d from DemandeExemp d where d.iln = :iln and d.etatDemande.numEtat = 9")
List<DemandeExemp> getAllArchivedDemandesExemp(@Param("iln") String iln);
@Query("select new fr.abes.item.core.dto.DemandeDto(d, COUNT(l)) from DemandeExemp d JOIN d.ligneFichierExemps l where d.iln = :iln and d.etatDemande.numEtat = 9 GROUP BY d")
List<DemandeDto> getAllArchivedDemandesExemp(@Param("iln") String iln);

@Query("select d from DemandeExemp d where d.etatDemande.numEtat = 9")
List<DemandeExemp> getAllArchivedDemandesExempExtended();
@Query("select new fr.abes.item.core.dto.DemandeDto(d, COUNT(l)) from DemandeExemp d JOIN d.ligneFichierExemps l where d.etatDemande.numEtat = 9 GROUP BY d")
List<DemandeDto> getAllArchivedDemandesExempExtended();

//Même si l'ide signale la requête elle est correcte, demandes en statut terminé avec une ancienneté de plus de 90 jours sur la dernière date de modification récupérées
@Query("select d from DemandeExemp d where d.etatDemande.numEtat = 7 and (day(current_date) - day(d.dateModification)) > 90 order by d.dateModification asc")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package fr.abes.item.core.repository.item;

import fr.abes.item.core.configuration.ItemConfiguration;
import fr.abes.item.core.dto.DemandeDto;
import fr.abes.item.core.entities.item.DemandeModif;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
Expand All @@ -21,20 +22,20 @@ public interface IDemandeModifDao extends JpaRepository<DemandeModif, Integer> {
* @return les demandes appartenant à l'iln de l'utilisateur (un iln comprenant plusieurs rcr)
* et qui sont ni dans l'état préparé, ni dans l'état archivé
*/
@Query("select d from DemandeModif d where d.iln = :iln and d.etatDemande.numEtat not in (9, 2, 10)")
List<DemandeModif> getActiveDemandesModifForUserExceptedPreparedStatus(@Param("iln") String iln);
@Query("select new fr.abes.item.core.dto.DemandeDto(d, COUNT(l)) FROM DemandeModif d JOIN d.ligneFichierModifs l where d.iln = :iln and d.etatDemande.numEtat not in (9, 2, 10) GROUP BY d")
List<DemandeDto> getActiveDemandesModifForUserExceptedPreparedStatus(@Param("iln") String iln);

@Query("select d from DemandeModif d where d.iln = :iln and d.etatDemande.numEtat not in (9, 10)")
List<DemandeModif> getAllActiveDemandesModifForAdmin(@Param("iln") String iln);
@Query("select new fr.abes.item.core.dto.DemandeDto(d, COUNT(l)) from DemandeModif d JOIN d.ligneFichierModifs l where d.iln = :iln and d.etatDemande.numEtat not in (9, 10) GROUP BY d")
List<DemandeDto> getAllActiveDemandesModifForAdmin(@Param("iln") String iln);

@Query("select d from DemandeModif d where d.etatDemande.numEtat not in (9, 2, 10)")
List<DemandeModif> getAllActiveDemandesModifForAdminExtended();
@Query("select new fr.abes.item.core.dto.DemandeDto(d, COUNT(l)) from DemandeModif d JOIN d.ligneFichierModifs l where d.etatDemande.numEtat not in (9, 2, 10) GROUP BY d")
List<DemandeDto> getAllActiveDemandesModifForAdminExtended();

@Query("select d from DemandeModif d where d.iln = :iln and d.etatDemande.numEtat = 9")
List<DemandeModif> getAllArchivedDemandesModif(@Param("iln") String iln);
@Query("select new fr.abes.item.core.dto.DemandeDto(d, COUNT(l)) from DemandeModif d JOIN d.ligneFichierModifs l where d.iln = :iln and d.etatDemande.numEtat = 9 GROUP BY d")
List<DemandeDto> getAllArchivedDemandesModif(@Param("iln") String iln);

@Query("select d from DemandeModif d where d.etatDemande.numEtat = 9")
List<DemandeModif> getAllArchivedDemandesModifExtended();
@Query("select new fr.abes.item.core.dto.DemandeDto(d, COUNT(l)) from DemandeModif d JOIN d.ligneFichierModifs l where d.etatDemande.numEtat = 9 GROUP BY d")
List<DemandeDto> getAllArchivedDemandesModifExtended();

@Query("select d from DemandeModif d where d.etatDemande.numEtat = 5 order by d.dateModification asc")
List<DemandeModif> getNextDemandeToProceed();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package fr.abes.item.core.repository.item;

import fr.abes.item.core.configuration.ItemConfiguration;
import fr.abes.item.core.dto.DemandeDto;
import fr.abes.item.core.entities.item.DemandeSupp;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
Expand All @@ -12,17 +13,22 @@
@Repository
@ItemConfiguration
public interface IDemandeSuppDao extends JpaRepository<DemandeSupp, Integer> {
@Query("select d from DemandeSupp d where d.etatDemande.numEtat not in (9, 10)")
List<DemandeSupp> getAllActiveDemandesSuppForAdminExtended();
@Query("select d from DemandeSupp d where d.iln = :iln and d.etatDemande.numEtat not in (9, 10)")
List<DemandeSupp> getAllActiveDemandesSuppForAdmin(@Param("iln") String iln);
@Query("select d from DemandeSupp d where d.iln = :iln and d.etatDemande.numEtat = 9")
List<DemandeSupp> getAllArchivedDemandesSupp(@Param("iln") String iln);

@Query("select new fr.abes.item.core.dto.DemandeDto(d, COUNT(l)) FROM DemandeSupp d JOIN d.ligneFichierSupps l WHERE d.etatDemande.numEtat NOT IN (9, 10) GROUP BY d")
List<DemandeDto> getAllActiveDemandesSuppForAdminExtended();

@Query("select new fr.abes.item.core.dto.DemandeDto(d, COUNT(l)) FROM DemandeSupp d JOIN d.ligneFichierSupps l where d.iln = :iln and d.etatDemande.numEtat not in (9, 10) GROUP BY d")
List<DemandeDto> getAllActiveDemandesSuppForAdmin(@Param("iln") String iln);

@Query("select new fr.abes.item.core.dto.DemandeDto(d, COUNT(l)) FROM DemandeSupp d JOIN d.ligneFichierSupps l where d.iln = :iln and d.etatDemande.numEtat = 9 GROUP BY d")
List<DemandeDto> getAllArchivedDemandesSupp(@Param("iln") String iln);

@Query("select d from DemandeSupp d where d.iln = :iln and d.etatDemande.numEtat not in (9, 2, 10)")
List<DemandeDto> getActiveDemandesSuppForUserExceptedPreparedStatus(@Param("iln") String iln);

@Query("select new fr.abes.item.core.dto.DemandeDto(d, COUNT(l)) FROM DemandeSupp d JOIN d.ligneFichierSupps l where d.etatDemande.numEtat = 9 GROUP BY d")
List<DemandeDto> getAllArchivedDemandesSuppExtended();

List<DemandeSupp> getActiveDemandesSuppForUserExceptedPreparedStatus(@Param("iln") String iln);
@Query("select d from DemandeSupp d where d.etatDemande.numEtat = 9")
List<DemandeSupp> getAllArchivedDemandesSuppExtended();
List<DemandeSupp> findDemandeSuppsByEtatDemande_IdOrderByDateModificationAsc(Integer id);

@Query("select d from DemandeSupp d where d.etatDemande.numEtat = 7 and (day(current_date) - day(d.dateModification)) > 90 order by d.dateModification asc")
Expand All @@ -34,4 +40,13 @@ public interface IDemandeSuppDao extends JpaRepository<DemandeSupp, Integer> {

@Query("select d from DemandeSupp d where d.etatDemande.numEtat = 10 and (day(current_date) - day(d.dateModification)) > 210 order by d.dateModification asc")
List<DemandeSupp> getNextDemandeToDelete();

/**
* @param numDemande le numéro de la demande
* @return Le nombre de ligne du fichier qui ont été traitées sur cette demande et dont le retour du sudoc à été
* positif pour le traitement
*/
@Query("select count(lf) from LigneFichierSupp lf where lf.demandeSupp.numDemande = :numDemande and lf.traitee=1 and lf.retourSudoc = 'exemplaire supprimé'")
int getNbLigneFichierSuccessByDemande(@Param("numDemande") Integer numDemande);

}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import fr.abes.cbs.exception.CBSException;
import fr.abes.cbs.exception.ZoneException;
import fr.abes.item.core.dto.DemandeDto;
import fr.abes.item.core.entities.item.Demande;
import fr.abes.item.core.entities.item.LigneFichier;
import fr.abes.item.core.exception.DemandeCheckingException;
Expand Down Expand Up @@ -35,7 +36,7 @@ public interface IDemandeService {

Demande closeDemande(Demande demande) throws DemandeCheckingException;

List<Demande> getActiveDemandesForUser(String iln);
List<DemandeDto> getActiveDemandesForUser(String iln);

Demande getIdNextDemandeToProceed(int minHour, int maxHour);

Expand All @@ -45,13 +46,13 @@ public interface IDemandeService {

Demande changeStateCanceled(Demande demande, int etatDemande);

List<Demande> getAllArchivedDemandes(String iln);
List<DemandeDto> getAllArchivedDemandes(String iln);

List<Demande> getAllArchivedDemandesAllIln();
List<DemandeDto> getAllArchivedDemandesAllIln();

List<Demande> getAllActiveDemandesForAdminExtended();
List<DemandeDto> getAllActiveDemandesForAdminExtended();

List<Demande> getAllActiveDemandesForAdmin(String iln);
List<DemandeDto> getAllActiveDemandesForAdmin(String iln);

Demande returnState(Integer etape, Demande demande) throws DemandeCheckingException;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import fr.abes.item.core.configuration.factory.Strategy;
import fr.abes.item.core.constant.Constant;
import fr.abes.item.core.constant.TYPE_DEMANDE;
import fr.abes.item.core.dto.DemandeDto;
import fr.abes.item.core.entities.item.*;
import fr.abes.item.core.exception.DemandeCheckingException;
import fr.abes.item.core.exception.FileCheckingException;
Expand Down Expand Up @@ -87,21 +88,19 @@ public List<Demande> findAll() {
}

@Override
public List<Demande> getAllActiveDemandesForAdmin(String iln) {
List<DemandeExemp> demandeExemps = demandeExempDao.getAllActiveDemandesExempForAdmin(iln);
List<Demande> demandeList = new ArrayList<>(demandeExemps);
public List<DemandeDto> getAllActiveDemandesForAdmin(String iln) {
List<DemandeDto> ListeDemandeDto = demandeExempDao.getAllActiveDemandesExempForAdmin(iln);
//TODO 1 chopper les rcr en une iste string, 2 dao xml pour recuperer la liste des libelle avec un tableau mappé, 3 alimenter les entites LIB iteration

setIlnShortNameOnList(demandeList);
return demandeList;
setIlnShortNameOnDemandeDtoList(ListeDemandeDto);
return ListeDemandeDto;
}

@Override
public List<Demande> getAllActiveDemandesForAdminExtended() {
List<DemandeExemp> demandeExemp = demandeExempDao.getAllActiveDemandesExempForAdminExtended();
List<Demande> demandeList = new ArrayList<>(demandeExemp);
setIlnShortNameOnList(demandeList);
return demandeList;
public List<DemandeDto> getAllActiveDemandesForAdminExtended() {
List<DemandeDto> ListeDemandeDto = demandeExempDao.getAllActiveDemandesExempForAdminExtended();
setIlnShortNameOnDemandeDtoList(ListeDemandeDto);
return ListeDemandeDto;
}

public String getLibelleTypeExempDemande(Integer idDemande) {
Expand Down Expand Up @@ -140,11 +139,10 @@ public void deleteById(Integer id) {
* @return liste des demandeModifs de l'utilisateur (hors demandeModifs archivées)
*/
@Override
public List<Demande> getActiveDemandesForUser(String iln) {
List<DemandeExemp> demandeExemps = demandeExempDao.getActiveDemandesExempForUserExceptedPreparedStatus(iln);
List<Demande> listeDemande = new ArrayList<>(demandeExemps);
setIlnShortNameOnList(listeDemande);
return listeDemande;
public List<DemandeDto> getActiveDemandesForUser(String iln) {
List<DemandeDto> listeDemandeDto = demandeExempDao.getActiveDemandesExempForUserExceptedPreparedStatus(iln);
setIlnShortNameOnDemandeDtoList(listeDemandeDto);
return listeDemandeDto;
}

public boolean hasDonneeLocaleExistante() {
Expand Down Expand Up @@ -670,19 +668,17 @@ public String getInfoHeaderFichierResultat(Demande demande, LocalDateTime dateDe
}

@Override
public List<Demande> getAllArchivedDemandes(String iln) {
List<DemandeExemp> demandeExemp = demandeExempDao.getAllArchivedDemandesExemp(iln);
List<Demande> demandeList = new ArrayList<>(demandeExemp);
setIlnShortNameOnList(demandeList);
return demandeList;
public List<DemandeDto> getAllArchivedDemandes(String iln) {
List<DemandeDto> listDemandeDto = demandeExempDao.getAllArchivedDemandesExemp(iln);
setIlnShortNameOnDemandeDtoList(listDemandeDto);
return listDemandeDto;
}

@Override
public List<Demande> getAllArchivedDemandesAllIln() {
List<DemandeExemp> demandeExemp = demandeExempDao.getAllArchivedDemandesExempExtended();
List<Demande> demandeList = new ArrayList<>(demandeExemp);
setIlnShortNameOnList(demandeList);
return demandeList;
public List<DemandeDto> getAllArchivedDemandesAllIln() {
List<DemandeDto> listeDemandeDto = demandeExempDao.getAllArchivedDemandesExempExtended();
setIlnShortNameOnDemandeDtoList(listeDemandeDto);
return listeDemandeDto;
}


Expand Down
Loading

0 comments on commit 4cb2c6c

Please sign in to comment.