From a14088e7c0da792a9fc3e7563482da0d1b0a374e Mon Sep 17 00:00:00 2001 From: Aurince AKAKPO Date: Wed, 29 Jul 2026 16:21:05 +0100 Subject: [PATCH] reajustement workflow --- .../decoupage/QuartierController.java | 11 +-- .../decoupage/SecteurDecoupageController.java | 74 ++++++++++++++- .../infocad/metier/EnqueteController.java | 87 +++++++++++++++++- .../parametre/ModeAcquisitionController.java | 11 +-- .../DonneesImpositionTfuController.java | 2 +- .../rfu/metier/EnqueteBatimentController.java | 89 ++++++++++++++++++- .../EnqueteUniteLogementController.java | 88 +++++++++++++++++- .../rfu/metier/ImpositionsTfuController.java | 24 +++++ .../parametre/CaracteristiqueController.java | 13 +-- .../statistique/StatistiqueController.java | 38 ++++++++ .../controllers/user/UserController.java | 2 +- .../java/io/gmss/fiscad/enums/StatusAvis.java | 5 +- .../io/gmss/fiscad/enums/StatutEnquete.java | 5 ++ .../java/io/gmss/fiscad/enums/UserRole.java | 6 +- .../decoupage/QuartierServiceImpl.java | 51 ++++++++--- .../SecteurDecoupageServiceImpl.java | 49 ++++++++++ .../infocad/metier/EnqueteServiceImpl.java | 72 +++++++++++++++ .../parametre/ModeAcquisitionServiceImpl.java | 39 +++++--- .../metier/EnqueteBatimentServiceImpl.java | 63 +++++++++++++ .../EnqueteUniteLogementServiceImpl.java | 60 +++++++++++++ .../rfu/metier/ImpositionsTfuServiceImpl.java | 28 +++++- .../parametre/CaracteristiqueServiceImpl.java | 39 +++++--- .../statistiques/StatistiquesServiceImpl.java | 32 ++++++- .../interfaces/decoupage/QuartierService.java | 4 +- .../decoupage/SecteurDecoupageService.java | 3 + .../infocad/metier/EnqueteService.java | 3 + .../parametre/ModeAcquisitionService.java | 11 +-- .../rfu/metier/EnqueteBatimentService.java | 3 + .../metier/EnqueteUniteLogementService.java | 3 + .../rfu/metier/ImpositionsTfuService.java | 1 + .../rfu/parametre/CaracteristiqueService.java | 12 +-- .../statistique/StatistiquesService.java | 1 + .../crudweb/CaracteristiquePayloadWeb.java | 41 +++++++++ .../crudweb/ModeAcquisitionPayloadWeb.java | 21 +++++ ...rer_detail_avis_dans_table_eavisdetail.sql | 17 ++-- .../parametre/ModeAcquisitionRepository.java | 35 ++++++++ .../parametre/CaracteristiqueRepository.java | 78 ++++++++++++++++ .../service/EntityFromPayLoadService.java | 53 ++++++++++- 38 files changed, 1073 insertions(+), 101 deletions(-) create mode 100644 src/main/java/io/gmss/fiscad/paylaods/request/crudweb/CaracteristiquePayloadWeb.java create mode 100644 src/main/java/io/gmss/fiscad/paylaods/request/crudweb/ModeAcquisitionPayloadWeb.java diff --git a/src/main/java/io/gmss/fiscad/controllers/decoupage/QuartierController.java b/src/main/java/io/gmss/fiscad/controllers/decoupage/QuartierController.java index b438ab7..62573d0 100644 --- a/src/main/java/io/gmss/fiscad/controllers/decoupage/QuartierController.java +++ b/src/main/java/io/gmss/fiscad/controllers/decoupage/QuartierController.java @@ -5,6 +5,7 @@ import io.gmss.fiscad.entities.decoupage.Quartier; import io.gmss.fiscad.exceptions.*; import io.gmss.fiscad.interfaces.decoupage.QuartierService; import io.gmss.fiscad.paylaods.ApiResponse; +import io.gmss.fiscad.paylaods.request.crudweb.QuartierPaylaodWeb; import io.swagger.v3.oas.annotations.security.SecurityRequirement; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; @@ -38,11 +39,11 @@ public class QuartierController { @PostMapping("/create") @PreAuthorize("hasAuthority('CREATE_QUARTIER')") - public ResponseEntity createQuartier(@RequestBody @Valid @Validated Quartier quartier) { + public ResponseEntity createQuartier(@RequestBody QuartierPaylaodWeb quartierPaylaodWeb) { try { - quartier = quartierService.createQuartier(quartier); + quartierPaylaodWeb = quartierService.createQuartier(quartierPaylaodWeb); return new ResponseEntity<>( - new ApiResponse<>(true, quartier, "Quartier créé avec succès."), + new ApiResponse<>(true, quartierPaylaodWeb, "Quartier créé avec succès."), HttpStatus.OK ); } catch (HttpClientErrorException.MethodNotAllowed e) { @@ -63,10 +64,10 @@ public class QuartierController { @PutMapping("/update/{id}") @PreAuthorize("hasAuthority('UPDATE_QUARTIER')") - public ResponseEntity updateQuartier(@PathVariable Long id, @RequestBody Quartier quartier) { + public ResponseEntity updateQuartier(@PathVariable Long id, @RequestBody QuartierPaylaodWeb quartierPaylaodWeb) { try { return new ResponseEntity<>( - new ApiResponse<>(true, quartierService.updateQuartier(id, quartier), "Quartier mis à jour avec succès."), + new ApiResponse<>(true, quartierService.updateQuartier(id, quartierPaylaodWeb), "Quartier mis à jour avec succès."), HttpStatus.OK ); } catch (HttpClientErrorException.MethodNotAllowed e) { diff --git a/src/main/java/io/gmss/fiscad/controllers/decoupage/SecteurDecoupageController.java b/src/main/java/io/gmss/fiscad/controllers/decoupage/SecteurDecoupageController.java index 5c76436..300999a 100644 --- a/src/main/java/io/gmss/fiscad/controllers/decoupage/SecteurDecoupageController.java +++ b/src/main/java/io/gmss/fiscad/controllers/decoupage/SecteurDecoupageController.java @@ -283,8 +283,29 @@ public class SecteurDecoupageController { } } - - + @GetMapping("/arbre/enquete/user-id/profil-id/{userId}/{profilId}") + @PreAuthorize("hasAuthority('READ_SECTEUR_DECOUPAGE')") + public ResponseEntity getArborescenceEnqueteByUserId(@PathVariable Long userId, @PathVariable Long profilId) { + try { + return new ResponseEntity<>( + new ApiResponse<>(true, secteurDecoupageService.getStatEnqueteDecoupageByUserIdByProfilId(userId, profilId), "SecteurDecoupage trouvé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) { + e.printStackTrace(); + 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("/arbre/enquete-valide/user-id/{userId}") @@ -362,6 +383,30 @@ public class SecteurDecoupageController { } } + @GetMapping("/arbre/enquete-batiment/user-id/profil-id/{userId}/{profilId}") + @PreAuthorize("hasAuthority('READ_SECTEUR_DECOUPAGE')") + public ResponseEntity getArborescenceEnqueteBatimentEncoursByUserIdByProfilId(@PathVariable Long userId,@PathVariable Long profilId) { + try { + return new ResponseEntity<>( + new ApiResponse<>(true, secteurDecoupageService.getStatEnqueteBatimentDecoupageByUserIdByProfilId(userId, profilId), "SecteurDecoupage trouvé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) { + e.printStackTrace(); + 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("/arbre/enquete-batiment-valide/user-id/{userId}") @PreAuthorize("hasAuthority('READ_SECTEUR_DECOUPAGE')") @@ -438,6 +483,31 @@ public class SecteurDecoupageController { } + @GetMapping("/arbre/enquete-unitlog/user-id/profil-id/{userId}/{profilId}") + @PreAuthorize("hasAuthority('READ_SECTEUR_DECOUPAGE')") + public ResponseEntity getArborescenceEnqueteUniteLogByUserIdByProfilId(@PathVariable Long userId, @PathVariable Long profilId) { + try { + return new ResponseEntity<>( + new ApiResponse<>(true, secteurDecoupageService.getStatEnqueteUniteLogementDecoupageByUserIdByProfilId(userId, profilId), "SecteurDecoupage trouvé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) { + e.printStackTrace(); + 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("/arbre/enquete-unitlog-valide/user-id/{userId}") @PreAuthorize("hasAuthority('READ_SECTEUR_DECOUPAGE')") public ResponseEntity getArborescenceEnqueteUniteLogValideByUserId(@PathVariable Long userId) { diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/EnqueteController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/EnqueteController.java index fa0dc85..8894c9c 100644 --- a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/EnqueteController.java +++ b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/EnqueteController.java @@ -101,7 +101,7 @@ public class EnqueteController { } @PutMapping("/validation") - @PreAuthorize("hasAuthority('UPDATE_ENQUETE') And hasAuthority('VALIDATE_ENQUETE') ") + @PreAuthorize("hasAuthority('VALIDE_ENQUETE')") public ResponseEntity validerEnquete(@RequestBody EnqueteTraitementPayLoad enqueteTraitementPayLoad) { try { return new ResponseEntity<>( @@ -124,8 +124,32 @@ public class EnqueteController { } } + @PutMapping("/controle") + @PreAuthorize("hasAuthority('CONTROLE_ENQUETE')") + public ResponseEntity controlerEnquete(@RequestBody EnqueteTraitementPayLoad enqueteTraitementPayLoad) { + try { + return new ResponseEntity<>( + new ApiResponse<>(true, enqueteService.controlerEnquete(enqueteTraitementPayLoad), "Validation effectué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); + } + } + @PutMapping("/rejet") - @PreAuthorize("hasAuthority('UPDATE_ENQUETE')") + @PreAuthorize("hasAuthority('REJETE_ENQUETE')") public ResponseEntity rejeterEnquete(@RequestBody EnqueteTraitementPayLoad enqueteTraitementPayLoad) { try { @@ -150,7 +174,7 @@ public class EnqueteController { } @PutMapping("/validation-lot") - @PreAuthorize("hasAuthority('UPDATE_ENQUETE')") + @PreAuthorize("hasAuthority('VALIDE_ENQUETE')") public ResponseEntity validerEnqueteParLot(@RequestBody List enqueteTraitementPayLoads) { try { return new ResponseEntity<>( @@ -173,8 +197,31 @@ public class EnqueteController { } } + @PutMapping("/controle-lot") + @PreAuthorize("hasAuthority('CONTROLE_ENQUETE')") + public ResponseEntity controlerEnqueteParLot(@RequestBody List enqueteTraitementPayLoads) { + try { + return new ResponseEntity<>( + new ApiResponse<>(true, enqueteService.controlerEnquete(enqueteTraitementPayLoads), "Validation effectué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); + } + } @PutMapping("/rejet-lot") - @PreAuthorize("hasAuthority('UPDATE_ENQUETE')") + @PreAuthorize("hasAuthority('REJETE_ENQUETE')") public ResponseEntity rejeterEnqueteParLot(@RequestBody List enqueteTraitementPayLoads) { try { return new ResponseEntity<>( @@ -536,6 +583,38 @@ public class EnqueteController { } + @GetMapping("/all-paged/by-quartier-id/by-profil-id/{quartierId}/{profilId}") + @PreAuthorize("hasAuthority('READ_ENQUETE')") + public ResponseEntity getAllEnqueteEncoursByQuartierPaged(@CurrentUser UserPrincipal currentUser,@PathVariable Long quartierId,@PathVariable Long profilId, @RequestParam int pageNo, @RequestParam int pageSize) { + try { + Pageable pageable = PageRequest.of(pageNo, pageSize); + if(currentUser==null) + return new ResponseEntity<>( + new ApiResponse<>(true,null, "Vous ne pouvez pas accéder à cette ressource"), + HttpStatus.OK + ); + Long userId = currentUser.getUser().getId(); + return new ResponseEntity<>( + new ApiResponse<>(true, enqueteService.getEnqueteListByQuartierByProfilByStatutPageableToDto(userId,quartierId, profilId, pageable), "Liste des enquetes en cours 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("/all-paged/cloture/by-quartier-id/{quartierId}") @PreAuthorize("hasAuthority('READ_ENQUETE')") public ResponseEntity getAllEnqueteClotureByQuartierPaged(@CurrentUser UserPrincipal currentUser,@PathVariable Long quartierId, @RequestParam int pageNo, @RequestParam int pageSize) { diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/ModeAcquisitionController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/ModeAcquisitionController.java index 08e0d38..8369159 100644 --- a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/ModeAcquisitionController.java +++ b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/ModeAcquisitionController.java @@ -5,6 +5,7 @@ import io.gmss.fiscad.entities.infocad.parametre.ModeAcquisition; import io.gmss.fiscad.exceptions.*; import io.gmss.fiscad.interfaces.infocad.parametre.ModeAcquisitionService; import io.gmss.fiscad.paylaods.ApiResponse; +import io.gmss.fiscad.paylaods.request.crudweb.ModeAcquisitionPayloadWeb; import io.swagger.v3.oas.annotations.security.SecurityRequirement; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; @@ -39,11 +40,11 @@ public class ModeAcquisitionController { @PostMapping("/create") @PreAuthorize("hasAuthority('CREATE_MODEACQUISITION')") - public ResponseEntity createModeAcquisition(@RequestBody @Valid @Validated ModeAcquisition modeAcquisition) { + public ResponseEntity createModeAcquisition(@RequestBody @Valid @Validated ModeAcquisitionPayloadWeb modeAcquisitionPayloadWeb) { try { - modeAcquisition = modeAcquisitionService.createModeAcquisition(modeAcquisition); + modeAcquisitionPayloadWeb = modeAcquisitionService.createModeAcquisition(modeAcquisitionPayloadWeb); return new ResponseEntity<>( - new ApiResponse<>(true, modeAcquisition, "Mode acquisition créé avec succès."), + new ApiResponse<>(true, modeAcquisitionPayloadWeb, "Mode acquisition créé avec succès."), HttpStatus.OK ); } catch (HttpClientErrorException.MethodNotAllowed e) { @@ -64,10 +65,10 @@ public class ModeAcquisitionController { @PutMapping("/update/{id}") @PreAuthorize("hasAuthority('UPDATE_MODEACQUISITION')") - public ResponseEntity updateModeAcquisition(@PathVariable Long id, @RequestBody ModeAcquisition modeAcquisition) { + public ResponseEntity updateModeAcquisition(@PathVariable Long id, @RequestBody ModeAcquisitionPayloadWeb modeAcquisitionPayloadWeb) { try { return new ResponseEntity<>( - new ApiResponse<>(true, modeAcquisitionService.updateModeAcquisition(id, modeAcquisition), "Mode d'acquisition mis à jour avec succès."), + new ApiResponse<>(true, modeAcquisitionService.updateModeAcquisition(id, modeAcquisitionPayloadWeb), "Mode d'acquisition mis à jour avec succès."), HttpStatus.OK ); } catch (HttpClientErrorException.MethodNotAllowed e) { diff --git a/src/main/java/io/gmss/fiscad/controllers/rfu/metier/DonneesImpositionTfuController.java b/src/main/java/io/gmss/fiscad/controllers/rfu/metier/DonneesImpositionTfuController.java index 5dc447b..74a184d 100644 --- a/src/main/java/io/gmss/fiscad/controllers/rfu/metier/DonneesImpositionTfuController.java +++ b/src/main/java/io/gmss/fiscad/controllers/rfu/metier/DonneesImpositionTfuController.java @@ -413,7 +413,7 @@ public class DonneesImpositionTfuController { ); } - if(!optionalImpositionsTfu.get().getStatusAvis().equals(StatusAvis.GENERATION_AUTORISE)){ + if(!optionalImpositionsTfu.get().getStatusAvis().equals(StatusAvis.CLOTURE)){ return new ResponseEntity<>( new ApiResponse<>(false, null, "l'état actuel : "+optionalImpositionsTfu.get().getStatusAvis()+" ne permet pas cette opération."), HttpStatus.OK diff --git a/src/main/java/io/gmss/fiscad/controllers/rfu/metier/EnqueteBatimentController.java b/src/main/java/io/gmss/fiscad/controllers/rfu/metier/EnqueteBatimentController.java index 2600c87..9a659f2 100644 --- a/src/main/java/io/gmss/fiscad/controllers/rfu/metier/EnqueteBatimentController.java +++ b/src/main/java/io/gmss/fiscad/controllers/rfu/metier/EnqueteBatimentController.java @@ -272,6 +272,38 @@ public class EnqueteBatimentController { } } + + @GetMapping("/all-paged/by-quartier-id/by-profil-id/{quartierId}/{profilId}") + @PreAuthorize("hasAuthority('READ_ENQUETEBATIMENT')") + public ResponseEntity getAllEnqueteBatimentByQuartierByProfilPaged(@CurrentUser UserPrincipal currentUser, @PathVariable Long quartierId, @PathVariable Long profilId, @RequestParam int pageNo, @RequestParam int pageSize) { + try { + Pageable pageable = PageRequest.of(pageNo, pageSize); + if(currentUser==null) + return new ResponseEntity<>( + new ApiResponse<>(true,null, "Vous ne pouvez pas accéder à cette ressource"), + HttpStatus.OK + ); + Long userId = currentUser.getUser().getId(); + return new ResponseEntity<>( + new ApiResponse<>(true, enqueteBatimentService.getEnqueteBatimentListByQuartierByProfilPageableToDto(userId,quartierId, profilId, pageable), "Liste des enquetes en cours 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("/all-paged/cloture/by-quartier-id/{quartierId}") @PreAuthorize("hasAuthority('READ_ENQUETEBATIMENT')") public ResponseEntity getAllEnqueteBatimentClotureByQuartierPaged(@CurrentUser UserPrincipal currentUser, @PathVariable Long quartierId, @RequestParam int pageNo, @RequestParam int pageSize) { @@ -305,7 +337,7 @@ public class EnqueteBatimentController { @PutMapping("/validation") - @PreAuthorize("hasAuthority('UPDATE_ENQUETEBATIMENT')") + @PreAuthorize("hasAuthority('VALIDE_ENQUETE')") public ResponseEntity validerEnquete(@RequestBody EnqueteTraitementPayLoad enqueteTraitementPayLoad) { try { return new ResponseEntity<>( @@ -328,8 +360,32 @@ public class EnqueteBatimentController { } } + @PutMapping("/controle") + @PreAuthorize("hasAuthority('CONTROLE_ENQUETE')") + public ResponseEntity controlerEnquete(@RequestBody EnqueteTraitementPayLoad enqueteTraitementPayLoad) { + try { + return new ResponseEntity<>( + new ApiResponse<>(true, enqueteBatimentService.controlerEnquete(enqueteTraitementPayLoad), "Validation effectué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); + } + } + @PutMapping("/rejet") - @PreAuthorize("hasAuthority('UPDATE_ENQUETEBATIMENT')") + @PreAuthorize("hasAuthority('REJETE_ENQUETE')") public ResponseEntity rejeterEnquete(@RequestBody EnqueteTraitementPayLoad enqueteTraitementPayLoad) { try { @@ -354,7 +410,7 @@ public class EnqueteBatimentController { } @PutMapping("/validation-lot") - @PreAuthorize("hasAuthority('UPDATE_ENQUETEBATIMENT')") + @PreAuthorize("hasAuthority('VALIDE_ENQUETE')") public ResponseEntity validerEnqueteParLot(@RequestBody List enqueteTraitementPayLoads) { try { return new ResponseEntity<>( @@ -377,8 +433,33 @@ public class EnqueteBatimentController { } } + + @PutMapping("/controle-lot") + @PreAuthorize("hasAuthority('CONTROLE_ENQUETE')") + public ResponseEntity controlerEnqueteParLot(@RequestBody List enqueteTraitementPayLoads) { + try { + return new ResponseEntity<>( + new ApiResponse<>(true, enqueteBatimentService.controlerEnquete(enqueteTraitementPayLoads), "Validation effectué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); + } + } + @PutMapping("/rejet-lot") - @PreAuthorize("hasAuthority('UPDATE_ENQUETEBATIMENT')") + @PreAuthorize("hasAuthority('REJETE_ENQUETE')") public ResponseEntity rejeterEnqueteParLot(@RequestBody List enqueteTraitementPayLoads) { try { return new ResponseEntity<>( diff --git a/src/main/java/io/gmss/fiscad/controllers/rfu/metier/EnqueteUniteLogementController.java b/src/main/java/io/gmss/fiscad/controllers/rfu/metier/EnqueteUniteLogementController.java index 45dac5f..01ce585 100644 --- a/src/main/java/io/gmss/fiscad/controllers/rfu/metier/EnqueteUniteLogementController.java +++ b/src/main/java/io/gmss/fiscad/controllers/rfu/metier/EnqueteUniteLogementController.java @@ -272,6 +272,38 @@ public class EnqueteUniteLogementController { } + @GetMapping("/all-paged/by-quartier-id/by-profil-id/{quartierId}/{profilId}") + @PreAuthorize("hasAuthority('READ_ENQUETEUNITELOGEMENT')") + public ResponseEntity getAllEnqueteUniteLogementByQuartierByProfilPaged(@CurrentUser UserPrincipal currentUser, @PathVariable Long quartierId, @PathVariable Long profilId, @RequestParam int pageNo, @RequestParam int pageSize) { + try { + Pageable pageable = PageRequest.of(pageNo, pageSize); + if(currentUser==null) + return new ResponseEntity<>( + new ApiResponse<>(true,null, "Vous ne pouvez pas accéder à cette ressource"), + HttpStatus.OK + ); + Long userId = currentUser.getUser().getId(); + return new ResponseEntity<>( + new ApiResponse<>(true, enqueteUniteLogementService.getEnqueteUniteLogementListByQuartierByProfilPageableToDto(userId,quartierId, profilId, pageable), "Liste des enquetes en cours 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("/all-paged/cloture/by-quartier-id/{quartierId}") @PreAuthorize("hasAuthority('READ_ENQUETEUNITELOGEMENT')") public ResponseEntity getAllEnqueteUniteLogementClotureByQuartierPaged(@CurrentUser UserPrincipal currentUser, @PathVariable Long quartierId, @RequestParam int pageNo, @RequestParam int pageSize) { @@ -305,7 +337,7 @@ public class EnqueteUniteLogementController { @PutMapping("/validation") - @PreAuthorize("hasAuthority('UPDATE_ENQUETEUNITELOGEMENT')") + @PreAuthorize("hasAuthority('VALIDE_ENQUETE')") public ResponseEntity validerEnquete(@RequestBody EnqueteTraitementPayLoad enqueteTraitementPayLoad) { try { return new ResponseEntity<>( @@ -328,8 +360,32 @@ public class EnqueteUniteLogementController { } } + @PutMapping("/controle") + @PreAuthorize("hasAuthority('CONTROLE_ENQUETE')") + public ResponseEntity controleEnquete(@RequestBody EnqueteTraitementPayLoad enqueteTraitementPayLoad) { + try { + return new ResponseEntity<>( + new ApiResponse<>(true, enqueteUniteLogementService.controlerEnquete(enqueteTraitementPayLoad), "Validation effectué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); + } + } + @PutMapping("/rejet") - @PreAuthorize("hasAuthority('UPDATE_ENQUETEUNITELOGEMENT')") + @PreAuthorize("hasAuthority('REJETE_ENQUETE')") public ResponseEntity rejeterEnquete(@RequestBody EnqueteTraitementPayLoad enqueteTraitementPayLoad) { try { @@ -354,7 +410,7 @@ public class EnqueteUniteLogementController { } @PutMapping("/validation-lot") - @PreAuthorize("hasAuthority('UPDATE_ENQUETEUNITELOGEMENT')") + @PreAuthorize("hasAuthority('VALIDE_ENQUETE')") public ResponseEntity validerEnqueteParLot(@RequestBody List enqueteTraitementPayLoads) { try { return new ResponseEntity<>( @@ -377,8 +433,32 @@ public class EnqueteUniteLogementController { } } + @PutMapping("/controle-lot") + @PreAuthorize("hasAuthority('CONTROLE_ENQUETE')") + public ResponseEntity controleEnqueteParLot(@RequestBody List enqueteTraitementPayLoads) { + try { + return new ResponseEntity<>( + new ApiResponse<>(true, enqueteUniteLogementService.controlerEnquete(enqueteTraitementPayLoads), "Validation effectué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); + } + } + @PutMapping("/rejet-lot") - @PreAuthorize("hasAuthority('UPDATE_ENQUETEUNITELOGEMENT')") + @PreAuthorize("hasAuthority('REJETE_ENQUETE')") public ResponseEntity rejeterEnqueteParLot(@RequestBody List enqueteTraitementPayLoads) { try { return new ResponseEntity<>( diff --git a/src/main/java/io/gmss/fiscad/controllers/rfu/metier/ImpositionsTfuController.java b/src/main/java/io/gmss/fiscad/controllers/rfu/metier/ImpositionsTfuController.java index dcd8826..5fea2b9 100644 --- a/src/main/java/io/gmss/fiscad/controllers/rfu/metier/ImpositionsTfuController.java +++ b/src/main/java/io/gmss/fiscad/controllers/rfu/metier/ImpositionsTfuController.java @@ -177,6 +177,30 @@ public class ImpositionsTfuController { } } + @PutMapping("/homologue") + @PreAuthorize("hasAuthority('HOMOLOGUE_AVIS')") + public ResponseEntity HomologueImpositionsTfu(@RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) { + try { + return new ResponseEntity<>( + new ApiResponse<>(true, impositionsTfuService.autoriserGenerationImpositionsTfu(impositionsTfuPaylaodWeb), "Unite de logement mise à jour 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); + } + } + @PutMapping("/rejeter") @PreAuthorize("hasAuthority('UPDATE_IMPOSITIONSTFU')") public ResponseEntity annulerImpositionsTfu(@RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) { diff --git a/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/CaracteristiqueController.java b/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/CaracteristiqueController.java index d9d83b9..fde1fc3 100644 --- a/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/CaracteristiqueController.java +++ b/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/CaracteristiqueController.java @@ -5,6 +5,7 @@ import io.gmss.fiscad.entities.rfu.parametre.Caracteristique; import io.gmss.fiscad.exceptions.*; import io.gmss.fiscad.interfaces.rfu.parametre.CaracteristiqueService; import io.gmss.fiscad.paylaods.ApiResponse; +import io.gmss.fiscad.paylaods.request.crudweb.CaracteristiquePayloadWeb; import io.swagger.v3.oas.annotations.security.SecurityRequirement; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; @@ -36,11 +37,11 @@ public class CaracteristiqueController { @PostMapping("/create") @PreAuthorize("hasAuthority('CREATE_CARACTERISTIQUE')") - public ResponseEntity createCaracteristique(@RequestBody @Valid @Validated Caracteristique caracteristique) { + public ResponseEntity createCaracteristique(@RequestBody @Valid @Validated CaracteristiquePayloadWeb caracteristiquePayloadWeb) { try { - caracteristique = caracteristiqueService.createCaracteristique(caracteristique); + caracteristiquePayloadWeb = caracteristiqueService.createCaracteristique(caracteristiquePayloadWeb); return new ResponseEntity<>( - new ApiResponse<>(true, caracteristique, "Caracteristique créé avec succès."), + new ApiResponse<>(true, caracteristiquePayloadWeb, "Caracteristique créé avec succès."), HttpStatus.OK ); } catch (HttpClientErrorException.MethodNotAllowed e) { @@ -61,10 +62,10 @@ public class CaracteristiqueController { @PutMapping("/update/{id}") @PreAuthorize("hasAuthority('UPDATE_CARACTERISTIQUE')") - public ResponseEntity updateCaracteristique(@PathVariable Long id, @RequestBody Caracteristique caracteristique) { + public ResponseEntity updateCaracteristique(@PathVariable Long id, @RequestBody CaracteristiquePayloadWeb caracteristiquePayloadWeb) { try { return new ResponseEntity<>( - new ApiResponse<>(true, caracteristiqueService.updateCaracteristique(id, caracteristique), "Caracteristique mise à jour avec succès."), + new ApiResponse<>(true, caracteristiqueService.updateCaracteristique(id, caracteristiquePayloadWeb), "Caracteristique mise à jour avec succès."), HttpStatus.OK ); } catch (HttpClientErrorException.MethodNotAllowed e) { @@ -139,7 +140,7 @@ public class CaracteristiqueController { Pageable pageable = PageRequest.of(pageNo, pageSize); return new ResponseEntity<>( - new ApiResponse<>(true, caracteristiqueService.getCaracteristiqueList(pageable), "Liste des caractéristiques chargée avec succès."), + new ApiResponse<>(true, caracteristiqueService.getCaracteristiqueListPage(pageable), "Liste des caractéristiques chargée avec succès."), HttpStatus.OK ); } catch (HttpClientErrorException.MethodNotAllowed e) { diff --git a/src/main/java/io/gmss/fiscad/controllers/statistique/StatistiqueController.java b/src/main/java/io/gmss/fiscad/controllers/statistique/StatistiqueController.java index bdc9b0f..6a02af7 100644 --- a/src/main/java/io/gmss/fiscad/controllers/statistique/StatistiqueController.java +++ b/src/main/java/io/gmss/fiscad/controllers/statistique/StatistiqueController.java @@ -215,6 +215,44 @@ public class StatistiqueController { } + + @Operation( + summary = "Statistique des enquetes en cours par object ", + description = "Donnes le nombre d'enquetes en coures par objet" + ) + @GetMapping(path = "/nombre-enquete/par-objet/profil-id/{profilId}") + public ResponseEntity getStatistiquesEnqueteParObjetParProfilId(@CurrentUser UserPrincipal currentUser,@PathVariable Long profilId) { + try { + if(currentUser==null) + return new ResponseEntity<>( + new ApiResponse<>(true,null, "Vous ne pouvez pas accéder à cette ressource"), + HttpStatus.OK + ); + Long userId = currentUser.getUser().getId(); + + return new ResponseEntity<>( + new ApiResponse<>(true, statistiquesService.getStatNombreEnqueteParObjetUserConnectProfil(userId,profilId), "Statistique des personne par type."), + 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); + } + } + + + + @Operation( summary = "Statistique des enquetes en cours par object ", description = "Donnes le nombre d'enquetes en coures par objet" diff --git a/src/main/java/io/gmss/fiscad/controllers/user/UserController.java b/src/main/java/io/gmss/fiscad/controllers/user/UserController.java index ef571d3..8451ea8 100755 --- a/src/main/java/io/gmss/fiscad/controllers/user/UserController.java +++ b/src/main/java/io/gmss/fiscad/controllers/user/UserController.java @@ -97,7 +97,7 @@ public class UserController { @PostMapping("/change-password") - @PreAuthorize("hasAuthority('CHANGE_MY_PASSWORD')") + //@PreAuthorize("hasAuthority('CHANGE_MY_PASSWORD')") public ResponseEntity changeMyPassword(@CurrentUser UserPrincipal currentUser, @RequestBody Login login) { try { User user = currentUser.getUser() ; diff --git a/src/main/java/io/gmss/fiscad/enums/StatusAvis.java b/src/main/java/io/gmss/fiscad/enums/StatusAvis.java index 45e1214..b19fd1a 100755 --- a/src/main/java/io/gmss/fiscad/enums/StatusAvis.java +++ b/src/main/java/io/gmss/fiscad/enums/StatusAvis.java @@ -4,11 +4,10 @@ public enum StatusAvis { EN_COURS, CLOTURE, - GENERATION_AUTORISE, - + // GENERATION_AUTORISE, REJETE, TFU_FNB_GENERE, GENERE, - APPROVAL + HOMOLOGUE } diff --git a/src/main/java/io/gmss/fiscad/enums/StatutEnquete.java b/src/main/java/io/gmss/fiscad/enums/StatutEnquete.java index 5aa4e79..1b9776e 100755 --- a/src/main/java/io/gmss/fiscad/enums/StatutEnquete.java +++ b/src/main/java/io/gmss/fiscad/enums/StatutEnquete.java @@ -3,8 +3,13 @@ package io.gmss.fiscad.enums; public enum StatutEnquete { EN_COURS, FINALISE, + REJETE, + + CONTROLE, VALIDE, + ECHEC, + CLOTURE } diff --git a/src/main/java/io/gmss/fiscad/enums/UserRole.java b/src/main/java/io/gmss/fiscad/enums/UserRole.java index d4b08de..87f32c3 100644 --- a/src/main/java/io/gmss/fiscad/enums/UserRole.java +++ b/src/main/java/io/gmss/fiscad/enums/UserRole.java @@ -2,8 +2,10 @@ package io.gmss.fiscad.enums; public enum UserRole { VALIDE_ENQUETE, - APPROVAL_AVIS, - CHANGE_MY_PASSWORD, + REJETE_ENQUETE, + CONTROLE_ENQUETE, + HOMOLOGUE_AVIS, + //CHANGE_MY_PASSWORD, CREATE_ARRONDISSEMENT, READ_ARRONDISSEMENT, UPDATE_ARRONDISSEMENT, diff --git a/src/main/java/io/gmss/fiscad/implementations/decoupage/QuartierServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/decoupage/QuartierServiceImpl.java index 63dffe3..f29a608 100644 --- a/src/main/java/io/gmss/fiscad/implementations/decoupage/QuartierServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/decoupage/QuartierServiceImpl.java @@ -7,7 +7,10 @@ import io.gmss.fiscad.exceptions.NotFoundException; import io.gmss.fiscad.interfaces.decoupage.ArrondissementService; import io.gmss.fiscad.interfaces.decoupage.QuartierService; import io.gmss.fiscad.paylaods.request.crudweb.QuartierPaylaodWeb; +import io.gmss.fiscad.persistence.repositories.decoupage.ArrondissementRepository; import io.gmss.fiscad.persistence.repositories.decoupage.QuartierRepository; +import io.gmss.fiscad.service.EntityFromPayLoadService; +import lombok.AllArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; @@ -16,33 +19,59 @@ import java.util.List; import java.util.Optional; @Service +@AllArgsConstructor public class QuartierServiceImpl implements QuartierService { private final QuartierRepository quartierRepository; + private final ArrondissementRepository arrondissementRepository; private final ArrondissementService arrondissementService; + private final EntityFromPayLoadService entityFromPayLoadService; + + - public QuartierServiceImpl(QuartierRepository quartierRepository, ArrondissementService arrondissementService) { - this.quartierRepository = quartierRepository; - this.arrondissementService = arrondissementService; - } @Override - public Quartier createQuartier(Quartier quartier) throws BadRequestException { - if (quartier.getId() != null) { + public QuartierPaylaodWeb createQuartier(QuartierPaylaodWeb quartierPaylaodWeb) throws BadRequestException { + if (quartierPaylaodWeb.getId() != null) { throw new BadRequestException("Impossible de créer un nouveau quartier ayant un id non null."); } - return quartierRepository.save(quartier); + + if (quartierPaylaodWeb.getArrondissementId() == null) { + throw new BadRequestException("Impossible de créer un nouveau quartier : Veuillez préciser l'arrondissement"); + } + + + if (!arrondissementRepository.existsById(quartierPaylaodWeb.getArrondissementId())) { + throw new BadRequestException("Impossible de créer un nouveau quartier : l'arrondissement n'existe pas"); + } + Quartier quartier = entityFromPayLoadService.getQuartierFromPayLoadWeb(quartierPaylaodWeb); + quartier = quartierRepository.save(quartier); + + + Optional optionalQuartierPaylaodWeb = quartierRepository.findQuartierToDtoById(quartier.getId()); + + return optionalQuartierPaylaodWeb.orElse(null); } @Override - public Quartier updateQuartier(Long id, Quartier quartier) throws NotFoundException { - if (quartier.getId() == null) { + public QuartierPaylaodWeb updateQuartier(Long id, QuartierPaylaodWeb quartierPaylaodWeb) throws NotFoundException { + if (quartierPaylaodWeb.getId() == null) { throw new BadRequestException("Impossible de mettre à jour un nouveau quartier ayant un id null."); } - if (!quartierRepository.existsById(quartier.getId())) { + if (!quartierRepository.existsById(quartierPaylaodWeb.getId())) { throw new NotFoundException("Impossible de trouver le quartier spécifié dans notre base de données."); } - return quartierRepository.save(quartier); + + if (quartierPaylaodWeb.getArrondissementId() == null) { + throw new BadRequestException("Impossible de créer un nouveau quartier : Veuillez préciser l'arrondissement"); + } + Quartier quartier = entityFromPayLoadService.getQuartierFromPayLoadWeb(quartierPaylaodWeb); + quartier = quartierRepository.save(quartier); + + + Optional optionalQuartierPaylaodWeb = quartierRepository.findQuartierToDtoById(quartier.getId()); + + return optionalQuartierPaylaodWeb.orElse(null); } @Override diff --git a/src/main/java/io/gmss/fiscad/implementations/decoupage/SecteurDecoupageServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/decoupage/SecteurDecoupageServiceImpl.java index c9febee..50f9734 100644 --- a/src/main/java/io/gmss/fiscad/implementations/decoupage/SecteurDecoupageServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/decoupage/SecteurDecoupageServiceImpl.java @@ -2,7 +2,9 @@ package io.gmss.fiscad.implementations.decoupage; import io.gmss.fiscad.entities.decoupage.Secteur; import io.gmss.fiscad.entities.decoupage.SecteurDecoupage; +import io.gmss.fiscad.entities.user.Profile; import io.gmss.fiscad.enums.StatutEnquete; +import io.gmss.fiscad.enums.UserProfile; import io.gmss.fiscad.exceptions.BadRequestException; import io.gmss.fiscad.exceptions.NotFoundException; import io.gmss.fiscad.interfaces.decoupage.SecteurDecoupageService; @@ -15,6 +17,7 @@ import io.gmss.fiscad.persistence.repositories.infocad.metier.ParcelleRepository import io.gmss.fiscad.persistence.repositories.interface_sigibe.EdeclarationProprieteRepository; import io.gmss.fiscad.persistence.repositories.rfu.metier.EnqueteBatimentRepository; import io.gmss.fiscad.persistence.repositories.rfu.metier.EnqueteUniteLogementRepository; +import io.gmss.fiscad.persistence.repositories.user.ProfileRepository; import io.gmss.fiscad.service.EntityFromPayLoadService; import lombok.AllArgsConstructor; import org.springframework.data.domain.Page; @@ -34,6 +37,7 @@ public class SecteurDecoupageServiceImpl implements SecteurDecoupageService { private final EdeclarationProprieteRepository edeclarationProprieteRepository; private final EnqueteBatimentRepository enqueteBatimentRepository; private final EnqueteUniteLogementRepository enqueteUniteLogementRepository; + private final ProfileRepository profileRepository; private final EntityFromPayLoadService entityFromPayLoadService; @@ -131,6 +135,20 @@ public class SecteurDecoupageServiceImpl implements SecteurDecoupageService { return enqueteRepository.findStatsEnqueteBySecteurs(secteurIds,statutEnquete); } + @Override + public List getStatEnqueteDecoupageByUserIdByProfilId(Long userId, Long profilId) { + Optional optionalProfile= profileRepository.findProfileById(profilId); + List parcelleStatsProjectionUnSecteurs= new ArrayList<>(); + if(optionalProfile.isPresent()){ + if (optionalProfile.get().getNom().equals(UserProfile.GESSECTCHEF)){ + parcelleStatsProjectionUnSecteurs= getStatEnqueteDecoupageByUserId(userId,StatutEnquete.EN_COURS.toString()); + }else if(optionalProfile.get().getNom().equals(UserProfile.GESCHEF) || optionalProfile.get().getNom().equals(UserProfile.GESCENTRE)){ + parcelleStatsProjectionUnSecteurs= getStatEnqueteDecoupageByUserId(userId,StatutEnquete.CONTROLE.toString()); + } + } + return parcelleStatsProjectionUnSecteurs; + } + @Override public List getStatEnqueteBatimentDecoupageByUserId(Long userId, String statutEnquete) { List secteurs= secteurService.getListSecteurUserId(userId); @@ -142,6 +160,22 @@ public class SecteurDecoupageServiceImpl implements SecteurDecoupageService { return enqueteBatimentRepository.findStatsEnqueteBatimentBySecteurs(secteurIds,statutEnquete); } + @Override + public List getStatEnqueteBatimentDecoupageByUserIdByProfilId(Long userId, Long profilId) { + Optional optionalProfile= profileRepository.findProfileById(profilId); + List parcelleStatsProjectionUnSecteurs= new ArrayList<>(); + if(optionalProfile.isPresent()){ + if (optionalProfile.get().getNom().equals(UserProfile.GESSECTCHEF)){ + parcelleStatsProjectionUnSecteurs= getStatEnqueteBatimentDecoupageByUserId(userId,StatutEnquete.EN_COURS.toString()); + }else if(optionalProfile.get().getNom().equals(UserProfile.GESCHEF) || optionalProfile.get().getNom().equals(UserProfile.GESCENTRE)){ + parcelleStatsProjectionUnSecteurs= getStatEnqueteBatimentDecoupageByUserId(userId,StatutEnquete.CONTROLE.toString()); + } + } + return parcelleStatsProjectionUnSecteurs; + } + + + @Override public List getStatEnqueteUniteLogementDecoupageByUserId(Long userId, String statutEnquete) { List secteurs= secteurService.getListSecteurUserId(userId); @@ -151,6 +185,21 @@ public class SecteurDecoupageServiceImpl implements SecteurDecoupageService { return enqueteUniteLogementRepository.findStatsEnqueteBatimentBySecteurs(secteurIds,statutEnquete); } + + @Override + public List getStatEnqueteUniteLogementDecoupageByUserIdByProfilId(Long userId, Long profilId) { + Optional optionalProfile= profileRepository.findProfileById(profilId); + List parcelleStatsProjectionUnSecteurs= new ArrayList<>(); + if(optionalProfile.isPresent()){ + if (optionalProfile.get().getNom().equals(UserProfile.GESSECTCHEF)){ + parcelleStatsProjectionUnSecteurs= getStatEnqueteUniteLogementDecoupageByUserId(userId,StatutEnquete.EN_COURS.toString()); + }else if(optionalProfile.get().getNom().equals(UserProfile.GESCHEF) || optionalProfile.get().getNom().equals(UserProfile.GESCENTRE)){ + parcelleStatsProjectionUnSecteurs= getStatEnqueteUniteLogementDecoupageByUserId(userId,StatutEnquete.CONTROLE.toString()); + } + } + return parcelleStatsProjectionUnSecteurs; + } + @Override public List getStatDeclarationProprieteByUserId(Long userId, String statutDeclcarationPropriete) { List secteurs= secteurService.getListSecteurUserId(userId); diff --git a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/EnqueteServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/EnqueteServiceImpl.java index 0a24044..f2714e3 100644 --- a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/EnqueteServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/EnqueteServiceImpl.java @@ -10,9 +10,11 @@ import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment; import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement; import io.gmss.fiscad.entities.rfu.parametre.Equipe; import io.gmss.fiscad.entities.rfu.parametre.ZoneRfu; +import io.gmss.fiscad.entities.user.Profile; import io.gmss.fiscad.entities.user.User; import io.gmss.fiscad.enums.StatutEdeclarationPropriete; import io.gmss.fiscad.enums.StatutEnquete; +import io.gmss.fiscad.enums.UserProfile; import io.gmss.fiscad.exceptions.ApplicationException; import io.gmss.fiscad.exceptions.BadRequestException; import io.gmss.fiscad.exceptions.NotFoundException; @@ -46,6 +48,7 @@ import io.gmss.fiscad.persistence.repositories.rfu.metier.EnqueteBatimentReposit import io.gmss.fiscad.persistence.repositories.rfu.metier.EnqueteUniteLogementRepository; import io.gmss.fiscad.persistence.repositories.rfu.parametre.EquipeRepository; import io.gmss.fiscad.persistence.repositories.rfu.parametre.ZoneRfuRepository; +import io.gmss.fiscad.persistence.repositories.user.ProfileRepository; import io.gmss.fiscad.persistence.repositories.user.UserRepository; import io.gmss.fiscad.service.EntityFromPayLoadService; import jakarta.persistence.EntityManager; @@ -56,6 +59,7 @@ import jakarta.ws.rs.NotAcceptableException; import lombok.RequiredArgsConstructor; import org.modelmapper.ModelMapper; import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; @@ -91,6 +95,7 @@ public class EnqueteServiceImpl implements EnqueteService { private final SecteurService secteurService ; private final EdeclarationProprieteService edeclarationProprieteService ; private final QuartierRepository quartierRepository ; + private final ProfileRepository profileRepository ; ; @PersistenceContext @@ -419,6 +424,37 @@ public class EnqueteServiceImpl implements EnqueteService { return enqueteRepository.findEnqueteToDto(enquete.getId()).orElse(null); } + + @Override + public EnquetePayLoadWeb controlerEnquete(EnqueteTraitementPayLoad enqueteTraitementPayLoad) { + if (enqueteTraitementPayLoad == null) { + throw new BadRequestException("Impossible de valider une enquête ayant un id null."); + } + Optional optionalEnquete = enqueteRepository.findById(enqueteTraitementPayLoad.getIdBackend()); + if (!optionalEnquete.isPresent()) { + throw new NotFoundException("Impossible de trouver l'enquête que vous désirez valider."); + } + if(optionalEnquete.get().getStatutEnquete()==StatutEnquete.CLOTURE || + optionalEnquete.get().getStatutEnquete()==StatutEnquete.REJETE|| + optionalEnquete.get().getStatutEnquete()==StatutEnquete.VALIDE ){ + throw new NotAcceptableException("Impossible de valider : Le statut actuel "+optionalEnquete.get().getStatutEnquete()+" ne le permet pas."); + } + + Enquete enquete = optionalEnquete.get(); + enquete.setDateValidation(LocalDate.now()); + enquete.setStatutEnquete(StatutEnquete.CONTROLE); + enquete.setSynchronise(true); + + enquete= enqueteRepository.save(enquete); + + + if(enquete.getEdeclarationPropriete()!=null) { + edeclarationProprieteService.updateEdeclarationProprieteStatut(enquete.getEdeclarationPropriete().getId(), StatutEdeclarationPropriete.TRAITE); + } + + return enqueteRepository.findEnqueteToDto(enquete.getId()).orElse(null); + } + @Override public EnquetePayLoadWeb rejeterEnquete(EnqueteTraitementPayLoad enqueteTraitementPayLoad) { if (enqueteTraitementPayLoad.getIdBackend() == null) { @@ -454,6 +490,21 @@ public class EnqueteServiceImpl implements EnqueteService { return enquetePayLoadWebs; } + @Override + public List controlerEnquete(List enqueteTraitementPayLoads) { + List enquetePayLoadWebs = new ArrayList<>(); + try { + for (EnqueteTraitementPayLoad enqueteTraitementPayLoad : enqueteTraitementPayLoads) { + enquetePayLoadWebs.add(controlerEnquete(enqueteTraitementPayLoad)); + } + } catch (Exception e) { + enquetePayLoadWebs.add(null); + } + return enquetePayLoadWebs; + } + + + @Override public List rejeterEnquete(List enqueteTraitementPayLoads) { List enquetePayLoadWebs = new ArrayList<>(); @@ -635,6 +686,27 @@ public class EnqueteServiceImpl implements EnqueteService { return enqueteRepository.findAllEnqueteByQuartierByStatutToDtoPageable(quartierId,secteurIds,statutEnquete,pageable); } + + @Override + public Page getEnqueteListByQuartierByProfilByStatutPageableToDto(Long userId, Long quartierId, Long profilId, Pageable pageable) { + List secteurs= secteurService.getListSecteurUserId(userId); + List secteurIds = secteurs.stream() + .map(Secteur::getId) + .toList(); + Page enquetePayLoadWebs = Page.empty(pageable); + Optional optionalProfile= profileRepository.findProfileById(profilId); + + if(optionalProfile.isPresent()){ + if (optionalProfile.get().getNom().equals(UserProfile.GESSECTCHEF)){ + enquetePayLoadWebs=enqueteRepository.findAllEnqueteByQuartierByStatutToDtoPageable(quartierId,secteurIds,StatutEnquete.EN_COURS,pageable); + }else if(optionalProfile.get().getNom().equals(UserProfile.GESCHEF) || optionalProfile.get().getNom().equals(UserProfile.GESCENTRE)){ + enquetePayLoadWebs=enqueteRepository.findAllEnqueteByQuartierByStatutToDtoPageable(quartierId,secteurIds,StatutEnquete.CONTROLE,pageable); + } + } + + return enquetePayLoadWebs; + } + @Override @Transactional public int cloturerEnqueteParcelleBatimentUniteLogementByStructureIdAndExerciceId(Long structureId,Long exerciceId) { diff --git a/src/main/java/io/gmss/fiscad/implementations/infocad/parametre/ModeAcquisitionServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/infocad/parametre/ModeAcquisitionServiceImpl.java index 98130e2..ec8ea3d 100644 --- a/src/main/java/io/gmss/fiscad/implementations/infocad/parametre/ModeAcquisitionServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/infocad/parametre/ModeAcquisitionServiceImpl.java @@ -1,10 +1,14 @@ package io.gmss.fiscad.implementations.infocad.parametre; import io.gmss.fiscad.entities.infocad.parametre.ModeAcquisition; +import io.gmss.fiscad.entities.rfu.parametre.Caracteristique; import io.gmss.fiscad.exceptions.BadRequestException; import io.gmss.fiscad.exceptions.NotFoundException; import io.gmss.fiscad.interfaces.infocad.parametre.ModeAcquisitionService; +import io.gmss.fiscad.paylaods.request.crudweb.ModeAcquisitionPayloadWeb; import io.gmss.fiscad.persistence.repositories.infocad.parametre.ModeAcquisitionRepository; +import io.gmss.fiscad.service.EntityFromPayLoadService; +import lombok.AllArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; @@ -16,28 +20,35 @@ import java.util.Optional; public class ModeAcquisitionServiceImpl implements ModeAcquisitionService { private final ModeAcquisitionRepository modeAcquisitionRepository; + private final EntityFromPayLoadService entityFromPayLoadService; - public ModeAcquisitionServiceImpl(ModeAcquisitionRepository modeAcquisitionRepository) { + public ModeAcquisitionServiceImpl(ModeAcquisitionRepository modeAcquisitionRepository, EntityFromPayLoadService entityFromPayLoadService) { this.modeAcquisitionRepository = modeAcquisitionRepository; + this.entityFromPayLoadService = entityFromPayLoadService; } + @Override - public ModeAcquisition createModeAcquisition(ModeAcquisition modeAcquisition) throws BadRequestException { - if (modeAcquisition.getId() != null) { + public ModeAcquisitionPayloadWeb createModeAcquisition(ModeAcquisitionPayloadWeb modeAcquisitionPayloadWeb) throws BadRequestException { + if (modeAcquisitionPayloadWeb.getId() != null) { throw new BadRequestException("Impossible de créer un nouveau mode d'acquisition ayant un id non null."); } - return modeAcquisitionRepository.save(modeAcquisition); + ModeAcquisition modeAcquisition = entityFromPayLoadService.getModeAcquisitionFromPayLoadWeb(modeAcquisitionPayloadWeb); + modeAcquisition = modeAcquisitionRepository.save(modeAcquisition); + return modeAcquisitionRepository.findPayloadById(modeAcquisition.getId()).orElse(null); } @Override - public ModeAcquisition updateModeAcquisition(Long id, ModeAcquisition modeAcquisition) throws NotFoundException { - if (modeAcquisition.getId() == null) { + public ModeAcquisitionPayloadWeb updateModeAcquisition(Long id, ModeAcquisitionPayloadWeb modeAcquisitionPayloadWeb) throws NotFoundException { + if (modeAcquisitionPayloadWeb.getId() == null) { throw new BadRequestException("Impossible de mettre à jour un nouveau mode d'acquisition ayant un id null."); } - if (!modeAcquisitionRepository.existsById(modeAcquisition.getId())) { + if (!modeAcquisitionRepository.existsById(modeAcquisitionPayloadWeb.getId())) { throw new NotFoundException("Impossible de trouver le mode d'acquisition spécifié dans notre base de données."); } - return modeAcquisitionRepository.save(modeAcquisition); + ModeAcquisition modeAcquisition = entityFromPayLoadService.getModeAcquisitionFromPayLoadWeb(modeAcquisitionPayloadWeb); + modeAcquisition = modeAcquisitionRepository.save(modeAcquisition); + return modeAcquisitionRepository.findPayloadById(modeAcquisition.getId()).orElse(null); } @Override @@ -51,19 +62,19 @@ public class ModeAcquisitionServiceImpl implements ModeAcquisitionService { } @Override - public Page getModeAcquisitionList(Pageable pageable) { - return modeAcquisitionRepository.findAll(pageable); + public Page getModeAcquisitionList(Pageable pageable) { + return modeAcquisitionRepository.findAllPayload(pageable); } @Override - public List getModeAcquisitionList() { - return modeAcquisitionRepository.findAll(); + public List getModeAcquisitionList() { + return modeAcquisitionRepository.findAllPayload(); } @Override - public Optional getModeAcquisitionById(Long id) { + public Optional getModeAcquisitionById(Long id) { if (modeAcquisitionRepository.existsById(id)) { - return modeAcquisitionRepository.findById(id); + return modeAcquisitionRepository.findPayloadById(id); } else { throw new NotFoundException("Impossible de trouver le mode d'acquisition spécifié dans la base de données."); } diff --git a/src/main/java/io/gmss/fiscad/implementations/rfu/metier/EnqueteBatimentServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/rfu/metier/EnqueteBatimentServiceImpl.java index 8ad736a..e5c1b58 100644 --- a/src/main/java/io/gmss/fiscad/implementations/rfu/metier/EnqueteBatimentServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/rfu/metier/EnqueteBatimentServiceImpl.java @@ -7,8 +7,10 @@ import io.gmss.fiscad.entities.infocad.parametre.Personne; import io.gmss.fiscad.entities.rfu.metier.Batiment; import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueBatiment; import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment; +import io.gmss.fiscad.entities.user.Profile; import io.gmss.fiscad.enums.StatutEdeclarationPropriete; import io.gmss.fiscad.enums.StatutEnquete; +import io.gmss.fiscad.enums.UserProfile; import io.gmss.fiscad.exceptions.BadRequestException; import io.gmss.fiscad.exceptions.NotFoundException; import io.gmss.fiscad.interfaces.decoupage.SecteurService; @@ -27,6 +29,7 @@ import io.gmss.fiscad.persistence.repositories.infocad.parametre.PersonneReposit import io.gmss.fiscad.persistence.repositories.interface_sigibe.EdeclarationProprieteRepository; import io.gmss.fiscad.persistence.repositories.rfu.metier.BatimentRepository; import io.gmss.fiscad.persistence.repositories.rfu.metier.EnqueteBatimentRepository; +import io.gmss.fiscad.persistence.repositories.user.ProfileRepository; import io.gmss.fiscad.service.EntityFromPayLoadService; import jakarta.transaction.Transactional; import jakarta.ws.rs.NotAcceptableException; @@ -48,6 +51,7 @@ public class EnqueteBatimentServiceImpl implements EnqueteBatimentService { private final BatimentRepository batimentRepository; private final BatimentService batimentService; private final SecteurService secteurService; + private final ProfileRepository profileRepository; @@ -187,6 +191,28 @@ public class EnqueteBatimentServiceImpl implements EnqueteBatimentService { } + @Override + public Page getEnqueteBatimentListByQuartierByProfilPageableToDto(Long userId, Long quartierId, Long profilId, Pageable pageable) { + List secteurs= secteurService.getListSecteurUserId(userId); + List secteurIds = secteurs.stream() + .map(Secteur::getId) + .toList(); + Page enqueteBatimentPayloadWebs = Page.empty(pageable); + Optional optionalProfile= profileRepository.findProfileById(profilId); + + if(optionalProfile.isPresent()){ + if (optionalProfile.get().getNom().equals(UserProfile.GESSECTCHEF)){ + enqueteBatimentPayloadWebs=enqueteBatimentRepository.findAllEnqueteBatimentByQuartierByStatutToDtoPageable(quartierId,secteurIds,StatutEnquete.EN_COURS,pageable); + }else if(optionalProfile.get().getNom().equals(UserProfile.GESCHEF) || optionalProfile.get().getNom().equals(UserProfile.GESCENTRE)){ + enqueteBatimentPayloadWebs=enqueteBatimentRepository.findAllEnqueteBatimentByQuartierByStatutToDtoPageable(quartierId,secteurIds,StatutEnquete.CONTROLE,pageable); + } + } + return enqueteBatimentPayloadWebs; + + } + + + @Override public EnqueteBatimentPayloadWeb validerEnquete(EnqueteTraitementPayLoad enqueteTraitementPayLoad) { if (enqueteTraitementPayLoad == null || enqueteTraitementPayLoad.getIdBackend()==null) { @@ -213,6 +239,30 @@ public class EnqueteBatimentServiceImpl implements EnqueteBatimentService { return enqueteBatimentRepository.findEnqueteBatimentByIdToDto(enqueteBatiment.getId()).orElse(null); } + + @Override + public EnqueteBatimentPayloadWeb controlerEnquete(EnqueteTraitementPayLoad enqueteTraitementPayLoad) { + if (enqueteTraitementPayLoad == null || enqueteTraitementPayLoad.getIdBackend()==null) { + throw new BadRequestException("Impossible de valider une enquête ayant un id null."); + } + Optional optionalEnqueteBatiment = enqueteBatimentRepository.findById(enqueteTraitementPayLoad.getIdBackend()); + if (!optionalEnqueteBatiment.isPresent()) { + throw new NotFoundException("Impossible de trouver l'enquête que vous désirez valider."); + } + if(optionalEnqueteBatiment.get().getStatutEnquete()==StatutEnquete.CLOTURE || + optionalEnqueteBatiment.get().getStatutEnquete()==StatutEnquete.REJETE || + optionalEnqueteBatiment.get().getStatutEnquete()==StatutEnquete.CONTROLE ){ + throw new NotAcceptableException("Impossible de valider : Le statut actuel "+optionalEnqueteBatiment.get().getStatutEnquete()+" ne le permet pas."); + } + + EnqueteBatiment enqueteBatiment = optionalEnqueteBatiment.get(); + enqueteBatiment.setDateValidation(LocalDate.now()); + enqueteBatiment.setStatutEnquete(StatutEnquete.CONTROLE); + + enqueteBatiment= enqueteBatimentRepository.save(enqueteBatiment); + return enqueteBatimentRepository.findEnqueteBatimentByIdToDto(enqueteBatiment.getId()).orElse(null); + } + @Override public EnqueteBatimentPayloadWeb rejeterEnquete(EnqueteTraitementPayLoad enqueteTraitementPayLoad) { if (enqueteTraitementPayLoad == null || enqueteTraitementPayLoad.getIdBackend()==null) { @@ -247,6 +297,19 @@ public class EnqueteBatimentServiceImpl implements EnqueteBatimentService { return enqueteBatimentPayloadWebs; } + @Override + public List controlerEnquete(List enqueteTraitementPayLoads) { + List enqueteBatimentPayloadWebs = new ArrayList<>(); + try { + for (EnqueteTraitementPayLoad enqueteTraitementPayLoad : enqueteTraitementPayLoads) { + enqueteBatimentPayloadWebs.add(controlerEnquete(enqueteTraitementPayLoad)); + } + } catch (Exception e) { + enqueteBatimentPayloadWebs.add(null); + } + return enqueteBatimentPayloadWebs; + } + @Override public List rejeterEnquete(List enqueteTraitementPayLoads) { List enqueteBatimentPayloadWebs = new ArrayList<>(); diff --git a/src/main/java/io/gmss/fiscad/implementations/rfu/metier/EnqueteUniteLogementServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/rfu/metier/EnqueteUniteLogementServiceImpl.java index b9a2571..c3acd82 100644 --- a/src/main/java/io/gmss/fiscad/implementations/rfu/metier/EnqueteUniteLogementServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/rfu/metier/EnqueteUniteLogementServiceImpl.java @@ -5,8 +5,10 @@ import io.gmss.fiscad.entities.infocad.metier.Enquete; import io.gmss.fiscad.entities.infocad.metier.Upload; import io.gmss.fiscad.entities.infocad.parametre.Personne; import io.gmss.fiscad.entities.rfu.metier.*; +import io.gmss.fiscad.entities.user.Profile; import io.gmss.fiscad.enums.StatutEdeclarationPropriete; import io.gmss.fiscad.enums.StatutEnquete; +import io.gmss.fiscad.enums.UserProfile; import io.gmss.fiscad.exceptions.BadRequestException; import io.gmss.fiscad.exceptions.NotFoundException; import io.gmss.fiscad.interfaces.decoupage.SecteurService; @@ -23,6 +25,7 @@ import io.gmss.fiscad.persistence.repositories.infocad.metier.UploadRepository; import io.gmss.fiscad.persistence.repositories.infocad.parametre.PersonneRepository; import io.gmss.fiscad.persistence.repositories.rfu.metier.EnqueteUniteLogementRepository; import io.gmss.fiscad.persistence.repositories.rfu.metier.UniteLogementRepository; +import io.gmss.fiscad.persistence.repositories.user.ProfileRepository; import io.gmss.fiscad.service.EntityFromPayLoadService; import jakarta.transaction.Transactional; import jakarta.ws.rs.NotAcceptableException; @@ -45,6 +48,7 @@ public class EnqueteUniteLogementServiceImpl implements EnqueteUniteLogementServ private final UniteLogementService uniteLogementService ; private final SecteurService secteurService ; private final EdeclarationProprieteService edeclarationProprieteService ; + private final ProfileRepository profileRepository ; @@ -187,6 +191,25 @@ public class EnqueteUniteLogementServiceImpl implements EnqueteUniteLogementServ return enqueteUniteLogementRepository.findAllEnqueteUniteLogementByQuartierByStatutToDtoPageable(quartierId,secteurIds,statutEnquete,pageable); } + @Override + public Page getEnqueteUniteLogementListByQuartierByProfilPageableToDto(Long userId, Long quartierId, Long profilId, Pageable pageable) { + List secteurs= secteurService.getListSecteurUserId(userId); + List secteurIds = secteurs.stream() + .map(Secteur::getId) + .toList(); + + Page uniteLogementPayloadWebs = Page.empty(pageable); + Optional optionalProfile= profileRepository.findProfileById(profilId); + if(optionalProfile.isPresent()){ + if (optionalProfile.get().getNom().equals(UserProfile.GESSECTCHEF)){ + uniteLogementPayloadWebs=enqueteUniteLogementRepository.findAllEnqueteUniteLogementByQuartierByStatutToDtoPageable(quartierId,secteurIds,StatutEnquete.EN_COURS,pageable); + }else if(optionalProfile.get().getNom().equals(UserProfile.GESCHEF) || optionalProfile.get().getNom().equals(UserProfile.GESCENTRE)){ + uniteLogementPayloadWebs=enqueteUniteLogementRepository.findAllEnqueteUniteLogementByQuartierByStatutToDtoPageable(quartierId,secteurIds,StatutEnquete.CONTROLE,pageable); + } + } + return uniteLogementPayloadWebs; + } + @Override public EnqueteUniteLogementPayloadWeb validerEnquete(EnqueteTraitementPayLoad enqueteTraitementPayLoad) { @@ -214,6 +237,29 @@ public class EnqueteUniteLogementServiceImpl implements EnqueteUniteLogementServ return enqueteUniteLogementRepository.findEnqueteUniteLogementToDto(enqueteUniteLogement.getId()).orElse(null); } + @Override + public EnqueteUniteLogementPayloadWeb controlerEnquete(EnqueteTraitementPayLoad enqueteTraitementPayLoad) { + if (enqueteTraitementPayLoad == null || enqueteTraitementPayLoad.getIdBackend()==null) { + throw new BadRequestException("Impossible de valider une enquête ayant un id null."); + } + Optional optionalEnqueteUniteLogement = enqueteUniteLogementRepository.findById(enqueteTraitementPayLoad.getIdBackend()); + if (!optionalEnqueteUniteLogement.isPresent()) { + throw new NotFoundException("Impossible de trouver l'enquête que vous désirez valider."); + } + if(optionalEnqueteUniteLogement.get().getStatutEnquete()==StatutEnquete.CLOTURE || + optionalEnqueteUniteLogement.get().getStatutEnquete()==StatutEnquete.REJETE || + optionalEnqueteUniteLogement.get().getStatutEnquete()==StatutEnquete.CONTROLE ){ + throw new NotAcceptableException("Impossible de valider : Le statut actuel "+optionalEnqueteUniteLogement.get().getStatutEnquete()+" ne le permet pas."); + } + + EnqueteUniteLogement enqueteUniteLogement = optionalEnqueteUniteLogement.get(); + enqueteUniteLogement.setDateValidation(LocalDate.now()); + enqueteUniteLogement.setStatutEnquete(StatutEnquete.CONTROLE); + + enqueteUniteLogement= enqueteUniteLogementRepository.save(enqueteUniteLogement); + return enqueteUniteLogementRepository.findEnqueteUniteLogementToDto(enqueteUniteLogement.getId()).orElse(null); + } + @Override public EnqueteUniteLogementPayloadWeb rejeterEnquete(EnqueteTraitementPayLoad enqueteTraitementPayLoad) { if (enqueteTraitementPayLoad == null || enqueteTraitementPayLoad.getIdBackend()==null) { @@ -248,6 +294,20 @@ public class EnqueteUniteLogementServiceImpl implements EnqueteUniteLogementServ return enqueteUniteLogementPayloadWebs; } + + @Override + public List controlerEnquete(List enqueteTraitementPayLoads) { + List enqueteUniteLogementPayloadWebs = new ArrayList<>(); + try { + for (EnqueteTraitementPayLoad enqueteTraitementPayLoad : enqueteTraitementPayLoads) { + enqueteUniteLogementPayloadWebs.add(controlerEnquete(enqueteTraitementPayLoad)); + } + } catch (Exception e) { + enqueteUniteLogementPayloadWebs.add(null); + } + return enqueteUniteLogementPayloadWebs; + } + @Override public List rejeterEnquete(List enqueteTraitementPayLoads) { List enqueteUniteLogementPayloadWebs = new ArrayList<>(); diff --git a/src/main/java/io/gmss/fiscad/implementations/rfu/metier/ImpositionsTfuServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/rfu/metier/ImpositionsTfuServiceImpl.java index 59b9aa4..b1013e7 100644 --- a/src/main/java/io/gmss/fiscad/implementations/rfu/metier/ImpositionsTfuServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/rfu/metier/ImpositionsTfuServiceImpl.java @@ -52,7 +52,8 @@ public class ImpositionsTfuServiceImpl implements ImpositionsTfuService { List statusAvis= new ArrayList<>(); statusAvis.add(StatusAvis.EN_COURS); statusAvis.add(StatusAvis.CLOTURE); - statusAvis.add(StatusAvis.GENERATION_AUTORISE); + statusAvis.add(StatusAvis.GENERE); + statusAvis.add(StatusAvis.HOMOLOGUE); Optional optionalImpositionsTfu= impositionsTfuRepository.findDistinctByStructure_IdAndExercice_IdAndStatusAvisIn(impositionsTfuPaylaodWeb.getStructureId(),impositionsTfuPaylaodWeb.getExerciceId(),statusAvis); @@ -113,6 +114,27 @@ public class ImpositionsTfuServiceImpl implements ImpositionsTfuService { @Override public ImpositionsTfuPaylaodWeb autoriserGenerationImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException { +// if (impositionsTfuPaylaodWeb.getId() == null) { +// throw new BadRequestException("Impossible de valider une imposition ayant un id null."); +// } +// if (!impositionsTfuRepository.existsById(impositionsTfuPaylaodWeb.getId())) { +// throw new NotFoundException("Impossible de trouver l'imposition spécifiée dans notre base de données."); +// } +// +// ImpositionsTfu impositionsTfu= entityFromPayLoadService.getImpositionsTfuFromPayLoadWeb(impositionsTfuPaylaodWeb); +// +// if(!impositionsTfu.getStatusAvis().equals(StatusAvis.CLOTURE)){ +// throw new NotFoundException("L'état actuel : "+impositionsTfu.getStatusAvis()+ " ne permet pas de passer à l'état Autorisé"); +// } +// impositionsTfu.setDateGeneration(LocalDate.now()); +// impositionsTfu.setStatusAvis(StatusAvis.GENERATION_AUTORISE); +// impositionsTfu =impositionsTfuRepository.save(impositionsTfu); +// return impositionsTfuRepository.findByIdToDto(impositionsTfu.getId()).orElse(null); + return null; + } + + @Override + public ImpositionsTfuPaylaodWeb homologueImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException { if (impositionsTfuPaylaodWeb.getId() == null) { throw new BadRequestException("Impossible de valider une imposition ayant un id null."); } @@ -122,11 +144,11 @@ public class ImpositionsTfuServiceImpl implements ImpositionsTfuService { ImpositionsTfu impositionsTfu= entityFromPayLoadService.getImpositionsTfuFromPayLoadWeb(impositionsTfuPaylaodWeb); - if(!impositionsTfu.getStatusAvis().equals(StatusAvis.CLOTURE)){ + if(!impositionsTfu.getStatusAvis().equals(StatusAvis.GENERE)){ throw new NotFoundException("L'état actuel : "+impositionsTfu.getStatusAvis()+ " ne permet pas de passer à l'état Autorisé"); } impositionsTfu.setDateGeneration(LocalDate.now()); - impositionsTfu.setStatusAvis(StatusAvis.GENERATION_AUTORISE); + impositionsTfu.setStatusAvis(StatusAvis.HOMOLOGUE); impositionsTfu =impositionsTfuRepository.save(impositionsTfu); return impositionsTfuRepository.findByIdToDto(impositionsTfu.getId()).orElse(null); } diff --git a/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/CaracteristiqueServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/CaracteristiqueServiceImpl.java index 8b4e958..f20e1b2 100644 --- a/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/CaracteristiqueServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/CaracteristiqueServiceImpl.java @@ -1,10 +1,13 @@ package io.gmss.fiscad.implementations.rfu.parametre; +import io.gmss.fiscad.entities.rfu.parametre.BaremRfuBati; import io.gmss.fiscad.entities.rfu.parametre.Caracteristique; import io.gmss.fiscad.exceptions.BadRequestException; import io.gmss.fiscad.exceptions.NotFoundException; import io.gmss.fiscad.interfaces.rfu.parametre.CaracteristiqueService; +import io.gmss.fiscad.paylaods.request.crudweb.CaracteristiquePayloadWeb; import io.gmss.fiscad.persistence.repositories.rfu.parametre.CaracteristiqueRepository; +import io.gmss.fiscad.service.EntityFromPayLoadService; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; @@ -16,28 +19,36 @@ import java.util.Optional; public class CaracteristiqueServiceImpl implements CaracteristiqueService { private final CaracteristiqueRepository caracteristiqueRepository; + private final EntityFromPayLoadService entityFromPayLoadService; - public CaracteristiqueServiceImpl(CaracteristiqueRepository caracteristiqueRepository) { + public CaracteristiqueServiceImpl(CaracteristiqueRepository caracteristiqueRepository, EntityFromPayLoadService entityFromPayLoadService) { this.caracteristiqueRepository = caracteristiqueRepository; + this.entityFromPayLoadService = entityFromPayLoadService; } + @Override - public Caracteristique createCaracteristique(Caracteristique caracteristique) throws BadRequestException { - if (caracteristique.getId() != null) { + public CaracteristiquePayloadWeb createCaracteristique(CaracteristiquePayloadWeb caracteristiquePayloadWeb) throws BadRequestException { + if (caracteristiquePayloadWeb.getId() != null) { throw new BadRequestException("Impossible de créer une nouvelle caracteristique ayant un id non null."); } - return caracteristiqueRepository.save(caracteristique); + Caracteristique caracteristique = entityFromPayLoadService.getCaracteristiqueFromPayLoadWeb(caracteristiquePayloadWeb); + caracteristique = caracteristiqueRepository.save(caracteristique); + return caracteristiqueRepository.findPayloadById(caracteristique.getId()).orElse(null); + } @Override - public Caracteristique updateCaracteristique(Long id, Caracteristique caracteristique) throws NotFoundException { - if (caracteristique.getId() == null) { + public CaracteristiquePayloadWeb updateCaracteristique(Long id, CaracteristiquePayloadWeb caracteristiquePayloadWeb) throws NotFoundException { + if (caracteristiquePayloadWeb.getId() == null) { throw new BadRequestException("Impossible de mettre à jour une nouvelle caracteristique ayant un id null."); } - if (!caracteristiqueRepository.existsById(caracteristique.getId())) { + if (!caracteristiqueRepository.existsById(caracteristiquePayloadWeb.getId())) { throw new NotFoundException("Impossible de trouver la caractéristique spécifiée dans notre base de données."); } - return caracteristiqueRepository.save(caracteristique); + Caracteristique caracteristique = entityFromPayLoadService.getCaracteristiqueFromPayLoadWeb(caracteristiquePayloadWeb); + caracteristique = caracteristiqueRepository.save(caracteristique); + return caracteristiqueRepository.findPayloadById(caracteristique.getId()).orElse(null); } @Override @@ -51,20 +62,20 @@ public class CaracteristiqueServiceImpl implements CaracteristiqueService { } @Override - public Page getCaracteristiqueList(Pageable pageable) { - return caracteristiqueRepository.findAll(pageable); + public List getCaracteristiqueList() { + return caracteristiqueRepository.findAllPayload(); } @Override - public List getCaracteristiqueList() { - return caracteristiqueRepository.findAll(); + public Page getCaracteristiqueListPage(Pageable pageable) { + return caracteristiqueRepository.findAllPayload(pageable); } @Override - public Optional getCaracteristiqueById(Long id) { + public Optional getCaracteristiqueById(Long id) { if (caracteristiqueRepository.existsById(id)) { - return caracteristiqueRepository.findById(id); + return caracteristiqueRepository.findPayloadById(id); } else { throw new NotFoundException("Impossible de trouver la caractéristique spécifiée dans la base de données."); } diff --git a/src/main/java/io/gmss/fiscad/implementations/statistiques/StatistiquesServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/statistiques/StatistiquesServiceImpl.java index f503c17..52e177f 100644 --- a/src/main/java/io/gmss/fiscad/implementations/statistiques/StatistiquesServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/statistiques/StatistiquesServiceImpl.java @@ -1,8 +1,10 @@ package io.gmss.fiscad.implementations.statistiques; import io.gmss.fiscad.entities.decoupage.Secteur; +import io.gmss.fiscad.entities.user.Profile; import io.gmss.fiscad.entities.user.User; import io.gmss.fiscad.enums.StatutEnquete; +import io.gmss.fiscad.enums.UserProfile; import io.gmss.fiscad.interfaces.decoupage.SecteurService; import io.gmss.fiscad.interfaces.statistique.StatistiquesService; import io.gmss.fiscad.interfaces.user.UserService; @@ -15,6 +17,7 @@ import io.gmss.fiscad.persistence.repositories.rfu.metier.BatimentRepository; import io.gmss.fiscad.persistence.repositories.rfu.metier.EnqueteBatimentRepository; import io.gmss.fiscad.persistence.repositories.rfu.metier.EnqueteUniteLogementRepository; import io.gmss.fiscad.persistence.repositories.rfu.metier.UniteLogementRepository; +import io.gmss.fiscad.persistence.repositories.user.ProfileRepository; import lombok.AllArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; @@ -24,6 +27,7 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; +import java.util.Optional; @Service public class StatistiquesServiceImpl implements StatistiquesService { @@ -37,8 +41,9 @@ public class StatistiquesServiceImpl implements StatistiquesService { private final SecteurService secteurService; private final EnqueteBatimentRepository enqueteBatimentRepository; private final EnqueteUniteLogementRepository enqueteUniteLogementRepository; + private final ProfileRepository profileRepository; - public StatistiquesServiceImpl(UserService userService, EnqueteRepository enqueteRepository, ParcelleRepository parcelleRepository, BatimentRepository batimentRepository, UniteLogementRepository uniteLogementRepository, PersonneRepository personneRepository, SecteurService secteurService, EnqueteBatimentRepository enqueteBatimentRepository, EnqueteUniteLogementRepository enqueteUniteLogementRepository) { + public StatistiquesServiceImpl(UserService userService, EnqueteRepository enqueteRepository, ParcelleRepository parcelleRepository, BatimentRepository batimentRepository, UniteLogementRepository uniteLogementRepository, PersonneRepository personneRepository, SecteurService secteurService, EnqueteBatimentRepository enqueteBatimentRepository, EnqueteUniteLogementRepository enqueteUniteLogementRepository, ProfileRepository profileRepository) { this.userService = userService; this.enqueteRepository = enqueteRepository; this.parcelleRepository = parcelleRepository; @@ -48,6 +53,7 @@ public class StatistiquesServiceImpl implements StatistiquesService { this.secteurService = secteurService; this.enqueteBatimentRepository = enqueteBatimentRepository; this.enqueteUniteLogementRepository = enqueteUniteLogementRepository; + this.profileRepository = profileRepository; } @@ -129,4 +135,28 @@ public class StatistiquesServiceImpl implements StatistiquesService { return nombreEnquetesParObjet; } + @Override + public NombreEnquetesParObjet getStatNombreEnqueteParObjetUserConnectProfil(Long userId, Long profilId) { + NombreEnquetesParObjet nombreEnquetesParObjet= new NombreEnquetesParObjet(); + List secteurs= secteurService.getListSecteurUserId(userId); + List secteurIds = secteurs.stream() + .map(Secteur::getId) + .toList(); + Optional optionalProfile= profileRepository.findProfileById(profilId); + if(optionalProfile.isPresent()){ + if (optionalProfile.get().getNom().equals(UserProfile.GESSECTCHEF)){ + nombreEnquetesParObjet.setNombreEnqueteUniteLogement(enqueteUniteLogementRepository.getNombreEnqueteUniteLogementByUserConnecte(secteurIds,StatutEnquete.EN_COURS.toString())); + nombreEnquetesParObjet.setNombreEnqueteParcelle(enqueteRepository.getNombreEnqueteByUserConnecte(secteurIds,StatutEnquete.EN_COURS.toString())); + nombreEnquetesParObjet.setNombreEnqueteBatiment(enqueteBatimentRepository.getNombreEnqueteBatimentByUserConnecte(secteurIds,StatutEnquete.EN_COURS.toString())); + + }else if(optionalProfile.get().getNom().equals(UserProfile.GESCHEF) || optionalProfile.get().getNom().equals(UserProfile.GESCENTRE)){ + nombreEnquetesParObjet.setNombreEnqueteUniteLogement(enqueteUniteLogementRepository.getNombreEnqueteUniteLogementByUserConnecte(secteurIds,StatutEnquete.CONTROLE.toString())); + nombreEnquetesParObjet.setNombreEnqueteParcelle(enqueteRepository.getNombreEnqueteByUserConnecte(secteurIds,StatutEnquete.CONTROLE.toString())); + nombreEnquetesParObjet.setNombreEnqueteBatiment(enqueteBatimentRepository.getNombreEnqueteBatimentByUserConnecte(secteurIds,StatutEnquete.CONTROLE.toString())); + } + } + return nombreEnquetesParObjet; + } + + } diff --git a/src/main/java/io/gmss/fiscad/interfaces/decoupage/QuartierService.java b/src/main/java/io/gmss/fiscad/interfaces/decoupage/QuartierService.java index 904e6c7..706be9e 100755 --- a/src/main/java/io/gmss/fiscad/interfaces/decoupage/QuartierService.java +++ b/src/main/java/io/gmss/fiscad/interfaces/decoupage/QuartierService.java @@ -12,9 +12,9 @@ import java.util.Optional; public interface QuartierService { - Quartier createQuartier(Quartier quartier) throws BadRequestException; + QuartierPaylaodWeb createQuartier(QuartierPaylaodWeb quartierPaylaodWeb) throws BadRequestException; - Quartier updateQuartier(Long id, Quartier quartier) throws NotFoundException; + QuartierPaylaodWeb updateQuartier(Long id, QuartierPaylaodWeb quartierPaylaodWeb) throws NotFoundException; void deleteQuartier(Long id) throws NotFoundException; diff --git a/src/main/java/io/gmss/fiscad/interfaces/decoupage/SecteurDecoupageService.java b/src/main/java/io/gmss/fiscad/interfaces/decoupage/SecteurDecoupageService.java index 1cf7434..ecf46cf 100644 --- a/src/main/java/io/gmss/fiscad/interfaces/decoupage/SecteurDecoupageService.java +++ b/src/main/java/io/gmss/fiscad/interfaces/decoupage/SecteurDecoupageService.java @@ -34,8 +34,11 @@ public interface SecteurDecoupageService { List getStatParcelleDecoupageUnSecteur(Long secteurId) ; List getStatParcelleDecoupageByUserId(Long userId) ; List getStatEnqueteDecoupageByUserId(Long userId, String statutEnquete) ; + List getStatEnqueteDecoupageByUserIdByProfilId(Long userId, Long profilId) ; List getStatEnqueteBatimentDecoupageByUserId(Long userId, String statutEnquete) ; + List getStatEnqueteBatimentDecoupageByUserIdByProfilId(Long userId, Long profilId) ; List getStatEnqueteUniteLogementDecoupageByUserId(Long userId, String statutEnquete) ; + List getStatEnqueteUniteLogementDecoupageByUserIdByProfilId(Long userId, Long profilId ) ; List getStatDeclarationProprieteByUserId(Long userId, String statutDeclcarationPropriete) ; diff --git a/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/EnqueteService.java b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/EnqueteService.java index 7bec839..1c4f1da 100755 --- a/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/EnqueteService.java +++ b/src/main/java/io/gmss/fiscad/interfaces/infocad/metier/EnqueteService.java @@ -41,10 +41,12 @@ public interface EnqueteService { Optional getEnqueteById(Long id); EnquetePayLoadWeb validerEnquete(EnqueteTraitementPayLoad enqueteTraitementPayLoad); + EnquetePayLoadWeb controlerEnquete(EnqueteTraitementPayLoad enqueteTraitementPayLoad); EnquetePayLoadWeb rejeterEnquete(EnqueteTraitementPayLoad enqueteTraitementPayLoad); List validerEnquete(List enqueteTraitementPayLoads); + List controlerEnquete(List enqueteTraitementPayLoads); List rejeterEnquete(List enqueteTraitementPayLoads); @@ -65,5 +67,6 @@ public interface EnqueteService { Page getEnqueteListByQuartierByStatutPageableToDto(Long userId, Long quartierId, StatutEnquete statutEnquete, Pageable pageable); + Page getEnqueteListByQuartierByProfilByStatutPageableToDto(Long userId, Long quartierId, Long profilId,Pageable pageable); } diff --git a/src/main/java/io/gmss/fiscad/interfaces/infocad/parametre/ModeAcquisitionService.java b/src/main/java/io/gmss/fiscad/interfaces/infocad/parametre/ModeAcquisitionService.java index d0ec657..1f28681 100755 --- a/src/main/java/io/gmss/fiscad/interfaces/infocad/parametre/ModeAcquisitionService.java +++ b/src/main/java/io/gmss/fiscad/interfaces/infocad/parametre/ModeAcquisitionService.java @@ -3,6 +3,7 @@ package io.gmss.fiscad.interfaces.infocad.parametre; import io.gmss.fiscad.entities.infocad.parametre.ModeAcquisition; import io.gmss.fiscad.exceptions.BadRequestException; import io.gmss.fiscad.exceptions.NotFoundException; +import io.gmss.fiscad.paylaods.request.crudweb.ModeAcquisitionPayloadWeb; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; @@ -11,15 +12,15 @@ import java.util.Optional; public interface ModeAcquisitionService { - ModeAcquisition createModeAcquisition(ModeAcquisition modeAcquisition) throws BadRequestException; + ModeAcquisitionPayloadWeb createModeAcquisition(ModeAcquisitionPayloadWeb modeAcquisitionPayloadWeb) throws BadRequestException; - ModeAcquisition updateModeAcquisition(Long id, ModeAcquisition modeAcquisition) throws NotFoundException; + ModeAcquisitionPayloadWeb updateModeAcquisition(Long id, ModeAcquisitionPayloadWeb modeAcquisitionPayloadWeb) throws NotFoundException; void deleteModeAcquisition(Long id) throws NotFoundException; - Page getModeAcquisitionList(Pageable pageable); + Page getModeAcquisitionList(Pageable pageable); - List getModeAcquisitionList(); + List getModeAcquisitionList(); - Optional getModeAcquisitionById(Long id); + Optional getModeAcquisitionById(Long id); } diff --git a/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/EnqueteBatimentService.java b/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/EnqueteBatimentService.java index eacef49..068bf97 100755 --- a/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/EnqueteBatimentService.java +++ b/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/EnqueteBatimentService.java @@ -31,12 +31,15 @@ public interface EnqueteBatimentService { List getEnqueteBatimentByBatimentList(Long batimentId); Page getEnqueteBatimentListByQuartierByStatutPageableToDto(Long userId, Long quartierId, StatutEnquete statutEnquete, Pageable pageable); + Page getEnqueteBatimentListByQuartierByProfilPageableToDto(Long userId, Long quartierId, Long profilId, Pageable pageable); EnqueteBatimentPayloadWeb validerEnquete(EnqueteTraitementPayLoad enqueteTraitementPayLoad); + EnqueteBatimentPayloadWeb controlerEnquete(EnqueteTraitementPayLoad enqueteTraitementPayLoad); EnqueteBatimentPayloadWeb rejeterEnquete(EnqueteTraitementPayLoad enqueteTraitementPayLoad); List validerEnquete(List enqueteTraitementPayLoads); + List controlerEnquete(List enqueteTraitementPayLoads); List rejeterEnquete(List enqueteTraitementPayLoads); diff --git a/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/EnqueteUniteLogementService.java b/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/EnqueteUniteLogementService.java index df42381..b45b803 100755 --- a/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/EnqueteUniteLogementService.java +++ b/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/EnqueteUniteLogementService.java @@ -32,12 +32,15 @@ public interface EnqueteUniteLogementService { Optional getEnqueteUniteLogementById(Long enqueteUniteLogement); Page getEnqueteUniteLogementListByQuartierByStatutPageableToDto(Long userId, Long quartierId, StatutEnquete statutEnquete, Pageable pageable); + Page getEnqueteUniteLogementListByQuartierByProfilPageableToDto(Long userId, Long quartierId, Long profilId, Pageable pageable); EnqueteUniteLogementPayloadWeb validerEnquete(EnqueteTraitementPayLoad enqueteTraitementPayLoad); + EnqueteUniteLogementPayloadWeb controlerEnquete(EnqueteTraitementPayLoad enqueteTraitementPayLoad); EnqueteUniteLogementPayloadWeb rejeterEnquete(EnqueteTraitementPayLoad enqueteTraitementPayLoad); List validerEnquete(List enqueteTraitementPayLoads); + List controlerEnquete(List enqueteTraitementPayLoads); List rejeterEnquete(List enqueteTraitementPayLoads); } diff --git a/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/ImpositionsTfuService.java b/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/ImpositionsTfuService.java index be67f09..ca17ef2 100755 --- a/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/ImpositionsTfuService.java +++ b/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/ImpositionsTfuService.java @@ -16,6 +16,7 @@ public interface ImpositionsTfuService { ImpositionsTfuPaylaodWeb rejeterImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException; ImpositionsTfuPaylaodWeb cloturerImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException; ImpositionsTfuPaylaodWeb autoriserGenerationImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException; + ImpositionsTfuPaylaodWeb homologueImpositionsTfu(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws BadRequestException; ImpositionsTfuPaylaodWeb updateImpositionsTfu(Long id, ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) throws NotFoundException; diff --git a/src/main/java/io/gmss/fiscad/interfaces/rfu/parametre/CaracteristiqueService.java b/src/main/java/io/gmss/fiscad/interfaces/rfu/parametre/CaracteristiqueService.java index 854b014..7f6779b 100755 --- a/src/main/java/io/gmss/fiscad/interfaces/rfu/parametre/CaracteristiqueService.java +++ b/src/main/java/io/gmss/fiscad/interfaces/rfu/parametre/CaracteristiqueService.java @@ -3,6 +3,7 @@ package io.gmss.fiscad.interfaces.rfu.parametre; import io.gmss.fiscad.entities.rfu.parametre.Caracteristique; import io.gmss.fiscad.exceptions.BadRequestException; import io.gmss.fiscad.exceptions.NotFoundException; +import io.gmss.fiscad.paylaods.request.crudweb.CaracteristiquePayloadWeb; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; @@ -11,15 +12,16 @@ import java.util.Optional; public interface CaracteristiqueService { - Caracteristique createCaracteristique(Caracteristique caracteristique) throws BadRequestException; + CaracteristiquePayloadWeb createCaracteristique(CaracteristiquePayloadWeb caracteristiquePayloadWeb) throws BadRequestException; - Caracteristique updateCaracteristique(Long id, Caracteristique caracteristique) throws NotFoundException; + CaracteristiquePayloadWeb updateCaracteristique(Long id, CaracteristiquePayloadWeb caracteristiquePayloadWeb) throws NotFoundException; void deleteCaracteristique(Long id) throws NotFoundException; - Page getCaracteristiqueList(Pageable pageable); + Page getCaracteristiqueListPage(Pageable pageable); + List getCaracteristiqueList(); - List getCaracteristiqueList(); + //List getCaracteristiqueListByTypeImmeuble(Long typeImmeubleId); - Optional getCaracteristiqueById(Long id); + Optional getCaracteristiqueById(Long id); } diff --git a/src/main/java/io/gmss/fiscad/interfaces/statistique/StatistiquesService.java b/src/main/java/io/gmss/fiscad/interfaces/statistique/StatistiquesService.java index ff123ab..66d0033 100644 --- a/src/main/java/io/gmss/fiscad/interfaces/statistique/StatistiquesService.java +++ b/src/main/java/io/gmss/fiscad/interfaces/statistique/StatistiquesService.java @@ -12,4 +12,5 @@ public interface StatistiquesService { StatNombreTotalObjet getStatNombreTotalObjet(String codeDecoupageAdmin); List getStatNombrePersonneParCategorie(); NombreEnquetesParObjet getStatNombreEnqueteParObjetUserConnect(Long userId, String statutEnquete); + NombreEnquetesParObjet getStatNombreEnqueteParObjetUserConnectProfil(Long userId, Long profilId); } diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/CaracteristiquePayloadWeb.java b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/CaracteristiquePayloadWeb.java new file mode 100644 index 0000000..d5a4db4 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/CaracteristiquePayloadWeb.java @@ -0,0 +1,41 @@ +package io.gmss.fiscad.paylaods.request.crudweb; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.gmss.fiscad.entities.decoupage.Arrondissement; +import io.gmss.fiscad.entities.infocad.metier.Tpe; +import io.gmss.fiscad.entities.rfu.parametre.CategorieBatiment; +import io.gmss.fiscad.entities.rfu.parametre.TypeCaracteristique; +import io.gmss.fiscad.enums.TypeImmeuble; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.FetchType; +import jakarta.persistence.ManyToOne; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDate; + +@NoArgsConstructor +@Data +public class CaracteristiquePayloadWeb { + private Long id; + private String code; + private String libelle; + private boolean actif; + @Enumerated(EnumType.STRING) + private TypeImmeuble typeImmeuble; + private Long typeCaracteristiqueId; + private String typeCaracteristiqueCode; + private String typeCaracteristiqueLibelle; + + public CaracteristiquePayloadWeb(Long id, String code, String libelle, boolean actif, TypeImmeuble typeImmeuble, Long typeCaracteristiqueId, String typeCaracteristiqueCode, String typeCaracteristiqueLibelle) { + this.id = id; + this.code = code; + this.libelle = libelle; + this.actif = actif; + this.typeImmeuble = typeImmeuble; + this.typeCaracteristiqueId = typeCaracteristiqueId; + this.typeCaracteristiqueCode = typeCaracteristiqueCode; + this.typeCaracteristiqueLibelle = typeCaracteristiqueLibelle; + } +} diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/ModeAcquisitionPayloadWeb.java b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/ModeAcquisitionPayloadWeb.java new file mode 100644 index 0000000..927ece6 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/ModeAcquisitionPayloadWeb.java @@ -0,0 +1,21 @@ +package io.gmss.fiscad.paylaods.request.crudweb; + +import io.gmss.fiscad.entities.infocad.metier.Piece; +import io.gmss.fiscad.entities.infocad.parametre.TypePersonne; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +import java.util.Set; + +@NoArgsConstructor +@Data +public class ModeAcquisitionPayloadWeb { + private Long id; + private String libelle; + + public ModeAcquisitionPayloadWeb(Long id, String libelle) { + this.id = id; + this.libelle = libelle; + } +} diff --git a/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/integrer_detail_avis_dans_table_eavisdetail.sql b/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/integrer_detail_avis_dans_table_eavisdetail.sql index 73bc8b1..7ac99f6 100644 --- a/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/integrer_detail_avis_dans_table_eavisdetail.sql +++ b/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/integrer_detail_avis_dans_table_eavisdetail.sql @@ -25,8 +25,11 @@ BEGIN montant_valeur_locative = v.montant_valeur_locative, taux = v.taux, montant_du = v.montant_du, - booleen_parcelle_contact = v.booleen_parcelle_contact, - penalite = v.penalite + booleen_parcelle_contact = case v.booleen_parcelle_contact + when true then 'OUI' + when false then 'NON' end, + penalite = v.penalite, + r_avis = v.r_avis WHEN NOT MATCHED THEN INSERT @@ -47,7 +50,8 @@ BEGIN taux, montant_du, booleen_parcelle_contact, - penalite + penalite, + r_avis ) VALUES ( @@ -66,8 +70,11 @@ BEGIN v.montant_valeur_locative, v.taux, v.montant_du, - v.booleen_parcelle_contact, - v.penalite + case v.booleen_parcelle_contact + when true then 'OUI' + when false then 'NON' end, + v.penalite, + v.r_avis ); END; $$; diff --git a/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/parametre/ModeAcquisitionRepository.java b/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/parametre/ModeAcquisitionRepository.java index d2580c0..80a3b47 100755 --- a/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/parametre/ModeAcquisitionRepository.java +++ b/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/parametre/ModeAcquisitionRepository.java @@ -1,11 +1,16 @@ package io.gmss.fiscad.persistence.repositories.infocad.parametre; import io.gmss.fiscad.entities.infocad.parametre.ModeAcquisition; +import io.gmss.fiscad.paylaods.request.crudweb.ModeAcquisitionPayloadWeb; import io.gmss.fiscad.paylaods.response.synchronisation.ModesAcquisitionTypePersonneSyncResponse; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import java.util.List; +import java.util.Optional; public interface ModeAcquisitionRepository extends JpaRepository { @Query(value = "select ma.id, ma.libelle,mat.type_personne_id as typePersonneId " + @@ -13,4 +18,34 @@ public interface ModeAcquisitionRepository extends JpaRepository getModeAcquisitionTypePersonne(); + + + @Query(""" + SELECT new io.gmss.fiscad.paylaods.request.crudweb.ModeAcquisitionPayloadWeb( + m.id, + m.libelle + ) + FROM ModeAcquisition m + WHERE m.id = :id + """) + Optional findPayloadById(@Param("id") Long id); + + @Query(""" + SELECT new io.gmss.fiscad.paylaods.request.crudweb.ModeAcquisitionPayloadWeb( + m.id, + m.libelle + ) + FROM ModeAcquisition m + ORDER BY m.libelle + """) + List findAllPayload(); + + @Query(""" + SELECT new io.gmss.fiscad.paylaods.request.crudweb.ModeAcquisitionPayloadWeb( + m.id, + m.libelle + ) + FROM ModeAcquisition m + """) + Page findAllPayload(Pageable pageable); } diff --git a/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/parametre/CaracteristiqueRepository.java b/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/parametre/CaracteristiqueRepository.java index 43ab026..31a67e0 100755 --- a/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/parametre/CaracteristiqueRepository.java +++ b/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/parametre/CaracteristiqueRepository.java @@ -1,13 +1,91 @@ package io.gmss.fiscad.persistence.repositories.rfu.parametre; import io.gmss.fiscad.entities.rfu.parametre.Caracteristique; +import io.gmss.fiscad.enums.TypeImmeuble; +import io.gmss.fiscad.paylaods.request.crudweb.CaracteristiquePayloadWeb; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import java.util.List; +import java.util.Optional; public interface CaracteristiqueRepository extends JpaRepository { List findAllByActifIsTrue(); //Optional findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long TerminalId); + @Query(""" + SELECT new io.gmss.fiscad.paylaods.request.crudweb.CaracteristiquePayloadWeb( + c.id, + c.code, + c.libelle, + c.actif, + c.typeImmeuble, + tc.id, + tc.code, + tc.libelle + ) + FROM Caracteristique c + LEFT JOIN c.typeCaracteristique tc + WHERE c.id = :id + """) + Optional findPayloadById(@Param("id") Long id); + + @Query(""" + SELECT new io.gmss.fiscad.paylaods.request.crudweb.CaracteristiquePayloadWeb( + c.id, + c.code, + c.libelle, + c.actif, + c.typeImmeuble, + tc.id, + tc.code, + tc.libelle + ) + FROM Caracteristique c + LEFT JOIN c.typeCaracteristique tc + WHERE c.typeImmeuble = :typeImmeuble + ORDER BY tc.libelle, c.libelle + """) + List findByTypeImmeuble( + @Param("typeImmeuble") TypeImmeuble typeImmeuble + ); + + @Query(""" + SELECT new io.gmss.fiscad.paylaods.request.crudweb.CaracteristiquePayloadWeb( + c.id, + c.code, + c.libelle, + c.actif, + c.typeImmeuble, + tc.id, + tc.code, + tc.libelle + ) + FROM Caracteristique c + LEFT JOIN c.typeCaracteristique tc + ORDER BY tc.libelle, c.libelle + """) + List findAllPayload(); + + + @Query(""" + SELECT new io.gmss.fiscad.paylaods.request.crudweb.CaracteristiquePayloadWeb( + c.id, + c.code, + c.libelle, + c.actif, + c.typeImmeuble, + tc.id, + tc.code, + tc.libelle + ) + FROM Caracteristique c + LEFT JOIN c.typeCaracteristique tc + """) + Page findAllPayload(Pageable pageable); + } diff --git a/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java b/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java index 74d2237..06c90b9 100644 --- a/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java +++ b/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java @@ -20,10 +20,7 @@ import io.gmss.fiscad.persistence.repositories.frontend.ModuleRepository; import io.gmss.fiscad.persistence.repositories.infocad.metier.*; import io.gmss.fiscad.persistence.repositories.infocad.parametre.*; import io.gmss.fiscad.persistence.repositories.rfu.metier.*; -import io.gmss.fiscad.persistence.repositories.rfu.parametre.BaremRfuNonBatiRepository; -import io.gmss.fiscad.persistence.repositories.rfu.parametre.BaremRfuRepository; -import io.gmss.fiscad.persistence.repositories.rfu.parametre.CaracteristiqueRepository; -import io.gmss.fiscad.persistence.repositories.rfu.parametre.ExerciceRepository; +import io.gmss.fiscad.persistence.repositories.rfu.parametre.*; import io.gmss.fiscad.persistence.repositories.user.AvoirFonctionRepository; import io.gmss.fiscad.persistence.repositories.user.ProfileModuleFonctionnaliteRepository; import io.gmss.fiscad.persistence.repositories.user.ProfileRepository; @@ -82,6 +79,7 @@ public class EntityFromPayLoadService { private final ModuleRepository moduleRepository ; private final FonctionnaliteRepository fonctionnaliteRepository ; private final ProfileModuleFonctionnaliteRepository profileModuleFonctionnaliteRepository ; + private final TypeCaracteristiqueRepository typeCaracteristiqueRepository ; public CaracteristiqueParcelle getCaracteristiqueParcelleFromPayLoadWeb(CaracteristiqueParcellePayloadWeb caracteristiqueParcellePayloadWeb){ @@ -104,6 +102,53 @@ public class EntityFromPayLoadService { return caracteristiqueParcelle; } + public Quartier getQuartierFromPayLoadWeb(QuartierPaylaodWeb quartierPaylaodWeb){ + Quartier quartier=new Quartier(); + if(quartierPaylaodWeb.getId()!=null) + quartier = quartierRepository.findById(quartierPaylaodWeb.getId()).orElse(new Quartier()); + + Optional optionalArrondissement=Optional.empty(); + + if(quartierPaylaodWeb.getArrondissementId()!=null) + optionalArrondissement=arrondissementRepository.findById(quartierPaylaodWeb.getArrondissementId()); + + quartier.setId(quartierPaylaodWeb.getId()); + quartier.setArrondissement(optionalArrondissement.orElse(null)); + quartier.setCode(quartierPaylaodWeb.getCode()); + quartier.setNom(quartierPaylaodWeb.getNom()); + return quartier; + } + + public Caracteristique getCaracteristiqueFromPayLoadWeb(CaracteristiquePayloadWeb caracteristiquePayloadWeb){ + Caracteristique caracteristique=new Caracteristique(); + if(caracteristiquePayloadWeb.getId()!=null) + caracteristique = caracteristiqueRepository.findById(caracteristiquePayloadWeb.getId()).orElse(new Caracteristique()); + + Optional optionalTypeCaracteristique=Optional.empty(); + + if(caracteristiquePayloadWeb.getTypeCaracteristiqueId()!=null) + optionalTypeCaracteristique=typeCaracteristiqueRepository.findById(caracteristiquePayloadWeb.getTypeCaracteristiqueId()); + + caracteristique.setId(caracteristiquePayloadWeb.getId()); + caracteristique.setTypeCaracteristique(optionalTypeCaracteristique.orElse(null)); + caracteristique.setCode(caracteristiquePayloadWeb.getCode()); + caracteristique.setLibelle(caracteristiquePayloadWeb.getLibelle()); + caracteristique.setTypeImmeuble(caracteristiquePayloadWeb.getTypeImmeuble()); + return caracteristique; + } + + + public ModeAcquisition getModeAcquisitionFromPayLoadWeb(ModeAcquisitionPayloadWeb modeAcquisitionPayloadWeb){ + ModeAcquisition modeAcquisition=new ModeAcquisition(); + if(modeAcquisitionPayloadWeb.getId()!=null) + modeAcquisition = modeAcquisitionRepository.findById(modeAcquisitionPayloadWeb.getId()).orElse(new ModeAcquisition()); + + modeAcquisition.setId(modeAcquisitionPayloadWeb.getId()); + modeAcquisition.setLibelle(modeAcquisitionPayloadWeb.getLibelle()); + + return modeAcquisition; + } + public CaracteristiqueBatiment getCaracteristiqueBatimentFromPayLoadWeb(CaracteristiqueBatimentPayloadWeb caracteristiqueBatimentPayloadWeb){ CaracteristiqueBatiment caracteristiqueBatiment=new CaracteristiqueBatiment();