From 554277f312308becdc0991efa27cb37b609b7b46 Mon Sep 17 00:00:00 2001 From: Aurince AKAKPO Date: Mon, 16 Feb 2026 23:03:51 +0100 Subject: [PATCH] gestion revu de code en utilisant uniquement les DTO --- .../infocad/metier/PieceController.java | 48 +++++++++++++++++++ .../infocad/metier/UploadController.java | 16 +++++++ .../fiscad/entities/infocad/metier/Piece.java | 12 +++++ .../infocad/metier/PieceServiceImpl.java | 32 +++++++++++++ .../infocad/metier/UploadServiceImpl.java | 5 ++ .../infocad/metier/PieceService.java | 4 ++ .../infocad/metier/UploadService.java | 2 + .../request/crudweb/PiecePayLoadWeb.java | 9 +++- .../infocad/metier/PieceRepository.java | 30 +++++++++--- .../infocad/metier/UploadRepository.java | 2 + .../service/EntityFromPayLoadService.java | 10 ++++ 11 files changed, 162 insertions(+), 8 deletions(-) diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/PieceController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/PieceController.java index 48117b2..f0fd4dc 100644 --- a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/PieceController.java +++ b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/PieceController.java @@ -199,6 +199,54 @@ public class PieceController { } } + + @GetMapping("/by-enquete-batiment-id/{enqueteBatimentId}") + public ResponseEntity getAllPieceByEnqueteBatiment(@PathVariable Long enqueteBatimentId) { + try { + return new ResponseEntity<>( + new ApiResponse<>(true, pieceService.getAllPieceByEnqueteBatimentToDto(enqueteBatimentId), "Liste des pieces chargée avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } + + + @GetMapping("/by-enquete-unite-logement-id/{enqueteUniteLogementId}") + public ResponseEntity getAllPieceByEnqueteUniteLogement(@PathVariable Long enqueteUniteLogementId) { + try { + return new ResponseEntity<>( + new ApiResponse<>(true, pieceService.getAllPieceByEnqueteUniteLogementToDto(enqueteUniteLogementId), "Liste des pieces chargée avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } + @GetMapping("/id/{id}") public ResponseEntity getPieceById(@PathVariable Long id) { try { diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/UploadController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/UploadController.java index c0c1bc2..bd00918 100644 --- a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/UploadController.java +++ b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/UploadController.java @@ -243,4 +243,20 @@ public class UploadController { .orElse(ResponseEntity.notFound().build()); } + @GetMapping(path = "/by-piece/{pieceId}") + public ResponseEntity getByPiece(@PathVariable("pieceId") Long pieceId) { + try{ + return new ResponseEntity<>(new ApiResponse(true, uploadService.getAllUploadByPiece(pieceId), "Liste des fichier de la piece"), HttpStatus.OK); + } catch (HttpClientErrorException.MethodNotAllowed e) { + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + + } + } diff --git a/src/main/java/io/gmss/fiscad/entities/infocad/metier/Piece.java b/src/main/java/io/gmss/fiscad/entities/infocad/metier/Piece.java index 11cd112..80a94fa 100644 --- a/src/main/java/io/gmss/fiscad/entities/infocad/metier/Piece.java +++ b/src/main/java/io/gmss/fiscad/entities/infocad/metier/Piece.java @@ -11,6 +11,8 @@ import io.gmss.fiscad.entities.infocad.parametre.Personne; import io.gmss.fiscad.entities.infocad.parametre.SourceDroit; import io.gmss.fiscad.entities.infocad.parametre.TypePiece; import io.gmss.fiscad.entities.rfu.metier.DeclarationNc; +import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment; +import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement; import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Data; @@ -71,6 +73,16 @@ public class Piece extends BaseEntity implements Serializable { @ManyToOne(fetch = FetchType.LAZY) private Enquete enquete ; + @JsonIgnore + @JsonBackReference + @ManyToOne(fetch = FetchType.LAZY) + private EnqueteBatiment enqueteBatiment ; + + @JsonIgnore + @JsonBackReference + @ManyToOne(fetch = FetchType.LAZY) + private EnqueteUniteLogement enqueteUniteLogement ; + @ManyToOne private ModeAcquisition modeAcquisition; diff --git a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/PieceServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/PieceServiceImpl.java index 3754cf3..e4d63a3 100644 --- a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/PieceServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/PieceServiceImpl.java @@ -88,6 +88,8 @@ public class PieceServiceImpl implements PieceService { null, id, null, + null, + null, null); } @@ -101,6 +103,36 @@ public class PieceServiceImpl implements PieceService { id, null, null, + null, + null, pageable); } + + @Override + public List getAllPieceByEnqueteBatimentToDto(Long id) { + return pieceRepository.findByFilters( + null, + null, + null, + null, + null, + null, + null, + id, + null); + } + + @Override + public List getAllPieceByEnqueteUniteLogementToDto(Long id) { + return pieceRepository.findByFilters( + null, + null, + null, + null, + null, + null, + null, + null, + id); + } } diff --git a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/UploadServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/UploadServiceImpl.java index 4916b6b..b85638f 100644 --- a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/UploadServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/UploadServiceImpl.java @@ -95,4 +95,9 @@ public class UploadServiceImpl implements UploadService { public Page getAllUploadByPieceDtoPageable(Long id, Pageable pageable) { return null; } + + @Override + public List getAllUploadByPiece(Long id) { + return uploadRepository.findAllByPiece_Id(id); + } } diff --git a/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/PieceService.java b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/PieceService.java index a0ab5ff..d7fe0c6 100755 --- a/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/PieceService.java +++ b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/PieceService.java @@ -25,4 +25,8 @@ public interface PieceService { Optional getPieceByToDto(Long id); List getAllPieceByEnqueteToDto(Long id); Page getAllPieceByEnqueteToDtoPageable(Long id,Pageable pageable); + + List getAllPieceByEnqueteBatimentToDto(Long id); + + List getAllPieceByEnqueteUniteLogementToDto(Long id); } diff --git a/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/UploadService.java b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/UploadService.java index fe0fd86..e505555 100755 --- a/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/UploadService.java +++ b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/UploadService.java @@ -28,4 +28,6 @@ public interface UploadService { Optional getUploadByToDto(Long id); List getAllUploadByPieceToDto(Long id); Page getAllUploadByPieceDtoPageable(Long id,Pageable pageable); + + List getAllUploadByPiece(Long id); } diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/PiecePayLoadWeb.java b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/PiecePayLoadWeb.java index 022f5a9..724be2b 100644 --- a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/PiecePayLoadWeb.java +++ b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/PiecePayLoadWeb.java @@ -24,9 +24,12 @@ public class PiecePayLoadWeb { private String modeAcquisitionLibelle; private String observation; private Long enqueteId; - private List uploadPayLoadWebs; + private Long enqueteBatimentId; + private Long enqueteUniteLogementId; + //private List uploadPayLoadWebs; - public PiecePayLoadWeb(Long id, LocalDate dateExpiration, LocalDate dateEtablissement, String numeroPiece, String url, Long typePieceId, String typePieceLibelle, Long personneId, String personneNom, String personnePrenom, String personneRaisonSociale, Long sourceDroitId, String sourceDroitLibelle, Long modeAcquisitionId, String modeAcquisitionLibelle, String observation, Long enqueteId) { + public PiecePayLoadWeb(Long id, LocalDate dateExpiration, LocalDate dateEtablissement, String numeroPiece, String url, Long typePieceId, String typePieceLibelle, Long personneId, String personneNom, String personnePrenom, String personneRaisonSociale, Long sourceDroitId, String sourceDroitLibelle, Long modeAcquisitionId, String modeAcquisitionLibelle, String observation, Long enqueteId, + Long enqueteBatimentId,Long enqueteUniteLogementId) { this.id = id; this.dateExpiration = dateExpiration; this.dateEtablissement = dateEtablissement; @@ -44,6 +47,8 @@ public class PiecePayLoadWeb { this.modeAcquisitionLibelle = modeAcquisitionLibelle; this.observation = observation; this.enqueteId = enqueteId; + this.enqueteBatimentId = enqueteBatimentId; + this.enqueteUniteLogementId = enqueteUniteLogementId; } } diff --git a/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/metier/PieceRepository.java b/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/metier/PieceRepository.java index 062a010..c804bd0 100755 --- a/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/metier/PieceRepository.java +++ b/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/metier/PieceRepository.java @@ -74,7 +74,9 @@ public interface PieceRepository extends JpaRepository { ma.id, ma.libelle, p.observation, - e.id + e.id, + p.enqueteBatiment.id, + p.enqueteUniteLogement.id ) FROM Piece p LEFT JOIN p.typePiece tp @@ -105,7 +107,9 @@ public interface PieceRepository extends JpaRepository { ma.id, ma.libelle, p.observation, - e.id + e.id, + p.enqueteBatiment.id, + p.enqueteUniteLogement.id ) FROM Piece p LEFT JOIN p.typePiece tp @@ -135,7 +139,9 @@ public interface PieceRepository extends JpaRepository { ma.id, ma.libelle, p.observation, - e.id + e.id, + p.enqueteBatiment.id, + p.enqueteUniteLogement.id ) FROM Piece p LEFT JOIN p.typePiece tp @@ -172,7 +178,9 @@ public interface PieceRepository extends JpaRepository { ma.id, ma.libelle, p.observation, - e.id + e.id, + p.enqueteBatiment.id, + p.enqueteUniteLogement.id ) FROM Piece p LEFT JOIN p.typePiece tp @@ -203,6 +211,8 @@ public interface PieceRepository extends JpaRepository { AND (:enqueteId IS NULL OR e.id = :enqueteId) AND (:dateDebut IS NULL OR p.dateEtablissement >= :dateDebut) AND (:dateFin IS NULL OR p.dateEtablissement <= :dateFin) + AND (:enqueteBatimentId IS NULL OR p.enqueteBatiment.id = :enqueteBatimentId) + AND (:enqueteUniteLogementId IS NULL OR p.enqueteUniteLogement.id = :enqueteUniteLogementId) """ ) Page findByFiltersPageable( @@ -213,6 +223,8 @@ public interface PieceRepository extends JpaRepository { @Param("enqueteId") Long enqueteId, @Param("dateDebut") LocalDate dateDebut, @Param("dateFin") LocalDate dateFin, + @Param("enqueteBatimentId") Long enqueteBatimentId, + @Param("enqueteUniteLogementId") Long enqueteUniteLogementId, Pageable pageable ); @@ -235,7 +247,9 @@ public interface PieceRepository extends JpaRepository { ma.id, ma.libelle, p.observation, - e.id + e.id, + p.enqueteBatiment.id, + p.enqueteUniteLogement.id ) FROM Piece p LEFT JOIN p.typePiece tp @@ -250,6 +264,8 @@ public interface PieceRepository extends JpaRepository { AND (:enqueteId IS NULL OR e.id = :enqueteId) AND (:dateDebut IS NULL OR p.dateEtablissement >= :dateDebut) AND (:dateFin IS NULL OR p.dateEtablissement <= :dateFin) + AND (:enqueteBatimentId IS NULL OR p.enqueteBatiment.id = :enqueteBatimentId) + AND (:enqueteUniteLogementId IS NULL OR p.enqueteUniteLogement.id = :enqueteUniteLogementId) """ ) List findByFilters( @@ -259,7 +275,9 @@ public interface PieceRepository extends JpaRepository { @Param("modeAcquisitionId") Long modeAcquisitionId, @Param("enqueteId") Long enqueteId, @Param("dateDebut") LocalDate dateDebut, - @Param("dateFin") LocalDate dateFin + @Param("dateFin") LocalDate dateFin, + @Param("enqueteBatimentId") Long enqueteBatimentId, + @Param("enqueteUniteLogementId") Long enqueteUniteLogementId ); } diff --git a/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/metier/UploadRepository.java b/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/metier/UploadRepository.java index 2be93ac..90c43a7 100644 --- a/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/metier/UploadRepository.java +++ b/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/metier/UploadRepository.java @@ -127,4 +127,6 @@ public interface UploadRepository extends JpaRepository { List findByPieceId(@Param("pieceId") Long pieceId); + List findAllByPiece_Id(Long pieceId); + } diff --git a/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java b/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java index d0bbfc6..30b0bc7 100644 --- a/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java +++ b/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java @@ -151,6 +151,8 @@ public class EntityFromPayLoadService { Optional optionalSourceDroit=Optional.empty(); Optional optionalModeAcquisition=Optional.empty(); Optional optionalPersonne=Optional.empty(); + Optional optionalEnqueteBatiment=Optional.empty(); + Optional optionalEnqueteUniteLogement=Optional.empty(); if(piecePayLoadWeb.getId()!=null) piece = pieceRepository.findById(piecePayLoadWeb.getId()).orElse(new Piece()); @@ -170,8 +172,16 @@ public class EntityFromPayLoadService { if(piecePayLoadWeb.getPersonneId()!=null) optionalPersonne=personneRepository.findById(piecePayLoadWeb.getPersonneId()); + if(piecePayLoadWeb.getEnqueteBatimentId()!=null) + optionalEnqueteBatiment=enqueteBatimentRepository.findById(piecePayLoadWeb.getEnqueteBatimentId()); + + if(piecePayLoadWeb.getEnqueteUniteLogementId()!=null) + optionalEnqueteUniteLogement=enqueteUniteLogementRepository.findById(piecePayLoadWeb.getEnqueteUniteLogementId()); + piece.setId(piecePayLoadWeb.getId()); piece.setEnquete(optionalEnquete.orElse(null)); + piece.setEnqueteBatiment(optionalEnqueteBatiment.orElse(null)); + piece.setEnqueteUniteLogement(optionalEnqueteUniteLogement.orElse(null)); piece.setTypePiece(optionalTypePiece.orElse(null)); piece.setSourceDroit(optionalSourceDroit.orElse(null)); piece.setModeAcquisition(optionalModeAcquisition.orElse(null)); -- 2.49.1