diff --git a/core/src/main/java/fr/abes/item/core/dto/DemandeDto.java b/core/src/main/java/fr/abes/item/core/dto/DemandeDto.java new file mode 100644 index 00000000..dc65d623 --- /dev/null +++ b/core/src/main/java/fr/abes/item/core/dto/DemandeDto.java @@ -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 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()); + } + } + } + } +} diff --git a/core/src/main/java/fr/abes/item/core/repository/item/IDemandeExempDao.java b/core/src/main/java/fr/abes/item/core/repository/item/IDemandeExempDao.java index b0656627..4681f4fd 100644 --- a/core/src/main/java/fr/abes/item/core/repository/item/IDemandeExempDao.java +++ b/core/src/main/java/fr/abes/item/core/repository/item/IDemandeExempDao.java @@ -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; @@ -26,20 +27,20 @@ public interface IDemandeExempDao extends JpaRepository { @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 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 getActiveDemandesExempForUserExceptedPreparedStatus(@Param("iln") String iln); - @Query("select d from DemandeExemp d where d.iln = :iln and d.etatDemande.numEtat not in (9, 10)") - List 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 getAllActiveDemandesExempForAdmin(@Param("iln") String iln); - @Query("select d from DemandeExemp d where d.etatDemande.numEtat not in (9, 10)") - List 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 getAllActiveDemandesExempForAdminExtended(); - @Query("select d from DemandeExemp d where d.iln = :iln and d.etatDemande.numEtat = 9") - List 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 getAllArchivedDemandesExemp(@Param("iln") String iln); - @Query("select d from DemandeExemp d where d.etatDemande.numEtat = 9") - List 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 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") diff --git a/core/src/main/java/fr/abes/item/core/repository/item/IDemandeModifDao.java b/core/src/main/java/fr/abes/item/core/repository/item/IDemandeModifDao.java index 1c1f6a5b..2a892d7c 100644 --- a/core/src/main/java/fr/abes/item/core/repository/item/IDemandeModifDao.java +++ b/core/src/main/java/fr/abes/item/core/repository/item/IDemandeModifDao.java @@ -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; @@ -21,20 +22,20 @@ public interface IDemandeModifDao extends JpaRepository { * @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 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 getActiveDemandesModifForUserExceptedPreparedStatus(@Param("iln") String iln); - @Query("select d from DemandeModif d where d.iln = :iln and d.etatDemande.numEtat not in (9, 10)") - List 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 getAllActiveDemandesModifForAdmin(@Param("iln") String iln); - @Query("select d from DemandeModif d where d.etatDemande.numEtat not in (9, 2, 10)") - List 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 getAllActiveDemandesModifForAdminExtended(); - @Query("select d from DemandeModif d where d.iln = :iln and d.etatDemande.numEtat = 9") - List 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 getAllArchivedDemandesModif(@Param("iln") String iln); - @Query("select d from DemandeModif d where d.etatDemande.numEtat = 9") - List 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 getAllArchivedDemandesModifExtended(); @Query("select d from DemandeModif d where d.etatDemande.numEtat = 5 order by d.dateModification asc") List getNextDemandeToProceed(); diff --git a/core/src/main/java/fr/abes/item/core/repository/item/IDemandeSuppDao.java b/core/src/main/java/fr/abes/item/core/repository/item/IDemandeSuppDao.java index b954a611..0b32ee06 100644 --- a/core/src/main/java/fr/abes/item/core/repository/item/IDemandeSuppDao.java +++ b/core/src/main/java/fr/abes/item/core/repository/item/IDemandeSuppDao.java @@ -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; @@ -12,17 +13,22 @@ @Repository @ItemConfiguration public interface IDemandeSuppDao extends JpaRepository { - @Query("select d from DemandeSupp d where d.etatDemande.numEtat not in (9, 10)") - List getAllActiveDemandesSuppForAdminExtended(); - @Query("select d from DemandeSupp d where d.iln = :iln and d.etatDemande.numEtat not in (9, 10)") - List getAllActiveDemandesSuppForAdmin(@Param("iln") String iln); - @Query("select d from DemandeSupp d where d.iln = :iln and d.etatDemande.numEtat = 9") - List 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 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 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 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 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 getAllArchivedDemandesSuppExtended(); - List getActiveDemandesSuppForUserExceptedPreparedStatus(@Param("iln") String iln); - @Query("select d from DemandeSupp d where d.etatDemande.numEtat = 9") - List getAllArchivedDemandesSuppExtended(); List 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") @@ -34,4 +40,13 @@ public interface IDemandeSuppDao extends JpaRepository { @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 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); + } diff --git a/core/src/main/java/fr/abes/item/core/service/IDemandeService.java b/core/src/main/java/fr/abes/item/core/service/IDemandeService.java index d3a9c175..6f888d1a 100644 --- a/core/src/main/java/fr/abes/item/core/service/IDemandeService.java +++ b/core/src/main/java/fr/abes/item/core/service/IDemandeService.java @@ -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; @@ -35,7 +36,7 @@ public interface IDemandeService { Demande closeDemande(Demande demande) throws DemandeCheckingException; - List getActiveDemandesForUser(String iln); + List getActiveDemandesForUser(String iln); Demande getIdNextDemandeToProceed(int minHour, int maxHour); @@ -45,13 +46,13 @@ public interface IDemandeService { Demande changeStateCanceled(Demande demande, int etatDemande); - List getAllArchivedDemandes(String iln); + List getAllArchivedDemandes(String iln); - List getAllArchivedDemandesAllIln(); + List getAllArchivedDemandesAllIln(); - List getAllActiveDemandesForAdminExtended(); + List getAllActiveDemandesForAdminExtended(); - List getAllActiveDemandesForAdmin(String iln); + List getAllActiveDemandesForAdmin(String iln); Demande returnState(Integer etape, Demande demande) throws DemandeCheckingException; diff --git a/core/src/main/java/fr/abes/item/core/service/impl/DemandeExempService.java b/core/src/main/java/fr/abes/item/core/service/impl/DemandeExempService.java index 9c0be969..7461d4ae 100644 --- a/core/src/main/java/fr/abes/item/core/service/impl/DemandeExempService.java +++ b/core/src/main/java/fr/abes/item/core/service/impl/DemandeExempService.java @@ -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; @@ -87,21 +88,19 @@ public List findAll() { } @Override - public List getAllActiveDemandesForAdmin(String iln) { - List demandeExemps = demandeExempDao.getAllActiveDemandesExempForAdmin(iln); - List demandeList = new ArrayList<>(demandeExemps); + public List getAllActiveDemandesForAdmin(String iln) { + List 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 getAllActiveDemandesForAdminExtended() { - List demandeExemp = demandeExempDao.getAllActiveDemandesExempForAdminExtended(); - List demandeList = new ArrayList<>(demandeExemp); - setIlnShortNameOnList(demandeList); - return demandeList; + public List getAllActiveDemandesForAdminExtended() { + List ListeDemandeDto = demandeExempDao.getAllActiveDemandesExempForAdminExtended(); + setIlnShortNameOnDemandeDtoList(ListeDemandeDto); + return ListeDemandeDto; } public String getLibelleTypeExempDemande(Integer idDemande) { @@ -140,11 +139,10 @@ public void deleteById(Integer id) { * @return liste des demandeModifs de l'utilisateur (hors demandeModifs archivées) */ @Override - public List getActiveDemandesForUser(String iln) { - List demandeExemps = demandeExempDao.getActiveDemandesExempForUserExceptedPreparedStatus(iln); - List listeDemande = new ArrayList<>(demandeExemps); - setIlnShortNameOnList(listeDemande); - return listeDemande; + public List getActiveDemandesForUser(String iln) { + List listeDemandeDto = demandeExempDao.getActiveDemandesExempForUserExceptedPreparedStatus(iln); + setIlnShortNameOnDemandeDtoList(listeDemandeDto); + return listeDemandeDto; } public boolean hasDonneeLocaleExistante() { @@ -670,19 +668,17 @@ public String getInfoHeaderFichierResultat(Demande demande, LocalDateTime dateDe } @Override - public List getAllArchivedDemandes(String iln) { - List demandeExemp = demandeExempDao.getAllArchivedDemandesExemp(iln); - List demandeList = new ArrayList<>(demandeExemp); - setIlnShortNameOnList(demandeList); - return demandeList; + public List getAllArchivedDemandes(String iln) { + List listDemandeDto = demandeExempDao.getAllArchivedDemandesExemp(iln); + setIlnShortNameOnDemandeDtoList(listDemandeDto); + return listDemandeDto; } @Override - public List getAllArchivedDemandesAllIln() { - List demandeExemp = demandeExempDao.getAllArchivedDemandesExempExtended(); - List demandeList = new ArrayList<>(demandeExemp); - setIlnShortNameOnList(demandeList); - return demandeList; + public List getAllArchivedDemandesAllIln() { + List listeDemandeDto = demandeExempDao.getAllArchivedDemandesExempExtended(); + setIlnShortNameOnDemandeDtoList(listeDemandeDto); + return listeDemandeDto; } diff --git a/core/src/main/java/fr/abes/item/core/service/impl/DemandeModifService.java b/core/src/main/java/fr/abes/item/core/service/impl/DemandeModifService.java index 30c69ad5..5c3f8336 100644 --- a/core/src/main/java/fr/abes/item/core/service/impl/DemandeModifService.java +++ b/core/src/main/java/fr/abes/item/core/service/impl/DemandeModifService.java @@ -8,6 +8,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; @@ -60,11 +61,10 @@ public DemandeModifService(ILibProfileDao libProfileDao, IDemandeModifDao demand } @Override - public List getAllActiveDemandesForAdminExtended() { - List demandeModif = demandeModifDao.getAllActiveDemandesModifForAdminExtended(); - List demandeList = new ArrayList<>(demandeModif); - setIlnShortNameOnList(demandeList); - return demandeList; + public List getAllActiveDemandesForAdminExtended() { + List ListeDemandeDto = demandeModifDao.getAllActiveDemandesModifForAdminExtended(); + setIlnShortNameOnDemandeDtoList(ListeDemandeDto); + return ListeDemandeDto; } @@ -75,27 +75,24 @@ public List getAllActiveDemandesForAdminExtended() { * @return liste des demandeModifs de l'utilisateur (hors demandeModifs archivées) */ @Override - public List getActiveDemandesForUser(String iln) { - List demandeModifs = this.demandeModifDao.getActiveDemandesModifForUserExceptedPreparedStatus(iln); - List listeDemande = new ArrayList<>(demandeModifs); - setIlnShortNameOnList(listeDemande); - return listeDemande; + public List getActiveDemandesForUser(String iln) { + List ListeDemandeDto = this.demandeModifDao.getActiveDemandesModifForUserExceptedPreparedStatus(iln); + setIlnShortNameOnDemandeDtoList(ListeDemandeDto); + return ListeDemandeDto; } @Override - public List getAllArchivedDemandes(String iln) { - List demandeModifs = this.demandeModifDao.getAllArchivedDemandesModif(iln); - List listeDemandes = new ArrayList<>(demandeModifs); - setIlnShortNameOnList(listeDemandes); - return listeDemandes; + public List getAllArchivedDemandes(String iln) { + List ListeDemandeDto = this.demandeModifDao.getAllArchivedDemandesModif(iln); + setIlnShortNameOnDemandeDtoList(ListeDemandeDto); + return ListeDemandeDto; } @Override - public List getAllArchivedDemandesAllIln() { - List demandeModifs = this.demandeModifDao.getAllArchivedDemandesModifExtended(); - List listeDemandes = new ArrayList<>(demandeModifs); - setIlnShortNameOnList(listeDemandes); - return listeDemandes; + public List getAllArchivedDemandesAllIln() { + List ListeDemandeDto = this.demandeModifDao.getAllArchivedDemandesModifExtended(); + setIlnShortNameOnDemandeDtoList(ListeDemandeDto); + return ListeDemandeDto; } /** @@ -326,11 +323,10 @@ public Exemplaire getNoticeTraitee(Demande demande, String exemplaire, LigneFich * @return la liste de toutes les demandeModifs */ @Override - public List getAllActiveDemandesForAdmin(String iln) { - List demandeModifs = demandeModifDao.getAllActiveDemandesModifForAdmin(iln); - List demandeList = new ArrayList<>(demandeModifs); - setIlnShortNameOnList(demandeList); - return demandeList; + public List getAllActiveDemandesForAdmin(String iln) { + List listeDemandeDto = demandeModifDao.getAllActiveDemandesModifForAdmin(iln); + setIlnShortNameOnDemandeDtoList(listeDemandeDto); + return listeDemandeDto; } /** diff --git a/core/src/main/java/fr/abes/item/core/service/impl/DemandeRecouvService.java b/core/src/main/java/fr/abes/item/core/service/impl/DemandeRecouvService.java index 6214a375..6a17f62c 100644 --- a/core/src/main/java/fr/abes/item/core/service/impl/DemandeRecouvService.java +++ b/core/src/main/java/fr/abes/item/core/service/impl/DemandeRecouvService.java @@ -6,6 +6,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.Demande; import fr.abes.item.core.entities.item.DemandeRecouv; import fr.abes.item.core.entities.item.EtatDemande; @@ -61,11 +62,11 @@ public List findAll() { } @Override - public List getAllActiveDemandesForAdmin(String iln) { - List demandeRecouvs = demandeRecouvDao.getAllActiveDemandesRecouvForAdmin(iln); - List demandeList = new ArrayList<>(demandeRecouvs); - setIlnShortNameOnList(demandeList); - return demandeList; + public List getAllActiveDemandesForAdmin(String iln) { + List listeDemandeRecouv = demandeRecouvDao.getAllActiveDemandesRecouvForAdmin(iln); + List listeDemandeDto = getListDemandeDtoFromListDemandeRecouv(listeDemandeRecouv); + setIlnShortNameOnDemandeDtoList(listeDemandeDto); + return listeDemandeDto; } @Override @@ -109,19 +110,19 @@ public DemandeRecouv creerDemande(String rcr, Integer userNum) { * @return liste des demandeModifs de l'utilisateur (hors demandeModifs archivées) */ @Override - public List getActiveDemandesForUser(String iln) { - List demandeRecouvs = this.demandeRecouvDao.getActiveDemandesRecouvForUserExceptedPreparedStatus(iln); - List listeDemande = new ArrayList<>(demandeRecouvs); - setIlnShortNameOnList(listeDemande); - return listeDemande; + public List getActiveDemandesForUser(String iln) { + List listeDemandeRecouv = this.demandeRecouvDao.getActiveDemandesRecouvForUserExceptedPreparedStatus(iln); + List listeDemandeDto = getListDemandeDtoFromListDemandeRecouv(listeDemandeRecouv); + setIlnShortNameOnDemandeDtoList(listeDemandeDto); + return listeDemandeDto; } @Override - public List getAllActiveDemandesForAdminExtended() { - List demandeRecouv = demandeRecouvDao.getAllActiveDemandesRecouvForAdminExtended(); - List demandeList = new ArrayList<>(demandeRecouv); - setIlnShortNameOnList(demandeList); - return demandeList; + public List getAllActiveDemandesForAdminExtended() { + List listeDemandeRecouv = demandeRecouvDao.getAllActiveDemandesRecouvForAdminExtended(); + List listeDemandeDto = getListDemandeDtoFromListDemandeRecouv(listeDemandeRecouv); + setIlnShortNameOnDemandeDtoList(listeDemandeDto); + return listeDemandeDto; } @Override @@ -209,19 +210,19 @@ public Demande changeStateCanceled(Demande demande, int etatDemande) { } @Override - public List getAllArchivedDemandes(String iln) { - List demandeRecouvs = this.demandeRecouvDao.getAllArchivedDemandesRecouv(iln); - List demandeList = new ArrayList<>(demandeRecouvs); - setIlnShortNameOnList(demandeList); - return demandeList; + public List getAllArchivedDemandes(String iln) { + List listeDemandeRecouv = this.demandeRecouvDao.getAllArchivedDemandesRecouv(iln); + List listeDemandeDto = getListDemandeDtoFromListDemandeRecouv(listeDemandeRecouv); + setIlnShortNameOnDemandeDtoList(listeDemandeDto); + return listeDemandeDto; } @Override - public List getAllArchivedDemandesAllIln() { - List demandeRecouvs = this.demandeRecouvDao.getAllArchivedDemandesRecouvExtended(); - List demandeList = new ArrayList<>(demandeRecouvs); - setIlnShortNameOnList(demandeList); - return demandeList; + public List getAllArchivedDemandesAllIln() { + List listeDemandeRecouv = this.demandeRecouvDao.getAllArchivedDemandesRecouvExtended(); + List listeDemandeDto = getListDemandeDtoFromListDemandeRecouv(listeDemandeRecouv); + setIlnShortNameOnDemandeDtoList(listeDemandeDto); + return listeDemandeDto; } @Override @@ -281,6 +282,14 @@ private int getPreviousState(int etatDemande) { }; } + private List getListDemandeDtoFromListDemandeRecouv(List listeDemandeRecouv) { + List listeDemandeDto = new ArrayList<>(); + for (DemandeRecouv demandeRecouv: listeDemandeRecouv) { + listeDemandeDto.add(new DemandeDto(demandeRecouv)); + } + return listeDemandeDto; + } + public int launchQueryToSudoc(String codeIndex, String valeurs) throws IOException, QueryToSudocException { String[] tabvaleurs = valeurs.split(";"); String query = getQueryToSudoc(codeIndex, null, tabvaleurs); diff --git a/core/src/main/java/fr/abes/item/core/service/impl/DemandeService.java b/core/src/main/java/fr/abes/item/core/service/impl/DemandeService.java index 17160079..df4d08a6 100644 --- a/core/src/main/java/fr/abes/item/core/service/impl/DemandeService.java +++ b/core/src/main/java/fr/abes/item/core/service/impl/DemandeService.java @@ -1,5 +1,6 @@ package fr.abes.item.core.service.impl; +import fr.abes.item.core.dto.DemandeDto; import fr.abes.item.core.entities.baseXml.LibProfile; import fr.abes.item.core.entities.item.Demande; import fr.abes.item.core.repository.baseXml.ILibProfileDao; @@ -27,6 +28,10 @@ public void setIlnShortNameOnList(List demandeList) { setIlnShortNameOnDemandes(demandeList); } + public void setIlnShortNameOnDemandeDtoList(List demandeDtoList) { + setIlnShortNameOnDemandesDto(demandeDtoList); + } + /** * Effectue une recherche pour retournée une entité LibProfile qui correspond à un établissement à partir * du rcr associé au numéro de la demande @@ -74,4 +79,34 @@ public void setIlnShortNameOnDemandes(List demandeList) { } } + public void setIlnShortNameOnDemandesDto(List demandeDtoList) { + List demandesIdListe = new ArrayList<>(); + + //Alimentation d'une liste de rcr + for (DemandeDto demandeDto : demandeDtoList) { + demandesIdListe.add(demandeDto.getRcr()); + } + + //Dédoublonnage de la liste de rcr + Set set = new TreeSet<>(String.CASE_INSENSITIVE_ORDER); + Iterator i = demandesIdListe.iterator(); + while (i.hasNext()) { + String s = i.next(); + if (set.contains(s)) { + i.remove(); + } + else { + set.add(s); + } + } + + //Récupération d'une liste d'entités LibProfile avec une liste rcr passée en paramètre + List listLibProfile = libProfileDao.getShortnameAndIlnFromRcr(demandesIdListe); + + //Alimentation des attributs shortname et iln de chaque entité demande en cas de manquant / vide + for (DemandeDto demandeDto : demandeDtoList) { + demandeDto.feedIlnAndShortname(listLibProfile); + } + } + } diff --git a/core/src/main/java/fr/abes/item/core/service/impl/DemandeSuppService.java b/core/src/main/java/fr/abes/item/core/service/impl/DemandeSuppService.java index 1d484a79..8601980d 100644 --- a/core/src/main/java/fr/abes/item/core/service/impl/DemandeSuppService.java +++ b/core/src/main/java/fr/abes/item/core/service/impl/DemandeSuppService.java @@ -10,6 +10,7 @@ import fr.abes.item.core.constant.Constant; import fr.abes.item.core.constant.TYPE_DEMANDE; import fr.abes.item.core.constant.TYPE_SUPPRESSION; +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; @@ -238,11 +239,10 @@ public Demande closeDemande(Demande demande) throws DemandeCheckingException { * @return liste des demandesSupp de l'utilisateur (hors demandesSupp archivées) */ @Override - public List getActiveDemandesForUser(String iln) { - List demandesSupp = this.demandeSuppDao.getActiveDemandesSuppForUserExceptedPreparedStatus(iln); - List listeDemande = new ArrayList<>(demandesSupp); - setIlnShortNameOnList(listeDemande); - return listeDemande; + public List getActiveDemandesForUser(String iln) { + List listeDemandesDto = this.demandeSuppDao.getActiveDemandesSuppForUserExceptedPreparedStatus(iln); + setIlnShortNameOnDemandeDtoList(listeDemandesDto); + return listeDemandesDto; } @Override @@ -295,27 +295,24 @@ public Demande changeStateCanceled(Demande demande, int etatDemande) { } @Override - public List getAllArchivedDemandes(String iln) { - List demandesSupp = this.demandeSuppDao.getAllArchivedDemandesSupp(iln); - List listeDemandes = new ArrayList<>(demandesSupp); - setIlnShortNameOnList(listeDemandes); - return listeDemandes; + public List getAllArchivedDemandes(String iln) { + List listeDemandesDto = this.demandeSuppDao.getAllArchivedDemandesSupp(iln); + setIlnShortNameOnDemandeDtoList(listeDemandesDto); + return listeDemandesDto; } @Override - public List getAllArchivedDemandesAllIln() { - List demandesSupp = this.demandeSuppDao.getAllArchivedDemandesSuppExtended(); - List listeDemandes = new ArrayList<>(demandesSupp); - setIlnShortNameOnList(listeDemandes); - return listeDemandes; + public List getAllArchivedDemandesAllIln() { + List listeDemandesDto = this.demandeSuppDao.getAllArchivedDemandesSuppExtended(); + setIlnShortNameOnDemandeDtoList(listeDemandesDto); + return listeDemandesDto; } @Override - public List getAllActiveDemandesForAdminExtended() { - List demandeSupps = demandeSuppDao.getAllActiveDemandesSuppForAdminExtended(); - List demandesList = new ArrayList<>(demandeSupps); - setIlnShortNameOnList(demandesList); - return demandesList; + public List getAllActiveDemandesForAdminExtended() { + List listeDemandesDto = demandeSuppDao.getAllActiveDemandesSuppForAdminExtended(); + setIlnShortNameOnDemandeDtoList(listeDemandesDto); + return listeDemandesDto; } /** @@ -327,11 +324,10 @@ public List getAllActiveDemandesForAdminExtended() { * @return la liste de toutes les demandesSupp */ @Override - public List getAllActiveDemandesForAdmin(String iln) { - List demandesSupp = demandeSuppDao.getAllActiveDemandesSuppForAdmin(iln); - List demandeList = new ArrayList<>(demandesSupp); - setIlnShortNameOnList(demandeList); - return demandeList; + public List getAllActiveDemandesForAdmin(String iln) { + List listeDemandesDto = demandeSuppDao.getAllActiveDemandesSuppForAdmin(iln); + setIlnShortNameOnDemandeDtoList(listeDemandesDto); + return listeDemandesDto; } @Override diff --git a/web/src/main/java/fr/abes/item/dto/DemandeExempWebDto.java b/web/src/main/java/fr/abes/item/dto/DemandeExempWebDto.java index b6ae7612..b6bd33e2 100644 --- a/web/src/main/java/fr/abes/item/dto/DemandeExempWebDto.java +++ b/web/src/main/java/fr/abes/item/dto/DemandeExempWebDto.java @@ -2,6 +2,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeName; +import fr.abes.item.core.dto.DemandeDto; import fr.abes.item.core.entities.item.DemandeExemp; import lombok.AllArgsConstructor; import lombok.Getter; @@ -21,6 +22,8 @@ public class DemandeExempWebDto extends DemandeWebDto { private String typeExemp; @JsonProperty("indexRecherche") private String indexRecherche; + @JsonProperty("nbExemplaires") + protected Integer nbExemplaires; public DemandeExempWebDto(Integer id, String rcr, String shortName, String iln, String etatDemande, String commentaire, Integer pourcentageProgressionTraitement, String dateCreation, String dateModification, String typeExemp, String indexRecherche) { super(id, rcr, shortName, iln, etatDemande, commentaire, pourcentageProgressionTraitement, dateCreation, dateModification); @@ -48,4 +51,30 @@ public DemandeExempWebDto(DemandeExemp demande) { if (demande.getIndexRecherche() != null) this.indexRecherche = demande.getIndexRecherche().getLibelle(); } + + /** + * Constructeurs qui gèrent l'ajout du nombre de lignes dans la demande + * @param demandeDto un objet DemandeDto + */ + public DemandeExempWebDto(DemandeDto demandeDto) { + DemandeExemp demande = (DemandeExemp) demandeDto.getDemande(); + DateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm"); + String dateCreation = format.format(demande.getDateCreation()); + String dateModification = format.format(demande.getDateModification()); + this.id = demande.getId(); + this.rcr = demande.getRcr(); + this.shortName = demande.getShortname(); + this.iln = demande.getIln(); + if (demande.getEtatDemande() != null) + this.etatDemande = demande.getEtatDemande().getLibelle(); + this.commentaire = demande.getCommentaire(); + this.pourcentageProgressionTraitement = demande.getPourcentageProgressionTraitement(); + this.dateCreation = dateCreation; + this.dateModification = dateModification; + if (demande.getTypeExemp() != null) + this.typeExemp = demande.getTypeExemp().getLibelle(); + if (demande.getIndexRecherche() != null) + this.indexRecherche = demande.getIndexRecherche().getLibelle(); + this.nbExemplaires = demandeDto.getNbLignes(); + } } diff --git a/web/src/main/java/fr/abes/item/dto/DemandeModifWebDto.java b/web/src/main/java/fr/abes/item/dto/DemandeModifWebDto.java index 8cc15eff..32488a0c 100644 --- a/web/src/main/java/fr/abes/item/dto/DemandeModifWebDto.java +++ b/web/src/main/java/fr/abes/item/dto/DemandeModifWebDto.java @@ -2,6 +2,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeName; +import fr.abes.item.core.dto.DemandeDto; import fr.abes.item.core.entities.item.DemandeModif; import lombok.Getter; import lombok.NoArgsConstructor; @@ -19,6 +20,8 @@ public class DemandeModifWebDto extends DemandeWebDto { private String zoneEtSousZone; @JsonProperty("traitement") private String traitement; + @JsonProperty("nbExemplaires") + protected Integer nbExemplaires; public DemandeModifWebDto(Integer id, String rcr, String shortName, String iln, String etatDemande, String commentaire, Integer pourcentageProgressionTraitement, String dateCreation, String dateModification, String zoneEtSousZone, String traitement) { super(id, rcr, shortName, iln, etatDemande, commentaire, pourcentageProgressionTraitement, dateCreation, dateModification); @@ -49,4 +52,34 @@ public DemandeModifWebDto(DemandeModif demande) { if (demande.getTraitement() != null) this.traitement = demande.getTraitement().getLibelle(); } + + /** + * Constructeurs qui gèrent l'ajout du nombre de lignes dans la demande + * @param demandeDto un objet DemandeDto + */ + public DemandeModifWebDto(DemandeDto demandeDto) { + DemandeModif demande = (DemandeModif) demandeDto.getDemande(); + DateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm"); + String dateCreation = format.format(demande.getDateCreation()); + String dateModification = format.format(demande.getDateModification()); + this.id = demande.getId(); + this.rcr = demande.getRcr(); + this.shortName = demande.getShortname(); + this.iln = demande.getIln(); + if (demande.getEtatDemande() != null) + this.etatDemande = demande.getEtatDemande().getLibelle(); + this.commentaire = demande.getCommentaire(); + this.pourcentageProgressionTraitement = demande.getPourcentageProgressionTraitement(); + this.dateCreation = dateCreation; + this.dateModification = dateModification; + if (demande.getZone() != null) { + this.zoneEtSousZone = demande.getZone(); + if (demande.getSousZone() != null) { + this.zoneEtSousZone += " " + demande.getSousZone(); + } + } + if (demande.getTraitement() != null) + this.traitement = demande.getTraitement().getLibelle(); + this.nbExemplaires = demandeDto.getNbLignes(); + } } diff --git a/web/src/main/java/fr/abes/item/dto/DemandeSuppWebDto.java b/web/src/main/java/fr/abes/item/dto/DemandeSuppWebDto.java index df28e116..bed23048 100644 --- a/web/src/main/java/fr/abes/item/dto/DemandeSuppWebDto.java +++ b/web/src/main/java/fr/abes/item/dto/DemandeSuppWebDto.java @@ -3,6 +3,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeName; import fr.abes.item.core.constant.TYPE_SUPPRESSION; +import fr.abes.item.core.dto.DemandeDto; import fr.abes.item.core.entities.item.DemandeSupp; import lombok.Getter; import lombok.NoArgsConstructor; @@ -18,6 +19,8 @@ public class DemandeSuppWebDto extends DemandeWebDto { @JsonProperty("typeSuppression") private String typeSuppression; + @JsonProperty("nbExemplaires") + protected Integer nbExemplaires; public DemandeSuppWebDto(Integer id, String rcr, String shortName, String iln, String etatDemande, String commentaire, Integer pourcentageProgressionTraitement, String dateCreation, String dateModification, String typeSuppression) { super(id, rcr, shortName, iln, etatDemande, commentaire, pourcentageProgressionTraitement, dateCreation, dateModification); this.typeSuppression = typeSuppression; @@ -41,4 +44,29 @@ public DemandeSuppWebDto(DemandeSupp demande) { if (demande.getTypeSuppression() != null) this.typeSuppression = demande.getTypeSuppression().toString(); } + + /** + * Constructeurs qui gèrent l'ajout du nombre de lignes dans la demande + * @param demandeDto un objet DemandeDto + */ + public DemandeSuppWebDto(DemandeDto demandeDto) { + DemandeSupp demande = (DemandeSupp) demandeDto.getDemande(); + DateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm"); + String dateCreation = format.format(demande.getDateCreation()); + String dateModification = format.format(demande.getDateModification()); + this.id = demande.getId(); + this.rcr = demande.getRcr(); + this.shortName = demande.getShortname(); + this.iln = demande.getIln(); + if (demande.getEtatDemande() != null) + this.etatDemande = demande.getEtatDemande().getLibelle(); + this.commentaire = demande.getCommentaire(); + this.pourcentageProgressionTraitement = demande.getPourcentageProgressionTraitement(); + this.dateCreation = dateCreation; + this.dateModification = dateModification; + + if (demande.getTypeSuppression() != null) + this.typeSuppression = demande.getTypeSuppression().toString(); + this.nbExemplaires = demandeDto.getNbLignes(); + } } diff --git a/web/src/main/java/fr/abes/item/dto/DemandeWebDto.java b/web/src/main/java/fr/abes/item/dto/DemandeWebDto.java index f93abc03..e556fd4c 100644 --- a/web/src/main/java/fr/abes/item/dto/DemandeWebDto.java +++ b/web/src/main/java/fr/abes/item/dto/DemandeWebDto.java @@ -15,6 +15,7 @@ @JsonSubTypes.Type(value = DemandeModifWebDto.class, name = "MODIF"), @JsonSubTypes.Type(value = DemandeExempWebDto.class, name = "EXEMP"), @JsonSubTypes.Type(value = DemandeRecouvWebDto.class, name = "RECOUV"), + @JsonSubTypes.Type(value = DemandeSuppWebDto.class, name = "SUPP"), }) @AllArgsConstructor @NoArgsConstructor diff --git a/web/src/main/java/fr/abes/item/dto/DtoBuilder.java b/web/src/main/java/fr/abes/item/dto/DtoBuilder.java index 3304d85e..74606886 100644 --- a/web/src/main/java/fr/abes/item/dto/DtoBuilder.java +++ b/web/src/main/java/fr/abes/item/dto/DtoBuilder.java @@ -1,6 +1,7 @@ package fr.abes.item.dto; import fr.abes.item.core.constant.TYPE_DEMANDE; +import fr.abes.item.core.dto.DemandeDto; import fr.abes.item.core.entities.item.*; import jakarta.annotation.PostConstruct; import org.springframework.stereotype.Service; @@ -32,6 +33,22 @@ public DemandeWebDto buildDemandeDto(Demande demande, TYPE_DEMANDE type) { }; } + /** + * Méthode qui permet d'appeler les constructeurs qui gèrent l'ajout du nombre de lignes par demande + * @param demandeDto un objet DemandeDto + * @param type un ENUM TYPE_DEMANDE + * @return DemandeWebDto + */ + public DemandeWebDto buildDemandeDtoWithNbLines(DemandeDto demandeDto, TYPE_DEMANDE type) { + return switch (type) { + case EXEMP -> new DemandeExempWebDto(demandeDto); + case MODIF -> new DemandeModifWebDto(demandeDto); + case RECOUV -> new DemandeRecouvWebDto((DemandeRecouv) demandeDto.getDemande()); + case SUPP -> new DemandeSuppWebDto(demandeDto); + }; + } + + public UtilisateurWebDto buildUtilisateurDto(Utilisateur utilisateur) { return new UtilisateurWebDto(utilisateur.getId(), utilisateur.getEmail()); } diff --git a/web/src/main/java/fr/abes/item/web/DemandeRestService.java b/web/src/main/java/fr/abes/item/web/DemandeRestService.java index f91215ee..9b756eb2 100644 --- a/web/src/main/java/fr/abes/item/web/DemandeRestService.java +++ b/web/src/main/java/fr/abes/item/web/DemandeRestService.java @@ -73,14 +73,14 @@ public List getAllActiveDemandes(@PathVariable("type") TYPE_DEMAN IDemandeService service = strategy.getStrategy(IDemandeService.class, type); if (role.equals("ADMIN")) { if (archive) { - return (!extension) ? service.getAllArchivedDemandes(iln).stream().map(element -> builder.buildDemandeDto(element, type)).collect(Collectors.toList()) : service.getAllArchivedDemandesAllIln().stream().map(element -> builder.buildDemandeDto(element, type)).collect(Collectors.toList()); + return (!extension) ? service.getAllArchivedDemandes(iln).stream().map(element -> builder.buildDemandeDtoWithNbLines(element, type)).collect(Collectors.toList()) : service.getAllArchivedDemandesAllIln().stream().map(element -> builder.buildDemandeDtoWithNbLines(element, type)).collect(Collectors.toList()); } else { - return (!extension) ? service.getAllActiveDemandesForAdmin(iln).stream().map(element -> builder.buildDemandeDto(element, type)).collect(Collectors.toList()) : service.getAllActiveDemandesForAdminExtended().stream().map(element -> builder.buildDemandeDto(element, type)).collect(Collectors.toList()); + return (!extension) ? service.getAllActiveDemandesForAdmin(iln).stream().map(element -> builder.buildDemandeDtoWithNbLines(element, type)).collect(Collectors.toList()) : service.getAllActiveDemandesForAdminExtended().stream().map(element -> builder.buildDemandeDtoWithNbLines(element, type)).collect(Collectors.toList()); } } //role USER - return (archive) ? service.getAllArchivedDemandes(iln).stream().map(element -> builder.buildDemandeDto(element, type)).collect(Collectors.toList()) : service.getActiveDemandesForUser(iln).stream().map(element -> builder.buildDemandeDto(element, type)).collect(Collectors.toList()); + return (archive) ? service.getAllArchivedDemandes(iln).stream().map(element -> builder.buildDemandeDtoWithNbLines(element, type)).collect(Collectors.toList()) : service.getActiveDemandesForUser(iln).stream().map(element -> builder.buildDemandeDtoWithNbLines(element, type)).collect(Collectors.toList()); } /** diff --git a/web/src/test/java/fr/abes/item/web/impl/DemandeRestServiceTest.java b/web/src/test/java/fr/abes/item/web/impl/DemandeRestServiceTest.java index a739114d..7754c134 100644 --- a/web/src/test/java/fr/abes/item/web/impl/DemandeRestServiceTest.java +++ b/web/src/test/java/fr/abes/item/web/impl/DemandeRestServiceTest.java @@ -5,6 +5,7 @@ import fr.abes.item.core.configuration.factory.StrategyFactory; import fr.abes.item.core.constant.TYPE_DEMANDE; import fr.abes.item.core.constant.TYPE_SUPPRESSION; +import fr.abes.item.core.dto.DemandeDto; import fr.abes.item.core.entities.item.*; import fr.abes.item.core.service.impl.DemandeExempService; import fr.abes.item.core.service.impl.DemandeModifService; @@ -58,7 +59,7 @@ class DemandeRestServiceTest { @Autowired ObjectMapper mapper; - List demandeExemps = new ArrayList<>(); + List demandeDto = new ArrayList<>(); MockMvc mockMvc; @@ -80,13 +81,17 @@ void init() { demande2.setDateCreation(cal.getTime()); cal.set(2024, Calendar.MARCH, 20); demande2.setDateModification(cal.getTime()); - demandeExemps.addAll(Lists.newArrayList(demande1, demande2)); + + DemandeDto demandeDto1 = new DemandeDto(demande1, 1); + DemandeDto demandeDto2 = new DemandeDto(demande2, 2); + demandeDto.addAll(Lists.newArrayList(demandeDto1, demandeDto2)); + } @Test @WithMockUser(authorities = {"ADMIN"}) void testGetAllActiveDemandesForAdmin() throws Exception { - Mockito.when(demandeExempService.getAllActiveDemandesForAdminExtended()).thenReturn(this.demandeExemps); + Mockito.when(demandeExempService.getAllActiveDemandesForAdminExtended()).thenReturn(this.demandeDto); this.mockMvc.perform(get("/api/v1/demandes/EXEMP/?archive=false&extension=true").requestAttr("iln", "1")) .andExpect(status().isOk()) .andExpect(jsonPath("$[0].id").value("1")) @@ -101,7 +106,7 @@ void testGetAllActiveDemandesForAdmin() throws Exception { @Test @WithMockUser(authorities = {"ADMIN"}) void testGetAllActiveDemandesForAdminExtender() throws Exception { - Mockito.when(demandeExempService.getAllActiveDemandesForAdmin("1")).thenReturn(this.demandeExemps); + Mockito.when(demandeExempService.getAllActiveDemandesForAdmin("1")).thenReturn(this.demandeDto); this.mockMvc.perform(get("/api/v1/demandes/EXEMP/?archive=false&extension=false").requestAttr("iln", "1")) .andExpect(status().isOk()) .andExpect(jsonPath("$[0].id").value("1")) @@ -113,7 +118,7 @@ void testGetAllActiveDemandesForAdminExtender() throws Exception { @Test @WithMockUser(authorities = {"USER"}) void testChercher() throws Exception { - Mockito.when(demandeExempService.getActiveDemandesForUser("1")).thenReturn(this.demandeExemps); + Mockito.when(demandeExempService.getActiveDemandesForUser("1")).thenReturn(this.demandeDto); this.mockMvc.perform(get("/api/v1/demandes/EXEMP/?archive=false&extension=true").requestAttr("iln", "1")) .andExpect(status().isOk()) .andExpect(jsonPath("$[0].id").value("1")) @@ -125,7 +130,7 @@ void testChercher() throws Exception { @Test @WithMockUser(authorities = {"USER"}) void testGetAllArtiveDemandes() throws Exception { - Mockito.when(demandeExempService.getActiveDemandesForUser("1")).thenReturn(this.demandeExemps); + Mockito.when(demandeExempService.getActiveDemandesForUser("1")).thenReturn(this.demandeDto); this.mockMvc.perform(get("/api/v1/demandes/EXEMP?archive=false&extension=true").requestAttr("iln", "1")) .andExpect(status().isOk()) .andExpect(jsonPath("$[0].id").value("1")) @@ -137,7 +142,7 @@ void testGetAllArtiveDemandes() throws Exception { @Test @WithMockUser(authorities = {"USER"}) void testGetAllArchivedDemandes() throws Exception { - Mockito.when(demandeExempService.getAllArchivedDemandes("1")).thenReturn(this.demandeExemps); + Mockito.when(demandeExempService.getAllArchivedDemandes("1")).thenReturn(this.demandeDto); this.mockMvc.perform(get("/api/v1/demandes/EXEMP?archive=true&extension=false").requestAttr("iln", "1")) .andExpect(status().isOk()) .andExpect(jsonPath("$[0].id").value("1")) @@ -150,7 +155,7 @@ void testGetAllArchivedDemandes() throws Exception { @WithMockUser(authorities = {"USER"}) void testGetDemande() throws Exception { Mockito.doNothing().when(checkAccessToServices).autoriserAccesDemandeParIln(1, "1", TYPE_DEMANDE.EXEMP); - Mockito.when(demandeExempService.findById(1)).thenReturn((DemandeExemp) this.demandeExemps.get(0)); + Mockito.when(demandeExempService.findById(1)).thenReturn((DemandeExemp) this.demandeDto.get(0).getDemande()); this.mockMvc.perform(get("/api/v1/demandes/EXEMP/1").requestAttr("userNum", "1")) .andExpect(status().isOk()) .andExpect(jsonPath("$.id").value("1")) @@ -162,7 +167,7 @@ void testGetDemande() throws Exception { @WithMockUser(authorities = {"USER"}) void testCreerDemande() throws Exception { Mockito.doNothing().when(checkAccessToServices).autoriserAccesDemandeParIln(1, "1", TYPE_DEMANDE.EXEMP); - Mockito.when(demandeExempService.creerDemande(Mockito.anyString(), Mockito.anyInt())).thenReturn((DemandeExemp) this.demandeExemps.get(0)); + Mockito.when(demandeExempService.creerDemande(Mockito.anyString(), Mockito.anyInt())).thenReturn((DemandeExemp) this.demandeDto.get(0).getDemande()); this.mockMvc.perform(post("/api/v1/demandes/EXEMP?rcr=341720001").requestAttr("userNum", "1")) .andExpect(status().isOk()) .andExpect(jsonPath("$.id").value("1")) @@ -175,7 +180,7 @@ void testCreerDemande() throws Exception { void testModifDemandeRcr() throws Exception { Calendar cal = Calendar.getInstance(); Mockito.doNothing().when(checkAccessToServices).autoriserAccesDemandeParIln(1, "1", TYPE_DEMANDE.EXEMP); - Mockito.when(demandeExempService.creerDemande(Mockito.anyString(), Mockito.anyInt())).thenReturn((DemandeExemp) this.demandeExemps.get(0)); + Mockito.when(demandeExempService.creerDemande(Mockito.anyString(), Mockito.anyInt())).thenReturn((DemandeExemp) this.demandeDto.get(0).getDemande()); EtatDemande etat = new EtatDemande(1, "A compléter"); Utilisateur utilisateur = new Utilisateur(1, "test@test.com"); DemandeExemp demandeIn = new DemandeExemp(1, "341720001", cal.getTime(), cal.getTime(), etat, "", utilisateur); @@ -195,7 +200,7 @@ void testModifDemandeRcr() throws Exception { void testModifDemandeTypeExemp() throws Exception { Calendar cal = Calendar.getInstance(); Mockito.doNothing().when(checkAccessToServices).autoriserAccesDemandeParIln(1, "1", TYPE_DEMANDE.EXEMP); - Mockito.when(demandeExempService.creerDemande(Mockito.anyString(), Mockito.anyInt())).thenReturn((DemandeExemp) this.demandeExemps.get(0)); + Mockito.when(demandeExempService.creerDemande(Mockito.anyString(), Mockito.anyInt())).thenReturn((DemandeExemp) this.demandeDto.get(0).getDemande()); EtatDemande etat = new EtatDemande(1, "A compléter"); Utilisateur utilisateur = new Utilisateur(1, "test@test.com"); DemandeExemp demandeIn = new DemandeExemp(1, "341720001", cal.getTime(), cal.getTime(), etat, "", utilisateur); @@ -233,7 +238,7 @@ void testModifDemandeTypeSuppression() throws Exception { void testModifDemandeCommentaire() throws Exception { Calendar cal = Calendar.getInstance(); Mockito.doNothing().when(checkAccessToServices).autoriserAccesDemandeParIln(1, "1", TYPE_DEMANDE.EXEMP); - Mockito.when(demandeExempService.creerDemande(Mockito.anyString(), Mockito.anyInt())).thenReturn((DemandeExemp) this.demandeExemps.get(0)); + Mockito.when(demandeExempService.creerDemande(Mockito.anyString(), Mockito.anyInt())).thenReturn((DemandeExemp) this.demandeDto.get(0).getDemande()); EtatDemande etat = new EtatDemande(1, "A compléter"); Utilisateur utilisateur = new Utilisateur(1, "test@test.com"); DemandeExemp demandeIn = new DemandeExemp(1, "341720001", cal.getTime(), cal.getTime(), etat, "", utilisateur); @@ -254,7 +259,7 @@ void testModifDemandeCommentaire() throws Exception { void testModifDemandeTraitement() throws Exception { Calendar cal = Calendar.getInstance(); Mockito.doNothing().when(checkAccessToServices).autoriserAccesDemandeParIln(1, "1", TYPE_DEMANDE.MODIF); - Mockito.when(demandeModifService.creerDemande(Mockito.anyString(), Mockito.anyInt())).thenReturn((DemandeExemp) this.demandeExemps.get(0)); + Mockito.when(demandeModifService.creerDemande(Mockito.anyString(), Mockito.anyInt())).thenReturn((DemandeExemp) this.demandeDto.get(0).getDemande()); EtatDemande etat = new EtatDemande(1, "A compléter"); Utilisateur utilisateur = new Utilisateur(1, "test@test.com"); Traitement traitement = new Traitement(1, "Créer nouvelle zone", "creerNouvelleZone"); @@ -298,7 +303,7 @@ void testUpload() throws Exception { @Test void testSimulerLigne() throws Exception { Mockito.doNothing().when(checkAccessToServices).autoriserAccesDemandeParIln(1, "1", TYPE_DEMANDE.EXEMP); - Mockito.when(demandeExempService.findById(1)).thenReturn((DemandeExemp) this.demandeExemps.get(0)); + Mockito.when(demandeExempService.findById(1)).thenReturn((DemandeExemp) this.demandeDto.get(0).getDemande()); Mockito.when(ligneFichierExempService.getLigneFichierbyDemandeEtPos(Mockito.any(), Mockito.anyInt())).thenReturn(new LigneFichierExemp()); Mockito.when(demandeExempService.getNoticeExemplaireAvantApres(Mockito.any(), Mockito.any())).thenReturn(new String[]{"avant", "après"}); this.mockMvc.perform(get("/api/v1/simulerLigne/EXEMP/1/1").requestAttr("userNum", "1")) @@ -310,8 +315,8 @@ void testSimulerLigne() throws Exception { @Test void testPasserEnAttente() throws Exception { Mockito.doNothing().when(checkAccessToServices).autoriserAccesDemandeParIln(1, "1", TYPE_DEMANDE.EXEMP); - Mockito.when(demandeExempService.findById(1)).thenReturn((DemandeExemp) this.demandeExemps.get(0)); - DemandeExemp demande = (DemandeExemp) this.demandeExemps.get(0); + Mockito.when(demandeExempService.findById(1)).thenReturn((DemandeExemp) this.demandeDto.get(0).getDemande()); + DemandeExemp demande = (DemandeExemp) this.demandeDto.get(0).getDemande(); demande.setEtatDemande(new EtatDemande(3, "En attente")); Mockito.when(demandeExempService.changeState(Mockito.any(), Mockito.anyInt())).thenReturn(demande); this.mockMvc.perform(patch("/api/v1/passerEnAttente/EXEMP/1").requestAttr("userNum", "1")) @@ -324,7 +329,7 @@ void testPasserEnAttente() throws Exception { @Test void testArchiver() throws Exception { Mockito.doNothing().when(checkAccessToServices).autoriserAccesDemandeParIln(1, "1", TYPE_DEMANDE.EXEMP); - DemandeExemp demande = (DemandeExemp) this.demandeExemps.get(0); + DemandeExemp demande = (DemandeExemp) this.demandeDto.get(0).getDemande(); demande.setEtatDemande(new EtatDemande(7, "Archivée")); Mockito.when(demandeExempService.archiverDemande(Mockito.any())).thenReturn(demande); this.mockMvc.perform(get("/api/v1/archiverDemande/EXEMP/1").requestAttr("userNum", "1")) @@ -337,7 +342,7 @@ void testArchiver() throws Exception { @Test void testPreviousStep() throws Exception { Mockito.doNothing().when(checkAccessToServices).autoriserAccesDemandeParIln(1, "1", TYPE_DEMANDE.EXEMP); - DemandeExemp demande = (DemandeExemp) this.demandeExemps.get(0); + DemandeExemp demande = (DemandeExemp) this.demandeDto.get(0).getDemande(); demande.setEtatDemande(new EtatDemande(3, "En attente")); Mockito.when(demandeExempService.previousState(Mockito.any())).thenReturn(demande); this.mockMvc.perform(patch("/api/v1/etapePrecedente/EXEMP/1").requestAttr("userNum", "1")) @@ -350,7 +355,7 @@ void testPreviousStep() throws Exception { @Test void testChosenStep() throws Exception { Mockito.doNothing().when(checkAccessToServices).autoriserAccesDemandeParIln(1, "1", TYPE_DEMANDE.EXEMP); - DemandeExemp demande = (DemandeExemp) this.demandeExemps.get(0); + DemandeExemp demande = (DemandeExemp) this.demandeDto.get(0).getDemande(); demande.setEtatDemande(new EtatDemande(3, "En attente")); Mockito.when(demandeExempService.returnState(Mockito.anyInt(), Mockito.any())).thenReturn(demande); this.mockMvc.perform(patch("/api/v1/etapeChoisie/EXEMP/1").param("etape", "3").requestAttr("userNum", "1")) @@ -363,10 +368,10 @@ void testChosenStep() throws Exception { @Test void testGetNbLigneFichier() throws Exception { Mockito.doNothing().when(checkAccessToServices).autoriserAccesDemandeParIln(1, "1", TYPE_DEMANDE.EXEMP); - Mockito.when(demandeExempService.findById(Mockito.anyInt())).thenReturn((DemandeExemp) this.demandeExemps.get(0)); + Mockito.when(demandeExempService.findById(Mockito.anyInt())).thenReturn((DemandeExemp) this.demandeDto.get(0).getDemande()); Mockito.when(ligneFichierExempService.getNbLigneFichierTotalByDemande(Mockito.any())).thenReturn(30); this.mockMvc.perform(get("/api/v1/nbLignesFichier/EXEMP/1").requestAttr("userNum", "1")) .andExpect(status().isOk()) .andExpect(jsonPath("$").value(30)); } -} \ No newline at end of file +}