From e924a18f706e8ebaec34893f181a8a8bc3f459c9 Mon Sep 17 00:00:00 2001 From: pierre-maraval Date: Thu, 5 Dec 2024 11:34:40 +0100 Subject: [PATCH 01/11] =?UTF-8?q?ITEM-384=20:=20ajout=20table=20journal=20?= =?UTF-8?q?demande=20Recouv=20et=20suppression.=20Ajout=20couches=20dao=20?= =?UTF-8?q?et=20service=20et=20m=C3=A9thodes=20d'ajout=20d'entr=C3=A9e=20d?= =?UTF-8?q?ans=20la=20table=20en=20cas=20de=20changement=20d'=C3=A9tat=20d?= =?UTF-8?q?'une=20demande.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entities/item/JournalDemandeExemp.java | 3 +- .../entities/item/JournalDemandeModif.java | 3 +- .../entities/item/JournalDemandeRecouv.java | 44 +++++++++++++++++++ .../entities/item/JournalDemandeSupp.java | 43 ++++++++++++++++++ .../item/IJournalDemandeRecouvDao.java | 11 +++++ .../item/IJournalDemandeSuppDao.java | 11 +++++ .../item/core/service/JournalService.java | 16 ++++++- .../service/impl/DemandeRecouvService.java | 11 +++-- .../core/service/impl/DemandeSuppService.java | 18 +++++--- 9 files changed, 145 insertions(+), 15 deletions(-) create mode 100644 core/src/main/java/fr/abes/item/core/entities/item/JournalDemandeRecouv.java create mode 100644 core/src/main/java/fr/abes/item/core/entities/item/JournalDemandeSupp.java create mode 100644 core/src/main/java/fr/abes/item/core/repository/item/IJournalDemandeRecouvDao.java create mode 100644 core/src/main/java/fr/abes/item/core/repository/item/IJournalDemandeSuppDao.java diff --git a/core/src/main/java/fr/abes/item/core/entities/item/JournalDemandeExemp.java b/core/src/main/java/fr/abes/item/core/entities/item/JournalDemandeExemp.java index 35502ff3..6f3af61b 100644 --- a/core/src/main/java/fr/abes/item/core/entities/item/JournalDemandeExemp.java +++ b/core/src/main/java/fr/abes/item/core/entities/item/JournalDemandeExemp.java @@ -19,7 +19,7 @@ public class JournalDemandeExemp implements Serializable, GenericEntity @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name="NUM_JOURNAL") private Integer numJournal; - @Temporal(TemporalType.DATE) @Column(name="DATE_ENTREE") + @Temporal(TemporalType.TIMESTAMP) @Column(name="DATE_ENTREE") private Date dateEntree; @ManyToOne @JoinColumn(name="JOU_USER_ID") @NotNull private Utilisateur user; @@ -30,7 +30,6 @@ public class JournalDemandeExemp implements Serializable, GenericEntity public JournalDemandeExemp(Date dateEntree, Utilisateur user, EtatDemande etatDemande, DemandeExemp demandeExemp) { - super(); this.dateEntree = dateEntree; this.user = user; this.etatDemande = etatDemande; diff --git a/core/src/main/java/fr/abes/item/core/entities/item/JournalDemandeModif.java b/core/src/main/java/fr/abes/item/core/entities/item/JournalDemandeModif.java index 382824d0..6098a705 100644 --- a/core/src/main/java/fr/abes/item/core/entities/item/JournalDemandeModif.java +++ b/core/src/main/java/fr/abes/item/core/entities/item/JournalDemandeModif.java @@ -19,7 +19,7 @@ public class JournalDemandeModif implements Serializable, GenericEntity @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name="NUM_JOURNAL") private Integer numJournal; - @Temporal(TemporalType.DATE) @Column(name="DATE_ENTREE") + @Temporal(TemporalType.TIMESTAMP) @Column(name="DATE_ENTREE") private Date dateEntree; @ManyToOne @JoinColumn(name="JOU_USER_ID") @NotNull private Utilisateur user; @@ -30,7 +30,6 @@ public class JournalDemandeModif implements Serializable, GenericEntity public JournalDemandeModif(Date dateEntree, Utilisateur user, EtatDemande etatDemande, DemandeModif demandeModif) { - super(); this.dateEntree = dateEntree; this.user = user; this.etatDemande = etatDemande; diff --git a/core/src/main/java/fr/abes/item/core/entities/item/JournalDemandeRecouv.java b/core/src/main/java/fr/abes/item/core/entities/item/JournalDemandeRecouv.java new file mode 100644 index 00000000..bdae5db5 --- /dev/null +++ b/core/src/main/java/fr/abes/item/core/entities/item/JournalDemandeRecouv.java @@ -0,0 +1,44 @@ +package fr.abes.item.core.entities.item; + +import fr.abes.item.core.entities.GenericEntity; +import jakarta.persistence.*; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.Date; + +@Entity +@NoArgsConstructor +@Table(name="JOURNAL_DEMANDE_RECOUV") +@Getter +@Setter +public class JournalDemandeRecouv implements Serializable, GenericEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name="NUM_JOURNAL") + private Integer numJournal; + @Temporal(TemporalType.TIMESTAMP) + @Column(name="DATE_ENTREE") + private Date dateEntree; + @ManyToOne @JoinColumn(name="JOU_USER_ID") @NotNull + private Utilisateur user; + @ManyToOne @JoinColumn(name="JOU_DEM_ID") @NotNull + private DemandeRecouv demandeRecouv; + @ManyToOne @JoinColumn(name="JOU_ETA_ID") @NotNull + private EtatDemande etatDemande; + + public JournalDemandeRecouv(Date dateEntree, Utilisateur utilisateur, EtatDemande etatDemande, DemandeRecouv demandeRecouv) { + this.dateEntree = dateEntree; + this.user = utilisateur; + this.demandeRecouv = demandeRecouv; + this.etatDemande = etatDemande; + } + + @Override + public Integer getId() { + return numJournal; + } +} diff --git a/core/src/main/java/fr/abes/item/core/entities/item/JournalDemandeSupp.java b/core/src/main/java/fr/abes/item/core/entities/item/JournalDemandeSupp.java new file mode 100644 index 00000000..eed4245c --- /dev/null +++ b/core/src/main/java/fr/abes/item/core/entities/item/JournalDemandeSupp.java @@ -0,0 +1,43 @@ +package fr.abes.item.core.entities.item; + +import fr.abes.item.core.entities.GenericEntity; +import jakarta.persistence.*; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.Date; + +@Entity +@NoArgsConstructor +@Table(name="JOURNAL_DEMANDE_SUPP") +@Getter +@Setter +public class JournalDemandeSupp implements Serializable, GenericEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name="NUM_JOURNAL") + private Integer numJournal; + @Temporal(TemporalType.TIMESTAMP) @Column(name="DATE_ENTREE") + private Date dateEntree; + @ManyToOne @JoinColumn(name="JOU_USER_ID") @NotNull + private Utilisateur user; + @ManyToOne @JoinColumn(name="JOU_DEM_ID") @NotNull + private DemandeSupp demandeSupp; + @ManyToOne @JoinColumn(name="JOU_ETA_ID") @NotNull + private EtatDemande etatDemande; + + public JournalDemandeSupp(Date dateEntree, Utilisateur utilisateur, EtatDemande etatDemande, DemandeSupp demandeSupp) { + this.dateEntree = dateEntree; + this.user = utilisateur; + this.demandeSupp = demandeSupp; + this.etatDemande = etatDemande; + } + + @Override + public Integer getId() { + return numJournal; + } +} diff --git a/core/src/main/java/fr/abes/item/core/repository/item/IJournalDemandeRecouvDao.java b/core/src/main/java/fr/abes/item/core/repository/item/IJournalDemandeRecouvDao.java new file mode 100644 index 00000000..f0280d74 --- /dev/null +++ b/core/src/main/java/fr/abes/item/core/repository/item/IJournalDemandeRecouvDao.java @@ -0,0 +1,11 @@ +package fr.abes.item.core.repository.item; + +import fr.abes.item.core.configuration.ItemConfiguration; +import fr.abes.item.core.entities.item.JournalDemandeRecouv; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +@ItemConfiguration +public interface IJournalDemandeRecouvDao extends JpaRepository { +} diff --git a/core/src/main/java/fr/abes/item/core/repository/item/IJournalDemandeSuppDao.java b/core/src/main/java/fr/abes/item/core/repository/item/IJournalDemandeSuppDao.java new file mode 100644 index 00000000..61cfbe9c --- /dev/null +++ b/core/src/main/java/fr/abes/item/core/repository/item/IJournalDemandeSuppDao.java @@ -0,0 +1,11 @@ +package fr.abes.item.core.repository.item; + +import fr.abes.item.core.configuration.ItemConfiguration; +import fr.abes.item.core.entities.item.JournalDemandeSupp; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +@ItemConfiguration +public interface IJournalDemandeSuppDao extends JpaRepository { +} diff --git a/core/src/main/java/fr/abes/item/core/service/JournalService.java b/core/src/main/java/fr/abes/item/core/service/JournalService.java index 24272aed..cd484133 100644 --- a/core/src/main/java/fr/abes/item/core/service/JournalService.java +++ b/core/src/main/java/fr/abes/item/core/service/JournalService.java @@ -3,6 +3,8 @@ import fr.abes.item.core.entities.item.*; import fr.abes.item.core.repository.item.IJournalDemandeExempDao; import fr.abes.item.core.repository.item.IJournalDemandeModifDao; +import fr.abes.item.core.repository.item.IJournalDemandeRecouvDao; +import fr.abes.item.core.repository.item.IJournalDemandeSuppDao; import org.springframework.stereotype.Service; import java.util.Calendar; @@ -11,10 +13,14 @@ public class JournalService { private final IJournalDemandeExempDao journalDemandeExempDao; private final IJournalDemandeModifDao journalDemandeModifDao; + private final IJournalDemandeRecouvDao journalDemandeRecouvDao; + private final IJournalDemandeSuppDao journalDemandeSuppDao; - public JournalService(IJournalDemandeExempDao journalDemandeExempDao, IJournalDemandeModifDao journalDemandeModifDao) { + public JournalService(IJournalDemandeExempDao journalDemandeExempDao, IJournalDemandeModifDao journalDemandeModifDao, IJournalDemandeRecouvDao journalDemandeRecouvDao, IJournalDemandeSuppDao journalDemandeSuppDao) { this.journalDemandeExempDao = journalDemandeExempDao; this.journalDemandeModifDao = journalDemandeModifDao; + this.journalDemandeRecouvDao = journalDemandeRecouvDao; + this.journalDemandeSuppDao = journalDemandeSuppDao; } public void addEntreeJournal(DemandeExemp demande, EtatDemande etat) { @@ -24,4 +30,12 @@ public void addEntreeJournal(DemandeExemp demande, EtatDemande etat) { public void addEntreeJournal(DemandeModif demandeModif, EtatDemande etat) { journalDemandeModifDao.save(new JournalDemandeModif(Calendar.getInstance().getTime(), demandeModif.getUtilisateur(), etat, demandeModif)); } + + public void addEntreeJournal(DemandeRecouv demandeRecouv, EtatDemande etat) { + journalDemandeRecouvDao.save(new JournalDemandeRecouv(Calendar.getInstance().getTime(), demandeRecouv.getUtilisateur(), etat, demandeRecouv)); + } + + public void addEntreeJournal(DemandeSupp demandeSupp, EtatDemande etat) { + journalDemandeSuppDao.save(new JournalDemandeSupp(Calendar.getInstance().getTime(), demandeSupp.getUtilisateur(), etat, demandeSupp)); + } } 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 01525d22..2dbd5701 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 @@ -8,7 +8,6 @@ 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.DemandeModif; import fr.abes.item.core.entities.item.DemandeRecouv; import fr.abes.item.core.entities.item.EtatDemande; import fr.abes.item.core.exception.DemandeCheckingException; @@ -38,13 +37,14 @@ public class DemandeRecouvService extends DemandeService implements IDemandeServ private final TraitementService traitementService; private final ILigneFichierService ligneFichierService; private final UtilisateurService utilisateurService; + private final JournalService journalService; private FichierEnrichiRecouv fichierEnrichiRecouv; @Value("${files.upload.path}") private String uploadPath; - public DemandeRecouvService(ILibProfileDao libProfileDao, IDemandeRecouvDao demandeRecouvDao, FileSystemStorageService storageService, ReferenceService referenceService, LigneFichierRecouvService ligneFichierRecouvService, TraitementService traitementService, UtilisateurService utilisateurService) { + public DemandeRecouvService(ILibProfileDao libProfileDao, IDemandeRecouvDao demandeRecouvDao, FileSystemStorageService storageService, ReferenceService referenceService, LigneFichierRecouvService ligneFichierRecouvService, TraitementService traitementService, UtilisateurService utilisateurService, JournalService journalService) { super(libProfileDao); this.demandeRecouvDao = demandeRecouvDao; this.storageService = storageService; @@ -52,6 +52,7 @@ public DemandeRecouvService(ILibProfileDao libProfileDao, IDemandeRecouvDao dema this.ligneFichierService = ligneFichierRecouvService; this.traitementService = traitementService; this.utilisateurService = utilisateurService; + this.journalService = journalService; } public List findAll() { @@ -99,7 +100,9 @@ public DemandeRecouv creerDemande(String rcr, Integer userNum) { DemandeRecouv demandeRecouv = new DemandeRecouv(rcr, calendar.getTime(), calendar.getTime(), referenceService.findEtatDemandeById(Constant.ETATDEM_PREPARATION), null, utilisateurService.findById(userNum)); demandeRecouv.setIln(Objects.requireNonNull(libProfileDao.findById(rcr).orElse(null)).getIln()); setIlnShortNameOnDemande(demandeRecouv); - return (DemandeRecouv) save(demandeRecouv); + DemandeRecouv demToReturn = (DemandeRecouv) save(demandeRecouv); + journalService.addEntreeJournal(demToReturn, referenceService.findEtatDemandeById(Constant.ETATDEM_PREPARATION)); + return demToReturn; } /** @@ -189,6 +192,7 @@ public Demande changeState(Demande demande, int etatDemande) throws DemandeCheck if ((etatDemande == Constant.ETATDEM_ERREUR) || (demande.getEtatDemande().getNumEtat() == getPreviousState(etatDemande))) { EtatDemande etat = referenceService.findEtatDemandeById(etatDemande); demande.setEtatDemande(etat); + journalService.addEntreeJournal((DemandeRecouv) demande, etat); return this.save(demande); } else { @@ -200,6 +204,7 @@ public Demande changeState(Demande demande, int etatDemande) throws DemandeCheck public Demande changeStateCanceled(Demande demande, int etatDemande) { EtatDemande etat = referenceService.findEtatDemandeById(etatDemande); demande.setEtatDemande(etat); + journalService.addEntreeJournal((DemandeRecouv) demande, etat); return this.save(demande); } 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 d97e55f8..5a7315a5 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 @@ -8,7 +8,6 @@ import fr.abes.item.core.constant.TYPE_SUPPRESSION; 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.DemandeSupp; import fr.abes.item.core.entities.item.EtatDemande; import fr.abes.item.core.exception.DemandeCheckingException; @@ -40,7 +39,7 @@ public class DemandeSuppService extends DemandeService implements IDemandeServic private final ReferenceService referenceService; private final UtilisateurService utilisateurService; private final FileSystemStorageService storageService; - private final TraitementService traitementService; + private final JournalService journalService; private FichierInitialSupp fichierInit; private FichierPrepareSupp fichierPrepare; @@ -50,7 +49,7 @@ public class DemandeSuppService extends DemandeService implements IDemandeServic @Value("${files.upload.path}") private String uploadPath; - public DemandeSuppService(ILibProfileDao libProfileDao, IDemandeSuppDao demandeSuppDao, FileSystemStorageService storageService, ReferenceService referenceService, UtilisateurService utilisateurService, Ppntoepn procStockeePpnToEpn, Epntoppn procStockeeEpnToPpn, LigneFichierSuppService ligneFichierSuppService, TraitementService traitementService) { + public DemandeSuppService(ILibProfileDao libProfileDao, IDemandeSuppDao demandeSuppDao, FileSystemStorageService storageService, ReferenceService referenceService, UtilisateurService utilisateurService, Ppntoepn procStockeePpnToEpn, Epntoppn procStockeeEpnToPpn, LigneFichierSuppService ligneFichierSuppService, JournalService journalService) { super(libProfileDao); this.demandeSuppDao = demandeSuppDao; this.storageService = storageService; @@ -59,7 +58,7 @@ public DemandeSuppService(ILibProfileDao libProfileDao, IDemandeSuppDao demandeS this.procStockeePpnToEpn = procStockeePpnToEpn; this.procStockeeEpnToPpn = procStockeeEpnToPpn; this.ligneFichierService = ligneFichierSuppService; - this.traitementService = traitementService; + this.journalService = journalService; } @Override @@ -84,7 +83,9 @@ public Demande creerDemande(String rcr, Integer userNum) { DemandeSupp demandeSupp = new DemandeSupp(rcr, calendar.getTime(), calendar.getTime(), null, null, referenceService.findEtatDemandeById(Constant.ETATDEM_PREPARATION), utilisateurService.findById(userNum)); demandeSupp.setIln(Objects.requireNonNull(libProfileDao.findById(rcr).orElse(null)).getIln()); setIlnShortNameOnDemande(demandeSupp); - return save(demandeSupp); + DemandeSupp demToReturn = (DemandeSupp) save(demandeSupp); + journalService.addEntreeJournal(demToReturn, referenceService.findEtatDemandeById(Constant.ETATDEM_PREPARATION)); + return demToReturn; } @Override @@ -260,6 +261,7 @@ public Demande changeState(Demande demande, int etatDemande) throws DemandeCheck if ((etatDemande == Constant.ETATDEM_ERREUR) || (demande.getEtatDemande().getNumEtat() == getPreviousState(etatDemande))) { EtatDemande etat = referenceService.findEtatDemandeById(etatDemande); demande.setEtatDemande(etat); + journalService.addEntreeJournal((DemandeSupp) demande, etat); return save(demande); } else { throw new DemandeCheckingException(Constant.DEMANDE_IS_NOT_IN_STATE + getPreviousState(etatDemande)); @@ -289,8 +291,10 @@ private int getPreviousState(int etatDemande) { @Override public Demande changeStateCanceled(Demande demande, int etatDemande) { - //todo - return null; + EtatDemande etat = referenceService.findEtatDemandeById(etatDemande); + demande.setEtatDemande(etat); + journalService.addEntreeJournal((DemandeSupp) demande, etat); + return this.save(demande); } @Override From 67e93a3946ad3cac8758e6ea1dbe60ac58ba7c01 Mon Sep 17 00:00:00 2001 From: pierre-maraval Date: Thu, 5 Dec 2024 14:22:24 +0100 Subject: [PATCH 02/11] =?UTF-8?q?ITEM-384=20:=20ajout=20m=C3=A9thode=20pou?= =?UTF-8?q?r=20restaurer=20une=20demande=20archiv=C3=A9e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../item/core/service/IDemandeService.java | 2 +- .../core/service/impl/DemandeExempService.java | 5 +++++ .../core/service/impl/DemandeModifService.java | 10 +++++++++- .../service/impl/DemandeRecouvService.java | 5 +++++ .../core/service/impl/DemandeSuppService.java | 5 +++++ .../fr/abes/item/web/DemandeRestService.java | 18 ++++++++++++++++++ 6 files changed, 43 insertions(+), 2 deletions(-) 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 46b5ba3f..3f1f44e2 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 @@ -58,5 +58,5 @@ public interface IDemandeService { List getDemandesToPlaceInDeletedStatus(); List getDemandesToDelete(); - + Demande restaurerDemande(Demande demande); } 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 c6ed6aae..883bbfd0 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 @@ -393,6 +393,11 @@ public List getDemandesToDelete() { return null; } + @Override + public Demande restaurerDemande(Demande demande) { + return null; + } + @Override public DemandeExemp creerDemande(String rcr, Integer userNum) { Calendar calendar = Calendar.getInstance(); 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 8b385b8b..52dba0d2 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 @@ -6,7 +6,10 @@ 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.entities.item.Demande; +import fr.abes.item.core.entities.item.DemandeModif; +import fr.abes.item.core.entities.item.EtatDemande; +import fr.abes.item.core.entities.item.Traitement; import fr.abes.item.core.exception.DemandeCheckingException; import fr.abes.item.core.exception.FileCheckingException; import fr.abes.item.core.exception.FileTypeException; @@ -503,6 +506,11 @@ public List getDemandesToDelete() { return null; } + @Override + public Demande restaurerDemande(Demande demande) { + return null; + } + public Demande majTraitement(Integer demandeId, Integer traitementId) { DemandeModif demandeModif = this.findById(demandeId); Traitement traitement = referenceService.findTraitementById(traitementId); 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 2dbd5701..fcc80205 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 @@ -338,6 +338,11 @@ public List getDemandesToDelete() { return null; } + @Override + public Demande restaurerDemande(Demande demande) { + return null; + } + @Override public void modifierShortNameDemande(Demande demande) { setIlnShortNameOnDemande(demande); 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 5a7315a5..ffbc2d93 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 @@ -378,6 +378,11 @@ public List getDemandesToDelete() { return null; } + @Override + public Demande restaurerDemande(Demande demande) { + return null; + } + public Demande majTypeSupp(Integer demandeId, TYPE_SUPPRESSION typeSuppression) { DemandeSupp demandeSupp = this.findById(demandeId); 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 b29deac3..e7276b69 100644 --- a/web/src/main/java/fr/abes/item/web/DemandeRestService.java +++ b/web/src/main/java/fr/abes/item/web/DemandeRestService.java @@ -342,4 +342,22 @@ public Integer getNbLigneFichier(@PathVariable("type") TYPE_DEMANDE type, @PathV ILigneFichierService ligneFichierService = strategy.getStrategy(ILigneFichierService.class, type); return ligneFichierService.getNbLigneFichierTotalByDemande(service.findById(id)); } + + /** + * Webservice permettant de restaurer une demande archivée en la refaisant passer à son dernier état connu + * @param type type de la demande concernée + * @param id id de la demande + * @param request requête http + * @return la demande modifiée + * @throws UserExistException utilisateur non trouve + * @throws ForbiddenException controle d'accès échoué + */ + @PatchMapping("/restaurerDemande/{type}/{id}") + @PreAuthorize("hasAnyAuthority('USER', 'ADMIN')") + @Operation(summary = "Permet de restaurer une demande archivée dans son état précédent") + public DemandeWebDto restaurerDemande(@PathVariable("type") TYPE_DEMANDE type, @PathVariable("id") Integer id, HttpServletRequest request) throws ForbiddenException, UserExistException { + checkAccessToServices.autoriserAccesDemandeParIln(id, request.getAttribute(Constant.USER_NUM).toString(), type); + IDemandeService service = strategy.getStrategy(IDemandeService.class, type); + return builder.buildDemandeDto(service.restaurerDemande(service.findById(id)), type); + } } From ba810c0ec61d2009b5fae67b33f77c8a80a26c3b Mon Sep 17 00:00:00 2001 From: pierre-maraval Date: Thu, 5 Dec 2024 14:44:42 +0100 Subject: [PATCH 03/11] =?UTF-8?q?ITEM-385=20:=20ajout=20m=C3=A9thode=20res?= =?UTF-8?q?tauration=20demande=20archiv=C3=A9e=20Ajout=20controller?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../item/IJournalDemandeExempDao.java | 3 ++ .../item/IJournalDemandeModifDao.java | 3 ++ .../item/IJournalDemandeRecouvDao.java | 3 ++ .../item/IJournalDemandeSuppDao.java | 3 ++ .../item/core/service/IDemandeService.java | 2 +- .../item/core/service/JournalService.java | 33 +++++++++++++++++++ .../service/impl/DemandeExempService.java | 12 +++++-- .../service/impl/DemandeModifService.java | 12 +++++-- .../service/impl/DemandeRecouvService.java | 12 +++++-- .../core/service/impl/DemandeSuppService.java | 12 +++++-- .../fr/abes/item/web/DemandeRestService.java | 3 +- 11 files changed, 88 insertions(+), 10 deletions(-) diff --git a/core/src/main/java/fr/abes/item/core/repository/item/IJournalDemandeExempDao.java b/core/src/main/java/fr/abes/item/core/repository/item/IJournalDemandeExempDao.java index a7258c77..95a8a07c 100644 --- a/core/src/main/java/fr/abes/item/core/repository/item/IJournalDemandeExempDao.java +++ b/core/src/main/java/fr/abes/item/core/repository/item/IJournalDemandeExempDao.java @@ -5,7 +5,10 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository @ItemConfiguration public interface IJournalDemandeExempDao extends JpaRepository { + List findAllByDemandeExemp_NumDemandeOrderByDateEntreeDesc(Integer numDemande); } diff --git a/core/src/main/java/fr/abes/item/core/repository/item/IJournalDemandeModifDao.java b/core/src/main/java/fr/abes/item/core/repository/item/IJournalDemandeModifDao.java index 28285bfa..2f16ebc9 100644 --- a/core/src/main/java/fr/abes/item/core/repository/item/IJournalDemandeModifDao.java +++ b/core/src/main/java/fr/abes/item/core/repository/item/IJournalDemandeModifDao.java @@ -5,7 +5,10 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository @ItemConfiguration public interface IJournalDemandeModifDao extends JpaRepository { + List findAllByDemandeModif_NumDemandeOrderByDateEntreeDesc(Integer numDemande); } diff --git a/core/src/main/java/fr/abes/item/core/repository/item/IJournalDemandeRecouvDao.java b/core/src/main/java/fr/abes/item/core/repository/item/IJournalDemandeRecouvDao.java index f0280d74..63076d67 100644 --- a/core/src/main/java/fr/abes/item/core/repository/item/IJournalDemandeRecouvDao.java +++ b/core/src/main/java/fr/abes/item/core/repository/item/IJournalDemandeRecouvDao.java @@ -5,7 +5,10 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository @ItemConfiguration public interface IJournalDemandeRecouvDao extends JpaRepository { + List findAllByDemandeRecouv_NumDemandeOrderByDateEntreeDesc(Integer numDemande); } diff --git a/core/src/main/java/fr/abes/item/core/repository/item/IJournalDemandeSuppDao.java b/core/src/main/java/fr/abes/item/core/repository/item/IJournalDemandeSuppDao.java index 61cfbe9c..d701cf4e 100644 --- a/core/src/main/java/fr/abes/item/core/repository/item/IJournalDemandeSuppDao.java +++ b/core/src/main/java/fr/abes/item/core/repository/item/IJournalDemandeSuppDao.java @@ -5,7 +5,10 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository @ItemConfiguration public interface IJournalDemandeSuppDao extends JpaRepository { + List findAllByDemandeSupp_NumDemandeOrderByDateEntreeDesc(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 3f1f44e2..396d8039 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 @@ -58,5 +58,5 @@ public interface IDemandeService { List getDemandesToPlaceInDeletedStatus(); List getDemandesToDelete(); - Demande restaurerDemande(Demande demande); + Demande restaurerDemande(Demande demande) throws DemandeCheckingException; } diff --git a/core/src/main/java/fr/abes/item/core/service/JournalService.java b/core/src/main/java/fr/abes/item/core/service/JournalService.java index cd484133..ac498c1f 100644 --- a/core/src/main/java/fr/abes/item/core/service/JournalService.java +++ b/core/src/main/java/fr/abes/item/core/service/JournalService.java @@ -8,6 +8,7 @@ import org.springframework.stereotype.Service; import java.util.Calendar; +import java.util.List; @Service public class JournalService { @@ -38,4 +39,36 @@ public void addEntreeJournal(DemandeRecouv demandeRecouv, EtatDemande etat) { public void addEntreeJournal(DemandeSupp demandeSupp, EtatDemande etat) { journalDemandeSuppDao.save(new JournalDemandeSupp(Calendar.getInstance().getTime(), demandeSupp.getUtilisateur(), etat, demandeSupp)); } + + public EtatDemande getDernierEtatConnuAvantArchivage(DemandeSupp demandeSupp) { + List journalDemandeSuppList = journalDemandeSuppDao.findAllByDemandeSupp_NumDemandeOrderByDateEntreeDesc(demandeSupp.getNumDemande()); + if (journalDemandeSuppList.size() > 1) { + return journalDemandeSuppList.get(1).getEtatDemande(); + } + return null; + } + + public EtatDemande getDernierEtatConnuAvantArchivage(DemandeModif demandeModif) { + List journalDemandeModifList = journalDemandeModifDao.findAllByDemandeModif_NumDemandeOrderByDateEntreeDesc(demandeModif.getNumDemande()); + if (journalDemandeModifList.size() > 1) { + return journalDemandeModifList.get(1).getEtatDemande(); + } + return null; + } + + public EtatDemande getDernierEtatConnuAvantArchivage(DemandeRecouv demandeRecouv) { + List journalDemandeRecouvList = journalDemandeRecouvDao.findAllByDemandeRecouv_NumDemandeOrderByDateEntreeDesc(demandeRecouv.getNumDemande()); + if (journalDemandeRecouvList.size() > 1) { + return journalDemandeRecouvList.get(1).getEtatDemande(); + } + return null; + } + + public EtatDemande getDernierEtatConnuAvantArchivage(DemandeExemp demandeExemp) { + List journalDemandeExempList = journalDemandeExempDao.findAllByDemandeExemp_NumDemandeOrderByDateEntreeDesc(demandeExemp.getNumDemande()); + if (journalDemandeExempList.size() > 1) { + return journalDemandeExempList.get(1).getEtatDemande(); + } + return null; + } } 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 883bbfd0..c7e969e2 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 @@ -394,8 +394,16 @@ public List getDemandesToDelete() { } @Override - public Demande restaurerDemande(Demande demande) { - return null; + public Demande restaurerDemande(Demande demande) throws DemandeCheckingException { + DemandeExemp demandeExemp = (DemandeExemp) demande; + if (demandeExemp.getEtatDemande().getNumEtat() != Constant.ETATDEM_ARCHIVEE) + throw new DemandeCheckingException("La demande doit être en état archivée !"); + EtatDemande etat = journalService.getDernierEtatConnuAvantArchivage(demandeExemp); + if (etat != null) { + demandeExemp.setEtatDemande(etat); + return save(demandeExemp); + } + return demande; } @Override 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 52dba0d2..3e9af37c 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 @@ -507,8 +507,16 @@ public List getDemandesToDelete() { } @Override - public Demande restaurerDemande(Demande demande) { - return null; + public Demande restaurerDemande(Demande demande) throws DemandeCheckingException { + DemandeModif demandeModif = (DemandeModif) demande; + if (demandeModif.getEtatDemande().getNumEtat() != Constant.ETATDEM_ARCHIVEE) + throw new DemandeCheckingException("La demande doit être en état archivée !"); + EtatDemande etat = journalService.getDernierEtatConnuAvantArchivage(demandeModif); + if (etat != null) { + demandeModif.setEtatDemande(etat); + return save(demandeModif); + } + return demande; } public Demande majTraitement(Integer demandeId, Integer traitementId) { 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 fcc80205..617cbce3 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 @@ -339,8 +339,16 @@ public List getDemandesToDelete() { } @Override - public Demande restaurerDemande(Demande demande) { - return null; + public Demande restaurerDemande(Demande demande) throws DemandeCheckingException { + DemandeRecouv demandeRecouv = (DemandeRecouv) demande; + if (demandeRecouv.getEtatDemande().getNumEtat() != Constant.ETATDEM_ARCHIVEE) + throw new DemandeCheckingException("La demande doit être en état archivée !"); + EtatDemande etat = journalService.getDernierEtatConnuAvantArchivage(demandeRecouv); + if (etat != null) { + demandeRecouv.setEtatDemande(etat); + return save(demandeRecouv); + } + return demande; } @Override 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 ffbc2d93..e4cf2583 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 @@ -379,8 +379,16 @@ public List getDemandesToDelete() { } @Override - public Demande restaurerDemande(Demande demande) { - return null; + public Demande restaurerDemande(Demande demande) throws DemandeCheckingException { + DemandeSupp demandeSupp = (DemandeSupp) demande; + if (demandeSupp.getEtatDemande().getNumEtat() != Constant.ETATDEM_ARCHIVEE) + throw new DemandeCheckingException("La demande doit être en état archivée !"); + EtatDemande etat = journalService.getDernierEtatConnuAvantArchivage(demandeSupp); + if (etat != null) { + demandeSupp.setEtatDemande(etat); + return save(demandeSupp); + } + return demande; } 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 e7276b69..a74d0df9 100644 --- a/web/src/main/java/fr/abes/item/web/DemandeRestService.java +++ b/web/src/main/java/fr/abes/item/web/DemandeRestService.java @@ -351,11 +351,12 @@ public Integer getNbLigneFichier(@PathVariable("type") TYPE_DEMANDE type, @PathV * @return la demande modifiée * @throws UserExistException utilisateur non trouve * @throws ForbiddenException controle d'accès échoué + * @throws DemandeCheckingException demande dans le mauvais état */ @PatchMapping("/restaurerDemande/{type}/{id}") @PreAuthorize("hasAnyAuthority('USER', 'ADMIN')") @Operation(summary = "Permet de restaurer une demande archivée dans son état précédent") - public DemandeWebDto restaurerDemande(@PathVariable("type") TYPE_DEMANDE type, @PathVariable("id") Integer id, HttpServletRequest request) throws ForbiddenException, UserExistException { + public DemandeWebDto restaurerDemande(@PathVariable("type") TYPE_DEMANDE type, @PathVariable("id") Integer id, HttpServletRequest request) throws ForbiddenException, UserExistException, DemandeCheckingException { checkAccessToServices.autoriserAccesDemandeParIln(id, request.getAttribute(Constant.USER_NUM).toString(), type); IDemandeService service = strategy.getStrategy(IDemandeService.class, type); return builder.buildDemandeDto(service.restaurerDemande(service.findById(id)), type); From e546ce27a3f8d1b2cf1e77bbc6e660ff48c431df Mon Sep 17 00:00:00 2001 From: SamuelQuetin Date: Thu, 5 Dec 2024 16:10:12 +0100 Subject: [PATCH 04/11] fix after merge --- .../fr/abes/item/core/service/impl/DemandeRecouvService.java | 2 +- .../fr/abes/item/core/service/impl/DemandeSuppService.java | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) 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 0b5ff9c8..e46d2946 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 @@ -45,7 +45,7 @@ public class DemandeRecouvService extends DemandeService implements IDemandeServ @Value("${files.upload.path}") private String uploadPath; - public DemandeRecouvService(ILibProfileDao libProfileDao, IDemandeRecouvDao demandeRecouvDao, FileSystemStorageService storageService, ReferenceService referenceService, LigneFichierRecouvService ligneFichierRecouvService, UtilisateurService utilisateurService, @Qualifier("itemEntityManager") EntityManager entityManager) { + public DemandeRecouvService(ILibProfileDao libProfileDao, IDemandeRecouvDao demandeRecouvDao, FileSystemStorageService storageService, ReferenceService referenceService, LigneFichierRecouvService ligneFichierRecouvService, UtilisateurService utilisateurService, @Qualifier("itemEntityManager") EntityManager entityManager, JournalService journalService) { super(libProfileDao); this.demandeRecouvDao = demandeRecouvDao; this.storageService = storageService; 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 86afb66d..e4e6eaf5 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 @@ -56,8 +56,7 @@ public class DemandeSuppService extends DemandeService implements IDemandeServic @Value("${files.upload.path}") private String uploadPath; - public DemandeSuppService(ILibProfileDao libProfileDao, IDemandeSuppDao demandeSuppDao, FileSystemStorageService storageService, ReferenceService referenceService, UtilisateurService utilisateurService, Ppntoepn procStockeePpnToEpn, Epntoppn procStockeeEpnToPpn, LigneFichierSuppService ligneFichierSuppService, @Qualifier("itemEntityManager") EntityManager entityManager) { - public DemandeSuppService(ILibProfileDao libProfileDao, IDemandeSuppDao demandeSuppDao, FileSystemStorageService storageService, ReferenceService referenceService, UtilisateurService utilisateurService, Ppntoepn procStockeePpnToEpn, Epntoppn procStockeeEpnToPpn, LigneFichierSuppService ligneFichierSuppService, JournalService journalService) { + public DemandeSuppService(ILibProfileDao libProfileDao, IDemandeSuppDao demandeSuppDao, FileSystemStorageService storageService, ReferenceService referenceService, UtilisateurService utilisateurService, Ppntoepn procStockeePpnToEpn, Epntoppn procStockeeEpnToPpn, LigneFichierSuppService ligneFichierSuppService, @Qualifier("itemEntityManager") EntityManager entityManager, JournalService journalService) { super(libProfileDao); this.demandeSuppDao = demandeSuppDao; this.storageService = storageService; From 59e985541876914f67deadd33a2cefe294713ae6 Mon Sep 17 00:00:00 2001 From: pierre-maraval Date: Fri, 6 Dec 2024 08:16:47 +0100 Subject: [PATCH 05/11] =?UTF-8?q?ITEM-311=20:=20refactor=20m=C3=A9thode=20?= =?UTF-8?q?changement=20d'=C3=A9tat=20Ajout=20persistenceContext=20sur=20e?= =?UTF-8?q?ntityManager=20et=20mise=20=C3=A0=20disposition=20dans=20classe?= =?UTF-8?q?=20m=C3=A8re=20Ajout=20lev=C3=A9e=20d'exception=20dans=20restau?= =?UTF-8?q?ration=20si=20pas=20d'=C3=A9tat=20ant=C3=A9rieur=20trouv=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../abes/item/core/service/IDemandeService.java | 2 -- .../abes/item/core/service/JournalService.java | 17 +++++++++-------- .../core/service/impl/DemandeExempService.java | 14 ++------------ .../core/service/impl/DemandeModifService.java | 14 ++------------ .../core/service/impl/DemandeRecouvService.java | 16 +++------------- .../item/core/service/impl/DemandeService.java | 7 ++++++- .../core/service/impl/DemandeSuppService.java | 17 ++--------------- .../fr/abes/item/web/DemandeRestService.java | 4 ++-- 8 files changed, 26 insertions(+), 65 deletions(-) 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 654fbaa4..fca3998e 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 @@ -42,8 +42,6 @@ public interface IDemandeService { Demande changeState(Demande demande, int etatDemande) throws DemandeCheckingException; - Demande changeStateCanceled(Demande demande, int etatDemande); - List getAllArchivedDemandes(String iln); List getAllArchivedDemandesAllIln(); diff --git a/core/src/main/java/fr/abes/item/core/service/JournalService.java b/core/src/main/java/fr/abes/item/core/service/JournalService.java index ac498c1f..96b508a3 100644 --- a/core/src/main/java/fr/abes/item/core/service/JournalService.java +++ b/core/src/main/java/fr/abes/item/core/service/JournalService.java @@ -1,6 +1,7 @@ package fr.abes.item.core.service; import fr.abes.item.core.entities.item.*; +import fr.abes.item.core.exception.DemandeCheckingException; import fr.abes.item.core.repository.item.IJournalDemandeExempDao; import fr.abes.item.core.repository.item.IJournalDemandeModifDao; import fr.abes.item.core.repository.item.IJournalDemandeRecouvDao; @@ -40,35 +41,35 @@ public void addEntreeJournal(DemandeSupp demandeSupp, EtatDemande etat) { journalDemandeSuppDao.save(new JournalDemandeSupp(Calendar.getInstance().getTime(), demandeSupp.getUtilisateur(), etat, demandeSupp)); } - public EtatDemande getDernierEtatConnuAvantArchivage(DemandeSupp demandeSupp) { + public EtatDemande getDernierEtatConnuAvantArchivage(DemandeSupp demandeSupp) throws DemandeCheckingException { List journalDemandeSuppList = journalDemandeSuppDao.findAllByDemandeSupp_NumDemandeOrderByDateEntreeDesc(demandeSupp.getNumDemande()); if (journalDemandeSuppList.size() > 1) { return journalDemandeSuppList.get(1).getEtatDemande(); } - return null; + throw new DemandeCheckingException("Pas d'état antérieur trouvé pour cette demande"); } - public EtatDemande getDernierEtatConnuAvantArchivage(DemandeModif demandeModif) { + public EtatDemande getDernierEtatConnuAvantArchivage(DemandeModif demandeModif) throws DemandeCheckingException { List journalDemandeModifList = journalDemandeModifDao.findAllByDemandeModif_NumDemandeOrderByDateEntreeDesc(demandeModif.getNumDemande()); if (journalDemandeModifList.size() > 1) { return journalDemandeModifList.get(1).getEtatDemande(); } - return null; + throw new DemandeCheckingException("Pas d'état antérieur trouvé pour cette demande"); } - public EtatDemande getDernierEtatConnuAvantArchivage(DemandeRecouv demandeRecouv) { + public EtatDemande getDernierEtatConnuAvantArchivage(DemandeRecouv demandeRecouv) throws DemandeCheckingException { List journalDemandeRecouvList = journalDemandeRecouvDao.findAllByDemandeRecouv_NumDemandeOrderByDateEntreeDesc(demandeRecouv.getNumDemande()); if (journalDemandeRecouvList.size() > 1) { return journalDemandeRecouvList.get(1).getEtatDemande(); } - return null; + throw new DemandeCheckingException("Pas d'état antérieur trouvé pour cette demande"); } - public EtatDemande getDernierEtatConnuAvantArchivage(DemandeExemp demandeExemp) { + public EtatDemande getDernierEtatConnuAvantArchivage(DemandeExemp demandeExemp) throws DemandeCheckingException { List journalDemandeExempList = journalDemandeExempDao.findAllByDemandeExemp_NumDemandeOrderByDateEntreeDesc(demandeExemp.getNumDemande()); if (journalDemandeExempList.size() > 1) { return journalDemandeExempList.get(1).getEtatDemande(); } - return null; + throw new DemandeCheckingException("Pas d'état antérieur trouvé pour cette demande"); } } 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 094e290b..cf43d4c0 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 @@ -47,13 +47,12 @@ public class DemandeExempService extends DemandeService implements IDemandeServi private final UtilisateurService utilisateurService; private final IZonesAutoriseesDao zonesAutoriseesDao; private final ILigneFichierExempDao ligneFichierExempDao; - private final EntityManager entityManager; @Value("${files.upload.path}") private String uploadPath; public DemandeExempService(ILibProfileDao libProfileDao, IDemandeExempDao demandeExempDao, FileSystemStorageService storageService, LigneFichierExempService ligneFichierExempService, ReferenceService referenceService, JournalService journalService, TraitementService traitementService, UtilisateurService utilisateurService, IZonesAutoriseesDao zonesAutoriseesDao, ILigneFichierExempDao ligneFichierExempDao, @Qualifier("itemEntityManager") EntityManager entityManager) { - super(libProfileDao); + super(libProfileDao, entityManager); this.demandeExempDao = demandeExempDao; this.storageService = storageService; this.ligneFichierService = ligneFichierExempService; @@ -63,7 +62,6 @@ public DemandeExempService(ILibProfileDao libProfileDao, IDemandeExempDao demand this.utilisateurService = utilisateurService; this.zonesAutoriseesDao = zonesAutoriseesDao; this.ligneFichierExempDao = ligneFichierExempDao; - this.entityManager = entityManager; } public List findAll() { @@ -238,7 +236,7 @@ public void initFiles(Demande demande) throws FileTypeException { */ @Override public Demande changeState(Demande demande, int etatDemande) throws DemandeCheckingException { - if ((etatDemande == Constant.ETATDEM_ERREUR) || (demande.getEtatDemande().getNumEtat() == getPreviousState(etatDemande))) { + if ((etatDemande == Constant.ETATDEM_ERREUR) || (etatDemande == Constant.ETATDEM_SUPPRIMEE) || (demande.getEtatDemande().getNumEtat() == getPreviousState(etatDemande))) { EtatDemande etat = referenceService.findEtatDemandeById(etatDemande); demande.setEtatDemande(etat); journalService.addEntreeJournal((DemandeExemp) demande, etat); @@ -248,14 +246,6 @@ public Demande changeState(Demande demande, int etatDemande) throws DemandeCheck } } - @Override - public Demande changeStateCanceled(Demande demande, int etatDemande) { - EtatDemande etat = referenceService.findEtatDemandeById(etatDemande); - demande.setEtatDemande(etat); - journalService.addEntreeJournal((DemandeExemp) demande, etat); - return this.save(demande); - } - /** * Retourne l'état précédent d'une demande dans le déroulement normal du processus * 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 d0e0a98e..e7d7bb09 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 @@ -43,7 +43,6 @@ public class DemandeModifService extends DemandeService implements IDemandeServi private final ReferenceService referenceService; private final UtilisateurService utilisateurService; private final Ppntoepn procStockee; - private final EntityManager entityManager; @Value("${files.upload.path}") private String uploadPath; @@ -52,7 +51,7 @@ public class DemandeModifService extends DemandeService implements IDemandeServi private FichierPrepare fichierPrepare; public DemandeModifService(ILibProfileDao libProfileDao, IDemandeModifDao demandeModifDao, FileSystemStorageService storageService, LigneFichierModifService ligneFichierModifService, JournalService journalService, ReferenceService referenceService, UtilisateurService utilisateurService, Ppntoepn procStockee, @Qualifier("itemEntityManager") EntityManager entityManager) { - super(libProfileDao); + super(libProfileDao, entityManager); this.demandeModifDao = demandeModifDao; this.storageService = storageService; this.ligneFichierService = ligneFichierModifService; @@ -60,7 +59,6 @@ public DemandeModifService(ILibProfileDao libProfileDao, IDemandeModifDao demand this.referenceService = referenceService; this.utilisateurService = utilisateurService; this.procStockee = procStockee; - this.entityManager = entityManager; } @Override @@ -325,14 +323,6 @@ public Demande creerDemande(String rcr, Integer userNum) { return demToReturn; } - @Override - public Demande changeStateCanceled(Demande demande, int etatDemande) { - EtatDemande etat = referenceService.findEtatDemandeById(etatDemande); - demande.setEtatDemande(etat); - journalService.addEntreeJournal((DemandeModif) demande, etat); - return this.save(demande); - } - /** * Méthode permettant de passer une demandeModif dans l'état terminée * @@ -359,7 +349,7 @@ public Demande closeDemande(Demande demande) throws DemandeCheckingException { */ @Override public Demande changeState(Demande demande, int etatDemande) throws DemandeCheckingException { - if ((etatDemande == Constant.ETATDEM_ERREUR) || (demande.getEtatDemande().getNumEtat() == getPreviousState(etatDemande))) { + if ((etatDemande == Constant.ETATDEM_ERREUR) || (etatDemande == Constant.ETATDEM_SUPPRIMEE) || (demande.getEtatDemande().getNumEtat() == getPreviousState(etatDemande))) { EtatDemande etat = referenceService.findEtatDemandeById(etatDemande); demande.setEtatDemande(etat); journalService.addEntreeJournal((DemandeModif) demande, etat); 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 e46d2946..34ab90c0 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 @@ -40,19 +40,17 @@ public class DemandeRecouvService extends DemandeService implements IDemandeServ private final UtilisateurService utilisateurService; private final JournalService journalService; private FichierEnrichiRecouv fichierEnrichiRecouv; - private final EntityManager entityManager; @Value("${files.upload.path}") private String uploadPath; public DemandeRecouvService(ILibProfileDao libProfileDao, IDemandeRecouvDao demandeRecouvDao, FileSystemStorageService storageService, ReferenceService referenceService, LigneFichierRecouvService ligneFichierRecouvService, UtilisateurService utilisateurService, @Qualifier("itemEntityManager") EntityManager entityManager, JournalService journalService) { - super(libProfileDao); + super(libProfileDao, entityManager); this.demandeRecouvDao = demandeRecouvDao; this.storageService = storageService; this.referenceService = referenceService; this.ligneFichierService = ligneFichierRecouvService; this.utilisateurService = utilisateurService; - this.entityManager = entityManager; this.journalService = journalService; } @@ -143,7 +141,7 @@ public Demande previousState(Demande demande) throws DemandeCheckingException { DemandeRecouv demandeRecouv = (DemandeRecouv) demande; if (etatDemande == Constant.ETATDEM_ACOMPLETER) { demandeRecouv.setEtatDemande(new EtatDemande(Constant.ETATDEM_PREPARATION)); - save(demandeRecouv); + this.save(demandeRecouv); } else { throw new DemandeCheckingException(Constant.GO_BACK_TO_PREVIOUS_STEP_ON_DEMAND_FAILED); @@ -190,7 +188,7 @@ public String getInfoHeaderFichierResultat(Demande demande, LocalDateTime dateDe @Override public Demande changeState(Demande demande, int etatDemande) throws DemandeCheckingException { - if ((etatDemande == Constant.ETATDEM_ERREUR) || (demande.getEtatDemande().getNumEtat() == getPreviousState(etatDemande))) { + if ((etatDemande == Constant.ETATDEM_ERREUR) || (etatDemande == Constant.ETATDEM_SUPPRIMEE) || (demande.getEtatDemande().getNumEtat() == getPreviousState(etatDemande))) { EtatDemande etat = referenceService.findEtatDemandeById(etatDemande); demande.setEtatDemande(etat); journalService.addEntreeJournal((DemandeRecouv) demande, etat); @@ -201,14 +199,6 @@ public Demande changeState(Demande demande, int etatDemande) throws DemandeCheck } } - @Override - public Demande changeStateCanceled(Demande demande, int etatDemande) { - EtatDemande etat = referenceService.findEtatDemandeById(etatDemande); - demande.setEtatDemande(etat); - journalService.addEntreeJournal((DemandeRecouv) demande, etat); - return this.save(demande); - } - @Override public List getAllArchivedDemandes(String iln) { List listeDemandeRecouv = this.demandeRecouvDao.getAllArchivedDemandesRecouv(iln); 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 df4d08a6..17bfeb16 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 @@ -4,6 +4,8 @@ import fr.abes.item.core.entities.baseXml.LibProfile; import fr.abes.item.core.entities.item.Demande; import fr.abes.item.core.repository.baseXml.ILibProfileDao; +import jakarta.persistence.EntityManager; +import jakarta.persistence.PersistenceContext; import lombok.Getter; import lombok.extern.slf4j.Slf4j; @@ -13,9 +15,12 @@ @Getter public class DemandeService { protected final ILibProfileDao libProfileDao; + @PersistenceContext + protected final EntityManager entityManager; - public DemandeService(ILibProfileDao libProfileDao) { + public DemandeService(ILibProfileDao libProfileDao, EntityManager entityManager) { this.libProfileDao = libProfileDao; + this.entityManager = entityManager; } /** 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 e4e6eaf5..7eadba8f 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 @@ -18,7 +18,6 @@ import fr.abes.item.core.service.*; import fr.abes.item.core.utilitaire.Utilitaires; import jakarta.persistence.EntityManager; -import jakarta.persistence.PersistenceContext; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; @@ -45,9 +44,6 @@ public class DemandeSuppService extends DemandeService implements IDemandeServic private final UtilisateurService utilisateurService; private final FileSystemStorageService storageService; private final JournalService journalService; - @PersistenceContext - private final EntityManager entityManager; - private FichierInitialSupp fichierInit; private FichierPrepareSupp fichierPrepare; private final Ppntoepn procStockeePpnToEpn; @@ -57,7 +53,7 @@ public class DemandeSuppService extends DemandeService implements IDemandeServic private String uploadPath; public DemandeSuppService(ILibProfileDao libProfileDao, IDemandeSuppDao demandeSuppDao, FileSystemStorageService storageService, ReferenceService referenceService, UtilisateurService utilisateurService, Ppntoepn procStockeePpnToEpn, Epntoppn procStockeeEpnToPpn, LigneFichierSuppService ligneFichierSuppService, @Qualifier("itemEntityManager") EntityManager entityManager, JournalService journalService) { - super(libProfileDao); + super(libProfileDao, entityManager); this.demandeSuppDao = demandeSuppDao; this.storageService = storageService; this.referenceService = referenceService; @@ -66,7 +62,6 @@ public DemandeSuppService(ILibProfileDao libProfileDao, IDemandeSuppDao demandeS this.procStockeeEpnToPpn = procStockeeEpnToPpn; this.ligneFichierService = ligneFichierSuppService; this.journalService = journalService; - this.entityManager = entityManager; } @Override @@ -266,7 +261,7 @@ public String getInfoHeaderFichierResultat(Demande demande, LocalDateTime dateDe @Override public Demande changeState(Demande demande, int etatDemande) throws DemandeCheckingException { - if ((etatDemande == Constant.ETATDEM_ERREUR) + if ((etatDemande == Constant.ETATDEM_ERREUR) || (etatDemande == Constant.ETATDEM_SUPPRIMEE) || (etatDemande == Constant.ETATDEM_INTERROMPUE && (demande.getEtatDemande().getNumEtat() == Constant.ETATDEM_ENCOURS || demande.getEtatDemande().getNumEtat() == Constant.ETATDEM_ATTENTE)) || (demande.getEtatDemande().getNumEtat() == getPreviousState(etatDemande)) || (etatDemande == Constant.ETATDEM_ARCHIVEE && demande.getEtatDemande().getNumEtat() == Constant.ETATDEM_INTERROMPUE)) { @@ -301,14 +296,6 @@ private int getPreviousState(int etatDemande) { }; } - @Override - public Demande changeStateCanceled(Demande demande, int etatDemande) { - EtatDemande etat = referenceService.findEtatDemandeById(etatDemande); - demande.setEtatDemande(etat); - journalService.addEntreeJournal((DemandeSupp) demande, etat); - return this.save(demande); - } - @Override public List getAllArchivedDemandes(String iln) { List listeDemandesDto = this.demandeSuppDao.getAllArchivedDemandesSupp(iln); 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 c85879ff..c44b23f6 100644 --- a/web/src/main/java/fr/abes/item/web/DemandeRestService.java +++ b/web/src/main/java/fr/abes/item/web/DemandeRestService.java @@ -164,13 +164,13 @@ public void supprimer(@PathVariable("type") TYPE_DEMANDE type, @PathVariable("id @GetMapping(value = "/supprimerDemande/{type}/{id}") @PreAuthorize("hasAnyAuthority('USER','ADMIN')") @Operation(summary = "permet de supprimer une demande tout en la conservant en base, elle passe en statut 10 invisible pour l'utilisateur sur l'interface web") - public DemandeWebDto supprimerAvecConservationEnBase(@PathVariable("type") TYPE_DEMANDE type, @PathVariable("id") Integer numDemande, HttpServletRequest request) throws UserExistException, ForbiddenException { + public DemandeWebDto supprimerAvecConservationEnBase(@PathVariable("type") TYPE_DEMANDE type, @PathVariable("id") Integer numDemande, HttpServletRequest request) throws UserExistException, ForbiddenException, DemandeCheckingException { checkAccessToServices.autoriserAccesDemandeParIln(numDemande, request.getAttribute(Constant.USER_NUM).toString(), type); IDemandeService service = strategy.getStrategy(IDemandeService.class, type); ILigneFichierService ligneFichierService = strategy.getStrategy(ILigneFichierService.class, type); Demande demande = service.findById(numDemande); ligneFichierService.deleteByDemande(demande); - return builder.buildDemandeDto(service.changeStateCanceled(demande, Constant.ETATDEM_SUPPRIMEE), type); + return builder.buildDemandeDto(service.changeState(demande, Constant.ETATDEM_SUPPRIMEE), type); } @GetMapping(value = "/getTypeExemplarisationDemande/{id}") From cb523957de233ab812c7708f2ba7290b55e2ef8a Mon Sep 17 00:00:00 2001 From: pierre-maraval Date: Fri, 6 Dec 2024 08:51:35 +0100 Subject: [PATCH 06/11] =?UTF-8?q?ITEM-311=20:=20FIX=20:=20Correction=20r?= =?UTF-8?q?=C3=A9cup=C3=A9ration=20notices=20=C3=A0=20partir=20d'epn=20en?= =?UTF-8?q?=20cas=20de=20notice=20non=20trouv=C3=A9e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/fr/abes/item/batch/traitement/ProxyRetry.java | 6 ++++-- .../java/fr/abes/item/core/service/TraitementService.java | 2 +- .../item/core/service/impl/LigneFichierModifService.java | 7 +++++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/batch/src/main/java/fr/abes/item/batch/traitement/ProxyRetry.java b/batch/src/main/java/fr/abes/item/batch/traitement/ProxyRetry.java index 5c1ea91f..94ee54b3 100644 --- a/batch/src/main/java/fr/abes/item/batch/traitement/ProxyRetry.java +++ b/batch/src/main/java/fr/abes/item/batch/traitement/ProxyRetry.java @@ -78,8 +78,10 @@ public void saveExemplaire(DemandeModif demande, LigneFichierDtoModif ligneFichi //récupération de la exemplaire correpondant à la ligne du fichier en cours String exemplaire = traitementService.getNoticeFromEPN(ligneFichierDtoModif.getEpn()); //modification de la exemplaire d'exemplaire - Exemplaire noticeTraitee = ligneFichierModifService.getNoticeTraitee(demande, exemplaire, ligneFichierDtoMapper.getLigneFichierEntity(ligneFichierDtoModif)); - traitementService.saveExemplaire(noticeTraitee.toString(), ligneFichierDtoModif.getEpn()); + if (exemplaire != null) { + Exemplaire noticeTraitee = ligneFichierModifService.getNoticeTraitee(demande, exemplaire, ligneFichierDtoMapper.getLigneFichierEntity(ligneFichierDtoModif)); + traitementService.saveExemplaire(noticeTraitee.toString(), ligneFichierDtoModif.getEpn()); + } } catch (IOException ex) { log.error("Erreur de communication avec le CBS sur demande modif {} / ligne fichier n°{} / epn : {}", demande.getId(), ligneFichierDtoModif.getNumLigneFichier(), ligneFichierDtoModif.getEpn()); //si un pb de communication avec le CBS est détecté, on se reconnecte, et on renvoie l'exception pour que le retry retente la méthode diff --git a/core/src/main/java/fr/abes/item/core/service/TraitementService.java b/core/src/main/java/fr/abes/item/core/service/TraitementService.java index 7c94bb9f..bf0157d6 100644 --- a/core/src/main/java/fr/abes/item/core/service/TraitementService.java +++ b/core/src/main/java/fr/abes/item/core/service/TraitementService.java @@ -65,8 +65,8 @@ public String getNoticeFromEPN(String epn) throws CBSException, IOException { return Constants.STR_1F + resu2.substring(resu2.indexOf("e" + numEx)) + Constants.STR_0D + Constants.STR_1E; } else { log.error(epn + " pas trouvé"); - throw new IOException(Constant.ERR_FILE_NOTICE_EPN_NUMBER); } + return null; } /** diff --git a/core/src/main/java/fr/abes/item/core/service/impl/LigneFichierModifService.java b/core/src/main/java/fr/abes/item/core/service/impl/LigneFichierModifService.java index 4817ee8e..493569b4 100644 --- a/core/src/main/java/fr/abes/item/core/service/impl/LigneFichierModifService.java +++ b/core/src/main/java/fr/abes/item/core/service/impl/LigneFichierModifService.java @@ -165,7 +165,6 @@ public String[] getNoticeExemplaireAvantApres(Demande demande, LigneFichier lign LigneFichierModif ligneFichierModif = (LigneFichierModif) ligneFichier; String noticeInit = getNoticeInitiale(demande, ligneFichierModif.getEpn()); Exemplaire noticeTraitee = getNoticeTraitee(demande, noticeInit, ligneFichier); - return new String[]{ traitementService.getCbs().getPpnEncours(), noticeInit.replace("\r", "\r\n"), @@ -192,7 +191,11 @@ public String getNoticeInitiale(Demande demandeModif, String epn) throws CBSExce traitementService.authenticate('M' + demandeModif.getRcr()); // appel getNoticeFromEPN sur EPN récupéré String notice = traitementService.getNoticeFromEPN(epn); - return notice.substring(1, notice.length() - 1); + if (notice != null) { + return notice.substring(1, notice.length() - 1); + } else { + return ""; + } } finally { // déconnexion du CBS après avoir lancé la requête traitementService.disconnect(); From b9a9b313fa326108a78d550cedce51012503874e Mon Sep 17 00:00:00 2001 From: pierre-maraval Date: Fri, 6 Dec 2024 09:03:06 +0100 Subject: [PATCH 07/11] ITEM-311 : FIX : Gestion exemplaire inexistant dans modification --- .../item/core/service/impl/LigneFichierModifService.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/fr/abes/item/core/service/impl/LigneFichierModifService.java b/core/src/main/java/fr/abes/item/core/service/impl/LigneFichierModifService.java index 493569b4..2d9e0429 100644 --- a/core/src/main/java/fr/abes/item/core/service/impl/LigneFichierModifService.java +++ b/core/src/main/java/fr/abes/item/core/service/impl/LigneFichierModifService.java @@ -164,10 +164,13 @@ public void deleteByDemande(Demande demande) { public String[] getNoticeExemplaireAvantApres(Demande demande, LigneFichier ligneFichier) throws CBSException, IOException, ZoneException { LigneFichierModif ligneFichierModif = (LigneFichierModif) ligneFichier; String noticeInit = getNoticeInitiale(demande, ligneFichierModif.getEpn()); - Exemplaire noticeTraitee = getNoticeTraitee(demande, noticeInit, ligneFichier); + Exemplaire noticeTraitee = new Exemplaire(); + if (noticeInit != "") { + noticeTraitee = getNoticeTraitee(demande, noticeInit, ligneFichier); + } return new String[]{ traitementService.getCbs().getPpnEncours(), - noticeInit.replace("\r", "\r\n"), + (noticeInit.equals("")) ? "Exemplaire inexistant" : noticeInit.replace("\r", "\r\n"), noticeTraitee.toString().replace("\r", "\r\n") }; } From 23db729427c246ba390e7d1516742cf5aa08e152 Mon Sep 17 00:00:00 2001 From: pierre-maraval Date: Fri, 6 Dec 2024 09:03:57 +0100 Subject: [PATCH 08/11] ITEM-311 : FIX : Gestion exemplaire inexistant dans modification --- .../abes/item/core/service/impl/LigneFichierModifService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/fr/abes/item/core/service/impl/LigneFichierModifService.java b/core/src/main/java/fr/abes/item/core/service/impl/LigneFichierModifService.java index 2d9e0429..af8d1ded 100644 --- a/core/src/main/java/fr/abes/item/core/service/impl/LigneFichierModifService.java +++ b/core/src/main/java/fr/abes/item/core/service/impl/LigneFichierModifService.java @@ -165,7 +165,7 @@ public String[] getNoticeExemplaireAvantApres(Demande demande, LigneFichier lign LigneFichierModif ligneFichierModif = (LigneFichierModif) ligneFichier; String noticeInit = getNoticeInitiale(demande, ligneFichierModif.getEpn()); Exemplaire noticeTraitee = new Exemplaire(); - if (noticeInit != "") { + if (!noticeInit.equals("")) { noticeTraitee = getNoticeTraitee(demande, noticeInit, ligneFichier); } return new String[]{ From 8b6a8875fb02365b1e7057e5f980f58111fc488e Mon Sep 17 00:00:00 2001 From: pierre-maraval Date: Fri, 6 Dec 2024 09:04:11 +0100 Subject: [PATCH 09/11] ITEM-311 : FIX : Gestion exemplaire inexistant dans modification --- .../abes/item/core/service/impl/LigneFichierModifService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/fr/abes/item/core/service/impl/LigneFichierModifService.java b/core/src/main/java/fr/abes/item/core/service/impl/LigneFichierModifService.java index af8d1ded..d98c6f94 100644 --- a/core/src/main/java/fr/abes/item/core/service/impl/LigneFichierModifService.java +++ b/core/src/main/java/fr/abes/item/core/service/impl/LigneFichierModifService.java @@ -165,12 +165,12 @@ public String[] getNoticeExemplaireAvantApres(Demande demande, LigneFichier lign LigneFichierModif ligneFichierModif = (LigneFichierModif) ligneFichier; String noticeInit = getNoticeInitiale(demande, ligneFichierModif.getEpn()); Exemplaire noticeTraitee = new Exemplaire(); - if (!noticeInit.equals("")) { + if (!noticeInit.isEmpty()) { noticeTraitee = getNoticeTraitee(demande, noticeInit, ligneFichier); } return new String[]{ traitementService.getCbs().getPpnEncours(), - (noticeInit.equals("")) ? "Exemplaire inexistant" : noticeInit.replace("\r", "\r\n"), + (noticeInit.isEmpty()) ? "Exemplaire inexistant" : noticeInit.replace("\r", "\r\n"), noticeTraitee.toString().replace("\r", "\r\n") }; } From af6b1a0e2fd96a269721eff7852443b4616d310c Mon Sep 17 00:00:00 2001 From: SamuelQuetin Date: Fri, 6 Dec 2024 09:51:36 +0100 Subject: [PATCH 10/11] ITEM-385 ajout de la journalisation quand restauration --- .../service/impl/DemandeExempService.java | 1 + .../service/impl/DemandeModifService.java | 1 + .../service/impl/DemandeRecouvService.java | 1 + .../core/service/impl/DemandeSuppService.java | 1 + .../impl/LigneFichierModifService.java | 32 ++++++++----------- 5 files changed, 17 insertions(+), 19 deletions(-) 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 cf43d4c0..1af9a779 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 @@ -396,6 +396,7 @@ public Demande restaurerDemande(Demande demande) throws DemandeCheckingException EtatDemande etat = journalService.getDernierEtatConnuAvantArchivage(demandeExemp); if (etat != null) { demandeExemp.setEtatDemande(etat); + journalService.addEntreeJournal(demandeExemp,etat); return save(demandeExemp); } return demande; 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 e7d7bb09..1d6ad7bc 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 @@ -507,6 +507,7 @@ public Demande restaurerDemande(Demande demande) throws DemandeCheckingException EtatDemande etat = journalService.getDernierEtatConnuAvantArchivage(demandeModif); if (etat != null) { demandeModif.setEtatDemande(etat); + journalService.addEntreeJournal(demandeModif,etat); return save(demandeModif); } return demande; 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 34ab90c0..3b249770 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 @@ -337,6 +337,7 @@ public Demande restaurerDemande(Demande demande) throws DemandeCheckingException EtatDemande etat = journalService.getDernierEtatConnuAvantArchivage(demandeRecouv); if (etat != null) { demandeRecouv.setEtatDemande(etat); + journalService.addEntreeJournal(demandeRecouv,etat); return save(demandeRecouv); } return demande; 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 7eadba8f..2b53d383 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 @@ -385,6 +385,7 @@ public Demande restaurerDemande(Demande demande) throws DemandeCheckingException EtatDemande etat = journalService.getDernierEtatConnuAvantArchivage(demandeSupp); if (etat != null) { demandeSupp.setEtatDemande(etat); + journalService.addEntreeJournal(demandeSupp,etat); return save(demandeSupp); } return demande; diff --git a/core/src/main/java/fr/abes/item/core/service/impl/LigneFichierModifService.java b/core/src/main/java/fr/abes/item/core/service/impl/LigneFichierModifService.java index d98c6f94..d945b848 100644 --- a/core/src/main/java/fr/abes/item/core/service/impl/LigneFichierModifService.java +++ b/core/src/main/java/fr/abes/item/core/service/impl/LigneFichierModifService.java @@ -194,11 +194,7 @@ public String getNoticeInitiale(Demande demandeModif, String epn) throws CBSExce traitementService.authenticate('M' + demandeModif.getRcr()); // appel getNoticeFromEPN sur EPN récupéré String notice = traitementService.getNoticeFromEPN(epn); - if (notice != null) { - return notice.substring(1, notice.length() - 1); - } else { - return ""; - } + return (notice != null) ? notice.substring(1, notice.length() - 1) : ""; } finally { // déconnexion du CBS après avoir lancé la requête traitementService.disconnect(); @@ -217,19 +213,17 @@ public Exemplaire getNoticeTraitee(Demande demande, String exemplaire, LigneFich DemandeModif demandeModif = (DemandeModif) demande; LigneFichierModif ligneFichierModif = (LigneFichierModif) ligneFichier; String exempStr = Utilitaires.getExempFromNotice(exemplaire, ligneFichierModif.getEpn()); - switch (demandeModif.getTraitement().getNomMethode()) { - case "creerNouvelleZone": - return traitementService.creerNouvelleZone(exempStr, demandeModif.getZone(), demandeModif.getSousZone(), ligneFichierModif.getValeurZone()); - case "supprimerZone": - return traitementService.supprimerZone(exempStr, demandeModif.getZone()); - case "supprimerSousZone": - return traitementService.supprimerSousZone(exempStr, demandeModif.getZone(), demandeModif.getSousZone()); - case "ajoutSousZone": - return traitementService.creerSousZone(exempStr, demandeModif.getZone(), demandeModif.getSousZone(), ligneFichierModif.getValeurZone()); - case "remplacerSousZone": - return traitementService.remplacerSousZone(exempStr, demandeModif.getZone(), demandeModif.getSousZone(), ligneFichierModif.getValeurZone()); - default: - } - return null; + return switch (demandeModif.getTraitement().getNomMethode()) { + case "creerNouvelleZone" -> + traitementService.creerNouvelleZone(exempStr, demandeModif.getZone(), demandeModif.getSousZone(), ligneFichierModif.getValeurZone()); + case "supprimerZone" -> traitementService.supprimerZone(exempStr, demandeModif.getZone()); + case "supprimerSousZone" -> + traitementService.supprimerSousZone(exempStr, demandeModif.getZone(), demandeModif.getSousZone()); + case "ajoutSousZone" -> + traitementService.creerSousZone(exempStr, demandeModif.getZone(), demandeModif.getSousZone(), ligneFichierModif.getValeurZone()); + case "remplacerSousZone" -> + traitementService.remplacerSousZone(exempStr, demandeModif.getZone(), demandeModif.getSousZone(), ligneFichierModif.getValeurZone()); + default -> null; + }; } } From daae38f5bb6be81e72d909a9affdffe2f3b66394 Mon Sep 17 00:00:00 2001 From: pierre-maraval Date: Fri, 6 Dec 2024 10:05:06 +0100 Subject: [PATCH 11/11] =?UTF-8?q?ITEM-388=20:=20FEAT=20:=20Ajout=20statist?= =?UTF-8?q?iques=20demandes=20de=20suppression=20Refactor=20batch=20g?= =?UTF-8?q?=C3=A9n=C3=A9ration=20statistiques?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/abes/item/batch/JobConfiguration.java | 8 +- .../webstats/ExportStatistiquesTasklet.java | 84 +++++++++++++------ .../webstats/NbExemplairesSuppTraitesDto.java | 13 +++ .../NbExemplairesSuppTraitesMapper.java | 16 ++++ .../fr/abes/item/core/constant/Constant.java | 12 ++- 5 files changed, 102 insertions(+), 31 deletions(-) create mode 100644 batch/src/main/java/fr/abes/item/batch/webstats/NbExemplairesSuppTraitesDto.java create mode 100644 batch/src/main/java/fr/abes/item/batch/webstats/NbExemplairesSuppTraitesMapper.java diff --git a/batch/src/main/java/fr/abes/item/batch/JobConfiguration.java b/batch/src/main/java/fr/abes/item/batch/JobConfiguration.java index 55113d68..e8089eed 100644 --- a/batch/src/main/java/fr/abes/item/batch/JobConfiguration.java +++ b/batch/src/main/java/fr/abes/item/batch/JobConfiguration.java @@ -14,7 +14,6 @@ import fr.abes.item.core.constant.Constant; import fr.abes.item.core.constant.TYPE_DEMANDE; import fr.abes.item.core.service.ReferenceService; -import jakarta.persistence.EntityManager; import lombok.extern.slf4j.Slf4j; import org.springframework.batch.core.Job; import org.springframework.batch.core.JobExecution; @@ -38,6 +37,7 @@ import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScans; import org.springframework.context.annotation.Configuration; +import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.retry.annotation.EnableRetry; import org.springframework.transaction.PlatformTransactionManager; @@ -56,6 +56,7 @@ public class JobConfiguration { private final StrategyFactory strategyFactory; private final ProxyRetry proxyRetry; private final ReferenceService referenceService; + private final JdbcTemplate jdbcTemplate; @Value("${batch.min.hour}") int minHour; @@ -71,10 +72,11 @@ public class JobConfiguration { private Integer nbPpnInFileResult; - public JobConfiguration(StrategyFactory strategyFactory, ProxyRetry proxyRetry, ReferenceService referenceService) { + public JobConfiguration(StrategyFactory strategyFactory, ProxyRetry proxyRetry, ReferenceService referenceService, @Qualifier("itemJdbcTemplate") JdbcTemplate jdbcTemplate) { this.strategyFactory = strategyFactory; this.proxyRetry = proxyRetry; this.referenceService = referenceService; + this.jdbcTemplate = jdbcTemplate; } @Bean @@ -123,7 +125,7 @@ public Tasklet authentifierSurSudocTasklet() //statistiques application @Bean - public Tasklet exportStatistiquesTasklet() { return new ExportStatistiquesTasklet(); } + public Tasklet exportStatistiquesTasklet() { return new ExportStatistiquesTasklet(jdbcTemplate); } //Archivage automatique des demandes diff --git a/batch/src/main/java/fr/abes/item/batch/webstats/ExportStatistiquesTasklet.java b/batch/src/main/java/fr/abes/item/batch/webstats/ExportStatistiquesTasklet.java index f84f1afc..ebf5c2e8 100644 --- a/batch/src/main/java/fr/abes/item/batch/webstats/ExportStatistiquesTasklet.java +++ b/batch/src/main/java/fr/abes/item/batch/webstats/ExportStatistiquesTasklet.java @@ -12,68 +12,90 @@ import org.springframework.batch.core.scope.context.ChunkContext; import org.springframework.batch.core.step.tasklet.Tasklet; import org.springframework.batch.repeat.RepeatStatus; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.jdbc.core.JdbcTemplate; -import javax.sql.DataSource; import java.io.FileWriter; import java.util.Date; import java.util.List; @Slf4j public class ExportStatistiquesTasklet implements Tasklet, StepExecutionListener { - @Autowired - protected DataSource itemDataSource; - - @Autowired - protected JdbcTemplate itemJdbcTemplate; + private final JdbcTemplate itemJdbcTemplate; private Integer annee; private Integer mois; - private List listeDemandesTraitees; - private List listeExemplairesTraites; - + private Date dateDebut; + private Date dateFin; @Value("${files.upload.statistiques.path}") private String uploadPath; + public ExportStatistiquesTasklet(JdbcTemplate itemJdbcTemplate) { + this.itemJdbcTemplate = itemJdbcTemplate; + } + @Override public void beforeStep(StepExecution stepExecution) { - Date dateDebut = (Date) stepExecution.getJobExecution().getExecutionContext().get("dateDebut"); - Date dateFin = (Date) stepExecution.getJobExecution().getExecutionContext().get("dateFin"); - annee = (int) stepExecution.getJobExecution().getExecutionContext().get("annee"); - mois = (int) stepExecution.getJobExecution().getExecutionContext().get("mois"); - listeDemandesTraitees = getNbDemandesTraitees(dateDebut, dateFin); - listeExemplairesTraites = getNbExemplairesTraites(dateDebut, dateFin); + this.dateDebut = (Date) stepExecution.getJobExecution().getExecutionContext().get("dateDebut"); + this.dateFin = (Date) stepExecution.getJobExecution().getExecutionContext().get("dateFin"); + this.annee = (int) stepExecution.getJobExecution().getExecutionContext().get("annee"); + this.mois = (int) stepExecution.getJobExecution().getExecutionContext().get("mois"); + } @Override public RepeatStatus execute(@NonNull StepContribution stepContribution, @NonNull ChunkContext chunkContext) throws Exception { - try (CSVWriter writer = new CSVWriter(new FileWriter(getFilename(Constant.STAT_NBDEMANDESTRAITEES_FILENAME)), ';', CSVWriter.NO_QUOTE_CHARACTER)){ + exportStatistiquesDemandesModif(); + exportStatistiquesDemandesSupp(); + return RepeatStatus.FINISHED; + } + + private void exportStatistiquesDemandesModif() { + try (CSVWriter writer = new CSVWriter(new FileWriter(getFilename(Constant.STAT_NBDEMANDESMODIFTRAITEES_FILENAME)), ';', CSVWriter.NO_QUOTE_CHARACTER)){ + List listeDemandesTraitees = getNbDemandesTraiteesModif(dateDebut, dateFin); for (NbDemandesTraiteesDto demande : listeDemandesTraitees) { writer.writeNext(new String[]{demande.getRcr(), demande.getNbDemandesTraitees().toString()}); } } catch (Exception e) { - log.error(Constant.ERROR_OPENING_FILE_FOR_NUMBER_OF_REQUESTS_PROCESSED_BY_RCR); + log.error(Constant.ERR_FILE_STAT_MODIF_DEMANDES); } - try (CSVWriter writer = new CSVWriter(new FileWriter(getFilename(Constant.STAT_NBEXEMPLAIRESTRAITES_FILENAME)), ';', CSVWriter.NO_QUOTE_CHARACTER)) { + try (CSVWriter writer = new CSVWriter(new FileWriter(getFilename(Constant.STAT_NBEXEMPLAIRESMODIFTRAITES_FILENAME)), ';', CSVWriter.NO_QUOTE_CHARACTER)) { + List listeExemplairesTraites = getNbExemplairesTraitesModif(dateDebut, dateFin); for (NbExemplairesTraitesDto exemp : listeExemplairesTraites) { writer.writeNext(new String[]{exemp.getRcr(), exemp.getTypeTraitement().toString(), exemp.getNbExemplaires().toString()}); } } catch (Exception e) { - log.error(Constant.ERROR_OPENING_FILE_FOR_NUMBER_OF_EXEMPLARIES_PROCESSES_BY_RCR_AND_TREATMENT); + log.error(Constant.ERR_FILE_STAT_MODIF_EXEMP); + } + } + + private void exportStatistiquesDemandesSupp() { + try (CSVWriter writer = new CSVWriter(new FileWriter(getFilename(Constant.STAT_NBDEMANDESSUPPTRAITEES_FILENAME)), ';', CSVWriter.NO_QUOTE_CHARACTER)){ + List listeDemandesTraitees = getNbDemandesTraiteesSupp(dateDebut, dateFin); + for (NbDemandesTraiteesDto demande : listeDemandesTraitees) { + writer.writeNext(new String[]{demande.getRcr(), demande.getNbDemandesTraitees().toString()}); + } + } catch (Exception e) { + log.error(Constant.ERR_FILE_STAT_SUPP_DEMANDES); + } + try (CSVWriter writer = new CSVWriter(new FileWriter(getFilename(Constant.STAT_NBEXEMPLAIRESSUPPTRAITES_FILENAME)), ';', CSVWriter.NO_QUOTE_CHARACTER)) { + List listeExemplairesTraites = getNbExemplairesTraitesSupp(dateDebut, dateFin); + for (NbExemplairesSuppTraitesDto exemp : listeExemplairesTraites) { + writer.writeNext(new String[]{exemp.getRcr(), exemp.getNbExemplaires().toString()}); + } + } catch (Exception e) { + log.error(Constant.ERR_FILE_STAT_SUPP_EXEMP); } - return RepeatStatus.FINISHED; } - private List getNbDemandesTraitees(Date dateDebut, Date dateFin) { - String query = "select RCR, count(*) from DEMANDE_MODIF d, JOURNAL_DEMANDE_MODIF j where j.JOU_DEM_ID = d.NUM_DEMANDE and j.JOU_ETA_ID=7 and j.DATE_ENTREE between ? and ? group by d.RCR"; + private List getNbDemandesTraiteesModif(Date dateDebut, Date dateFin) { + String query = "select RCR, count(distinct d.NUM_DEMANDE) from DEMANDE_MODIF d join JOURNAL_DEMANDE_MODIF j on j.JOU_DEM_ID = d.NUM_DEMANDE where j.JOU_ETA_ID IN (7, 9) and j.DATE_ENTREE between ? and ? group by d.RCR"; return itemJdbcTemplate.query(query, new Object[] {dateDebut, dateFin}, new NbDemandesTraiteesMapper()); } - private List getNbExemplairesTraites(Date dateDebut, Date dateFin) { + private List getNbExemplairesTraitesModif(Date dateDebut, Date dateFin) { String query = "select d.DEM_TRAIT_ID, d.RCR, count(*) " + "from JOURNAL_DEMANDE_MODIF j, DEMANDE_MODIF d, LIGNE_FICHIER_MODIF lf " + "where j.DATE_ENTREE between ? and ? "+ @@ -82,6 +104,20 @@ private List getNbExemplairesTraites(Date dateDebut, Da return itemJdbcTemplate.query(query, new Object[] {dateDebut, dateFin}, new NbExemplairesTraitesMapper()); } + private List getNbDemandesTraiteesSupp(Date dateDebut, Date dateFin) { + String query = "select RCR, count(distinct d.NUM_DEMANDE) from DEMANDE_SUPP d join JOURNAL_DEMANDE_SUPP j on j.JOU_DEM_ID = d.NUM_DEMANDE where j.JOU_ETA_ID IN (7, 9) and j.DATE_ENTREE between ? and ? group by d.RCR"; + return itemJdbcTemplate.query(query, new Object[] {dateDebut, dateFin}, new NbDemandesTraiteesMapper()); + } + + private List getNbExemplairesTraitesSupp(Date dateDebut, Date dateFin) { + String query = "select d.RCR, count(*) " + + "from JOURNAL_DEMANDE_SUPP j, DEMANDE_SUPP d, LIGNE_FICHIER_SUPP lf " + + "where j.DATE_ENTREE between ? and ? "+ + "and j.JOU_ETA_ID=6 and j.JOU_DEM_ID = d.NUM_DEMANDE and d.NUM_DEMANDE = lf.REF_DEMANDE and lf.TRAITEE=1 " + + "group by d.RCR"; + return itemJdbcTemplate.query(query, new Object[] {dateDebut, dateFin}, new NbExemplairesSuppTraitesMapper()); + } + private String getFilename(String filename) { return uploadPath + annee + ((mois < 10) ? '0' + mois.toString() : mois.toString()) + "_" + filename + Constant.EXTENSIONCSV; } diff --git a/batch/src/main/java/fr/abes/item/batch/webstats/NbExemplairesSuppTraitesDto.java b/batch/src/main/java/fr/abes/item/batch/webstats/NbExemplairesSuppTraitesDto.java new file mode 100644 index 00000000..7db38287 --- /dev/null +++ b/batch/src/main/java/fr/abes/item/batch/webstats/NbExemplairesSuppTraitesDto.java @@ -0,0 +1,13 @@ +package fr.abes.item.batch.webstats; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@NoArgsConstructor +@Getter +@Setter +public class NbExemplairesSuppTraitesDto { + private String rcr; + private Integer nbExemplaires; +} diff --git a/batch/src/main/java/fr/abes/item/batch/webstats/NbExemplairesSuppTraitesMapper.java b/batch/src/main/java/fr/abes/item/batch/webstats/NbExemplairesSuppTraitesMapper.java new file mode 100644 index 00000000..cfdd8d6b --- /dev/null +++ b/batch/src/main/java/fr/abes/item/batch/webstats/NbExemplairesSuppTraitesMapper.java @@ -0,0 +1,16 @@ +package fr.abes.item.batch.webstats; + +import org.springframework.jdbc.core.RowMapper; + +import java.sql.ResultSet; +import java.sql.SQLException; + +public class NbExemplairesSuppTraitesMapper implements RowMapper { + @Override + public NbExemplairesSuppTraitesDto mapRow(ResultSet resultSet, int i) throws SQLException { + NbExemplairesSuppTraitesDto nbExemp = new NbExemplairesSuppTraitesDto(); + nbExemp.setRcr(resultSet.getString("RCR")); + nbExemp.setNbExemplaires(resultSet.getInt("count")); + return nbExemp; + } +} diff --git a/core/src/main/java/fr/abes/item/core/constant/Constant.java b/core/src/main/java/fr/abes/item/core/constant/Constant.java index acfc8fb9..af3d03d4 100644 --- a/core/src/main/java/fr/abes/item/core/constant/Constant.java +++ b/core/src/main/java/fr/abes/item/core/constant/Constant.java @@ -164,8 +164,10 @@ public class Constant implements Serializable { public static final int TAILLEMAX = 9; /**Specific messages on mails sents and stats*/ - public static final String STAT_NBDEMANDESTRAITEES_FILENAME = "demandesTraiteesRCR"; - public static final String STAT_NBEXEMPLAIRESTRAITES_FILENAME = "exemplairesTraitesTraitementRCR"; + public static final String STAT_NBDEMANDESMODIFTRAITEES_FILENAME = "demandesTraiteesModifRCR"; + public static final String STAT_NBEXEMPLAIRESMODIFTRAITES_FILENAME = "exemplairesModifTraitesTraitementRCR"; + public static final String STAT_NBDEMANDESSUPPTRAITEES_FILENAME = "demandesSuppTraiteesRCR"; + public static final String STAT_NBEXEMPLAIRESSUPPTRAITES_FILENAME = "exemplairesSuppTraitesRCR"; public static final String DEMANDE_MODIFICATION_START = "Demande de modification d'exemplaires N° "; public static final String DEMANDE_SUPPRESSION_START = "Demande de suppression d'exemplaires N° "; public static final String DEMANDE_EXEMPLARISATION_START = "Votre exemplarisation - "; @@ -200,8 +202,10 @@ public class Constant implements Serializable { public static final String STRATEGY_ANNOTATION_FOR_BEAN_FAILED ="Ne peut résoudre l'annotation strategy pour ce bean."; public static final String STRATEGY_RETURN_DEFAULT_STRATEGY_NO_TYPE_DEMANDE_SELECTED = "No type_demande selected, returning default strategy"; public static final String STRATEGY_RETURN_DEFAULT_STRATEGY_NO_TYPE_DEMANDE_SPECIFIC_STRATEGY_SELECTED = "No type_demande specific strategy found, returning default strategy"; - public static final String ERROR_OPENING_FILE_FOR_NUMBER_OF_REQUESTS_PROCESSED_BY_RCR = "Erreur dans l'ouverture du fichier pour nb demandeModifs traitées par RCR."; - public static final String ERROR_OPENING_FILE_FOR_NUMBER_OF_EXEMPLARIES_PROCESSES_BY_RCR_AND_TREATMENT = "Erreur dans l'ouverture du fichier pour nb exemplaires traites par RCR et Traitement."; + public static final String ERR_FILE_STAT_MODIF_DEMANDES = "Erreur dans l'ouverture du fichier pour nb demande modif traitées par RCR."; + public static final String ERR_FILE_STAT_MODIF_EXEMP = "Erreur dans l'ouverture du fichier pour nb exemplaires de demande de modif traites par RCR et Traitement."; + public static final String ERR_FILE_STAT_SUPP_DEMANDES = "Erreur dans l'ouverture du fichier pour nb demande supp traitées par RCR."; + public static final String ERR_FILE_STAT_SUPP_EXEMP = "Erreur dans l'ouverture du fichier pour nb exemplaires de demande de supp traites par RCR."; public static final String ERROR_RESPONDING_WITH_UNAUTHORIZED_ERROR = "Erreur : répond avec une erreur d'autorisation : message - {0}"; public static final String ERROR_ACCESS_DATABASE = "Erreur acces a la base"; public static final String ERROR_GENERIC_TECHNICAL_PROBLEMS = "Nous rencontrons actuellement des problèmes techniques.";