Merge pull request 'gestion revu de code en utilisant uniquement les DTO' (#95) from features/crud_entites into develop

Reviewed-on: #95
This commit was merged in pull request #95.
This commit is contained in:
2026-02-12 02:15:05 +00:00
22 changed files with 556 additions and 119 deletions

View File

@@ -48,9 +48,9 @@ public class EnqueteController {
@PostMapping("/create") @PostMapping("/create")
public ResponseEntity<?> createEnquete(@RequestBody @Valid @Validated EnquetePayLoadWeb enquetePayLoadWeb) { public ResponseEntity<?> createEnquete(@RequestBody @Valid @Validated EnquetePayLoadWeb enquetePayLoadWeb) {
try { try {
Enquete enquete = enqueteService.createEnquete(enquetePayLoadWeb); enquetePayLoadWeb = enqueteService.createEnquete(enquetePayLoadWeb);
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, enquete, "Enquete batiment créé avec succès."), new ApiResponse<>(true, enquetePayLoadWeb, "Enquete batiment créé avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {

View File

@@ -5,6 +5,7 @@ import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueParcelle;
import io.gmss.fiscad.exceptions.*; import io.gmss.fiscad.exceptions.*;
import io.gmss.fiscad.interfaces.rfu.metier.CaracteristiqueParcelleService; import io.gmss.fiscad.interfaces.rfu.metier.CaracteristiqueParcelleService;
import io.gmss.fiscad.paylaods.ApiResponse; import io.gmss.fiscad.paylaods.ApiResponse;
import io.gmss.fiscad.paylaods.request.crudweb.CaracteristiqueParcellePayloadWeb;
import io.swagger.v3.oas.annotations.security.SecurityRequirement; import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid; import jakarta.validation.Valid;
@@ -35,11 +36,11 @@ public class CaracteristiqueParcelleController {
} }
@PostMapping("/create") @PostMapping("/create")
public ResponseEntity<?> createCaracteristiqueParcelle(@RequestBody @Valid @Validated CaracteristiqueParcelle caracteristiqueParcelle) { public ResponseEntity<?> createCaracteristiqueParcelle(@RequestBody @Valid @Validated CaracteristiqueParcellePayloadWeb caracteristiqueParcellePayloadWeb) {
try { try {
caracteristiqueParcelle = caracteristiqueParcelleService.createCaracteristiqueParcelle(caracteristiqueParcelle); caracteristiqueParcellePayloadWeb = caracteristiqueParcelleService.createCaracteristiqueParcelle(caracteristiqueParcellePayloadWeb);
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, caracteristiqueParcelle, "Caracteristique parcelle créé avec succès."), new ApiResponse<>(true, caracteristiqueParcellePayloadWeb, "Caracteristique parcelle créé avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -59,10 +60,10 @@ public class CaracteristiqueParcelleController {
} }
@PutMapping("/update/{id}") @PutMapping("/update/{id}")
public ResponseEntity<?> updateCaracteristiqueParcelle(@PathVariable Long id, @RequestBody CaracteristiqueParcelle caracteristiqueParcelle) { public ResponseEntity<?> updateCaracteristiqueParcelle(@PathVariable Long id, @RequestBody CaracteristiqueParcellePayloadWeb caracteristiqueParcellePayloadWeb) {
try { try {
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, caracteristiqueParcelleService.updateCaracteristiqueParcelle(id, caracteristiqueParcelle), "Caracteristique parcelle mise à jour avec succès."), new ApiResponse<>(true, caracteristiqueParcelleService.updateCaracteristiqueParcelle(id, caracteristiqueParcellePayloadWeb), "Caracteristique parcelle mise à jour avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -174,4 +175,52 @@ public class CaracteristiqueParcelleController {
return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK);
} }
} }
@GetMapping("/by-enquete-id/{enqueteId}")
public ResponseEntity<?> getAllCaracteristiqueParcelleList(@PathVariable Long enqueteId) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, caracteristiqueParcelleService.getCaracteristiqueParcelleByEnqueteList(enqueteId), "Liste des Caracteristiques parcelles 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("/page/by-enquete-id/{enqueteId}")
public ResponseEntity<?> getAllCaracteristiqueParcellePaged(@PathVariable Long enqueteId,@RequestParam int pageNo, @RequestParam int pageSize) {
try {
Pageable pageable = PageRequest.of(pageNo, pageSize);
return new ResponseEntity<>(
new ApiResponse<>(true, caracteristiqueParcelleService.getCaracteristiqueParcelleByEnqueteListPageable(enqueteId,pageable), "Liste des Caracteristiques parcelles 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);
}
}
} }

View File

@@ -37,6 +37,7 @@ public class CaracteristiqueParcelle extends BaseEntity implements Serializable
@ManyToOne @ManyToOne
private Caracteristique caracteristique; private Caracteristique caracteristique;
private String valeur; private String valeur;
private String observation;
@JsonIgnore @JsonIgnore
@ManyToOne @ManyToOne
private Tpe terminal; private Tpe terminal;

View File

@@ -14,6 +14,7 @@ import io.gmss.fiscad.entities.infocad.parametre.Personne;
import io.gmss.fiscad.entities.rfu.parametre.Caracteristique; import io.gmss.fiscad.entities.rfu.parametre.Caracteristique;
import io.gmss.fiscad.entities.rfu.parametre.Exercice; import io.gmss.fiscad.entities.rfu.parametre.Exercice;
import io.gmss.fiscad.entities.user.User; import io.gmss.fiscad.entities.user.User;
import io.gmss.fiscad.enums.StatutEnquete;
import io.gmss.fiscad.enums.StatutEnregistrement; import io.gmss.fiscad.enums.StatutEnregistrement;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@@ -117,7 +118,7 @@ public class EnqueteBatiment extends BaseEntity implements Serializable {
@OneToMany(mappedBy = "enqueteBatiment") @OneToMany(mappedBy = "enqueteBatiment")
private List<Upload> uploads; private List<Upload> uploads;
//@Enumerated(EnumType.STRING) @Enumerated(EnumType.STRING)
//@JsonIgnore @JsonIgnore
//private StatutEnregistrement statutEnregistrement; private StatutEnquete statutEnquete;
} }

View File

@@ -13,6 +13,7 @@ import io.gmss.fiscad.entities.infocad.metier.Upload;
import io.gmss.fiscad.entities.infocad.parametre.Personne; import io.gmss.fiscad.entities.infocad.parametre.Personne;
import io.gmss.fiscad.entities.rfu.parametre.Exercice; import io.gmss.fiscad.entities.rfu.parametre.Exercice;
import io.gmss.fiscad.entities.user.User; import io.gmss.fiscad.entities.user.User;
import io.gmss.fiscad.enums.StatutEnquete;
import io.gmss.fiscad.enums.StatutEnregistrement; import io.gmss.fiscad.enums.StatutEnregistrement;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@@ -106,6 +107,6 @@ public class EnqueteUniteLogement extends BaseEntity implements Serializable {
private List<Upload> uploads; private List<Upload> uploads;
@JsonIgnore @JsonIgnore
@Enumerated(EnumType.STRING) @Enumerated(EnumType.STRING)
private StatutEnregistrement statutEnregistrement; private StatutEnquete statutEnquete;
} }

View File

@@ -5,5 +5,6 @@ public enum StatutEnquete {
FINALISE, FINALISE,
REJETE, REJETE,
VALIDE, VALIDE,
ECHEC ECHEC,
CLOTURE
} }

View File

@@ -91,9 +91,7 @@ public class EnqueteServiceImpl implements EnqueteService {
@Override @Override
public Enquete createEnquete(EnquetePayLoadWeb enquetePayLoadWeb) throws BadRequestException { public EnquetePayLoadWeb createEnquete(EnquetePayLoadWeb enquetePayLoadWeb) throws BadRequestException {
Optional<Parcelle> optionalParcelle=Optional.empty();
Long rueId;
Optional<User> optionalUser = userRepository.findById(enquetePayLoadWeb.getEnqueteurId()); Optional<User> optionalUser = userRepository.findById(enquetePayLoadWeb.getEnqueteurId());
if (!optionalUser.isPresent()) { if (!optionalUser.isPresent()) {
throw new BadRequestException("Echec de l'enregistrement : Enquêteur inexistant"); throw new BadRequestException("Echec de l'enregistrement : Enquêteur inexistant");
@@ -110,37 +108,10 @@ public class EnqueteServiceImpl implements EnqueteService {
if (enquetePayLoadWeb.getParcelleId() == null) { if (enquetePayLoadWeb.getParcelleId() == null) {
throw new ApplicationException("Echec de l'enregistrement : La parcelle non renseignée."); throw new ApplicationException("Echec de l'enregistrement : La parcelle non renseignée.");
} else {
optionalParcelle = parcelleService.getParcelleById(enquetePayLoadWeb.getParcelleId());
} }
Enquete enquete = entityFromPayLoadService.getEnqueteFromPayLoadWeb(enquetePayLoadWeb);
////enregistrement de l'enquete ////enregistrement de l'enquete
Enquete enquete = new Enquete();
enquete.setDateEnquete(LocalDate.now());
enquete.setUser(optionalUser.get());
enquete.setParcelle(optionalParcelle.get());
enquete.setLitige(enquetePayLoadWeb.getLitige());
enquete.setStatutEnquete(StatutEnquete.EN_COURS);
enquete.setObservationParticuliere(enquetePayLoadWeb.getObservation());
enquete.setPersonne(optionalPersonne.orElse(null));
enquete.setZoneRfu(optionalZoneRfu.orElse(null));
enquete.setAutreAdresse(enquetePayLoadWeb.getAutreAdresse());
enquete.setAutreNumeroTitreFoncier(enquetePayLoadWeb.getAutreNumeroTitreFoncier());
enquete.setNumeroTitreFoncier(enquetePayLoadWeb.getNumeroTitreFoncier());
enquete.setDateDebutExcemption(enquetePayLoadWeb.getDateDebutExemption());
enquete.setDateFinExcemption(enquetePayLoadWeb.getDateFinExemption());
enquete.setNbreBatiment(enquetePayLoadWeb.getNbreBatiment());
enquete.setNbrePiscine(enquetePayLoadWeb.getNbrePiscine());
enquete.setNbreIndivisiaire(enquetePayLoadWeb.getNbreIndivisiaire());
enquete.setNbreCoProprietaire(enquetePayLoadWeb.getNbreCoProprietaire());
enquete.setNumEntreeParcelle(enquetePayLoadWeb.getNumEntreeParcelle());
enquete.setNomRue(enquetePayLoadWeb.getNomRue());
enquete.setNumRue(enquetePayLoadWeb.getNumRue());
enquete.setSuperficie(enquetePayLoadWeb.getSuperficie());
enquete.setMontantMensuelleLocation(enquetePayLoadWeb.getMontantMensuelleLocation());
enquete.setMontantAnnuelleLocation(enquetePayLoadWeb.getMontantAnnuelleLocation());
enquete.setValeurParcelleEstime(enquetePayLoadWeb.getValeurParcelleEstime());
enquete.setValeurParcelleReel(enquetePayLoadWeb.getValeurParcelleReel());
enquete=enqueteRepository.save(enquete); enquete=enqueteRepository.save(enquete);
//////Enregistrement des caractéristiques parcelle //////Enregistrement des caractéristiques parcelle
@@ -175,11 +146,11 @@ public class EnqueteServiceImpl implements EnqueteService {
// }); // });
// }); // });
return enquete; return enqueteRepository.findEnqueteToDto(enquete.getId()).orElse(null);
} }
@Override @Override
public Enquete updateEnquete(Long id,EnquetePayLoadWeb enquetePayLoadWeb) throws NotFoundException { public EnquetePayLoadWeb updateEnquete(Long id,EnquetePayLoadWeb enquetePayLoadWeb) throws NotFoundException {
if (enquetePayLoadWeb.getId() == null) { if (enquetePayLoadWeb.getId() == null) {
throw new BadRequestException("Impossible de mettre à jour une enquête ayant un id null."); throw new BadRequestException("Impossible de mettre à jour une enquête ayant un id null.");
} }
@@ -206,16 +177,6 @@ public class EnqueteServiceImpl implements EnqueteService {
if (!optionalZoneRfu.isPresent()) { if (!optionalZoneRfu.isPresent()) {
throw new BadRequestException("Echec de l'enregistrement : zone inexistante"); throw new BadRequestException("Echec de l'enregistrement : zone inexistante");
} }
//Optional<Rue> optionalRue = rueRepository.findById(enquetePayLoadWeb.getZoneRfuId());
// if (optionalRue.isPresent()) {
// rueId=optionalRue.get().getId();
// enquetePayLoadWeb.getParcellePayLoadWeb().setRueId(rueId);
// }
//Optional<Equipe> optionalEquipe = equipeRepository.findById(enquetePayLoadWeb.getEquipeId());
///enregistrement de la pacelle ///enregistrement de la pacelle
if (enquetePayLoadWeb.getParcelleId() == null) { if (enquetePayLoadWeb.getParcelleId() == null) {
throw new ApplicationException("Echec de l'enregistrement : La parcelle non renseignée."); throw new ApplicationException("Echec de l'enregistrement : La parcelle non renseignée.");
@@ -223,34 +184,9 @@ public class EnqueteServiceImpl implements EnqueteService {
optionalParcelle = parcelleService.getParcelleById(enquetePayLoadWeb.getParcelleId()); optionalParcelle = parcelleService.getParcelleById(enquetePayLoadWeb.getParcelleId());
} }
////enregistrement de l'enquete Enquete enquete = entityFromPayLoadService.getEnqueteFromPayLoadWeb(enquetePayLoadWeb);
Enquete enquete = new Enquete(); enquete=enqueteRepository.save(enquete);
enquete.setDateEnquete(LocalDate.now()); return enqueteRepository.findEnqueteToDto(enquete.getId()).orElse(null);
enquete.setUser(optionalUser.get());
enquete.setParcelle(optionalParcelle.get());
enquete.setLitige(enquetePayLoadWeb.getLitige());
enquete.setStatutEnquete(StatutEnquete.EN_COURS);
enquete.setObservationParticuliere(enquetePayLoadWeb.getObservation());
enquete.setPersonne(optionalProprietaire.orElse(null));
enquete.setZoneRfu(optionalZoneRfu.orElse(null));
enquete.setAutreAdresse(enquetePayLoadWeb.getAutreAdresse());
enquete.setAutreNumeroTitreFoncier(enquetePayLoadWeb.getAutreNumeroTitreFoncier());
enquete.setNumeroTitreFoncier(enquetePayLoadWeb.getNumeroTitreFoncier());
enquete.setDateDebutExcemption(enquetePayLoadWeb.getDateDebutExemption());
enquete.setDateFinExcemption(enquetePayLoadWeb.getDateFinExemption());
enquete.setNbreBatiment(enquetePayLoadWeb.getNbreBatiment());
enquete.setNbrePiscine(enquetePayLoadWeb.getNbrePiscine());
enquete.setNbreIndivisiaire(enquetePayLoadWeb.getNbreIndivisiaire());
enquete.setNbreCoProprietaire(enquetePayLoadWeb.getNbreCoProprietaire());
enquete.setNumEntreeParcelle(enquetePayLoadWeb.getNumEntreeParcelle());
enquete.setNomRue(enquetePayLoadWeb.getNomRue());
enquete.setNumRue(enquetePayLoadWeb.getNumRue());
enquete.setSuperficie(enquetePayLoadWeb.getSuperficie());
enquete.setMontantMensuelleLocation(enquetePayLoadWeb.getMontantMensuelleLocation());
enquete.setMontantAnnuelleLocation(enquetePayLoadWeb.getMontantAnnuelleLocation());
enquete.setValeurParcelleEstime(enquetePayLoadWeb.getValeurParcelleEstime());
enquete.setValeurParcelleReel(enquetePayLoadWeb.getValeurParcelleReel());
return enqueteRepository.save(enquete);
} }

View File

@@ -4,40 +4,46 @@ import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueParcelle;
import io.gmss.fiscad.exceptions.BadRequestException; import io.gmss.fiscad.exceptions.BadRequestException;
import io.gmss.fiscad.exceptions.NotFoundException; import io.gmss.fiscad.exceptions.NotFoundException;
import io.gmss.fiscad.interfaces.rfu.metier.CaracteristiqueParcelleService; import io.gmss.fiscad.interfaces.rfu.metier.CaracteristiqueParcelleService;
import io.gmss.fiscad.paylaods.request.crudweb.CaracteristiqueParcellePayloadWeb;
import io.gmss.fiscad.persistence.repositories.rfu.metier.CaracteristiqueParcelleRepository; import io.gmss.fiscad.persistence.repositories.rfu.metier.CaracteristiqueParcelleRepository;
import io.gmss.fiscad.service.EntityFromPayLoadService;
import lombok.AllArgsConstructor;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@AllArgsConstructor
@Service @Service
public class CaracteristiqueParcelleServiceImpl implements CaracteristiqueParcelleService { public class CaracteristiqueParcelleServiceImpl implements CaracteristiqueParcelleService {
private final CaracteristiqueParcelleRepository caracteristiqueParcelleRepository; private final CaracteristiqueParcelleRepository caracteristiqueParcelleRepository;
private final EntityFromPayLoadService entityFromPayLoadService;
public CaracteristiqueParcelleServiceImpl(CaracteristiqueParcelleRepository caracteristiqueParcelleRepository) {
this.caracteristiqueParcelleRepository = caracteristiqueParcelleRepository;
}
@Override @Override
public CaracteristiqueParcelle createCaracteristiqueParcelle(CaracteristiqueParcelle caracteristiqueParcelle) throws BadRequestException { public CaracteristiqueParcellePayloadWeb createCaracteristiqueParcelle(CaracteristiqueParcellePayloadWeb caracteristiqueParcellePayloadWeb) throws BadRequestException {
if (caracteristiqueParcelle.getId() != null) { if (caracteristiqueParcellePayloadWeb.getId() != null) {
throw new BadRequestException("Impossible de créer une nouvelle caracteristique de parcelle ayant un id non null."); throw new BadRequestException("Impossible de créer une nouvelle caracteristique de parcelle ayant un id non null.");
} }
return caracteristiqueParcelleRepository.save(caracteristiqueParcelle); CaracteristiqueParcelle caracteristiqueParcelle= entityFromPayLoadService.getCaracteristiqueParcelleFromPayLoadWeb(caracteristiqueParcellePayloadWeb);
caracteristiqueParcelle =caracteristiqueParcelleRepository.save(caracteristiqueParcelle);
return caracteristiqueParcelleRepository.findCaracteristiqueParcelleToDto(caracteristiqueParcelle.getId()).orElse(null);
} }
@Override @Override
public CaracteristiqueParcelle updateCaracteristiqueParcelle(Long id, CaracteristiqueParcelle caracteristiqueParcelle) throws NotFoundException { public CaracteristiqueParcellePayloadWeb updateCaracteristiqueParcelle(Long id, CaracteristiqueParcellePayloadWeb caracteristiqueParcellePayloadWeb) throws NotFoundException {
if (caracteristiqueParcelle.getId() == null) { if (caracteristiqueParcellePayloadWeb.getId() == null) {
throw new BadRequestException("Impossible de mettre à jour une nouvelle caracteristique de parcelle ayant un id null."); throw new BadRequestException("Impossible de mettre à jour une nouvelle caracteristique de parcelle ayant un id null.");
} }
if (!caracteristiqueParcelleRepository.existsById(caracteristiqueParcelle.getId())) { if (!caracteristiqueParcelleRepository.existsById(caracteristiqueParcellePayloadWeb.getId())) {
throw new NotFoundException("Impossible de trouver la nouvelle caracteristique de parcelle spécifié dans notre base de données."); throw new NotFoundException("Impossible de trouver la nouvelle caracteristique de parcelle spécifié dans notre base de données.");
} }
return caracteristiqueParcelleRepository.save(caracteristiqueParcelle); CaracteristiqueParcelle caracteristiqueParcelle= entityFromPayLoadService.getCaracteristiqueParcelleFromPayLoadWeb(caracteristiqueParcellePayloadWeb);
caracteristiqueParcelle =caracteristiqueParcelleRepository.save(caracteristiqueParcelle);
return caracteristiqueParcelleRepository.findCaracteristiqueParcelleToDto(caracteristiqueParcelle.getId()).orElse(null);
} }
@Override @Override
@@ -62,12 +68,22 @@ public class CaracteristiqueParcelleServiceImpl implements CaracteristiqueParcel
@Override @Override
public Optional<CaracteristiqueParcelle> getCaracteristiqueParcelleById(Long id) { public Optional<CaracteristiqueParcellePayloadWeb> getCaracteristiqueParcelleById(Long id) {
if (caracteristiqueParcelleRepository.existsById(id)) { if (caracteristiqueParcelleRepository.existsById(id)) {
return caracteristiqueParcelleRepository.findById(id); return caracteristiqueParcelleRepository.findCaracteristiqueParcelleToDto(id);
} else { } else {
throw new NotFoundException("Impossible de trouver la caractéristique spécifiée dans la base de données."); throw new NotFoundException("Impossible de trouver la caractéristique spécifiée dans la base de données.");
} }
} }
@Override
public Page<CaracteristiqueParcellePayloadWeb> getCaracteristiqueParcelleByEnqueteListPageable(Long id,Pageable pageable) {
return caracteristiqueParcelleRepository.findAllCaracteristiqueParcelleByEnqueteToDtoPageable(id,pageable);
}
@Override
public List<CaracteristiqueParcellePayloadWeb> getCaracteristiqueParcelleByEnqueteList(Long enqueteId) {
return caracteristiqueParcelleRepository.findAllCaracteristiqueParcelleByEnqueteToDto(enqueteId);
}
} }

View File

@@ -19,9 +19,9 @@ import java.util.Optional;
public interface EnqueteService { public interface EnqueteService {
Enquete createEnquete(EnquetePayLoadWeb enquetePayLoad) throws BadRequestException; EnquetePayLoadWeb createEnquete(EnquetePayLoadWeb enquetePayLoad) throws BadRequestException;
Enquete updateEnquete(Long id,EnquetePayLoadWeb enquete) throws NotFoundException; EnquetePayLoadWeb updateEnquete(Long id,EnquetePayLoadWeb enquete) throws NotFoundException;
void deleteEnquete(Long id) throws NotFoundException; void deleteEnquete(Long id) throws NotFoundException;

View File

@@ -3,6 +3,7 @@ package io.gmss.fiscad.interfaces.rfu.metier;
import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueParcelle; import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueParcelle;
import io.gmss.fiscad.exceptions.BadRequestException; import io.gmss.fiscad.exceptions.BadRequestException;
import io.gmss.fiscad.exceptions.NotFoundException; import io.gmss.fiscad.exceptions.NotFoundException;
import io.gmss.fiscad.paylaods.request.crudweb.CaracteristiqueParcellePayloadWeb;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
@@ -11,9 +12,9 @@ import java.util.Optional;
public interface CaracteristiqueParcelleService { public interface CaracteristiqueParcelleService {
CaracteristiqueParcelle createCaracteristiqueParcelle(CaracteristiqueParcelle caracteristiqueParcelle) throws BadRequestException; CaracteristiqueParcellePayloadWeb createCaracteristiqueParcelle(CaracteristiqueParcellePayloadWeb caracteristiqueParcellePayloadWeb) throws BadRequestException;
CaracteristiqueParcelle updateCaracteristiqueParcelle(Long id, CaracteristiqueParcelle caracteristiqueParcelle) throws NotFoundException; CaracteristiqueParcellePayloadWeb updateCaracteristiqueParcelle(Long id, CaracteristiqueParcellePayloadWeb caracteristiqueParcellePayloadWeb) throws NotFoundException;
void deleteCaracteristiqueParcelle(Long id) throws NotFoundException; void deleteCaracteristiqueParcelle(Long id) throws NotFoundException;
@@ -21,5 +22,8 @@ public interface CaracteristiqueParcelleService {
List<CaracteristiqueParcelle> getCaracteristiqueParcelleList(); List<CaracteristiqueParcelle> getCaracteristiqueParcelleList();
Optional<CaracteristiqueParcelle> getCaracteristiqueParcelleById(Long id); Optional<CaracteristiqueParcellePayloadWeb> getCaracteristiqueParcelleById(Long id);
Page<CaracteristiqueParcellePayloadWeb> getCaracteristiqueParcelleByEnqueteListPageable(Long enqueteId, Pageable pageable);
List<CaracteristiqueParcellePayloadWeb> getCaracteristiqueParcelleByEnqueteList(Long enqueteId);
} }

View File

@@ -2,11 +2,29 @@ package io.gmss.fiscad.paylaods.request.crudweb;
import lombok.Data; import lombok.Data;
import java.time.LocalDate;
@Data @Data
public class CaracteristiqueBatimentPayloadWeb { public class CaracteristiqueBatimentPayloadWeb {
private Long id; private Long id;
private Long enqueteBatimentId; private Long enqueteBatimentId;
private LocalDate enqueteBatimentDateEnquete;
private Integer enqueteBatimentAnnee;
private Long caracteristiqueId; private Long caracteristiqueId;
private String caracteristiqueCode;
private String caracteristiqueLibelle;
private String valeur; private String valeur;
private String observation; private String observation;
public CaracteristiqueBatimentPayloadWeb(Long id, Long enqueteBatimentId, LocalDate enqueteBatimentDateEnquete, Integer enqueteBatimentAnnee, Long caracteristiqueId, String caracteristiqueCode, String caracteristiqueLibelle, String valeur, String observation) {
this.id = id;
this.enqueteBatimentId = enqueteBatimentId;
this.enqueteBatimentDateEnquete = enqueteBatimentDateEnquete;
this.enqueteBatimentAnnee = enqueteBatimentAnnee;
this.caracteristiqueId = caracteristiqueId;
this.caracteristiqueCode = caracteristiqueCode;
this.caracteristiqueLibelle = caracteristiqueLibelle;
this.valeur = valeur;
this.observation = observation;
}
} }

View File

@@ -2,12 +2,29 @@ package io.gmss.fiscad.paylaods.request.crudweb;
import lombok.Data; import lombok.Data;
import java.time.LocalDate;
@Data @Data
public class CaracteristiqueParcellePayloadWeb { public class CaracteristiqueParcellePayloadWeb {
private Long id; private Long id;
private Long enqueteId; private Long enqueteId;
private Long enqueteDate; private LocalDate enqueteDateEnquete;
private Integer enqueteAnnee;
private Long caracteristiqueId; private Long caracteristiqueId;
private String caracteristiqueCode;
private String caracteristiqueLibelle;
private String valeur; private String valeur;
private String observation; private String observation;
public CaracteristiqueParcellePayloadWeb(Long id, Long enqueteId, LocalDate enqueteDateEnquete, Integer enqueteAnnee, Long caracteristiqueId, String caracteristiqueCode, String caracteristiqueLibelle, String valeur, String observation) {
this.id = id;
this.enqueteId = enqueteId;
this.enqueteDateEnquete = enqueteDateEnquete;
this.enqueteAnnee = enqueteAnnee;
this.caracteristiqueId = caracteristiqueId;
this.caracteristiqueCode = caracteristiqueCode;
this.caracteristiqueLibelle = caracteristiqueLibelle;
this.valeur = valeur;
this.observation = observation;
}
} }

View File

@@ -2,11 +2,29 @@ package io.gmss.fiscad.paylaods.request.crudweb;
import lombok.Data; import lombok.Data;
import java.time.LocalDate;
@Data @Data
public class CaracteristiqueUniteLogementPayloadWeb { public class CaracteristiqueUniteLogementPayloadWeb {
private Long id; private Long id;
private Long enqueteUniteLogementId; private Long enqueteUniteLogementId;
private LocalDate enqueteUniteLogementDateEnquete;
private Integer enqueteUniteLogementAnnee;
private Long caracteristiqueId; private Long caracteristiqueId;
private String caracteristiqueCode;
private String caracteristiqueLibelle;
private String valeur; private String valeur;
private String observation; private String observation;
public CaracteristiqueUniteLogementPayloadWeb(Long id, Long enqueteUniteLogementId, LocalDate enqueteUniteLogementDateEnquete, Integer enqueteUniteLogementAnnee, Long caracteristiqueId, String caracteristiqueCode, String caracteristiqueLibelle, String valeur, String observation) {
this.id = id;
this.enqueteUniteLogementId = enqueteUniteLogementId;
this.enqueteUniteLogementDateEnquete = enqueteUniteLogementDateEnquete;
this.enqueteUniteLogementAnnee = enqueteUniteLogementAnnee;
this.caracteristiqueId = caracteristiqueId;
this.caracteristiqueCode = caracteristiqueCode;
this.caracteristiqueLibelle = caracteristiqueLibelle;
this.valeur = valeur;
this.observation = observation;
}
} }

View File

@@ -1,6 +1,10 @@
package io.gmss.fiscad.paylaods.request.crudweb; package io.gmss.fiscad.paylaods.request.crudweb;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueBatiment; import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueBatiment;
import io.gmss.fiscad.enums.StatutEnquete;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import lombok.Data; import lombok.Data;
import java.time.LocalDate; import java.time.LocalDate;
@@ -45,8 +49,12 @@ public class EnqueteBatimentPayloadWeb {
private Long enqueteurId; private Long enqueteurId;
private String enqueteurNom; private String enqueteurNom;
private String enqueteurPrenom; private String enqueteurPrenom;
@Enumerated(EnumType.STRING)
@JsonIgnore
private StatutEnquete statutEnquete;
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) { 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) {
this.id = id; this.id = id;
this.observation = observation; this.observation = observation;
this.autreMenuisierie = autreMenuisierie; this.autreMenuisierie = autreMenuisierie;
@@ -80,5 +88,6 @@ public class EnqueteBatimentPayloadWeb {
this.enqueteurId = enqueteurId; this.enqueteurId = enqueteurId;
this.enqueteurNom = enqueteurNom; this.enqueteurNom = enqueteurNom;
this.enqueteurPrenom = enqueteurPrenom; this.enqueteurPrenom = enqueteurPrenom;
this.statutEnquete = statutEnquete;
} }
} }

View File

@@ -1,5 +1,8 @@
package io.gmss.fiscad.paylaods.request.crudweb; package io.gmss.fiscad.paylaods.request.crudweb;
import io.gmss.fiscad.enums.StatutEnquete;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import lombok.Data; import lombok.Data;
import java.time.LocalDate; import java.time.LocalDate;
@@ -39,8 +42,11 @@ public class EnqueteUniteLogementPayloadWeb {
private String enqueteurPrenom; private String enqueteurPrenom;
private Long exerciceId ; private Long exerciceId ;
private Integer exerciceAnnee; private Integer exerciceAnnee;
@Enumerated(EnumType.STRING)
private StatutEnquete statutEnquete;
public EnqueteUniteLogementPayloadWeb(Long id, String observation, Integer nbrePiece, Integer nbreHabitant, Integer nbreMenage, Boolean enLocation, Integer nbreMoisLocation, Float montantMensuelLoyer, Float 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) { public EnqueteUniteLogementPayloadWeb(Long id, String observation, Integer nbrePiece, Integer nbreHabitant, Integer nbreMenage, Boolean enLocation, Integer nbreMoisLocation, Float montantMensuelLoyer, Float 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) {
this.id = id; this.id = id;
this.observation = observation; this.observation = observation;
this.nbrePiece = nbrePiece; this.nbrePiece = nbrePiece;
@@ -73,5 +79,6 @@ public class EnqueteUniteLogementPayloadWeb {
this.enqueteurPrenom = enqueteurPrenom; this.enqueteurPrenom = enqueteurPrenom;
this.exerciceId = exerciceId; this.exerciceId = exerciceId;
this.exerciceAnnee = exerciceAnnee; this.exerciceAnnee = exerciceAnnee;
this.statutEnquete = statutEnquete;
} }
} }

View File

@@ -287,6 +287,61 @@ public interface EnqueteRepository extends JpaRepository<Enquete, Long> {
""") """)
List<EnquetePayLoadWeb> findAllEnquetesToDto(); List<EnquetePayLoadWeb> findAllEnquetesToDto();
@Query("""
SELECT new io.gmss.fiscad.paylaods.request.crudweb.EnquetePayLoadWeb(
e.id,
e.dateEnquete,
e.dateFinalisation,
e.litige,
e.statutEnquete,
e.descriptionMotifRejet,
e.observationParticuliere,
pa.numeroTitreFoncier,
pa.dateTitreFoncier,
e.numEntreeParcelle,
e.numRue,
e.nomRue,
e.precision,
e.nbreCoProprietaire,
e.nbreIndivisiaire,
e.autreAdresse,
e.superficie,
e.nbreBatiment,
e.nbrePiscine,
e.dateDebutExemption,
e.dateFinExemption,
pa.autreNumeroTitreFoncier,
e.montantMensuelleLocation,
e.montantAnnuelleLocation,
e.valeurParcelleEstime,
e.valeurParcelleReel,
zr.id,
zr.nom,
p.id,
p.nom,
p.prenom,
p.raisonSociale,
u.id,
u.nom,
u.prenom,
pa.id,
pa.nup,
pa.q,
pa.i,
pa.p,
ex.id,
ex.annee
)
FROM Enquete e
LEFT JOIN e.zoneRfu zr
LEFT JOIN e.personne p
LEFT JOIN e.user u
LEFT JOIN e.parcelle pa
LEFT JOIN e.exercice ex
WHERE e.id = :enqueteId
""")
Optional<EnquetePayLoadWeb> findEnqueteToDto(@Param("enqueteId") Long enqueteId);
@Query( @Query(
value = """ value = """
SELECT new io.gmss.fiscad.paylaods.request.crudweb.EnquetePayLoadWeb( SELECT new io.gmss.fiscad.paylaods.request.crudweb.EnquetePayLoadWeb(

View File

@@ -2,8 +2,12 @@ package io.gmss.fiscad.persistence.repositories.rfu.metier;
import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueBatiment; import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueBatiment;
import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment; import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment;
import io.gmss.fiscad.paylaods.request.crudweb.BatimentPaylaodWeb;
import io.gmss.fiscad.paylaods.request.crudweb.CaracteristiqueBatimentPayloadWeb;
import io.gmss.fiscad.paylaods.response.restoration.CaracateristiqueBatimentPayLoadsRestor; import io.gmss.fiscad.paylaods.response.restoration.CaracateristiqueBatimentPayLoadsRestor;
import jakarta.transaction.Transactional; import jakarta.transaction.Transactional;
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.JpaRepository;
import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
@@ -40,4 +44,75 @@ public interface CaracteristiqueBatimentRepository extends JpaRepository<Caracte
"where cb.terminal_id = ?1" "where cb.terminal_id = ?1"
) )
List<CaracateristiqueBatimentPayLoadsRestor> getCaracteristiqueBatimentByTerminalId(Long terminalId); List<CaracateristiqueBatimentPayLoadsRestor> getCaracteristiqueBatimentByTerminalId(Long terminalId);
@Query("""
SELECT new io.gmss.fiscad.paylaods.request.crudweb.CaracteristiqueBatimentPayloadWeb(
cb.id,
eb.id,
eb.dateEnquete,
ex.annee,
ca.id,
ca.code,
ca.libelle,
cb.valeur,
cb.observation
)
FROM CaracteristiqueBatiment cb
JOIN cb.caracteristique ca
JOIN cb.enqueteBatiment eb
JOIN eb.exercice ex
WHERE cb.id = :caracteristiqueBatimentId
""")
Optional<CaracteristiqueBatimentPayloadWeb> findCaracteristiqueBatimentToDto(@Param("caracteristiqueBatimentId") Long caracteristiqueBatimentId);
@Query("""
SELECT new io.gmss.fiscad.paylaods.request.crudweb.CaracteristiqueBatimentPayloadWeb(
cb.id,
eb.id,
eb.dateEnquete,
ex.annee,
ca.id,
ca.code,
ca.libelle,
cb.valeur,
cb.observation
)
FROM CaracteristiqueBatiment cb
JOIN cb.caracteristique ca
JOIN cb.enqueteBatiment eb
JOIN eb.exercice ex
WHERE eb.id = :enqueteBatimentId
""")
List<CaracteristiqueBatimentPayloadWeb> findAllCaracteristiqueBatimentByEnqueteBatimentToDto(@Param("enqueteBatimentId") Long enqueteBatimentId);
@Query(value = """
SELECT new io.gmss.fiscad.paylaods.request.crudweb.CaracteristiqueBatimentPayloadWeb(
cb.id,
eb.id,
eb.dateEnquete,
ex.annee,
ca.id,
ca.code,
ca.libelle,
cb.valeur,
cb.observation
)
FROM CaracteristiqueBatiment cb
JOIN cb.caracteristique ca
JOIN cb.enqueteBatiment eb
JOIN eb.exercice ex
WHERE eb.id = :enqueteBatimentId
""",
countQuery = """
SELECT COUNT(distinct cb)
FROM CaracteristiqueBatiment cb
JOIN cb.caracteristique ca
JOIN cb.enqueteBatiment eb
JOIN eb.exercice ex
WHERE eb.id = :enqueteBatimentId
"""
)
Page<CaracteristiqueBatimentPayloadWeb> findAllCaracteristiqueBatimentByEnqueteBatimentToDtoPageable(@Param("enqueteBatimentId") Long enqueteBatimentId, Pageable pageable);
} }

View File

@@ -2,11 +2,16 @@ package io.gmss.fiscad.persistence.repositories.rfu.metier;
import io.gmss.fiscad.entities.infocad.metier.Enquete; import io.gmss.fiscad.entities.infocad.metier.Enquete;
import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueParcelle; import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueParcelle;
import io.gmss.fiscad.paylaods.request.crudweb.CaracteristiqueBatimentPayloadWeb;
import io.gmss.fiscad.paylaods.request.crudweb.CaracteristiqueParcellePayloadWeb;
import io.gmss.fiscad.paylaods.response.restoration.CaracateristiqueParcellePayLoadsRestor; import io.gmss.fiscad.paylaods.response.restoration.CaracateristiqueParcellePayLoadsRestor;
import jakarta.transaction.Transactional; import jakarta.transaction.Transactional;
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.JpaRepository;
import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@@ -33,4 +38,74 @@ public interface CaracteristiqueParcelleRepository extends JpaRepository<Caracte
"inner join enquete e on cp.enquete_id = e.id " + "inner join enquete e on cp.enquete_id = e.id " +
"where cp.terminal_id = ?") "where cp.terminal_id = ?")
List<CaracateristiqueParcellePayLoadsRestor> getCaracteristiqueParcelleByTerminalId(Long terminalId); List<CaracateristiqueParcellePayLoadsRestor> getCaracteristiqueParcelleByTerminalId(Long terminalId);
@Query("""
SELECT new io.gmss.fiscad.paylaods.request.crudweb.CaracteristiqueParcellePayloadWeb(
cp.id,
e.id,
e.dateEnquete,
ex.annee,
ca.id,
ca.code,
ca.libelle,
cp.valeur,
cp.observation
)
FROM CaracteristiqueParcelle cp
JOIN cp.caracteristique ca
JOIN cp.enquete e
JOIN e.exercice ex
WHERE cp.id = :caracteristiqueParcelleId
""")
Optional<CaracteristiqueParcellePayloadWeb> findCaracteristiqueParcelleToDto(@Param("caracteristiqueParcelleId") Long caracteristiqueParcelleId);
@Query("""
SELECT new io.gmss.fiscad.paylaods.request.crudweb.CaracteristiqueParcellePayloadWeb(
cp.id,
e.id,
e.dateEnquete,
ex.annee,
ca.id,
ca.code,
ca.libelle,
cp.valeur,
cp.observation
)
FROM CaracteristiqueParcelle cp
JOIN cp.caracteristique ca
JOIN cp.enquete e
JOIN e.exercice ex
WHERE e.id = :enqueteId
""")
List<CaracteristiqueParcellePayloadWeb> findAllCaracteristiqueParcelleByEnqueteToDto(@Param("enqueteId") Long enqueteId);
@Query(value = """
SELECT new io.gmss.fiscad.paylaods.request.crudweb.CaracteristiqueParcellePayloadWeb(
cp.id,
e.id,
e.dateEnquete,
ex.annee,
ca.id,
ca.code,
ca.libelle,
cp.valeur,
cp.observation
)
FROM CaracteristiqueParcelle cp
JOIN cp.caracteristique ca
JOIN cp.enquete e
JOIN e.exercice ex
WHERE e.id = :enqueteId
""",
countQuery = """
SELECT COUNT(distinct cp)
FROM CaracteristiqueParcelle cp
JOIN cp.caracteristique ca
JOIN cp.enquete e
JOIN e.exercice ex
WHERE e.id = :enqueteId
"""
)
Page<CaracteristiqueParcellePayloadWeb> findAllCaracteristiqueParcelleByEnqueteToDtoPageable(@Param("enqueteId") Long enqueteId, Pageable pageable);
} }

View File

@@ -2,8 +2,12 @@ package io.gmss.fiscad.persistence.repositories.rfu.metier;
import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueUniteLogement; import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueUniteLogement;
import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement; import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement;
import io.gmss.fiscad.paylaods.request.crudweb.CaracteristiqueBatimentPayloadWeb;
import io.gmss.fiscad.paylaods.request.crudweb.CaracteristiqueUniteLogementPayloadWeb;
import io.gmss.fiscad.paylaods.response.restoration.CaracteristiqueUniteLogementPayLoadRestor; import io.gmss.fiscad.paylaods.response.restoration.CaracteristiqueUniteLogementPayLoadRestor;
import jakarta.transaction.Transactional; import jakarta.transaction.Transactional;
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.JpaRepository;
import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
@@ -37,4 +41,75 @@ public interface CaracteristiqueUniteLogementRepository extends JpaRepository<Ca
"where cul.terminal_id = ?" "where cul.terminal_id = ?"
) )
List<CaracteristiqueUniteLogementPayLoadRestor> getCaracteristiqueUniteLogementByTerminalId(Long terminalId); List<CaracteristiqueUniteLogementPayLoadRestor> getCaracteristiqueUniteLogementByTerminalId(Long terminalId);
@Query("""
SELECT new io.gmss.fiscad.paylaods.request.crudweb.CaracteristiqueUniteLogementPayloadWeb(
cul.id,
eul.id,
eul.dateEnquete,
ex.annee,
ca.id,
ca.code,
ca.libelle,
cul.valeur,
cul.observation
)
FROM CaracteristiqueUniteLogement cul
JOIN cul.caracteristique ca
JOIN cul.enqueteUniteLogement eul
JOIN eul.exercice ex
WHERE cul.id = :caracteristiqueUniteLogementId
""")
Optional<CaracteristiqueUniteLogementPayloadWeb> findCaracteristiqueUniteLogementToDto(@Param("caracteristiqueBatimentId") Long caracteristiqueBatimentId);
@Query("""
SELECT new io.gmss.fiscad.paylaods.request.crudweb.CaracteristiqueUniteLogementPayloadWeb(
cul.id,
eul.id,
eul.dateEnquete,
ex.annee,
ca.id,
ca.code,
ca.libelle,
cul.valeur,
cul.observation
)
FROM CaracteristiqueUniteLogement cul
JOIN cul.caracteristique ca
JOIN cul.enqueteUniteLogement eul
JOIN eul.exercice ex
WHERE cul.id = :enqueteUniteLogementId
""")
List<CaracteristiqueUniteLogementPayloadWeb> findAllCaracteristiqueUniteLogementByEnqueteUniteLogementToDto(@Param("enqueteUniteLogementId") Long enqueteUniteLogementId);
@Query(value = """
SELECT new io.gmss.fiscad.paylaods.request.crudweb.CaracteristiqueUniteLogementPayloadWeb(
cul.id,
eul.id,
eul.dateEnquete,
ex.annee,
ca.id,
ca.code,
ca.libelle,
cul.valeur,
cul.observation
)
FROM CaracteristiqueUniteLogement cul
JOIN cul.caracteristique ca
JOIN cul.enqueteUniteLogement eul
JOIN eul.exercice ex
WHERE cul.id = :enqueteUniteLogementId
""",
countQuery = """
SELECT COUNT(distinct cul)
FROM CaracteristiqueUniteLogement cul
JOIN cul.caracteristique ca
JOIN cul.enqueteUniteLogement eul
JOIN eul.exercice ex
WHERE cul.id = :enqueteUniteLogementId
"""
)
Page<CaracteristiqueUniteLogementPayloadWeb> findAllCaracteristiqueUniteLogementByEnqueteBatimentToDtoPageable(@Param("enqueteUniteLogementId") Long enqueteUniteLogementId, Pageable pageable);
} }

View File

@@ -93,7 +93,8 @@ public interface EnqueteBatimentRepository extends JpaRepository<EnqueteBatiment
u.id, u.id,
u.nom, u.nom,
u.prenom u.prenom,
eb.statutEnquete
) )
FROM EnqueteBatiment eb FROM EnqueteBatiment eb
LEFT JOIN eb.batiment b LEFT JOIN eb.batiment b
@@ -140,7 +141,8 @@ public interface EnqueteBatimentRepository extends JpaRepository<EnqueteBatiment
u.id, u.id,
u.nom, u.nom,
u.prenom u.prenom,
eb.statutEnquete
) )
FROM EnqueteBatiment eb FROM EnqueteBatiment eb
LEFT JOIN eb.batiment b LEFT JOIN eb.batiment b
@@ -187,7 +189,8 @@ public interface EnqueteBatimentRepository extends JpaRepository<EnqueteBatiment
u.id, u.id,
u.nom, u.nom,
u.prenom u.prenom,
eb.statutEnquete
) )
FROM EnqueteBatiment eb FROM EnqueteBatiment eb
LEFT JOIN eb.batiment b LEFT JOIN eb.batiment b
@@ -240,7 +243,8 @@ public interface EnqueteBatimentRepository extends JpaRepository<EnqueteBatiment
u.id, u.id,
u.nom, u.nom,
u.prenom u.prenom,
eb.statutEnquete
) )
FROM EnqueteBatiment eb FROM EnqueteBatiment eb
LEFT JOIN eb.batiment b LEFT JOIN eb.batiment b
@@ -290,7 +294,8 @@ public interface EnqueteBatimentRepository extends JpaRepository<EnqueteBatiment
u.id, u.id,
u.nom, u.nom,
u.prenom u.prenom,
eb.statutEnquete
) )
FROM EnqueteBatiment eb FROM EnqueteBatiment eb
LEFT JOIN eb.batiment b LEFT JOIN eb.batiment b

