From 0a24ef47c3ece6ed92c0cab043e1714b9d972552 Mon Sep 17 00:00:00 2001 From: Aurince AKAKPO Date: Mon, 3 Aug 2026 13:48:11 +0100 Subject: [PATCH] reajustement workflow --- .../DonneesImpositionTfuController.java | 13 ++--- .../DonneesImpositionTfuServiceImpl.java | 55 +++++++++++-------- .../integrer_situation_fiscale_parcelle.sql | 15 ++++- 3 files changed, 49 insertions(+), 34 deletions(-) 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 485ce71..1ca327e 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 @@ -6,6 +6,7 @@ import io.gmss.fiscad.entities.rfu.metier.ImpositionsTfu; import io.gmss.fiscad.enums.StatusAvis; import io.gmss.fiscad.exceptions.*; import io.gmss.fiscad.interfaces.rfu.metier.DonneesImpositionTfuService; +import io.gmss.fiscad.interfaces.rfu.metier.ImpositionsTfuService; import io.gmss.fiscad.paylaods.ApiResponse; import io.gmss.fiscad.paylaods.request.crudweb.DonneesImpositionPaylaodWeb; import io.gmss.fiscad.paylaods.request.crudweb.ImpositionsTfuPaylaodWeb; @@ -408,7 +409,7 @@ public class DonneesImpositionTfuController { @PreAuthorize("hasAnyAuthority('CREATE_DONNEESIMPOSITIONTFU', 'UPDATE_DONNEESIMPOSITIONTFU')") public ResponseEntity genererDonneesFiscaleBatieUneParcelle(@CurrentUser UserPrincipal userPrincipal, @RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb,@PathVariable Long parcelleId) { try { - Optional optionalImpositionsTfu =impositionsTfuRepository.findById(impositionsTfuPaylaodWeb.getId()); + Optional optionalImpositionsTfu =impositionsTfuRepository.findByIdToDto(impositionsTfuPaylaodWeb.getId()); if(optionalImpositionsTfu.isEmpty()){ return new ResponseEntity<>( @@ -507,7 +508,7 @@ public class DonneesImpositionTfuController { @PreAuthorize("hasAnyAuthority('CREATE_DONNEESIMPOSITIONTFU', 'UPDATE_DONNEESIMPOSITIONTFU')") public ResponseEntity genererDonneesImpositionNonBatiesUneParcelle(@CurrentUser UserPrincipal userPrincipal, @RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb, @PathVariable Long parcelleId) { try { - Optional optionalImpositionsTfu =impositionsTfuRepository.findById(impositionsTfuPaylaodWeb.getId()); + Optional optionalImpositionsTfu = impositionsTfuRepository.findByIdToDto(impositionsTfuPaylaodWeb.getId()); if(optionalImpositionsTfu.isEmpty()){ return new ResponseEntity<>( @@ -516,19 +517,13 @@ public class DonneesImpositionTfuController { ); } -// if(!optionalImpositionsTfu.get().getStatusAvis().equals(StatusAvis.GENERATION_AUTORISE)){ -// return new ResponseEntity<>( -// new ApiResponse<>(false, null, "l'état actuel : "+optionalImpositionsTfu.get().getStatusAvis()+" ne permet pas cette opération."), -// HttpStatus.OK -// ); -// } - if(userPrincipal==null){ return new ResponseEntity<>( new ApiResponse<>(false, null, "Vous n'êtes pas autorisé à accéder à cette ressource"), HttpStatus.OK ); } + impositionsTfuPaylaodWeb=donneesImpositionTfuService.genererDonneesFiscalesParcelleNonBatieUneParcelle(impositionsTfuPaylaodWeb,userPrincipal.getUser().getId(),parcelleId); return new ResponseEntity<>( 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 b8e7059..ca7ee69 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 @@ -2,16 +2,16 @@ package io.gmss.fiscad.implementations.rfu.metier; import io.gmss.fiscad.entities.decoupage.Arrondissement; import io.gmss.fiscad.entities.infocad.metier.Parcelle; +import io.gmss.fiscad.entities.infocad.parametre.Structure; import io.gmss.fiscad.entities.rfu.metier.DonneesImpositionTfu; import io.gmss.fiscad.entities.rfu.metier.ImpositionsTfu; import io.gmss.fiscad.entities.rfu.parametre.BaremRfuNonBati; import io.gmss.fiscad.enums.StatusAvis; import io.gmss.fiscad.exceptions.BadRequestException; import io.gmss.fiscad.exceptions.NotFoundException; +import io.gmss.fiscad.interfaces.infocad.parametre.StructureService; import io.gmss.fiscad.interfaces.rfu.metier.DonneesImpositionTfuService; -import io.gmss.fiscad.paylaods.request.crudweb.ArrondissementPaylaodWeb; -import io.gmss.fiscad.paylaods.request.crudweb.DonneesImpositionPaylaodWeb; -import io.gmss.fiscad.paylaods.request.crudweb.ImpositionsTfuPaylaodWeb; +import io.gmss.fiscad.paylaods.request.crudweb.*; import io.gmss.fiscad.paylaods.response.DonneesImpositionTfuResponse; import io.gmss.fiscad.persistence.repositories.decoupage.ArrondissementRepository; import io.gmss.fiscad.persistence.repositories.infocad.metier.EnqueteRepository; @@ -45,6 +45,7 @@ public class DonneesImpositionTfuServiceImpl implements DonneesImpositionTfuServ private final ArrondissementRepository arrondissementRepository; private final BaremRfuRepository baremRfuRepository; private final EntityFromPayLoadService entityFromPayLoadService; + private final StructureService structureService; @@ -116,23 +117,40 @@ public class DonneesImpositionTfuServiceImpl implements DonneesImpositionTfuServ @Override @Transactional public ImpositionsTfuPaylaodWeb genererDonneesFiscalesParcelleNonBatieUneParcelle(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb, Long userId,Long parcelleId) { + boolean existsBareme = baremRfuNonBatiRepository.existsBaremForParcelleNonBati(parcelleId); - Optional optionalParcelle= parcelleRepository.findById(parcelleId); + + Optional optionalParcelle= parcelleRepository.findParcelleToDtoById(parcelleId); + String nomQuartier=""; String nomArrondissement=""; String nomCommune=""; if(optionalParcelle.isPresent()){ - nomQuartier= optionalParcelle.get().getQuartier().getNom(); - nomArrondissement= optionalParcelle.get().getQuartier().getArrondissement().getNom(); - nomCommune= optionalParcelle.get().getQuartier().getArrondissement().getCommune().getNom(); + nomQuartier= optionalParcelle.get().getQuartierNom(); + } if(!existsBareme){ - throw new BadRequestException("Impossible de continuer la liquidation : Il n'existe pas de barème configuré pour la zone de cette parcelle : "+nomCommune+" : "+nomArrondissement+" : "+nomQuartier); + throw new BadRequestException("Impossible de continuer la liquidation : Il n'existe pas de barème configuré pour la zone de cette parcelle : "+nomQuartier); } - Integer nb= donneesImpositionTfuRepository.genererDonneesTfuNonBatie(impositionsTfuPaylaodWeb.getId(),userId,parcelleId); + + List structures = structureService.getListStructureUserId(userId); + + boolean existe = structures.stream() + .anyMatch(s -> s.getId().equals(impositionsTfuPaylaodWeb.getStructureId())); + + if (!existe) { + throw new BadRequestException("Impossible de continuer la liquidation : La parcelle ne se trouve pas dans votre territoire "); + } + + System.out.println("Je suis avant"); + + Integer nb= donneesImpositionTfuRepository.genererDonneesTfuNonBatie(impositionsTfuPaylaodWeb.getId(), userId, parcelleId); + + System.out.println(nb); + System.out.println("Je suis après"); + ImpositionsTfu impositionsTfu = entityFromPayLoadService.getImpositionsTfuFromPayLoadWeb(impositionsTfuPaylaodWeb); impositionsTfu.setStatusAvis(StatusAvis.TFU_FNB_GENERE); - //impositionsTfu.setNombreAvisFnb(nb); impositionsTfuRepository.save(impositionsTfu); return impositionsTfuRepository.findByIdToDto(impositionsTfu.getId()).orElse(null); } @@ -171,25 +189,23 @@ public class DonneesImpositionTfuServiceImpl implements DonneesImpositionTfuServ @Override @Transactional public ImpositionsTfuPaylaodWeb genererDonneesFiscalesParcelleBatieUneParcelle(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb, Long userId, Long parcelleId) { - + System.out.println("suis entré"); Optional imp=impositionsTfuRepository.findByIdToDto(impositionsTfuPaylaodWeb.getId()); - if(imp.isPresent()){ + if(imp.isPresent()){ boolean dejaLiquide = donneesImpositionTfuRepository.existsByImpositionAnneeAndParcelle(Long.valueOf(imp.get().getExerciceAnnee()),parcelleId); if(dejaLiquide){ return imp.orElse(null); } } - boolean existsBareme = baremRfuRepository.existsBaremForParcelle(parcelleId); - Optional optionalParcelle= parcelleRepository.findById(parcelleId); + + Optional optionalParcelle= parcelleRepository.findParcelleToDtoById(parcelleId); String nomQuartier=""; String nomArrondissement=""; String nomCommune=""; if(optionalParcelle.isPresent()){ - nomQuartier= optionalParcelle.get().getQuartier().getNom(); - nomArrondissement= optionalParcelle.get().getQuartier().getArrondissement().getNom(); - nomCommune= optionalParcelle.get().getQuartier().getArrondissement().getCommune().getNom(); + nomQuartier= optionalParcelle.get().getQuartierNom(); } if(!existsBareme){ throw new BadRequestException("Impossible de continuer la liquidation : Il n'existe pas de barème configuré pour la zone de cette parcelle : "+nomCommune+" : "+nomArrondissement+" : "+nomQuartier); @@ -209,15 +225,10 @@ public class DonneesImpositionTfuServiceImpl implements DonneesImpositionTfuServ Integer nbMajAcompteRirf= donneesImpositionTfuRepository.majDonneesAcompteRirfUneParcelle(impositionsTfuPaylaodWeb.getId(),parcelleId); - ImpositionsTfu impositionsTfu = entityFromPayLoadService.getImpositionsTfuFromPayLoadWeb(impositionsTfuPaylaodWeb); impositionsTfu.setStatusAvis(StatusAvis.GENERE); - //impositionsTfu.setNombreAvis(impositionsTfu.getNombreAvis()+1); - //impositionsTfu.setNombreAvisBatiment(impositionsTfu.getNombreAvisFnb()+1); - //impositionsTfu.setNombreAvisUniteLog(impositionsTfu.getNombreAvisUniteLog()+1); - impositionsTfuRepository.save(impositionsTfu); return impositionsTfuRepository.findByIdToDto(impositionsTfu.getId()).orElse(null); diff --git a/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/integrer_situation_fiscale_parcelle.sql b/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/integrer_situation_fiscale_parcelle.sql index 11c80ba..5e0877e 100644 --- a/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/integrer_situation_fiscale_parcelle.sql +++ b/src/main/java/io/gmss/fiscad/persistence/procedure_fonction_stocke/integrer_situation_fiscale_parcelle.sql @@ -20,8 +20,8 @@ BEGIN AS SELECT * FROM dblink - ( - v_conn, + ( 'host=193.181.208.4 port=5433 dbname=sigibe_test user=sigibe_test_user password=sigibe_test_pwd', + --v_conn, format($SQL$ SELECT exercice, @@ -55,7 +55,7 @@ BEGIN ilot, parcelle - $SQL$, commune_id) + $SQL$, '08.1')--commune_id) ) AS src ( @@ -147,3 +147,12 @@ select * from arrondissement select left(code,4) as code_commune_fiscad, code as code_quartier_fiscad,nom as nom_quartier_fiscad from quartier; + + +create or replace function get_dblink_connection_sigibe() returns text + language sql +as +$$ +SELECT 'host=193.181.208.4 port=5433 dbname=sigibe_test user=sigibe_test_user password=sigibe_test_pwd'; +$$; +