From 2c38fa19267aa54d20edcb55d0dee7b6776b3e8a Mon Sep 17 00:00:00 2001 From: Aurince AKAKPO Date: Thu, 19 Feb 2026 00:04:41 +0100 Subject: [PATCH] gestion revu de code en utilisant uniquement les DTO --- .../infocad/metier/ParcelleController.java | 4 +- .../infocad/metier/ParcelleServiceImpl.java | 10 ++-- .../infocad/metier/ParcelleService.java | 4 +- .../request/crudweb/BatimentPaylaodWeb.java | 3 +- .../crudweb/DeclarationNcPayloadWeb.java | 3 +- .../infocad/metier/ParcelleRepository.java | 55 +++++++++++++++++++ 6 files changed, 69 insertions(+), 10 deletions(-) diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/ParcelleController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/ParcelleController.java index f276550..6f55c80 100644 --- a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/ParcelleController.java +++ b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/ParcelleController.java @@ -51,9 +51,9 @@ public class ParcelleController { @PostMapping("/create") public ResponseEntity createParcelle(@RequestBody @Valid @Validated ParcellePayLoadWeb parcellePayLoadWeb) { try { - Parcelle parcelle = parcelleService.createParcelle(parcellePayLoadWeb); + parcellePayLoadWeb = parcelleService.createParcelle(parcellePayLoadWeb); return new ResponseEntity<>( - new ApiResponse<>(true, parcelle, "parcelle créée avec succès."), + new ApiResponse<>(true, parcellePayLoadWeb, "parcelle créée avec succès."), HttpStatus.OK ); } catch (HttpClientErrorException.MethodNotAllowed e) { diff --git a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/ParcelleServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/ParcelleServiceImpl.java index 3eb068d..e462461 100644 --- a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/ParcelleServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/ParcelleServiceImpl.java @@ -48,7 +48,7 @@ public class ParcelleServiceImpl implements ParcelleService { @Override - public Parcelle createParcelle(ParcellePayLoadWeb parcellePayLoadWeb) throws BadRequestException { + public ParcellePayLoadWeb createParcelle(ParcellePayLoadWeb parcellePayLoadWeb) throws BadRequestException { Optional optionalNatureDomaine = natureDomaineRepository.findById(parcellePayLoadWeb.getNatureDomaineId()); if (!optionalNatureDomaine.isPresent()) { throw new BadRequestException("Impossible d'enregistrer une parcelle avec une nature de domaine inexistant"); @@ -61,11 +61,12 @@ public class ParcelleServiceImpl implements ParcelleService { parcelle.setNatureDomaine(optionalNatureDomaine.orElse(null)); parcelle.setQuartier(optionalQuartier.orElse(null)); parcelle = getParcelleFromPayload(parcelle, parcellePayLoadWeb); - return parcelleRepository.save(parcelle); + parcelle= parcelleRepository.save(parcelle); + return parcelleRepository.findParcelleToDtoById(parcelle.getId()).orElse(null); } @Override - public Parcelle updateParcelle(Long id, ParcellePayLoadWeb parcellePayLoadWeb) throws NotFoundException { + public ParcellePayLoadWeb updateParcelle(Long id, ParcellePayLoadWeb parcellePayLoadWeb) throws NotFoundException { Optional optionalParcelle = parcelleRepository.findById(parcellePayLoadWeb.getId()); if (!optionalParcelle.isPresent()) { throw new NotFoundException("Impossible de trouver la parcelle que vous désirer modifier"); @@ -86,7 +87,8 @@ public class ParcelleServiceImpl implements ParcelleService { parcelle.setNatureDomaine(optionalNatureDomaine.orElse(null)); parcelle.setQuartier(optionalQuartier.orElse(null)); parcelle = getParcelleFromPayload(optionalParcelle.get(), parcellePayLoadWeb); - return parcelleRepository.save(parcelle); + parcelle= parcelleRepository.save(parcelle); + return parcelleRepository.findParcelleToDtoById(parcelle.getId()).orElse(null); } @Override diff --git a/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/ParcelleService.java b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/ParcelleService.java index f1feda6..be83e0e 100755 --- a/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/ParcelleService.java +++ b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/ParcelleService.java @@ -17,9 +17,9 @@ import java.util.Optional; public interface ParcelleService { - Parcelle createParcelle(ParcellePayLoadWeb parcellePayLoadWeb) throws BadRequestException; + ParcellePayLoadWeb createParcelle(ParcellePayLoadWeb parcellePayLoadWeb) throws BadRequestException; - Parcelle updateParcelle(Long id,ParcellePayLoadWeb parcellePayLoadWeb) throws NotFoundException; + ParcellePayLoadWeb updateParcelle(Long id,ParcellePayLoadWeb parcellePayLoadWeb) throws NotFoundException; void deleteParcelle(Long id) throws NotFoundException; Optional getParcelleById(Long id); diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/BatimentPaylaodWeb.java b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/BatimentPaylaodWeb.java index b271d95..19b8665 100644 --- a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/BatimentPaylaodWeb.java +++ b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/BatimentPaylaodWeb.java @@ -1,9 +1,10 @@ package io.gmss.fiscad.paylaods.request.crudweb; import lombok.Data; +import lombok.NoArgsConstructor; import java.time.LocalDate; - +@NoArgsConstructor @Data public class BatimentPaylaodWeb { private Long id; diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/DeclarationNcPayloadWeb.java b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/DeclarationNcPayloadWeb.java index 4ead394..39dfee5 100644 --- a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/DeclarationNcPayloadWeb.java +++ b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/DeclarationNcPayloadWeb.java @@ -4,10 +4,11 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import io.gmss.fiscad.deserializer.LocalDateDeserializer; import lombok.Data; +import lombok.NoArgsConstructor; import java.time.LocalDate; import java.util.List; - +@NoArgsConstructor @Data public class DeclarationNcPayloadWeb { private Long id; diff --git a/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/metier/ParcelleRepository.java b/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/metier/ParcelleRepository.java index e45b4da..0d8fab3 100755 --- a/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/metier/ParcelleRepository.java +++ b/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/metier/ParcelleRepository.java @@ -274,6 +274,61 @@ public interface ParcelleRepository extends JpaRepository, JpaSp ); + @Query(""" + SELECT new io.gmss.fiscad.paylaods.request.crudweb.ParcellePayLoadWeb( + p.id, + p.q, + p.i, + p.p, + p.nup, + p.nupProvisoire, + p.numeroTitreFoncier, + p.longitude, + p.latitude, + p.altitude, + p.superficie, + p.observation, + p.situationGeographique, + p.numEntreeParcelle, + q.id, + q.code, + q.nom, + nd.id, + nd.libelle, + td.id, + td.libelle, + r.id, + r.numero, + r.nom, + pers.id, + pers.ifu, + pers.npi, + pers.nom, + pers.prenom, + pers.raisonSociale, + e.id + ) + FROM Parcelle p + LEFT JOIN p.quartier q + LEFT JOIN p.natureDomaine nd + LEFT JOIN p.typeDomaine td + LEFT JOIN p.rue r + LEFT JOIN Enquete e + ON e.parcelle = p + AND e.dateEnquete = ( + SELECT MAX(e2.dateEnquete) + FROM Enquete e2 + WHERE e2.parcelle = p + ) + LEFT JOIN e.personne pers + INNER JOIN SecteurDecoupage sd on sd.quartier=p.quartier + WHERE p.id = :parcelleId +""") + Optional findParcelleToDtoById( + @Param("parcelleId") Long parcelleId + ); + + @Query( value = """ SELECT new io.gmss.fiscad.paylaods.request.crudweb.ParcellePayLoadWeb( -- 2.49.1