View File

@@ -88,7 +88,8 @@ public interface EnqueteUniteLogementRepository extends JpaRepository<EnqueteUni
u.prenom, u.prenom,
ex.id, ex.id,
ex.annee ex.annee,
eul.statutEnquete
) )
FROM EnqueteUniteLogement eul FROM EnqueteUniteLogement eul
LEFT JOIN eul.uniteLogement ul LEFT JOIN eul.uniteLogement ul
@@ -136,7 +137,8 @@ public interface EnqueteUniteLogementRepository extends JpaRepository<EnqueteUni
u.prenom, u.prenom,
ex.id, ex.id,
ex.annee ex.annee,
eul.statutEnquete
) )
FROM EnqueteUniteLogement eul FROM EnqueteUniteLogement eul
LEFT JOIN eul.uniteLogement ul LEFT JOIN eul.uniteLogement ul
@@ -185,7 +187,8 @@ public interface EnqueteUniteLogementRepository extends JpaRepository<EnqueteUni
u.prenom, u.prenom,
ex.id, ex.id,
ex.annee ex.annee,
eul.statutEnquete
) )
FROM EnqueteUniteLogement eul FROM EnqueteUniteLogement eul
LEFT JOIN eul.uniteLogement ul LEFT JOIN eul.uniteLogement ul
@@ -240,7 +243,8 @@ public interface EnqueteUniteLogementRepository extends JpaRepository<EnqueteUni
u.prenom, u.prenom,
ex.id, ex.id,
ex.annee ex.annee,
eul.statutEnquete
) )
FROM EnqueteUniteLogement eul FROM EnqueteUniteLogement eul
LEFT JOIN eul.uniteLogement ul LEFT JOIN eul.uniteLogement ul
@@ -291,7 +295,8 @@ public interface EnqueteUniteLogementRepository extends JpaRepository<EnqueteUni
u.prenom, u.prenom,
ex.id, ex.id,
ex.annee ex.annee,
eul.statutEnquete
) )
FROM EnqueteUniteLogement eul FROM EnqueteUniteLogement eul
LEFT JOIN eul.uniteLogement ul LEFT JOIN eul.uniteLogement ul
@@ -348,7 +353,8 @@ public interface EnqueteUniteLogementRepository extends JpaRepository<EnqueteUni
u.prenom, u.prenom,
ex.id, ex.id,
ex.annee ex.annee,
eul.statutEnquete
) )
FROM EnqueteUniteLogement eul FROM EnqueteUniteLogement eul
LEFT JOIN eul.uniteLogement ul LEFT JOIN eul.uniteLogement ul
@@ -399,7 +405,8 @@ public interface EnqueteUniteLogementRepository extends JpaRepository<EnqueteUni
u.prenom, u.prenom,
ex.id, ex.id,
ex.annee ex.annee,
eul.statutEnquete
) )
FROM EnqueteUniteLogement eul FROM EnqueteUniteLogement eul
LEFT JOIN eul.uniteLogement ul LEFT JOIN eul.uniteLogement ul

