gestion revu de code en utilisant uniquement les DTO
All checks were successful
CI - Build & Test (develop) / build-and-test (pull_request) Successful in 30s

This commit is contained in:
2026-02-19 00:04:41 +01:00
parent 74a00a3856
commit 2c38fa1926
6 changed files with 69 additions and 10 deletions

View File

@@ -51,9 +51,9 @@ public class ParcelleController {
@PostMapping("/create") @PostMapping("/create")
public ResponseEntity<?> createParcelle(@RequestBody @Valid @Validated ParcellePayLoadWeb parcellePayLoadWeb) { public ResponseEntity<?> createParcelle(@RequestBody @Valid @Validated ParcellePayLoadWeb parcellePayLoadWeb) {
try { try {
Parcelle parcelle = parcelleService.createParcelle(parcellePayLoadWeb); parcellePayLoadWeb = parcelleService.createParcelle(parcellePayLoadWeb);
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, parcelle, "parcelle créée avec succès."), new ApiResponse<>(true, parcellePayLoadWeb, "parcelle créée avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {

View File

@@ -48,7 +48,7 @@ public class ParcelleServiceImpl implements ParcelleService {
@Override @Override
public Parcelle createParcelle(ParcellePayLoadWeb parcellePayLoadWeb) throws BadRequestException { public ParcellePayLoadWeb createParcelle(ParcellePayLoadWeb parcellePayLoadWeb) throws BadRequestException {
Optional<NatureDomaine> optionalNatureDomaine = natureDomaineRepository.findById(parcellePayLoadWeb.getNatureDomaineId()); Optional<NatureDomaine> optionalNatureDomaine = natureDomaineRepository.findById(parcellePayLoadWeb.getNatureDomaineId());
if (!optionalNatureDomaine.isPresent()) { if (!optionalNatureDomaine.isPresent()) {
throw new BadRequestException("Impossible d'enregistrer une parcelle avec une nature de domaine inexistant"); throw new BadRequestException("Impossible d'enregistrer une parcelle avec une nature de domaine inexistant");
@@ -61,11 +61,12 @@ public class ParcelleServiceImpl implements ParcelleService {
parcelle.setNatureDomaine(optionalNatureDomaine.orElse(null)); parcelle.setNatureDomaine(optionalNatureDomaine.orElse(null));
parcelle.setQuartier(optionalQuartier.orElse(null)); parcelle.setQuartier(optionalQuartier.orElse(null));
parcelle = getParcelleFromPayload(parcelle, parcellePayLoadWeb); parcelle = getParcelleFromPayload(parcelle, parcellePayLoadWeb);
return parcelleRepository.save(parcelle); parcelle= parcelleRepository.save(parcelle);
return parcelleRepository.findParcelleToDtoById(parcelle.getId()).orElse(null);
} }
@Override @Override
public Parcelle updateParcelle(Long id, ParcellePayLoadWeb parcellePayLoadWeb) throws NotFoundException { public ParcellePayLoadWeb updateParcelle(Long id, ParcellePayLoadWeb parcellePayLoadWeb) throws NotFoundException {
Optional<Parcelle> optionalParcelle = parcelleRepository.findById(parcellePayLoadWeb.getId()); Optional<Parcelle> optionalParcelle = parcelleRepository.findById(parcellePayLoadWeb.getId());
if (!optionalParcelle.isPresent()) { if (!optionalParcelle.isPresent()) {
throw new NotFoundException("Impossible de trouver la parcelle que vous désirer modifier"); throw new NotFoundException("Impossible de trouver la parcelle que vous désirer modifier");
@@ -86,7 +87,8 @@ public class ParcelleServiceImpl implements ParcelleService {
parcelle.setNatureDomaine(optionalNatureDomaine.orElse(null)); parcelle.setNatureDomaine(optionalNatureDomaine.orElse(null));
parcelle.setQuartier(optionalQuartier.orElse(null)); parcelle.setQuartier(optionalQuartier.orElse(null));
parcelle = getParcelleFromPayload(optionalParcelle.get(), parcellePayLoadWeb); parcelle = getParcelleFromPayload(optionalParcelle.get(), parcellePayLoadWeb);
return parcelleRepository.save(parcelle); parcelle= parcelleRepository.save(parcelle);
return parcelleRepository.findParcelleToDtoById(parcelle.getId()).orElse(null);
} }
@Override @Override

View File

@@ -17,9 +17,9 @@ import java.util.Optional;
public interface ParcelleService { public interface ParcelleService {
Parcelle createParcelle(ParcellePayLoadWeb parcellePayLoadWeb) throws BadRequestException; ParcellePayLoadWeb createParcelle(ParcellePayLoadWeb parcellePayLoadWeb) throws BadRequestException;
Parcelle updateParcelle(Long id,ParcellePayLoadWeb parcellePayLoadWeb) throws NotFoundException; ParcellePayLoadWeb updateParcelle(Long id,ParcellePayLoadWeb parcellePayLoadWeb) throws NotFoundException;
void deleteParcelle(Long id) throws NotFoundException; void deleteParcelle(Long id) throws NotFoundException;
Optional<Parcelle> getParcelleById(Long id); Optional<Parcelle> getParcelleById(Long id);

View File

@@ -1,9 +1,10 @@
package io.gmss.fiscad.paylaods.request.crudweb; package io.gmss.fiscad.paylaods.request.crudweb;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate; import java.time.LocalDate;
@NoArgsConstructor
@Data @Data
public class BatimentPaylaodWeb { public class BatimentPaylaodWeb {
private Long id; private Long id;

View File

@@ -4,10 +4,11 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.gmss.fiscad.deserializer.LocalDateDeserializer; import io.gmss.fiscad.deserializer.LocalDateDeserializer;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.List; import java.util.List;
@NoArgsConstructor
@Data @Data
public class DeclarationNcPayloadWeb { public class DeclarationNcPayloadWeb {
private Long id; private Long id;

View File

@@ -274,6 +274,61 @@ public interface ParcelleRepository extends JpaRepository<Parcelle, Long>, JpaSp
); );
@Query("""
SELECT new io.gmss.fiscad.paylaods.request.crudweb.ParcellePayLoadWeb(
p.id,
p.q,
p.i,
p.p,
p.nup,
p.nupProvisoire,
p.numeroTitreFoncier,
p.longitude,
p.latitude,
p.altitude,
p.superficie,
p.observation,
p.situationGeographique,
p.numEntreeParcelle,
q.id,
q.code,
q.nom,
nd.id,
nd.libelle,
td.id,
td.libelle,
r.id,
r.numero,
r.nom,
pers.id,
pers.ifu,
pers.npi,
pers.nom,
pers.prenom,
pers.raisonSociale,
e.id
)
FROM Parcelle p
LEFT JOIN p.quartier q
LEFT JOIN p.natureDomaine nd
LEFT JOIN p.typeDomaine td
LEFT JOIN p.rue r
LEFT JOIN Enquete e
ON e.parcelle = p
AND e.dateEnquete = (
SELECT MAX(e2.dateEnquete)
FROM Enquete e2
WHERE e2.parcelle = p
)
LEFT JOIN e.personne pers
INNER JOIN SecteurDecoupage sd on sd.quartier=p.quartier
WHERE p.id = :parcelleId
""")
Optional<ParcellePayLoadWeb> findParcelleToDtoById(
@Param("parcelleId") Long parcelleId
);
@Query( @Query(
value = """ value = """
SELECT new io.gmss.fiscad.paylaods.request.crudweb.ParcellePayLoadWeb( SELECT new io.gmss.fiscad.paylaods.request.crudweb.ParcellePayLoadWeb(