Generation tfu batie et non batie
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 26s

This commit is contained in:
2026-03-11 01:09:42 +01:00
parent 85be8a2e24
commit d326e227c4
5 changed files with 79 additions and 26 deletions

View File

@@ -187,7 +187,59 @@ public class DonneesImpositionTfuController {
}
@Operation(summary = "Générer les données fiscales TFU des parcelle baties")
@PostMapping("/generer-batie")
public ResponseEntity<?> genererDonneesFiscale(@CurrentUser UserPrincipal userPrincipal, @RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) {
public ResponseEntity<?> genererDonneesFiscaleBatie(@CurrentUser UserPrincipal userPrincipal, @RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) {
try {
Optional<ImpositionsTfu> optionalImpositionsTfu =impositionsTfuRepository.findById(impositionsTfuPaylaodWeb.getId());
if(optionalImpositionsTfu.isEmpty()){
return new ResponseEntity<>(
new ApiResponse<>(false, null, "L'instance d'imposition n'est pas trouvée."),
HttpStatus.OK
);
}
if(!optionalImpositionsTfu.get().getStatusAvis().equals(StatusAvis.TFU_FNB_GENERE)){
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.genererDonneesFiscalesParcelleBatie(impositionsTfuPaylaodWeb,userPrincipal.getUser().getId());
return new ResponseEntity<>(
new ApiResponse<>(true,impositionsTfuPaylaodWeb, "Données d'imposition des fonciers batis Générées 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);
}
}
@Operation(summary = "Générer les données fiscales TFU des parcelle baties")
@PostMapping("/generer-non-batie")
public ResponseEntity<?> genererDonneesImpositionNonBaties(@CurrentUser UserPrincipal userPrincipal, @RequestBody ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb) {
try {
Optional<ImpositionsTfu> optionalImpositionsTfu =impositionsTfuRepository.findById(impositionsTfuPaylaodWeb.getId());
@@ -205,16 +257,16 @@ public class DonneesImpositionTfuController {
);
}
if(userPrincipal==null){
return new ResponseEntity<>(
new ApiResponse<>(false, null, "Vous n'êtes pas autorisé à accéder à cette ressource"),
HttpStatus.OK
);
}
impositionsTfuPaylaodWeb=donneesImpositionTfuService.genererDonneesFiscalesParcelleBatie(impositionsTfuPaylaodWeb,userPrincipal.getUser().getId());
if(userPrincipal==null){
return new ResponseEntity<>(
new ApiResponse<>(false, null, "Vous n'êtes pas autorisé à accéder à cette ressource"),
HttpStatus.OK
);
}
impositionsTfuPaylaodWeb=donneesImpositionTfuService.genererDonneesFiscalesParcelleNonBatie(impositionsTfuPaylaodWeb,userPrincipal.getUser().getId());
return new ResponseEntity<>(
new ApiResponse<>(true,impositionsTfuPaylaodWeb, "Données d'imposition Générées avec succès."),
new ApiResponse<>(true,impositionsTfuPaylaodWeb, "Données d'imposition pour les fonciers non batis Générées avec succès."),
HttpStatus.OK
);

View File

@@ -101,6 +101,7 @@ public class DonneesImpositionTfu extends BaseEntity implements Serializable {
@ColumnDefault("0")
private Long valeurAdminParcelleNb;
private Float tauxTfu;
private Float montantTaxe;
private Long valeurAdminParcelleNbMetreCarre;
@JsonIgnore
@ManyToOne(fetch = FetchType.LAZY)

View File

@@ -96,12 +96,10 @@ public class DonneesImpositionTfuServiceImpl implements DonneesImpositionTfuServ
@Override
@Transactional
public ImpositionsTfuPaylaodWeb genererDonneesFiscalesParcelleNonBatie(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb, Long userId) {
Integer nb= donneesImpositionTfuRepository.genererDonneesTfuBatie(impositionsTfuPaylaodWeb.getId(),userId);
Integer nb= donneesImpositionTfuRepository.genererDonneesTfuNonBatie(impositionsTfuPaylaodWeb.getId(),userId);
ImpositionsTfu impositionsTfu = entityFromPayLoadService.getImpositionsTfuFromPayLoadWeb(impositionsTfuPaylaodWeb);
impositionsTfu.setStatusAvis(StatusAvis.TFU_FNB_GENERE);
impositionsTfu.setNombreAvisFnb(nb);
@@ -115,7 +113,6 @@ public class DonneesImpositionTfuServiceImpl implements DonneesImpositionTfuServ
@Transactional
public ImpositionsTfuPaylaodWeb genererDonneesFiscalesParcelleBatie(ImpositionsTfuPaylaodWeb impositionsTfuPaylaodWeb, Long userId) {
// List<DonneesImpositionTfuResponse> donneesImpositionTfuResponses= donneesImpositionTfuRepository.findAllDonneesImpositionTfu(impositionsTfu.getCommune().getId(),impositionsTfu.getExercice().getAnnee());
Integer nbb= donneesImpositionTfuRepository.genererDonneesTfuBatie(impositionsTfuPaylaodWeb.getId(),userId);
Integer nbulo= donneesImpositionTfuRepository.genererDonneesTfuBatieUniteLogement(impositionsTfuPaylaodWeb.getId(),userId);
@@ -133,13 +130,6 @@ public class DonneesImpositionTfuServiceImpl implements DonneesImpositionTfuServ
return impositionsTfuRepository.findByIdToDto(impositionsTfu.getId()).orElse(null);
}
@Override
public List<DonneesImpositionTfu> getDonneesFiscalesByImposition(Long impositionsId) {
return donneesImpositionTfuRepository.findAllByImpositionsTfu_Id(impositionsId);

View File

@@ -70,11 +70,12 @@ public class DonneesImpositionPaylaodWeb {
private Long zoneRfuId;
private String zoneRfuNom;
private Float tauxTfu;
private Long valeurAdministrativeParcelleNonBati;
private Long valeurAdminParcelleNb;
@Enumerated(EnumType.STRING)
private NatureImpot natureImpot;
private Long valeurLocativeAdmMetreCarre;
private Long valeurAdministrativeParcelleNonBatiAuMetreCarre;
private Long valeurAdminParcelleNbMetreCarre;
private Float montantTaxe;
public DonneesImpositionPaylaodWeb(Long id, Long annee, String codeDepartement, String nomDepartement, String codeCommune, String nomCommune, String codeArrondissement, String nomArrondissement, String codeQuartierVillage, String nomQuartierVillage, String q, String ilot, String parcelle, String nup, String titreFoncier, String numBatiment, String numUniteLogement, String ifu, String npi, String telProp, String emailProp, String nomProp, String prenomProp, String raisonSociale, String adresseProp, String telRep, String emailRep, String nomRep, String prenomRep, String adresseRep, String longitude, String latitude, Integer superficieParc, Long superficieAuSolBat, Long superficieAuSolUlog,
Boolean batie,
@@ -99,7 +100,8 @@ public class DonneesImpositionPaylaodWeb {
Long valeurBatiment,
Long valeurParcelle,
Long valeurLocativeAdmMetreCarre,
Long valeurAdministrativeParcelleNonBatiAuMetreCarre
Long valeurAdministrativeParcelleNonBatiAuMetreCarre,
Float montantTaxe
) {
this.id = id;
this.annee = annee;
@@ -153,14 +155,14 @@ public class DonneesImpositionPaylaodWeb {
this.serviceId = serviceId;
this.zoneRfuId = zoneRfuId;
this.tauxTfu = tauxParcelleNonBati;
this.valeurAdministrativeParcelleNonBati = valeurAdministrativeParcelleNonBati;
this.valeurAdminParcelleNb = valeurAdministrativeParcelleNonBati;
this.natureImpot = natureImpot;
this.serviceCode = serviceCode;
this.zoneRfuNom = zoneRfuNom;
this.valeurBatiment = valeurBatiment;
this.valeurParcelle = valeurParcelle;
this.valeurLocativeAdmMetreCarre = valeurLocativeAdmMetreCarre;
this.valeurAdministrativeParcelleNonBatiAuMetreCarre = valeurAdministrativeParcelleNonBatiAuMetreCarre;
this.valeurAdminParcelleNbMetreCarre = valeurAdministrativeParcelleNonBatiAuMetreCarre;
this.montantTaxe = montantTaxe;
}
}

View File

@@ -136,4 +136,12 @@ public interface DonneesImpositionTfuRepository extends JpaRepository<DonneesImp
@Param("impositionId") Long impositionId
);
@Query(value = "SELECT generer_donnees_imposition_tfu_non_batie(:structureId, :impositionId)", nativeQuery = true)
Integer genererDonneesTfuNonBatie(
@Param("structureId") Long structureId,
@Param("impositionId") Long impositionId
);
}