View File

@@ -9,10 +9,12 @@ import io.gmss.fiscad.entities.infocad.parametre.*;
import io.gmss.fiscad.entities.rfu.metier.*; import io.gmss.fiscad.entities.rfu.metier.*;
import io.gmss.fiscad.entities.rfu.parametre.Caracteristique; import io.gmss.fiscad.entities.rfu.parametre.Caracteristique;
import io.gmss.fiscad.entities.rfu.parametre.Exercice; import io.gmss.fiscad.entities.rfu.parametre.Exercice;
import io.gmss.fiscad.entities.rfu.parametre.ZoneRfu;
import io.gmss.fiscad.entities.user.AvoirFonction; import io.gmss.fiscad.entities.user.AvoirFonction;
import io.gmss.fiscad.entities.user.Fonction; import io.gmss.fiscad.entities.user.Fonction;
import io.gmss.fiscad.entities.user.Profile; import io.gmss.fiscad.entities.user.Profile;
import io.gmss.fiscad.entities.user.User; import io.gmss.fiscad.entities.user.User;
import io.gmss.fiscad.enums.StatutEnquete;
import io.gmss.fiscad.exceptions.BadRequestException; import io.gmss.fiscad.exceptions.BadRequestException;
import io.gmss.fiscad.exceptions.NotFoundException; import io.gmss.fiscad.exceptions.NotFoundException;
import io.gmss.fiscad.paylaods.request.crudweb.*; import io.gmss.fiscad.paylaods.request.crudweb.*;
@@ -31,6 +33,7 @@ import io.gmss.fiscad.persistence.repositories.user.UserRepository;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.Optional; import java.util.Optional;
@AllArgsConstructor @AllArgsConstructor
@@ -606,6 +609,7 @@ public class EntityFromPayLoadService {
eul.setNumCompteurSoneb(enqueteUniteLogementPayloadWeb.getNumCompteurSoneb()); eul.setNumCompteurSoneb(enqueteUniteLogementPayloadWeb.getNumCompteurSoneb());
eul.setDateDebutExemption(enqueteUniteLogementPayloadWeb.getDateDebutExemption()); eul.setDateDebutExemption(enqueteUniteLogementPayloadWeb.getDateDebutExemption());
eul.setDateFinExemption(enqueteUniteLogementPayloadWeb.getDateFinExemption()); eul.setDateFinExemption(enqueteUniteLogementPayloadWeb.getDateFinExemption());
eul.setStatutEnquete(StatutEnquete.EN_COURS);
return eul; return eul;
} }
@@ -613,7 +617,7 @@ public class EntityFromPayLoadService {
public EnqueteBatiment getEnqueteBatimentFromPayLoadWeb(EnqueteBatimentPayloadWeb enqueteBatimentPayloadWeb){ public EnqueteBatiment getEnqueteBatimentFromPayLoadWeb(EnqueteBatimentPayloadWeb enqueteBatimentPayloadWeb){
EnqueteBatiment enqueteBatiment = new EnqueteBatiment(); EnqueteBatiment enqueteBatiment = new EnqueteBatiment();
if (enqueteBatimentPayloadWeb.getId()!=null) if (enqueteBatimentPayloadWeb.getId()!=null)
enqueteBatimentRepository.findById(enqueteBatimentPayloadWeb.getId()).orElse(new EnqueteBatiment()); enqueteBatiment=enqueteBatimentRepository.findById(enqueteBatimentPayloadWeb.getId()).orElse(new EnqueteBatiment());
// ====================== // ======================
// Relations (sans hit DB) // Relations (sans hit DB)
@@ -672,7 +676,70 @@ public class EntityFromPayLoadService {
enqueteBatiment.setAutreCaracteristiquePhysique(enqueteBatimentPayloadWeb.getAutreCaracteristiquePhysique()); enqueteBatiment.setAutreCaracteristiquePhysique(enqueteBatimentPayloadWeb.getAutreCaracteristiquePhysique());
enqueteBatiment.setNbreEtage(enqueteBatimentPayloadWeb.getNbreEtage()); enqueteBatiment.setNbreEtage(enqueteBatimentPayloadWeb.getNbreEtage());
enqueteBatiment.setStatutEnquete(StatutEnquete.EN_COURS);
return enqueteBatiment; return enqueteBatiment;
} }
public Enquete getEnqueteFromPayLoadWeb(EnquetePayLoadWeb enquetePayLoadWeb){
Enquete enquete = new Enquete();
if (enquetePayLoadWeb.getId()!=null)
enquete=enqueteRepository.findById(enquetePayLoadWeb.getId()).orElse(new Enquete());
// ======================
// Relations (sans hit DB)
// ======================
if (enquetePayLoadWeb.getParcelleId() != null) {
Parcelle parcelle = new Parcelle();
parcelle.setId(enquetePayLoadWeb.getParcelleId());
enquete.setParcelle(parcelle);
}
if (enquetePayLoadWeb.getPersonneId() != null) {
Personne personne = new Personne();
personne.setId(enquetePayLoadWeb.getPersonneId());
enquete.setPersonne(personne);
}
if (enquetePayLoadWeb.getEnqueteurId() != null) {
User user = new User();
user.setId(enquetePayLoadWeb.getEnqueteurId());
enquete.setUser(user);
}
if (enquetePayLoadWeb.getZoneRfuId() != null) {
ZoneRfu zoneRfu = new ZoneRfu();
zoneRfu.setId(enquetePayLoadWeb.getZoneRfuId());
enquete.setZoneRfu(zoneRfu);
}
// ======================
// Champs simples
// ======================
enquete.setDateEnquete(LocalDate.now());
enquete.setLitige(enquetePayLoadWeb.getLitige());
enquete.setStatutEnquete(StatutEnquete.EN_COURS);
enquete.setObservationParticuliere(enquetePayLoadWeb.getObservation());
enquete.setAutreAdresse(enquetePayLoadWeb.getAutreAdresse());
enquete.setAutreNumeroTitreFoncier(enquetePayLoadWeb.getAutreNumeroTitreFoncier());
enquete.setNumeroTitreFoncier(enquetePayLoadWeb.getNumeroTitreFoncier());
enquete.setDateDebutExcemption(enquetePayLoadWeb.getDateDebutExemption());
enquete.setDateFinExcemption(enquetePayLoadWeb.getDateFinExemption());
enquete.setNbreBatiment(enquetePayLoadWeb.getNbreBatiment());
enquete.setNbrePiscine(enquetePayLoadWeb.getNbrePiscine());
enquete.setNbreIndivisiaire(enquetePayLoadWeb.getNbreIndivisiaire());
enquete.setNbreCoProprietaire(enquetePayLoadWeb.getNbreCoProprietaire());
enquete.setNumEntreeParcelle(enquetePayLoadWeb.getNumEntreeParcelle());
enquete.setNomRue(enquetePayLoadWeb.getNomRue());
enquete.setNumRue(enquetePayLoadWeb.getNumRue());
enquete.setSuperficie(enquetePayLoadWeb.getSuperficie());
enquete.setMontantMensuelleLocation(enquetePayLoadWeb.getMontantMensuelleLocation());
enquete.setMontantAnnuelleLocation(enquetePayLoadWeb.getMontantAnnuelleLocation());
enquete.setValeurParcelleEstime(enquetePayLoadWeb.getValeurParcelleEstime());
enquete.setValeurParcelleReel(enquetePayLoadWeb.getValeurParcelleReel());
return enquete;
}
} }