diff --git a/src/main/java/io/gmss/fiscad/entities/infocad/metier/Parcelle.java b/src/main/java/io/gmss/fiscad/entities/infocad/metier/Parcelle.java index ea28720..e5ff246 100644 --- a/src/main/java/io/gmss/fiscad/entities/infocad/metier/Parcelle.java +++ b/src/main/java/io/gmss/fiscad/entities/infocad/metier/Parcelle.java @@ -61,7 +61,7 @@ public class Parcelle extends BaseEntity implements Serializable { @ManyToOne private Tpe terminal; private String autreNumeroTitreFoncier; - private Long numeroProvisoire; + private String numeroProvisoire; private Long blocId; @ColumnDefault("false") private boolean synchronise; diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/metier/UniteLogement.java b/src/main/java/io/gmss/fiscad/entities/rfu/metier/UniteLogement.java index afa1904..62b3da8 100644 --- a/src/main/java/io/gmss/fiscad/entities/rfu/metier/UniteLogement.java +++ b/src/main/java/io/gmss/fiscad/entities/rfu/metier/UniteLogement.java @@ -51,6 +51,7 @@ public class UniteLogement extends BaseEntity implements Serializable { private Long montantLocatifAnnuelDeclare; private Long montantLocatifAnnuelCalcule; private Long valeurUniteLogementEstime; + private Long montantLocatifAnnuelEstime; private Long valeurUniteLogementReel; private Long valeurUniteLogementCalcule; private Integer nombrePiscine; 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 952d30c..8b7d2c4 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 @@ -14,6 +14,7 @@ import io.gmss.fiscad.exceptions.ApplicationException; import io.gmss.fiscad.exceptions.BadRequestException; import io.gmss.fiscad.exceptions.NotFoundException; import io.gmss.fiscad.interfaces.infocad.metier.EnqueteService; +import io.gmss.fiscad.interfaces.infocad.metier.ParcelleService; import io.gmss.fiscad.interfaces.infocad.metier.PieceService; import io.gmss.fiscad.interfaces.rfu.metier.CaracteristiqueParcelleService; import io.gmss.fiscad.interfaces.rfu.metier.DeclarationNcService; @@ -23,6 +24,7 @@ import io.gmss.fiscad.interfaces.user.UserService; import io.gmss.fiscad.paylaods.request.EnqueteTraitementPayLoad; import io.gmss.fiscad.paylaods.request.FiltreEnquetePayLoad; import io.gmss.fiscad.paylaods.request.crudweb.EnquetePayLoadWeb; +import io.gmss.fiscad.paylaods.request.crudweb.ParcellePayLoadWeb; import io.gmss.fiscad.paylaods.response.* ; import io.gmss.fiscad.paylaods.response.FicheResponse.* ; import io.gmss.fiscad.paylaods.response.synchronisation.EnqueteNonSyncResponse; @@ -78,13 +80,8 @@ public class EnqueteServiceImpl implements EnqueteService { private final ParcelleServiceImpl parcelleService; private final PersonneRepository personneRepository; private final ZoneRfuRepository zoneRfuRepository ; - private final EquipeRepository equipeRepository ; - private final RueRepository rueRepository ; - private final CaracteristiqueParcelleService caracteristiqueParcelleService ; - private final PieceService pieceService ; - private final UploadRepository uploadRepository ; - private final DeclarationNcService declarationNcService ; private final EntityFromPayLoadService entityFromPayLoadService ; + ; @PersistenceContext private final EntityManager em; @@ -92,6 +89,7 @@ public class EnqueteServiceImpl implements EnqueteService { @Override + @Transactional public EnquetePayLoadWeb createEnquete(EnquetePayLoadWeb enquetePayLoadWeb) throws BadRequestException { Optional optionalUser = userRepository.findById(enquetePayLoadWeb.getEnqueteurId()); if (!optionalUser.isPresent()) { @@ -115,46 +113,50 @@ public class EnqueteServiceImpl implements EnqueteService { if (enquetePayLoadWeb.getParcelleId() == null) { throw new ApplicationException("Echec de l'enregistrement : La parcelle non renseignée."); } - Enquete enquete = entityFromPayLoadService.getEnqueteFromPayLoadWeb(enquetePayLoadWeb); - ////enregistrement de l'enquete + ParcellePayLoadWeb parcellePayLoadWeb= getParcellePayloadFromEnquetePl(enquetePayLoadWeb); + + if(enquetePayLoadWeb.getParcelleId()==null){ + parcellePayLoadWeb=parcelleService.createParcelle(parcellePayLoadWeb); + }else{ + parcellePayLoadWeb=parcelleService.updateParcelle(parcellePayLoadWeb.getId(),parcellePayLoadWeb); + } + + enquetePayLoadWeb.setParcelleId(parcellePayLoadWeb.getId()); + + Enquete enquete = entityFromPayLoadService.getEnqueteFromPayLoadWeb(enquetePayLoadWeb); + ////enregistrement de l'enquete enquete=enqueteRepository.save(enquete); - //////Enregistrement des caractéristiques parcelle -// enquetePayLoadWeb.getCaracteristiqueParcellePayloadWebs().forEach(caracteristiqueParcellePayloadWeb -> { -// caracteristiqueParcellePayloadWeb.setEnqueteId(finalEnquete.getId()); -// CaracteristiqueParcelle caracteristiqueParcelle=entityFromPayLoadService.getCaracteristiqueParcelleFromPayLoadWeb(caracteristiqueParcellePayloadWeb); -// caracteristiqueParcelleService.createCaracteristiqueParcelle(caracteristiqueParcelle); -// }); - - /////Enregistrement des pièce de parcelles -// enquetePayLoadWeb.getPiecePayLoadWebs().forEach(piecePayLoadWeb -> { -// piecePayLoadWeb.setEnqueteId(finalEnquete.getId()); -// //Piece piece=entityFromPayLoadService.getPieceFromPayLoadWeb(piecePayLoadWeb); -// Piece piecefinal = pieceService.createPiece(entityFromPayLoadService.getPieceFromPayLoadWeb(piecePayLoadWeb)); -// piecePayLoadWeb.getUploadPayLoadWebs().forEach(uploadPayLoadWeb -> { -// uploadPayLoadWeb.setEnqueteId(finalEnquete.getId()); -// Upload upload=entityFromPayLoadService.getUploadFromPayLoadWeb(uploadPayLoadWeb); -// upload.setPiece(piecefinal); -// uploadRepository.save(upload); -// }); -// }); - - /////Enregistrement des pièce de parcelles -// enquetePayLoadWeb.getDeclarationNcPayloadWebs().forEach(declarationNcPayloadWeb -> { -// declarationNcPayloadWeb.setEnqueteId(finalEnquete.getId()); -// DeclarationNc declarationNcfinal=declarationNcService.createDeclarationNc(entityFromPayLoadService.getDeclarationNcFromPayLoadWeb(declarationNcPayloadWeb)); -// declarationNcPayloadWeb.getUploadPayLoadWebs().forEach(uploadPayLoadWeb -> { -// uploadPayLoadWeb.setEnqueteId(finalEnquete.getId()); -// Upload upload=entityFromPayLoadService.getUploadFromPayLoadWeb(uploadPayLoadWeb); -// upload.setDeclarationNc(declarationNcfinal); -// uploadRepository.save(upload); -// }); -// }); - return enqueteRepository.findEnqueteToDto(enquete.getId()).orElse(null); } + private ParcellePayLoadWeb getParcellePayloadFromEnquetePl(EnquetePayLoadWeb enquetePayLoadWeb) { + ParcellePayLoadWeb parcellePayLoadWeb=new ParcellePayLoadWeb(); + parcellePayLoadWeb.setId(enquetePayLoadWeb.getId()); + parcellePayLoadWeb.setQ(enquetePayLoadWeb.getParcelleQ()); + parcellePayLoadWeb.setI(enquetePayLoadWeb.getParcelleI()); + parcellePayLoadWeb.setP(enquetePayLoadWeb.getParcelleP()); + parcellePayLoadWeb.setNup(enquetePayLoadWeb.getParcelleNup()); + parcellePayLoadWeb.setNupProvisoire(enquetePayLoadWeb.getNupProvisoire()); + parcellePayLoadWeb.setNumTitreFoncier(enquetePayLoadWeb.getNumeroTitreFoncier()); + parcellePayLoadWeb.setLongitude(enquetePayLoadWeb.getLongitude()); + parcellePayLoadWeb.setLatitude(enquetePayLoadWeb.getLatitude()); + parcellePayLoadWeb.setAltitude(enquetePayLoadWeb.getAltitude()); + parcellePayLoadWeb.setSuperficie(enquetePayLoadWeb.getSuperficie()); + parcellePayLoadWeb.setObservation(enquetePayLoadWeb.getObservation()); + parcellePayLoadWeb.setSituationGeographique(enquetePayLoadWeb.getSituationGeographique()); + parcellePayLoadWeb.setNumEntreeParcelle(enquetePayLoadWeb.getNumEntreeParcelle()); + parcellePayLoadWeb.setQuartierId(enquetePayLoadWeb.getQuartierId()); + parcellePayLoadWeb.setNatureDomaineId(enquetePayLoadWeb.getNatureDomaineId()); + parcellePayLoadWeb.setTypeDomaineId(enquetePayLoadWeb.getTypeDomaineId()); + parcellePayLoadWeb.setRueId(enquetePayLoadWeb.getRueId()); + parcellePayLoadWeb.setProprietaireId(enquetePayLoadWeb.getPersonneId()); + parcellePayLoadWeb.setNatureDomaineId(enquetePayLoadWeb.getNatureDomaineId()); + parcellePayLoadWeb.setNatureDomaineId(enquetePayLoadWeb.getNatureDomaineId()); + return parcellePayLoadWeb; + } + @Override public EnquetePayLoadWeb updateEnquete(Long id,EnquetePayLoadWeb enquetePayLoadWeb) throws NotFoundException { if (enquetePayLoadWeb.getId() == null) { @@ -169,7 +171,6 @@ public class EnqueteServiceImpl implements EnqueteService { } Optional optionalParcelle=Optional.empty(); - Long rueId; Optional optionalUser = userRepository.findById(enquetePayLoadWeb.getEnqueteurId()); if (!optionalUser.isPresent()) { throw new BadRequestException("Echec de l'enregistrement : Enquêteur inexistant"); @@ -183,13 +184,24 @@ public class EnqueteServiceImpl implements EnqueteService { if (!optionalZoneRfu.isPresent()) { throw new BadRequestException("Echec de l'enregistrement : zone inexistante"); } - ///enregistrement de la pacelle + if (enquetePayLoadWeb.getParcelleId() == null) { throw new ApplicationException("Echec de l'enregistrement : La parcelle non renseignée."); - } else { - optionalParcelle = parcelleService.getParcelleById(enquetePayLoadWeb.getParcelleId()); } + + + ParcellePayLoadWeb parcellePayLoadWeb= getParcellePayloadFromEnquetePl(enquetePayLoadWeb); + + if(enquetePayLoadWeb.getParcelleId()==null){ + parcellePayLoadWeb=parcelleService.createParcelle(parcellePayLoadWeb); + }else{ + parcellePayLoadWeb=parcelleService.updateParcelle(parcellePayLoadWeb.getId(),parcellePayLoadWeb); + } + + enquetePayLoadWeb.setParcelleId(parcellePayLoadWeb.getId()); + + Enquete enquete = entityFromPayLoadService.getEnqueteFromPayLoadWeb(enquetePayLoadWeb); enquete=enqueteRepository.save(enquete); return enqueteRepository.findEnqueteToDto(enquete.getId()).orElse(null); 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 cfb0c1b..600f836 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 @@ -11,6 +11,8 @@ import io.gmss.fiscad.exceptions.NotFoundException; import io.gmss.fiscad.interfaces.rfu.metier.BatimentService; import io.gmss.fiscad.interfaces.rfu.metier.CaracteristiqueBatimentService; import io.gmss.fiscad.interfaces.rfu.metier.EnqueteBatimentService; +import io.gmss.fiscad.paylaods.request.crudweb.BaremRfuNonBatiPayloadWeb; +import io.gmss.fiscad.paylaods.request.crudweb.BatimentPaylaodWeb; import io.gmss.fiscad.paylaods.request.crudweb.EnqueteBatimentPayloadWeb; import io.gmss.fiscad.persistence.repositories.infocad.metier.EnqueteRepository; import io.gmss.fiscad.persistence.repositories.infocad.metier.UploadRepository; @@ -18,42 +20,73 @@ import io.gmss.fiscad.persistence.repositories.infocad.parametre.PersonneReposit import io.gmss.fiscad.persistence.repositories.rfu.metier.BatimentRepository; import io.gmss.fiscad.persistence.repositories.rfu.metier.EnqueteBatimentRepository; import io.gmss.fiscad.service.EntityFromPayLoadService; +import jakarta.transaction.Transactional; import lombok.AllArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; +import java.time.LocalDate; import java.util.List; import java.util.Optional; @AllArgsConstructor @Service public class EnqueteBatimentServiceImpl implements EnqueteBatimentService { - private final EnqueteBatimentRepository enqueteBatimentRepository; - private final BatimentService batimentService; - private final EnqueteRepository enqueteRepository; - private final PersonneRepository personneRepository; private final EntityFromPayLoadService entityFromPayLoadService; - private final CaracteristiqueBatimentService caracteristiqueBatimentService; - private final UploadRepository uploadRepository; private final BatimentRepository batimentRepository; + private final BatimentService batimentService; @Override + @Transactional public EnqueteBatimentPayloadWeb createEnqueteBatiment(EnqueteBatimentPayloadWeb enqueteBatimentPayloadWeb) throws BadRequestException { EnqueteBatiment enqueteBatiment=new EnqueteBatiment(); if (!batimentRepository.existsById(enqueteBatimentPayloadWeb.getBatimentId())) { throw new NotFoundException("Impossible d'enregistrer sans le batiment."); } + BatimentPaylaodWeb batimentPaylaodWeb= getBatimentPayloadFromEnqueteBat(enqueteBatimentPayloadWeb); + + if(enqueteBatimentPayloadWeb.getBatimentId()==null){ + batimentPaylaodWeb=batimentService.createBatiment(batimentPaylaodWeb); + }else{ + batimentPaylaodWeb=batimentService.updateBatiment(batimentPaylaodWeb.getId(),batimentPaylaodWeb); + } + + enqueteBatimentPayloadWeb.setBatimentId(batimentPaylaodWeb.getId()); + enqueteBatiment = entityFromPayLoadService.getEnqueteBatimentFromPayLoadWeb(enqueteBatimentPayloadWeb); enqueteBatiment= enqueteBatimentRepository.save(enqueteBatiment); enqueteBatimentPayloadWeb= enqueteBatimentRepository.findEnqueteBatimentByIdToDto(enqueteBatiment.getId()).orElse(null); return enqueteBatimentPayloadWeb ; } + private BatimentPaylaodWeb getBatimentPayloadFromEnqueteBat(EnqueteBatimentPayloadWeb enqueteBatimentPayloadWeb) { + BatimentPaylaodWeb batimentPaylaodWeb= new BatimentPaylaodWeb(); + batimentPaylaodWeb.setId(enqueteBatimentPayloadWeb.getId()); + batimentPaylaodWeb.setNub(enqueteBatimentPayloadWeb.getNub()); + batimentPaylaodWeb.setCode(enqueteBatimentPayloadWeb.getCode()); + batimentPaylaodWeb.setDateConstruction(enqueteBatimentPayloadWeb.getDateConstruction()); + batimentPaylaodWeb.setParcelleId(enqueteBatimentPayloadWeb.getParcelleId()); + batimentPaylaodWeb.setPersonneId(enqueteBatimentPayloadWeb.getPersonneId()); + batimentPaylaodWeb.setSuperficieAuSol(enqueteBatimentPayloadWeb.getSuperficieAuSol()); + batimentPaylaodWeb.setSuperficieLouee(enqueteBatimentPayloadWeb.getSuperficieLouee()); + batimentPaylaodWeb.setCategorieBatimentId(enqueteBatimentPayloadWeb.getCategorieBatimentId()); + batimentPaylaodWeb.setNombrePiscine(enqueteBatimentPayloadWeb.getNombrePiscine()); + batimentPaylaodWeb.setMontantLocatifAnnuelDeclare(enqueteBatimentPayloadWeb.getMontantLocatifAnnuelDeclare()); + batimentPaylaodWeb.setMontantLocatifAnnuelEstime(enqueteBatimentPayloadWeb.getMontantLocatifAnnuelEstime()); + batimentPaylaodWeb.setValeurBatimentEstime(enqueteBatimentPayloadWeb.getValeurBatimentEstime()); + batimentPaylaodWeb.setValeurBatimentReel(enqueteBatimentPayloadWeb.getValeurBatimentReel()); + batimentPaylaodWeb.setMontantMensuelLocation(enqueteBatimentPayloadWeb.getMontantMensuelLocation()); + batimentPaylaodWeb.setUsageId(enqueteBatimentPayloadWeb.getUsageId()); + batimentPaylaodWeb.setNbreUniteLogement(enqueteBatimentPayloadWeb.getNbreUniteLogement()); + return batimentPaylaodWeb; + } + @Override + @Transactional public EnqueteBatimentPayloadWeb updateEnqueteBatiment(Long id, EnqueteBatimentPayloadWeb enqueteBatimentPayloadWeb) throws NotFoundException { if (enqueteBatimentPayloadWeb.getId() == null) { throw new BadRequestException("Impossible de mettre à jour une nouvelle enquete de batiment ayant un id null."); @@ -64,6 +97,18 @@ public class EnqueteBatimentServiceImpl implements EnqueteBatimentService { if (!batimentRepository.existsById(enqueteBatimentPayloadWeb.getBatimentId())) { throw new NotFoundException("Impossible d'enregistrer sans le batiment."); } + + BatimentPaylaodWeb batimentPaylaodWeb= getBatimentPayloadFromEnqueteBat(enqueteBatimentPayloadWeb); + + if(enqueteBatimentPayloadWeb.getBatimentId()==null){ + batimentPaylaodWeb=batimentService.createBatiment(batimentPaylaodWeb); + }else{ + batimentPaylaodWeb=batimentService.updateBatiment(batimentPaylaodWeb.getId(),batimentPaylaodWeb); + } + + enqueteBatimentPayloadWeb.setBatimentId(batimentPaylaodWeb.getId()); + + EnqueteBatiment enqueteBatiment = entityFromPayLoadService.getEnqueteBatimentFromPayLoadWeb(enqueteBatimentPayloadWeb); enqueteBatiment= enqueteBatimentRepository.save(enqueteBatiment); enqueteBatimentPayloadWeb= enqueteBatimentRepository.findEnqueteBatimentByIdToDto(enqueteBatiment.getId()).orElse(null); 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 75a5c2c..0bf9820 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 @@ -10,17 +10,20 @@ import io.gmss.fiscad.interfaces.rfu.metier.CaracteristiqueUniteLogementService; import io.gmss.fiscad.interfaces.rfu.metier.EnqueteUniteLogementService; import io.gmss.fiscad.interfaces.rfu.metier.UniteLogementService; import io.gmss.fiscad.paylaods.request.crudweb.EnqueteUniteLogementPayloadWeb; +import io.gmss.fiscad.paylaods.request.crudweb.UniteLogementPaylaodWeb; import io.gmss.fiscad.persistence.repositories.infocad.metier.EnqueteRepository; 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.service.EntityFromPayLoadService; +import jakarta.transaction.Transactional; import lombok.AllArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; +import java.time.LocalDate; import java.util.List; import java.util.Optional; @AllArgsConstructor @@ -28,16 +31,13 @@ import java.util.Optional; public class EnqueteUniteLogementServiceImpl implements EnqueteUniteLogementService { private final EnqueteUniteLogementRepository enqueteUniteLogementRepository; - private final UniteLogementService uniteLogementService; private final EntityFromPayLoadService entityFromPayLoadService ; - private final PersonneRepository personneRepository ; - private final EnqueteRepository enqueteRepository ; - private final UploadRepository uploadRepository ; private final UniteLogementRepository uniteLogementRepository ; - private final CaracteristiqueUniteLogementService caracteristiqueUniteLogementService ; + private final UniteLogementService uniteLogementService ; + @Transactional @Override public EnqueteUniteLogementPayloadWeb createEnqueteUniteLogement(EnqueteUniteLogementPayloadWeb enqueteUniteLogementPayloadWeb) throws BadRequestException { EnqueteUniteLogement enqueteUniteLogement=new EnqueteUniteLogement(); @@ -46,13 +46,46 @@ public class EnqueteUniteLogementServiceImpl implements EnqueteUniteLogementServ if (enqueteUniteLogementPayloadWeb.getUniteLogementId() == null) { throw new BadRequestException("Impossible d'enregistrer une nouvelle enquete d'unité de logement sans l'unité de logement."); } + UniteLogementPaylaodWeb uniteLogementPaylaodWeb=getUniteLogementPayloadFromEnqueteUl(enqueteUniteLogementPayloadWeb); + + if(enqueteUniteLogementPayloadWeb.getId()==null){ + uniteLogementPaylaodWeb= uniteLogementService.createUniteLogement(uniteLogementPaylaodWeb); + }else{ + uniteLogementPaylaodWeb= uniteLogementService.createUniteLogement(uniteLogementPaylaodWeb); + } + enqueteUniteLogementPayloadWeb.setUniteLogementId(uniteLogementPaylaodWeb.getId()); + enqueteUniteLogement = entityFromPayLoadService.getEnqueteUniteLogementFromPayLoadWeb(enqueteUniteLogementPayloadWeb); enqueteUniteLogement= enqueteUniteLogementRepository.save(enqueteUniteLogement); enqueteUniteLogementPayloadWeb = enqueteUniteLogementRepository.findEnqueteUniteLogementToDto(enqueteUniteLogement.getId()).orElse(null); return enqueteUniteLogementPayloadWeb ; } + private UniteLogementPaylaodWeb getUniteLogementPayloadFromEnqueteUl(EnqueteUniteLogementPayloadWeb enqueteUniteLogementPayloadWeb) { + UniteLogementPaylaodWeb uniteLogementPaylaodWeb=new UniteLogementPaylaodWeb(); + uniteLogementPaylaodWeb.setId(enqueteUniteLogementPayloadWeb.getId()); + uniteLogementPaylaodWeb.setNul(enqueteUniteLogementPayloadWeb.getNul()); + uniteLogementPaylaodWeb.setNumeroEtage(enqueteUniteLogementPayloadWeb.getNumeroEtage()); + uniteLogementPaylaodWeb.setCode(enqueteUniteLogementPayloadWeb.getCode()); + uniteLogementPaylaodWeb.setBatimentId(enqueteUniteLogementPayloadWeb.getBatimentId()); + uniteLogementPaylaodWeb.setSuperficieAuSol(enqueteUniteLogementPayloadWeb.getSuperficieAuSol()); + uniteLogementPaylaodWeb.setSuperficieLouee(enqueteUniteLogementPayloadWeb.getSuperficieLouee()); + uniteLogementPaylaodWeb.setObservation(enqueteUniteLogementPayloadWeb.getObservation()); + uniteLogementPaylaodWeb.setDateConstruction(enqueteUniteLogementPayloadWeb.getDateConstruction()); + uniteLogementPaylaodWeb.setPersonneId(enqueteUniteLogementPayloadWeb.getPersonneId()); + uniteLogementPaylaodWeb.setCategorieBatimentId(enqueteUniteLogementPayloadWeb.getCategorieBatimentId()); + uniteLogementPaylaodWeb.setMontantLocatifAnnuelDeclare(enqueteUniteLogementPayloadWeb.getMontantLocatifAnnuelDeclare()); + uniteLogementPaylaodWeb.setMontantLocatifAnnuelEstime(enqueteUniteLogementPayloadWeb.getMontantLocatifAnnuelEstime()); + uniteLogementPaylaodWeb.setMontantMensuelLocation(enqueteUniteLogementPayloadWeb.getMontantMensuelLocation()); + uniteLogementPaylaodWeb.setValeurUniteLogementReel(enqueteUniteLogementPayloadWeb.getValeurUniteLogementReel()); + uniteLogementPaylaodWeb.setValeurUniteLogementEstime(enqueteUniteLogementPayloadWeb.getValeurUniteLogementEstime()); + uniteLogementPaylaodWeb.setNombrePiscine(enqueteUniteLogementPayloadWeb.getNombrePiscine()); + uniteLogementPaylaodWeb.setUsageId(enqueteUniteLogementPayloadWeb.getUsageId()); + return uniteLogementPaylaodWeb; + } + @Override + @Transactional public EnqueteUniteLogementPayloadWeb updateEnqueteUniteLogement(Long id, EnqueteUniteLogementPayloadWeb enqueteUniteLogementPayloadWeb) throws NotFoundException { if (enqueteUniteLogementPayloadWeb.getId() == null) { throw new BadRequestException("Impossible de mettre à jour une nouvelle enquete d'unité de logement ayant un id null."); @@ -68,6 +101,16 @@ public class EnqueteUniteLogementServiceImpl implements EnqueteUniteLogementServ EnqueteUniteLogement enqueteUniteLogement= new EnqueteUniteLogement(); + UniteLogementPaylaodWeb uniteLogementPaylaodWeb=getUniteLogementPayloadFromEnqueteUl(enqueteUniteLogementPayloadWeb); + + if(enqueteUniteLogementPayloadWeb.getId()==null){ + uniteLogementPaylaodWeb= uniteLogementService.createUniteLogement(uniteLogementPaylaodWeb); + }else{ + uniteLogementPaylaodWeb= uniteLogementService.createUniteLogement(uniteLogementPaylaodWeb); + } + enqueteUniteLogementPayloadWeb.setUniteLogementId(uniteLogementPaylaodWeb.getId()); + + enqueteUniteLogement = entityFromPayLoadService.getEnqueteUniteLogementFromPayLoadWeb(enqueteUniteLogementPayloadWeb); enqueteUniteLogement= enqueteUniteLogementRepository.save(enqueteUniteLogement); enqueteUniteLogementPayloadWeb = enqueteUniteLogementRepository.findEnqueteUniteLogementToDto(enqueteUniteLogement.getId()).orElse(null); diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/EnqueteBatimentPayloadWeb.java b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/EnqueteBatimentPayloadWeb.java index 646cb07..40519d4 100644 --- a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/EnqueteBatimentPayloadWeb.java +++ b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/EnqueteBatimentPayloadWeb.java @@ -15,9 +15,6 @@ import java.util.List; @Data public class EnqueteBatimentPayloadWeb { private Long id; -// private BatimentPaylaodWeb batimentPaylaodWeb ; -// private List caracteristiqueBatimentPayloadWebs; -// private List uploadPayLoadWebs; private String observation; private String autreMenuisierie; private String autreMur; @@ -52,7 +49,6 @@ public class EnqueteBatimentPayloadWeb { private String enqueteurNom; private String enqueteurPrenom; @Enumerated(EnumType.STRING) - // @JsonIgnore private StatutEnquete statutEnquete; private Long exerciceId; private Integer exerciceAnnee; @@ -68,6 +64,18 @@ public class EnqueteBatimentPayloadWeb { private Long usageId; private String usageNom; + private String nub; + private String code; + private LocalDate dateConstruction; + private Long parcelleId; + private String parcelleNup; + private String parcelleQ; + private String parcelleI; + private String parcelleP; + private Long montantLocatifAnnuelEstime; + private Long valeurBatimentCalcule; + private Integer nbreUniteLogement; + public EnqueteBatimentPayloadWeb(Long id, String observation, String autreMenuisierie, String autreMur, boolean sbee, String numCompteurSbee, boolean soneb, String numCompteurSoneb, int nbreLotUnite, int nbreUniteLocation, Float superficieLouee, Float superficieAuSol, LocalDate dateEnquete, int nbreMenage, int nbreHabitant, Long montantMensuelLocation, Long montantLocatifAnnuelDeclare, Long nbreEtage, Long valeurBatimentEstime, Long valeurBatimentReel, int nbreMoisLocation, String autreCaracteristiquePhysique, LocalDate dateDebutExcemption, LocalDate dateFinExcemption, Long batimentId, String batimentNub, Long personneId, String personneNom, String personnePrenom, String personneRaisonSociale, Long enqueteurId, String enqueteurNom, String enqueteurPrenom, StatutEnquete statutEnquete, Long exerciceId, @@ -82,7 +90,18 @@ public class EnqueteBatimentPayloadWeb { Integer nombrePiscine, Long montantLocatifAnnuelCalcule, Long usageId, - String usageNom + String usageNom, + String nub, + String code, + LocalDate dateConstruction, + Long parcelleId, + String parcelleNup, + String parcelleQ, + String parcelleI, + String parcelleP, + Long montantLocatifAnnuelEstime, + Long valeurBatimentCalcule, + Integer nbreUniteLogement ) { this.id = id; this.observation = observation; @@ -131,5 +150,16 @@ public class EnqueteBatimentPayloadWeb { this.montantLocatifAnnuelCalcule = montantLocatifAnnuelCalcule; this.usageId = usageId ; this.usageNom = usageNom ; + this.nub=nub; + this.code=code; + this.dateConstruction=dateConstruction; + this.parcelleId=parcelleId; + this.parcelleNup=parcelleNup; + this.parcelleQ=parcelleQ; + this.parcelleI=parcelleI; + this.parcelleP=parcelleP; + this.montantLocatifAnnuelEstime=montantLocatifAnnuelEstime; + this.valeurBatimentCalcule=valeurBatimentCalcule; + this.nbreUniteLogement=nbreUniteLogement; } } diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/EnquetePayLoadWeb.java b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/EnquetePayLoadWeb.java index e3ea14b..99ffdcd 100644 --- a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/EnquetePayLoadWeb.java +++ b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/EnquetePayLoadWeb.java @@ -15,19 +15,10 @@ public class EnquetePayLoadWeb { private LocalDate dateEnquete; private LocalDate dateFinalisation; private Boolean litige; -// private ParcellePayLoadWeb parcellePayLoadWeb; -// private List caracteristiqueParcellePayloadWebs; -// private List declarationNcPayloadWebs; -// private List piecePayLoadWebs; @Enumerated(EnumType.STRING) private StatutEnquete statutEnquete; private String descriptionMotifRejet; private String observation; - private String numeroTitreFoncier; - private LocalDate dateTitreFoncier; - private String numEntreeParcelle; - private String numRue; - private String nomRue; private Float precision; private Integer nbreCoProprietaire; private Integer nbreIndivisiaire; @@ -51,11 +42,6 @@ public class EnquetePayLoadWeb { private Long enqueteurId; private String enqueteurNom; private String enqueteurPrenom; - private Long parcelleId; - private String parcelleNup; - private String parcelleQ; - private String parcelleI; - private String parcelleP; private Long exerciceId; private Integer exerciceAnnee; private Long modeAcquisitionId; @@ -65,12 +51,54 @@ public class EnquetePayLoadWeb { private String representantTel; private String representantNpi; + private Long parcelleId; + private String parcelleNup; + private String parcelleQ; + private String parcelleI; + private String parcelleP; + + private String numeroTitreFoncier; + private LocalDate dateTitreFoncier; + private String numEntreeParcelle; + private String numRue; + private String nomRue; + + private String nupProvisoire; + private String longitude; + private String latitude; + private String altitude; + private String situationGeographique; + private Long quartierId; + private String quartierCode; + private String quartierNom; + private Long natureDomaineId; + private String natureDomaineLibelle; + private Long typeDomaineId; + private String typeDomaineLibelle; + private Long rueId; + + public EnquetePayLoadWeb(Long id, LocalDate dateEnquete, LocalDate dateFinalisation, Boolean litige, StatutEnquete statutEnquete, String descriptionMotifRejet, String observation, String numeroTitreFoncier, LocalDate dateTitreFoncier, String numEntreeParcelle, String numRue, String nomRue, Float precision, Integer nbreCoProprietaire, Integer nbreIndivisiaire, String autreAdresse, Float superficie, Integer nbreBatiment, Integer nbrePiscine, LocalDate dateDebutExemption, LocalDate dateFinExemption, String autreNumeroTitreFoncier, Long montantMensuelleLocation, Long montantAnnuelleLocation, Long valeurParcelleEstime, Long valeurParcelleReel, Long zoneRfuId, String zoneRfuNom, Long personneId, String personneNom, String personnePrenom, String personneRaisonSociale, Long enqueteurId, String enqueteurNom, String enqueteurPrenom,Long parcelleId, String parcelleNup, String parcelleQ, String parcelleI, String parcelleP, Long exerciceId, Integer exerciceAnnee, - Long modeAcquisitionId,String modeAcquisitionLibelle, - String representantNom, + Long modeAcquisitionId, + String modeAcquisitionLibelle, + String representantNom, String representantPrenom, String representantTel, - String representantNpi) { + String representantNpi, + String nupProvisoire, + String longitude, + String latitude, + String altitude, + String situationGeographique, + Long quartierId, + String quartierCode, + String quartierNom, + Long natureDomaineId, + String natureDomaineLibelle, + Long typeDomaineId, + String typeDomaineLibelle, + Long rueId + ) { this.id = id; this.dateEnquete = dateEnquete; this.dateFinalisation = dateFinalisation; @@ -119,5 +147,18 @@ public class EnquetePayLoadWeb { this.representantTel = representantTel; this.representantPrenom = representantPrenom; this.representantNpi = representantNpi; + this.nupProvisoire=nupProvisoire; + this.longitude=longitude; + this.latitude=latitude; + this.altitude=altitude; + this.situationGeographique=situationGeographique; + this.quartierId=quartierId; + this.quartierCode=quartierCode; + this.quartierNom=quartierNom; + this.natureDomaineId=natureDomaineId; + this.natureDomaineLibelle=natureDomaineLibelle; + this.typeDomaineId=typeDomaineId; + this.typeDomaineLibelle=typeDomaineLibelle; + this.rueId=rueId; } } diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/EnqueteUniteLogementPayloadWeb.java b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/EnqueteUniteLogementPayloadWeb.java index 28668a0..7095799 100644 --- a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/EnqueteUniteLogementPayloadWeb.java +++ b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/EnqueteUniteLogementPayloadWeb.java @@ -56,6 +56,17 @@ public class EnqueteUniteLogementPayloadWeb { private Integer nombrePiscine; private Long usageId; private String usageNom; + + + private String nul; + private String numeroEtage; + private String code; + private Long batimentId; + private String batimentNub; + private LocalDate dateConstruction; + private Long enqueteUniteLogementCourantId; + private Long montantLocatifAnnuelEstime; + private Long valeurUniteLogementCalcule; public EnqueteUniteLogementPayloadWeb(Long id, String observation, Integer nbrePiece, Integer nbreHabitant, Integer nbreMenage, Boolean enLocation, Integer nbreMoisLocation, Long montantMensuelLocation, Long montantLocatifAnnuelDeclare, Long valeurUniteLogementEstime, Long valeurUniteLogementReel, Float superficieLouee, Float superficieAuSol, LocalDate dateEnquete, Boolean sbee, Boolean soneb, String numCompteurSbee, String numCompteurSoneb, LocalDate dateDebutExemption, LocalDate dateFinExemption, Long uniteLogementId, String uniteLogementNumeroEtage, String uniteLogementNul, Long personneId, String personneNom, String personnePrenom, String personneRaisonSociale, Long enqueteurId, String enqueteurNom, String enqueteurPrenom, Long exerciceId, Integer exerciceAnnee, StatutEnquete statutEnquete, String representantNom, @@ -68,7 +79,15 @@ public class EnqueteUniteLogementPayloadWeb { Integer nombrePiscine, Long montantLocatifAnnuelCalcule, Long usageId, - String usageNom + String usageNom, + String nul, + String numeroEtage, + String code, + Long batimentId, + String batimentNub, + LocalDate dateConstruction, + Long montantLocatifAnnuelEstime, + Long valeurUniteLogementCalcule ) { this.id = id; this.observation = observation; @@ -114,5 +133,14 @@ public class EnqueteUniteLogementPayloadWeb { this.montantLocatifAnnuelCalcule = montantLocatifAnnuelCalcule; this.usageId = usageId ; this.usageNom = usageNom ; + + this.nul=nul; + this.numeroEtage=numeroEtage; + this.code=code; + this.batimentId=batimentId; + this.batimentNub=batimentNub; + this.dateConstruction=dateConstruction; + this.montantLocatifAnnuelEstime=montantLocatifAnnuelEstime; + this.valeurUniteLogementCalcule=valeurUniteLogementCalcule; } } diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/synchronisation/ParcellePayLoad.java b/src/main/java/io/gmss/fiscad/paylaods/request/synchronisation/ParcellePayLoad.java index 734e6b0..b2402ce 100644 --- a/src/main/java/io/gmss/fiscad/paylaods/request/synchronisation/ParcellePayLoad.java +++ b/src/main/java/io/gmss/fiscad/paylaods/request/synchronisation/ParcellePayLoad.java @@ -25,7 +25,7 @@ public class ParcellePayLoad { ///////////////////////////////// private Long typeDomaineId; - private Long numeroProvisoire; + private String numeroProvisoire; private Long blocId; private String situationGeographique; private String autreNumeroTitreFoncier; diff --git a/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/metier/EnqueteRepository.java b/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/metier/EnqueteRepository.java index 62e83d7..7174409 100755 --- a/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/metier/EnqueteRepository.java +++ b/src/main/java/io/gmss/fiscad/persistence/repositories/infocad/metier/EnqueteRepository.java @@ -303,7 +303,20 @@ public interface EnqueteRepository extends JpaRepository { e.representantNom, e.representantPrenom, e.representantTel, - e.representantNpi + e.representantNpi, + pa.numeroProvisoire, + pa.longitude, + pa.latitude, + pa.altitude, + pa.situationGeographique, + q.id, + q.code, + q.nom, + nd.id, + nd.libelle, + td.id, + td.libelle, + r.id ) FROM Enquete e LEFT JOIN e.zoneRfu zr @@ -312,9 +325,12 @@ public interface EnqueteRepository extends JpaRepository { LEFT JOIN e.parcelle pa LEFT JOIN e.exercice ex LEFT JOIN e.modeAcquisition ma + LEFT JOIN pa.quartier q + LEFT JOIN pa.natureDomaine nd + LEFT JOIN pa.typeDomaine td + LEFT JOIN pa.rue r """) List findAllEnquetesToDto(); - @Query(""" SELECT new io.gmss.fiscad.paylaods.request.crudweb.EnquetePayLoadWeb( e.id, @@ -364,7 +380,20 @@ public interface EnqueteRepository extends JpaRepository { e.representantNom, e.representantPrenom, e.representantTel, - e.representantNpi + e.representantNpi, + pa.numeroProvisoire, + pa.longitude, + pa.latitude, + pa.altitude, + pa.situationGeographique, + q.id, + q.code, + q.nom, + nd.id, + nd.libelle, + td.id, + td.libelle, + r.id ) FROM Enquete e LEFT JOIN e.zoneRfu zr @@ -373,6 +402,10 @@ public interface EnqueteRepository extends JpaRepository { LEFT JOIN e.parcelle pa LEFT JOIN e.exercice ex LEFT JOIN e.modeAcquisition ma + LEFT JOIN pa.quartier q + LEFT JOIN pa.natureDomaine nd + LEFT JOIN pa.typeDomaine td + LEFT JOIN pa.rue r WHERE e.id = :enqueteId """) Optional findEnqueteToDto(@Param("enqueteId") Long enqueteId); @@ -427,7 +460,20 @@ public interface EnqueteRepository extends JpaRepository { e.representantNom, e.representantPrenom, e.representantTel, - e.representantNpi + e.representantNpi, + pa.numeroProvisoire, + pa.longitude, + pa.latitude, + pa.altitude, + pa.situationGeographique, + q.id, + q.code, + q.nom, + nd.id, + nd.libelle, + td.id, + td.libelle, + r.id ) FROM Enquete e LEFT JOIN e.zoneRfu zr @@ -436,6 +482,10 @@ public interface EnqueteRepository extends JpaRepository { LEFT JOIN e.parcelle pa LEFT JOIN e.exercice ex LEFT JOIN e.modeAcquisition ma + LEFT JOIN pa.quartier q + LEFT JOIN pa.natureDomaine nd + LEFT JOIN pa.typeDomaine td + LEFT JOIN pa.rue r """, countQuery = """ SELECT COUNT(e) @@ -493,7 +543,20 @@ public interface EnqueteRepository extends JpaRepository { e.representantNom, e.representantPrenom, e.representantTel, - e.representantNpi + e.representantNpi, + pa.numeroProvisoire, + pa.longitude, + pa.latitude, + pa.altitude, + pa.situationGeographique, + q.id, + q.code, + q.nom, + nd.id, + nd.libelle, + td.id, + td.libelle, + r.id ) FROM Enquete e LEFT JOIN e.zoneRfu zr @@ -502,7 +565,12 @@ public interface EnqueteRepository extends JpaRepository { LEFT JOIN e.parcelle pa LEFT JOIN e.exercice ex LEFT JOIN e.modeAcquisition ma + LEFT JOIN pa.quartier q + LEFT JOIN pa.natureDomaine nd + LEFT JOIN pa.typeDomaine td + LEFT JOIN pa.rue r WHERE ex.id = :exerciceId + """) List findEnquetesByExerciceToDto( @Param("exerciceId") Long exerciceId @@ -559,7 +627,20 @@ public interface EnqueteRepository extends JpaRepository { e.representantNom, e.representantPrenom, e.representantTel, - e.representantNpi + e.representantNpi, + pa.numeroProvisoire, + pa.longitude, + pa.latitude, + pa.altitude, + pa.situationGeographique, + q.id, + q.code, + q.nom, + nd.id, + nd.libelle, + td.id, + td.libelle, + r.id ) FROM Enquete e LEFT JOIN e.zoneRfu zr @@ -568,6 +649,10 @@ public interface EnqueteRepository extends JpaRepository { LEFT JOIN e.parcelle pa LEFT JOIN e.exercice ex LEFT JOIN e.modeAcquisition ma + LEFT JOIN pa.quartier q + LEFT JOIN pa.natureDomaine nd + LEFT JOIN pa.typeDomaine td + LEFT JOIN pa.rue r WHERE ex.id = :exerciceId """, countQuery = """ @@ -631,7 +716,20 @@ public interface EnqueteRepository extends JpaRepository { e.representantNom, e.representantPrenom, e.representantTel, - e.representantNpi + e.representantNpi, + pa.numeroProvisoire, + pa.longitude, + pa.latitude, + pa.altitude, + pa.situationGeographique, + q.id, + q.code, + q.nom, + nd.id, + nd.libelle, + td.id, + td.libelle, + r.id ) FROM Enquete e LEFT JOIN e.zoneRfu zr @@ -640,6 +738,10 @@ public interface EnqueteRepository extends JpaRepository { LEFT JOIN e.parcelle pa LEFT JOIN e.exercice ex LEFT JOIN e.modeAcquisition ma + LEFT JOIN pa.quartier q + LEFT JOIN pa.natureDomaine nd + LEFT JOIN pa.typeDomaine td + LEFT JOIN pa.rue r WHERE pa.id = :parcelleId """) List findAllEnquetesByParcelleToDto( @@ -696,7 +798,20 @@ public interface EnqueteRepository extends JpaRepository { e.representantNom, e.representantPrenom, e.representantTel, - e.representantNpi + e.representantNpi, + pa.numeroProvisoire, + pa.longitude, + pa.latitude, + pa.altitude, + pa.situationGeographique, + q.id, + q.code, + q.nom, + nd.id, + nd.libelle, + td.id, + td.libelle, + r.id ) FROM Enquete e LEFT JOIN e.zoneRfu zr @@ -705,6 +820,10 @@ public interface EnqueteRepository extends JpaRepository { LEFT JOIN e.parcelle pa LEFT JOIN e.exercice ex LEFT JOIN e.modeAcquisition ma + LEFT JOIN pa.quartier q + LEFT JOIN pa.natureDomaine nd + LEFT JOIN pa.typeDomaine td + LEFT JOIN pa.rue r WHERE pa.id = :parcelleId """, countQuery = """ diff --git a/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/metier/EnqueteBatimentRepository.java b/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/metier/EnqueteBatimentRepository.java index 61ce554..6f6c231 100755 --- a/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/metier/EnqueteBatimentRepository.java +++ b/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/metier/EnqueteBatimentRepository.java @@ -128,10 +128,23 @@ public interface EnqueteBatimentRepository extends JpaRepository