From 962af9b48cb1e7bf68f525b64e0373e358cb72fb Mon Sep 17 00:00:00 2001 From: Aurince AKAKPO Date: Mon, 16 Feb 2026 14:48:46 +0100 Subject: [PATCH] gestion revu de code en utilisant uniquement les DTO --- .../infocad/metier/PersonneController.java | 5 +- .../java/io/gmss/fiscad/enums/Origine.java | 5 +- .../infocad/metier/PersonneServiceImpl.java | 57 ++++++++++++++++++- .../infocad/metier/PersonneService.java | 2 +- .../RecherchePersonneResquestBody.java | 6 +- .../request/crudweb/PersonnePayLoadWeb.java | 18 ++++++ .../infocad/parametre/PersonneRepository.java | 39 +++++++++++++ src/main/resources/application.properties | 6 ++ 8 files changed, 130 insertions(+), 8 deletions(-) diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/PersonneController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/PersonneController.java index 9fdd9bd..2451d05 100644 --- a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/PersonneController.java +++ b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/PersonneController.java @@ -116,10 +116,9 @@ public class PersonneController { @PostMapping("/recherche") public ResponseEntity rechercherPersonne(@RequestBody RecherchePersonneResquestBody recherchePersonneResquestBody ) { try{ - personneService.recherchePersonne(recherchePersonneResquestBody); - + // personneService.recherchePersonne(recherchePersonneResquestBody); return new ResponseEntity<>( - new ApiResponse<>(true, null, "Personne retrouvée avec succès."), + new ApiResponse<>(true, personneService.recherchePersonne(recherchePersonneResquestBody), "Personne retrouvée avec succès."), HttpStatus.OK ); }catch (Exception e){ diff --git a/src/main/java/io/gmss/fiscad/enums/Origine.java b/src/main/java/io/gmss/fiscad/enums/Origine.java index 7ea4edf..c20a1eb 100644 --- a/src/main/java/io/gmss/fiscad/enums/Origine.java +++ b/src/main/java/io/gmss/fiscad/enums/Origine.java @@ -2,5 +2,8 @@ package io.gmss.fiscad.enums; public enum Origine { WEB, - MOBILE + MOBILE, + SIGIBE, + RFU_LOGIL, + ANIP } diff --git a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/PersonneServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/PersonneServiceImpl.java index 0ce9cc8..a13d4ce 100644 --- a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/PersonneServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/PersonneServiceImpl.java @@ -26,6 +26,8 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; +import java.time.LocalDate; +import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -194,9 +196,60 @@ public class PersonneServiceImpl implements PersonneService { } @Override - public List recherchePersonne(RecherchePersonneResquestBody recherchePersonneResquestBody) { - callAPIService.callGetIfuEnLigneToken(); + public List recherchePersonne(RecherchePersonneResquestBody recherchePersonneResquestBody) { + // callAPIService.callGetIfuEnLigneToken(); + List personnePayLoadWebsRfuLoggil = new ArrayList<>(); + personnePayLoadWebsRfuLoggil = recherchePersonneLocal(recherchePersonneResquestBody); + + + + return personnePayLoadWebsRfuLoggil; + } + + + private List recherchePersonneLocal(RecherchePersonneResquestBody recherchePersonneResquestBody) { + + List personnePayLoadWebs= + personneRepository.findByFilters( + recherchePersonneResquestBody.getIfu()==null?null:recherchePersonneResquestBody.getIfu().trim().toLowerCase(), + recherchePersonneResquestBody.getNpi()==null?null:recherchePersonneResquestBody.getNpi().trim().toLowerCase(), + recherchePersonneResquestBody.getNom()==null?null:recherchePersonneResquestBody.getNom().trim().toLowerCase(), + recherchePersonneResquestBody.getPrenom()==null?null:recherchePersonneResquestBody.getPrenom().trim().toLowerCase(), + recherchePersonneResquestBody.getRaisonSociale()==null?null:recherchePersonneResquestBody.getRaisonSociale().trim().toLowerCase(), + recherchePersonneResquestBody.getNomMere()==null?null:recherchePersonneResquestBody.getNomMere().trim().toLowerCase(), + recherchePersonneResquestBody.getDateNaissance() + ); + return personnePayLoadWebs ; + } + + private List recherchePersonneSigibe(RecherchePersonneResquestBody recherchePersonneResquestBody) { + // callAPIService.callGetIfuEnLigneToken(); + + return null; } + + private List recherchePersonneAnip(RecherchePersonneResquestBody recherchePersonneResquestBody) { + // callAPIService.callGetIfuEnLigneToken(); + + + return null; + } + + + private String like(String value) { + if (value == null) { + return null; + } + + value = value.trim(); + + if (value.isEmpty()) { + return null; + } + + return "%" + value + "%"; + } + } diff --git a/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/PersonneService.java b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/PersonneService.java index b1e22be..e0a2f0d 100755 --- a/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/PersonneService.java +++ b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/PersonneService.java @@ -26,5 +26,5 @@ public interface PersonneService { Optional getPersonneById(Long id); PersonneCompletDTO getPersonneComplete(Long id); - List recherchePersonne(RecherchePersonneResquestBody recherchePersonneResquestBody); + List recherchePersonne(RecherchePersonneResquestBody recherchePersonneResquestBody); } diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/RecherchePersonneResquestBody.java b/src/main/java/io/gmss/fiscad/paylaods/request/RecherchePersonneResquestBody.java index ad968fd..9a5b8d7 100644 --- a/src/main/java/io/gmss/fiscad/paylaods/request/RecherchePersonneResquestBody.java +++ b/src/main/java/io/gmss/fiscad/paylaods/request/RecherchePersonneResquestBody.java @@ -2,11 +2,15 @@ package io.gmss.fiscad.paylaods.request; import lombok.Data; +import java.time.LocalDate; + @Data public class RecherchePersonneResquestBody { private String ifu; + private String npi; private String nom; private String nomMere; private String prenom; - private String dateNaissance; + private String raisonSociale; + private LocalDate dateNaissance; } diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/PersonnePayLoadWeb.java b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/PersonnePayLoadWeb.java index dd34f0e..f6b03aa 100644 --- a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/PersonnePayLoadWeb.java +++ b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/PersonnePayLoadWeb.java @@ -1,6 +1,7 @@ package io.gmss.fiscad.paylaods.request.crudweb; import io.gmss.fiscad.enums.Categorie; +import io.gmss.fiscad.enums.Origine; import jakarta.persistence.EnumType; import jakarta.persistence.Enumerated; import lombok.Data; @@ -44,5 +45,22 @@ public class PersonnePayLoadWeb { private String indicatifTel1; private String indicatifTel2; private String sexe; + @Enumerated(EnumType.STRING) + private Origine source; + public PersonnePayLoadWeb(Long id, String ifu, String nom, String prenom, String raisonSociale, String numRavip, String npi, LocalDate dateNaissanceOuConsti, String lieuNaissance, String tel1, String nomJeuneFille, String nomMere,Origine source) { + this.id = id; + this.ifu = ifu; + this.nom = nom; + this.prenom = prenom; + this.raisonSociale = raisonSociale; + this.numRavip = numRavip; + this.npi = npi; + this.dateNaissanceOuConsti = dateNaissanceOuConsti; + this.lieuNaissance = lieuNaissance; + this.tel1 = tel1; + this.nomJeuneFille = nomJeuneFille; + this.nomMere = nomMere; + this.source = source; + } } diff --git a/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/parametre/PersonneRepository.java b/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/parametre/PersonneRepository.java index b56f224..e0de2ff 100755 --- a/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/parametre/PersonneRepository.java +++ b/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/parametre/PersonneRepository.java @@ -2,11 +2,14 @@ package io.gmss.fiscad.persistence.repositories.infocad.parametre; import io.gmss.fiscad.entities.infocad.parametre.Personne; import io.gmss.fiscad.paylaods.request.crudweb.DeclarationNcPayloadWeb; +import io.gmss.fiscad.paylaods.request.crudweb.PersonnePayLoadWeb; import io.gmss.fiscad.paylaods.response.statistique.StatistiqueTypeNombreResponse; import io.gmss.fiscad.paylaods.response.restoration.PersonnePayLoad; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import java.time.LocalDate; import java.util.List; import java.util.Optional; @@ -63,5 +66,41 @@ public interface PersonneRepository extends JpaRepository { List getNombrePersonnesResponse(); + @Query( """ + SELECT new io.gmss.fiscad.paylaods.request.crudweb.PersonnePayLoadWeb( + p.id, + p.ifu, + p.nom, + p.prenom, + p.raisonSociale, + p.numRavip, + p.npi, + p.dateNaissanceOuConsti, + p.lieuNaissance, + p.tel1, + p.nomJeuneFille, + p.nomMere, + io.gmss.fiscad.enums.Origine.RFU_LOGIL + ) + FROM Personne p + WHERE (:ifu IS NULL OR LOWER(trim(p.ifu)) LIKE (CONCAT('%', :ifu, '%'))) + AND (:npi IS NULL OR LOWER(trim(p.npi)) LIKE (CONCAT('%', :npi, '%'))) + AND (:nom IS NULL OR LOWER(trim(p.nom)) LIKE (CONCAT('%', :nom, '%'))) + AND (:prenom IS NULL OR LOWER(trim(p.prenom)) LIKE (CONCAT('%', :prenom, '%'))) + AND (:raisonSociale IS NULL OR LOWER(trim(p.raisonSociale)) LIKE (CONCAT('%', :raisonSociale, '%'))) + AND (:nomMere IS NULL OR LOWER(trim(p.nomMere)) LIKE (CONCAT('%', :nomMere, '%'))) + AND (:dateNaissance IS NULL OR p.dateNaissanceOuConsti = :dateNaissance) + """ + ) + List findByFilters( + @Param("ifu") String ifu, + @Param("npi") String npi, + @Param("nom") String nom, + @Param("prenom") String prenom, + @Param("raisonSociale") String raisonSociale, + @Param("nomMere") String nomMere, + @Param("dateNaissance") LocalDate dateNaissance + ); + } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 85dff60..7a2dd25 100755 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -72,4 +72,10 @@ logging.level.org.apache.catalina.connector.ClientAbortException=ERROR # Affiche les valeurs des paramètres bindés (Hibernate 5.4+) #logging.level.org.hibernate.SQL=DEBUG +#logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE + +#spring.jpa.show-sql=true +#spring.jpa.properties.hibernate.format_sql=true +##logging.level.org.hibernate.SQL=DEBUG +#logging.level.org.hibernate.type.descriptor.sql=TRACE #logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE \ No newline at end of file