Skip to content

Commit

Permalink
Refactor : Ajout Strategy dans Controller Demandes
Browse files Browse the repository at this point in the history
Encapsulation traitement métiers dans couche service
Suppression interface inutile et déplacement de signature au niveau abstrait
Ajout TU controller
  • Loading branch information
pierre-maraval committed Apr 30, 2024
1 parent 27cb3ec commit 0cdda1d
Show file tree
Hide file tree
Showing 20 changed files with 474 additions and 922 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,10 @@ public DemandeExemp(String rcr, Date dateCreation, Date dateModification, EtatDe
super(rcr, dateCreation, dateModification, etatDemande, commentaire, utilisateur);
}

public DemandeExemp(Integer id, String rcr, Date dateCreation, Date dateModification, EtatDemande etatDemande, String commentaire, Utilisateur utilisateur) {
super(id, rcr, dateCreation, dateModification, etatDemande, commentaire, utilisateur);
}

public TYPE_DEMANDE getTypeDemande() {
return TYPE_DEMANDE.EXEMP;
}
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

21 changes: 19 additions & 2 deletions core/src/main/java/fr/abes/item/core/service/IDemandeService.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
package fr.abes.item.core.service;

import fr.abes.cbs.exception.CBSException;
import fr.abes.cbs.exception.ZoneException;
import fr.abes.item.core.entities.item.Demande;
import fr.abes.item.core.entities.item.LigneFichier;
import fr.abes.item.core.exception.DemandeCheckingException;
import fr.abes.item.core.exception.FileCheckingException;
import fr.abes.item.core.exception.FileTypeException;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.time.LocalDateTime;
Expand All @@ -13,12 +18,16 @@ public interface IDemandeService {

Demande findById(Integer id);

Demande creerDemande(String rcr, Integer userNum);

Demande archiverDemande(Demande demande) throws DemandeCheckingException;

void deleteById(Integer id);

void initFiles(Demande demande) throws FileTypeException;

String stockerFichier(MultipartFile file, Demande demande) throws IOException, FileTypeException, FileCheckingException, DemandeCheckingException;

Demande previousState(Demande demande) throws DemandeCheckingException, IOException;

Demande closeDemande(Demande demande) throws DemandeCheckingException;
Expand All @@ -29,7 +38,9 @@ public interface IDemandeService {

String getInfoHeaderFichierResultat(Demande demande, LocalDateTime dateDebut);

Object changeState(Demande demande, int etatDemande) throws DemandeCheckingException;
Demande changeState(Demande demande, int etatDemande) throws DemandeCheckingException;

Demande changeStateCanceled(Demande demande, int etatDemande);

List<Demande> getAllArchivedDemandes(String iln);

Expand All @@ -39,6 +50,12 @@ public interface IDemandeService {

List<Demande> getAllActiveDemandesForAdmin(String iln);

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

String[] getNoticeExemplaireAvantApres(Demande demande, LigneFichier ligneFichier) throws CBSException, ZoneException, IOException;

List<? extends Demande> getIdNextDemandeToArchive();
List<? extends Demande> getIdNextDemandeToPlaceInDeletedStatus();
List<? extends Demande> getIdNextDemandeToDelete();

}
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
@Service
@ToString
@Strategy(type = IDemandeService.class, typeDemande = {TYPE_DEMANDE.EXEMP})
public class DemandeExempService extends DemandeService implements IDemandeExempService {
public class DemandeExempService extends DemandeService implements IDemandeService {
private FichierEnrichiExemp fichierEnrichiExemp;

private final IDemandeExempDao demandeExempDao;
Expand All @@ -55,6 +55,7 @@ public class DemandeExempService extends DemandeService implements IDemandeExemp
private final JournalService journalService;

private final TraitementService traitementService;
private final UtilisateurService utilisateurService;

private final IZonesAutoriseesDao zonesAutoriseesDao;

Expand All @@ -72,14 +73,15 @@ public class DemandeExempService extends DemandeService implements IDemandeExemp
@Getter
private int nbReponses;

public DemandeExempService(ILibProfileDao libProfileDao, IDemandeExempDao demandeExempDao, FileSystemStorageService storageService, LigneFichierExempService ligneFichierExempService, ReferenceService referenceService, JournalService journalService, TraitementService traitementService, IZonesAutoriseesDao zonesAutoriseesDao, ILigneFichierExempDao ligneFichierExempDao) {
public DemandeExempService(ILibProfileDao libProfileDao, IDemandeExempDao demandeExempDao, FileSystemStorageService storageService, LigneFichierExempService ligneFichierExempService, ReferenceService referenceService, JournalService journalService, TraitementService traitementService, UtilisateurService utilisateurService, IZonesAutoriseesDao zonesAutoriseesDao, ILigneFichierExempDao ligneFichierExempDao) {
super(libProfileDao);
this.demandeExempDao = demandeExempDao;
this.storageService = storageService;
this.ligneFichierService = ligneFichierExempService;
this.referenceService = referenceService;
this.journalService = journalService;
this.traitementService = traitementService;
this.utilisateurService = utilisateurService;
this.zonesAutoriseesDao = zonesAutoriseesDao;
this.ligneFichierExempDao = ligneFichierExempDao;
}
Expand Down Expand Up @@ -108,7 +110,6 @@ public List<Demande> getAllActiveDemandesForAdminExtended() {
return demandeList;
}

@Override
public String getLibelleTypeExempDemande(Integer idDemande) {
return demandeExempDao.getTypeExemp(idDemande).getLibelle();
}
Expand Down Expand Up @@ -147,7 +148,6 @@ public List<Demande> getActiveDemandesForUser(String iln) {
return listeDemande;
}

@Override
public boolean hasDonneeLocaleExistante() {
return !donneeLocaleExistante.isEmpty();
}
Expand All @@ -159,7 +159,6 @@ public boolean hasDonneeLocaleExistante() {
* @param typeExempId valeur du type d'exemplarisation
* @return la demande modifiée
*/
@Override
public DemandeExemp majTypeExemp(Integer demandeId, Integer typeExempId) {
Optional<DemandeExemp> demandeExemp = demandeExempDao.findById(demandeId);
TypeExemp typeExemp = referenceService.findTypeExempById(typeExempId);
Expand Down Expand Up @@ -373,12 +372,15 @@ public Demande closeDemande(Demande demande) throws DemandeCheckingException {
/**
* Méthode permettant d'interroger le Sudoc, de créer un exemplaire et de le retourner pour la simulation
*
* @param demande demande d'exemplarisation concernée
* @param ligneFichier ligneFichier à traiter
* @param demandeExemp demande d'exemplarisation concernée
* @param ligneFichierExemp ligneFichier à traiter
* @return la chaine de l'exemplaire construit, ou message d'erreur
*/
public String[] getNoticeExemplaireAvantApres(DemandeExemp demande, LigneFichierExemp ligneFichier) throws CBSException, IOException {
@Override
public String[] getNoticeExemplaireAvantApres(Demande demandeExemp, LigneFichier ligneFichierExemp) throws CBSException, IOException {
try {
DemandeExemp demande = (DemandeExemp) demandeExemp;
LigneFichierExemp ligneFichier = (LigneFichierExemp) ligneFichierExemp;
traitementService.authenticate("M" + demande.getRcr());
String numEx = launchQueryToSudoc(demande, ligneFichier.getIndexRecherche());
//Retourne le tableau exemplaires existants / Exemplaire à créer
Expand All @@ -405,7 +407,6 @@ public String[] getNoticeExemplaireAvantApres(DemandeExemp demande, LigneFichier
* @param valeurs : tableau des valeurs des index de recherche
* @return le numéro du prochain exemplaire à créer dans la notice au format "xx"
*/
@Override
public String launchQueryToSudoc(DemandeExemp demande, String valeurs) throws CBSException, QueryToSudocException, IOException {
String[] tabvaleurs = valeurs.split(";");
String query = getQueryToSudoc(demande.getIndexRecherche().getCode(), demande.getTypeExemp().getLibelle(), tabvaleurs);
Expand Down Expand Up @@ -502,9 +503,11 @@ public List<DemandeExemp> getIdNextDemandeToDelete() {
}

@Override
public DemandeExemp creerDemande(String rcr, Date dateCreation, Date dateModification, EtatDemande etatDemande, String commentaire, Utilisateur utilisateur) {
DemandeExemp demandeExemp = new DemandeExemp(rcr, dateCreation, dateModification, etatDemande, commentaire, utilisateur);
public DemandeExemp creerDemande(String rcr, Integer userNum) {
Calendar calendar = Calendar.getInstance();
DemandeExemp demandeExemp = new DemandeExemp(rcr, calendar.getTime(), calendar.getTime(), referenceService.findEtatDemandeById(Constant.ETATDEM_PREPARATION), "", utilisateurService.findById(userNum));
demandeExemp.setIln(Objects.requireNonNull(libProfileDao.findById(rcr).orElse(null)).getIln());
journalService.addEntreeJournal(demandeExemp, referenceService.findEtatDemandeById(Constant.ETATDEM_PREPARATION));
return demandeExemp;
}

Expand All @@ -515,7 +518,6 @@ public DemandeExemp creerDemande(String rcr, Date dateCreation, Date dateModific
* @param valeurZones : chaine contenant les valeurs des zones à créer (séparées par des ;)
* @return l'exemplaire sous forme de chaine
*/
@Override
public String creerExemplaireFromHeaderEtValeur(String header, String valeurZones, String rcr, String numExemp) throws CBSException, ZoneException {
String[] listeHeader = header.split(";");
String[] listeValeur = valeurZones.split(";");
Expand Down Expand Up @@ -642,7 +644,6 @@ private void ajout991(Exemplaire exemp) throws ZoneException {
* @param valeurZones : valeurs des zones à ajouter dans les données locales
* @return les données locales de la notice
*/
@Override
public String creerDonneesLocalesFromHeaderEtValeur(String header, String valeurZones) throws ZoneException {
String[] listeHeader = header.split(";");
String[] listeValeur = valeurZones.split(";");
Expand Down Expand Up @@ -705,7 +706,6 @@ public List<Demande> getAllArchivedDemandesAllIln() {
* @param valeur tableau des valeurs utilisées pour construire la requête
* @return requête che prête à être lancée vers le CBS
*/
@Override
public String getQueryToSudoc(String codeIndex, String typeExemp, String[] valeur) throws QueryToSudocException {
switch (typeExemp) {
case "Monographies électroniques":
Expand Down
Loading

0 comments on commit 0cdda1d

Please sign in to comment.