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 a53f9cb..89a9a5f 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 @@ -188,6 +188,79 @@ public class DonneesImpositionTfuController { } } + @GetMapping("/all-page/by-imposition-id/non-batie/{impositionId}") + public ResponseEntity getAllDonneesImpositionTfuByImpositionIdNonBatiePaged(@PathVariable Long impositionId, @RequestParam int pageNo, @RequestParam int pageSize) { + try { + Pageable pageable = PageRequest.of(pageNo, pageSize); + return new ResponseEntity<>( + new ApiResponse<>(true, donneesImpositionTfuService.getDonneesFiscalesByImpositionTfuIdNonBatiePageable(impositionId, pageable), "Liste des caractéristiques 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-page/by-imposition-id/batie-batiment/{impositionId}") + public ResponseEntity getAllDonneesImpositionTfuByImpositionIdBatieBatimentPaged(@PathVariable Long impositionId, @RequestParam int pageNo, @RequestParam int pageSize) { + try { + Pageable pageable = PageRequest.of(pageNo, pageSize); + return new ResponseEntity<>( + new ApiResponse<>(true, donneesImpositionTfuService.getDonneesFiscalesByImpositionTfuIdBatieBatimentPageable(impositionId, pageable), "Liste des caractéristiques 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-page/by-imposition-id/batie-unite-logement/{impositionId}") + public ResponseEntity getAllDonneesImpositionTfuByImpositionIdBatieUniteLogPaged(@PathVariable Long impositionId, @RequestParam int pageNo, @RequestParam int pageSize) { + try { + Pageable pageable = PageRequest.of(pageNo, pageSize); + return new ResponseEntity<>( + new ApiResponse<>(true, donneesImpositionTfuService.getDonneesFiscalesByImpositionTfuIdBatieUniteLogPageable(impositionId, pageable), "Liste des caractéristiques chargée avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } + @GetMapping("/id/{id}") public ResponseEntity getDonneesImpositionTfuById(@PathVariable Long id) { try { diff --git a/src/main/java/io/gmss/fiscad/implementations/rfu/metier/DonneesImpositionTfuServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/rfu/metier/DonneesImpositionTfuServiceImpl.java index 48dbe60..df6950d 100644 --- a/src/main/java/io/gmss/fiscad/implementations/rfu/metier/DonneesImpositionTfuServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/rfu/metier/DonneesImpositionTfuServiceImpl.java @@ -132,8 +132,8 @@ public class DonneesImpositionTfuServiceImpl implements DonneesImpositionTfuServ } @Override - public List getDonneesFiscalesByImposition(Long impositionsId) { - return donneesImpositionTfuRepository.findAllByImpositionsTfu_Id(impositionsId); + public List getDonneesFiscalesByImposition(Long impositionsId) { + return donneesImpositionTfuRepository.findAllByImpositionTfuId(impositionsId); } @Override @@ -150,4 +150,19 @@ public class DonneesImpositionTfuServiceImpl implements DonneesImpositionTfuServ public Page getDonneesFiscalesByImpositionTfuIdPageable(Long impositionsTfuId, Pageable pageable) { return donneesImpositionTfuRepository.findAllByImpositionTfuIdPageable(impositionsTfuId,pageable); } + + @Override + public Page getDonneesFiscalesByImpositionTfuIdNonBatiePageable(Long impositionsTfuId, Pageable pageable) { + return donneesImpositionTfuRepository.findAllByImpositionTfuIdNonBatiePageable(impositionsTfuId,pageable); + } + + @Override + public Page getDonneesFiscalesByImpositionTfuIdBatieBatimentPageable(Long impositionsTfuId, Pageable pageable) { + return donneesImpositionTfuRepository.findAllByImpositionTfuIdBatieBatimentPageable(impositionsTfuId,pageable); + } + + @Override + public Page getDonneesFiscalesByImpositionTfuIdBatieUniteLogPageable(Long impositionsTfuId, Pageable pageable) { + return donneesImpositionTfuRepository.findAllByImpositionTfuIdBatieUniteLogPageable(impositionsTfuId,pageable); + } } diff --git a/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/DonneesImpositionTfuService.java b/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/DonneesImpositionTfuService.java index 9f21a85..946036d 100755 --- a/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/DonneesImpositionTfuService.java +++ b/src/main/java/io/gmss/fiscad/interfaces/rfu/metier/DonneesImpositionTfuService.java @@ -29,7 +29,15 @@ public interface DonneesImpositionTfuService { ImpositionsTfuPaylaodWeb genererDonneesFiscalesParcelleBatie(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb,Long userId); ImpositionsTfuPaylaodWeb genererDonneesFiscalesParcelleNonBatie(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb,Long userId); - List getDonneesFiscalesByImposition(Long impositionsId); + List getDonneesFiscalesByImposition(Long impositionsId); List getDonneesFiscalesByImpositionArrondissement(Long impositionsId,Long arrondissementId); Page getDonneesFiscalesByImpositionTfuIdPageable(Long impositionsTfuId, Pageable pageable); + + + Page getDonneesFiscalesByImpositionTfuIdNonBatiePageable(Long impositionsTfuId, Pageable pageable); + Page getDonneesFiscalesByImpositionTfuIdBatieBatimentPageable(Long impositionsTfuId, Pageable pageable); + Page getDonneesFiscalesByImpositionTfuIdBatieUniteLogPageable(Long impositionsTfuId, Pageable pageable); + + + } diff --git a/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/metier/DonneesImpositionTfuRepository.java b/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/metier/DonneesImpositionTfuRepository.java index aab05bb..6302d5a 100755 --- a/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/metier/DonneesImpositionTfuRepository.java +++ b/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/metier/DonneesImpositionTfuRepository.java @@ -123,10 +123,83 @@ public interface DonneesImpositionTfuRepository extends JpaRepository findAllDonneesImpositionTfu(Long communeId, int annee); - List findAllByImpositionsTfu_Id(Long impositionId); List findAllByImpositionsTfu_IdAndCodeArrondissement(Long impositionId,String arrondissementCode); + @Query(""" +SELECT new io.gmss.fiscad.paylaods.request.crudweb.DonneesImpositionPaylaodWeb( + d.id, + d.annee, + d.codeDepartement, + d.nomDepartement, + d.codeCommune, + d.nomCommune, + d.codeArrondissement, + d.nomArrondissement, + d.codeQuartierVillage, + d.nomQuartierVillage, + d.q, + d.ilot, + d.parcelle, + d.nup, + d.titreFoncier, + d.numBatiment, + d.numUniteLogement, + d.ifu, + d.npi, + d.telProp, + d.emailProp, + d.nomProp, + d.prenomProp, + d.raisonSociale, + d.adresseProp, + d.telSc, + d.emailSc, + d.nomSc, + d.prenomSc, + d.adresseSc, + d.longitude, + d.latitude, + d.superficieParc, + d.superficieAuSolBat, + d.superficieAuSolUlog, + d.batie, + d.exonere, + d.batimentExonere, + d.uniteLogementExonere, + d.valeurLocativeAdm, + d.montantLoyerAnnuel, + d.tfuMetreCarre, + d.tfuMinimum, + d.standingBat, + d.categorieBat, + d.nombrePiscine, + d.nombreUlog, + d.nombreBat, + d.dateEnquete, + s.id, + z.id, + d.valeurAdminParcelleNb, + d.natureImpot, + s.code, + z.nom, + d.valeurBatiment, + d.valeurParcelle, + d.valeurLocativeAdmMetreCarre, + d.valeurAdminParcelleNbMetreCarre, + d.montantTaxe + ) + FROM DonneesImpositionTfu d + JOIN d.impositionsTfu itfu + LEFT join d.structure s + LEFT join d.zoneRfu z + WHERE itfu.id = :impositionTfuId + """) + List findAllByImpositionTfuId( + Long impositionTfuId + ); + + @Query(""" SELECT new io.gmss.fiscad.paylaods.request.crudweb.DonneesImpositionPaylaodWeb( d.id, @@ -201,6 +274,235 @@ SELECT new io.gmss.fiscad.paylaods.request.crudweb.DonneesImpositionPaylaodWeb( Pageable pageable ); + + @Query(""" +SELECT new io.gmss.fiscad.paylaods.request.crudweb.DonneesImpositionPaylaodWeb( + d.id, + d.annee, + d.codeDepartement, + d.nomDepartement, + d.codeCommune, + d.nomCommune, + d.codeArrondissement, + d.nomArrondissement, + d.codeQuartierVillage, + d.nomQuartierVillage, + d.q, + d.ilot, + d.parcelle, + d.nup, + d.titreFoncier, + d.numBatiment, + d.numUniteLogement, + d.ifu, + d.npi, + d.telProp, + d.emailProp, + d.nomProp, + d.prenomProp, + d.raisonSociale, + d.adresseProp, + d.telSc, + d.emailSc, + d.nomSc, + d.prenomSc, + d.adresseSc, + d.longitude, + d.latitude, + d.superficieParc, + d.superficieAuSolBat, + d.superficieAuSolUlog, + d.batie, + d.exonere, + d.batimentExonere, + d.uniteLogementExonere, + d.valeurLocativeAdm, + d.montantLoyerAnnuel, + d.tfuMetreCarre, + d.tfuMinimum, + d.standingBat, + d.categorieBat, + d.nombrePiscine, + d.nombreUlog, + d.nombreBat, + d.dateEnquete, + s.id, + z.id, + d.valeurAdminParcelleNb, + d.natureImpot, + s.code, + z.nom, + d.valeurBatiment, + d.valeurParcelle, + d.valeurLocativeAdmMetreCarre, + d.valeurAdminParcelleNbMetreCarre, + d.montantTaxe + ) + FROM DonneesImpositionTfu d + JOIN d.impositionsTfu itfu + LEFT join d.structure s + LEFT join d.zoneRfu z + WHERE itfu.id = :impositionTfuId + and d.batie is true + and d.numUniteLogement is null + """) + Page findAllByImpositionTfuIdBatieBatimentPageable( + Long impositionTfuId, + Pageable pageable + ); + + @Query(""" +SELECT new io.gmss.fiscad.paylaods.request.crudweb.DonneesImpositionPaylaodWeb( + d.id, + d.annee, + d.codeDepartement, + d.nomDepartement, + d.codeCommune, + d.nomCommune, + d.codeArrondissement, + d.nomArrondissement, + d.codeQuartierVillage, + d.nomQuartierVillage, + d.q, + d.ilot, + d.parcelle, + d.nup, + d.titreFoncier, + d.numBatiment, + d.numUniteLogement, + d.ifu, + d.npi, + d.telProp, + d.emailProp, + d.nomProp, + d.prenomProp, + d.raisonSociale, + d.adresseProp, + d.telSc, + d.emailSc, + d.nomSc, + d.prenomSc, + d.adresseSc, + d.longitude, + d.latitude, + d.superficieParc, + d.superficieAuSolBat, + d.superficieAuSolUlog, + d.batie, + d.exonere, + d.batimentExonere, + d.uniteLogementExonere, + d.valeurLocativeAdm, + d.montantLoyerAnnuel, + d.tfuMetreCarre, + d.tfuMinimum, + d.standingBat, + d.categorieBat, + d.nombrePiscine, + d.nombreUlog, + d.nombreBat, + d.dateEnquete, + s.id, + z.id, + d.valeurAdminParcelleNb, + d.natureImpot, + s.code, + z.nom, + d.valeurBatiment, + d.valeurParcelle, + d.valeurLocativeAdmMetreCarre, + d.valeurAdminParcelleNbMetreCarre, + d.montantTaxe + ) + FROM DonneesImpositionTfu d + JOIN d.impositionsTfu itfu + LEFT join d.structure s + LEFT join d.zoneRfu z + WHERE itfu.id = :impositionTfuId + and d.batie is true + and d.numUniteLogement is not null + """) + Page findAllByImpositionTfuIdBatieUniteLogPageable( + Long impositionTfuId, + Pageable pageable + ); + + + @Query(""" +SELECT new io.gmss.fiscad.paylaods.request.crudweb.DonneesImpositionPaylaodWeb( + d.id, + d.annee, + d.codeDepartement, + d.nomDepartement, + d.codeCommune, + d.nomCommune, + d.codeArrondissement, + d.nomArrondissement, + d.codeQuartierVillage, + d.nomQuartierVillage, + d.q, + d.ilot, + d.parcelle, + d.nup, + d.titreFoncier, + d.numBatiment, + d.numUniteLogement, + d.ifu, + d.npi, + d.telProp, + d.emailProp, + d.nomProp, + d.prenomProp, + d.raisonSociale, + d.adresseProp, + d.telSc, + d.emailSc, + d.nomSc, + d.prenomSc, + d.adresseSc, + d.longitude, + d.latitude, + d.superficieParc, + d.superficieAuSolBat, + d.superficieAuSolUlog, + d.batie, + d.exonere, + d.batimentExonere, + d.uniteLogementExonere, + d.valeurLocativeAdm, + d.montantLoyerAnnuel, + d.tfuMetreCarre, + d.tfuMinimum, + d.standingBat, + d.categorieBat, + d.nombrePiscine, + d.nombreUlog, + d.nombreBat, + d.dateEnquete, + s.id, + z.id, + d.valeurAdminParcelleNb, + d.natureImpot, + s.code, + z.nom, + d.valeurBatiment, + d.valeurParcelle, + d.valeurLocativeAdmMetreCarre, + d.valeurAdminParcelleNbMetreCarre, + d.montantTaxe + ) + FROM DonneesImpositionTfu d + JOIN d.impositionsTfu itfu + LEFT join d.structure s + LEFT join d.zoneRfu z + WHERE itfu.id = :impositionTfuId + and d.batie is false + """) + Page findAllByImpositionTfuIdNonBatiePageable( + Long impositionTfuId, + Pageable pageable + ); + @Query(value = "SELECT generer_donnees_imposition_tfu_batie(:structureId, :impositionId)", nativeQuery = true) Integer genererDonneesTfuBatie( @Param("structureId") Long structureId,