develop #143

Merged
judaur2005 merged 6 commits from develop into main 2026-03-08 13:55:12 +00:00
7 changed files with 226 additions and 33 deletions
Showing only changes of commit bdb08b88fd - Show all commits

View File

@@ -4,6 +4,7 @@ import io.gmss.fiscad.entities.rfu.parametre.BaremRfuNonBati;
import io.gmss.fiscad.exceptions.*; import io.gmss.fiscad.exceptions.*;
import io.gmss.fiscad.interfaces.rfu.parametre.BaremRfuNonBatiService; import io.gmss.fiscad.interfaces.rfu.parametre.BaremRfuNonBatiService;
import io.gmss.fiscad.paylaods.ApiResponse; import io.gmss.fiscad.paylaods.ApiResponse;
import io.gmss.fiscad.paylaods.request.crudweb.BaremRfuNonBatiPayloadWeb;
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;
@@ -34,11 +35,11 @@ public class BaremRfuNonBatiController {
@PostMapping("/create") @PostMapping("/create")
public ResponseEntity<?> createBaremRfuNonBati(@RequestBody @Valid @Validated BaremRfuNonBati baremRfuNonBati) { public ResponseEntity<?> createBaremRfuNonBati(@RequestBody @Valid @Validated BaremRfuNonBatiPayloadWeb baremRfuNonBatiPayloadWeb) {
try { try {
baremRfuNonBati = baremRfuNonBatiService.createBaremRfuNonBati(baremRfuNonBati); baremRfuNonBatiPayloadWeb = baremRfuNonBatiService.createBaremRfuNonBati(baremRfuNonBatiPayloadWeb);
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, baremRfuNonBati, "BaremRfuNonBati créé avec succès."), new ApiResponse<>(true, baremRfuNonBatiPayloadWeb, "BaremRfuNonBati créé avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -58,10 +59,10 @@ public class BaremRfuNonBatiController {
} }
@PutMapping("/update/{id}") @PutMapping("/update/{id}")
public ResponseEntity<?> updateBaremRfuNonBati(@PathVariable Long id, @RequestBody BaremRfuNonBati baremRfuNonBati) { public ResponseEntity<?> updateBaremRfuNonBati(@PathVariable Long id, @RequestBody BaremRfuNonBatiPayloadWeb baremRfuNonBatiPayloadWeb) {
try { try {
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, baremRfuNonBatiService.updateBaremRfuNonBati(id, baremRfuNonBati), "BaremRfuNonBati mis à jour avec succès."), new ApiResponse<>(true, baremRfuNonBatiService.updateBaremRfuNonBati(id, baremRfuNonBatiPayloadWeb), "BaremRfuNonBati mis à jour avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {
@@ -156,7 +157,31 @@ public class BaremRfuNonBatiController {
public ResponseEntity<?> getBaremRfuNonBatiById(@PathVariable Long id) { public ResponseEntity<?> getBaremRfuNonBatiById(@PathVariable Long id) {
try { try {
return new ResponseEntity<>( return new ResponseEntity<>(
new ApiResponse<>(true, baremRfuNonBatiService.getBaremRfuNonBatiById(id), "BaremRfuNonBati trouvée avec succès."), new ApiResponse<>(true, baremRfuNonBatiService.getBaremRfuNonBatiById(id).orElse(null), "BaremRfuNonBati trouvé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("/by-commune-id/by-zone-id/{communeId}/{zoneId}")
public ResponseEntity<?> getBaremRfuNonBatiByCommineAndZoneId(@PathVariable Long communeId, Long zoneId) {
try {
return new ResponseEntity<>(
new ApiResponse<>(true, baremRfuNonBatiService.getBaremRfuNonBatiByCommuneAndZoneId(communeId,zoneId).orElse(null), "BaremRfuNonBati trouvée avec succès."),
HttpStatus.OK HttpStatus.OK
); );
} catch (HttpClientErrorException.MethodNotAllowed e) { } catch (HttpClientErrorException.MethodNotAllowed e) {

View File

@@ -23,7 +23,7 @@ public class BaremRfuNonBati extends BaseEntity implements Serializable {
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
private Long valeurAdministrative; private Long valeurAdministrative;
private float taux; private Float taux;
@ManyToOne @ManyToOne
private Commune commune; private Commune commune;
@ManyToOne @ManyToOne

View File

@@ -4,38 +4,42 @@ import io.gmss.fiscad.entities.rfu.parametre.BaremRfuNonBati;
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.parametre.BaremRfuNonBatiService; import io.gmss.fiscad.interfaces.rfu.parametre.BaremRfuNonBatiService;
import io.gmss.fiscad.paylaods.request.crudweb.BaremRfuNonBatiPayloadWeb;
import io.gmss.fiscad.persistence.repositories.rfu.parametre.BaremRfuNonBatiRepository; import io.gmss.fiscad.persistence.repositories.rfu.parametre.BaremRfuNonBatiRepository;
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 BaremRfuNonBatiServiceImpl implements BaremRfuNonBatiService { public class BaremRfuNonBatiServiceImpl implements BaremRfuNonBatiService {
private final BaremRfuNonBatiRepository baremRfuNonBatiRepository; private final BaremRfuNonBatiRepository baremRfuNonBatiRepository;
private final EntityFromPayLoadService entityFromPayLoadService;
public BaremRfuNonBatiServiceImpl(BaremRfuNonBatiRepository baremRfuNonBatiRepository) {
this.baremRfuNonBatiRepository = baremRfuNonBatiRepository;
}
@Override @Override
public BaremRfuNonBati createBaremRfuNonBati(BaremRfuNonBati baremRfuNonBati) throws BadRequestException { public BaremRfuNonBatiPayloadWeb createBaremRfuNonBati(BaremRfuNonBatiPayloadWeb baremRfuNonBatiPayloadWeb) throws BadRequestException {
if (baremRfuNonBati.getId() != null) { if (baremRfuNonBatiPayloadWeb.getId() != null) {
throw new BadRequestException("Impossible de créer une nouvelle campgne ayant un id non null."); throw new BadRequestException("Impossible de créer une nouvelle campgne ayant un id non null.");
} }
return baremRfuNonBatiRepository.save(baremRfuNonBati); BaremRfuNonBati baremRfuNonBati= entityFromPayLoadService.getBaremRfuNonBatiFromPayLoadWeb(baremRfuNonBatiPayloadWeb);
baremRfuNonBati=baremRfuNonBatiRepository.save(baremRfuNonBati);
return baremRfuNonBatiRepository.findByIdToDto(baremRfuNonBati.getId()).orElse(null);
} }
@Override @Override
public BaremRfuNonBati updateBaremRfuNonBati(Long id, BaremRfuNonBati baremRfuNonBati) throws NotFoundException { public BaremRfuNonBatiPayloadWeb updateBaremRfuNonBati(Long id, BaremRfuNonBatiPayloadWeb baremRfuNonBatiPayloadWeb) throws NotFoundException {
if (baremRfuNonBati.getId() == null) { if (baremRfuNonBatiPayloadWeb.getId() == null) {
throw new BadRequestException("Impossible de mettre à jour une nouvelle baremRfuNonBati ayant un id null."); throw new BadRequestException("Impossible de mettre à jour une nouvelle baremRfuNonBati ayant un id null.");
} }
if (!baremRfuNonBatiRepository.existsById(baremRfuNonBati.getId())) { if (!baremRfuNonBatiRepository.existsById(baremRfuNonBatiPayloadWeb.getId())) {
throw new NotFoundException("Impossible de trouver la baremRfuNonBati spécifiée dans notre base de données."); throw new NotFoundException("Impossible de trouver la baremRfuNonBati spécifiée dans notre base de données.");
} }
return baremRfuNonBatiRepository.save(baremRfuNonBati); BaremRfuNonBati baremRfuNonBati= entityFromPayLoadService.getBaremRfuNonBatiFromPayLoadWeb(baremRfuNonBatiPayloadWeb);
baremRfuNonBati=baremRfuNonBatiRepository.save(baremRfuNonBati);
return baremRfuNonBatiRepository.findByIdToDto(baremRfuNonBati.getId()).orElse(null);
} }
@Override @Override
@@ -48,20 +52,27 @@ public class BaremRfuNonBatiServiceImpl implements BaremRfuNonBatiService {
} }
} }
@Override @Override
public Page<BaremRfuNonBati> getBaremRfuNonBatiList(Pageable pageable) { public Page<BaremRfuNonBatiPayloadWeb> getBaremRfuNonBatiList(Pageable pageable) {
return baremRfuNonBatiRepository.findAll(pageable); return baremRfuNonBatiRepository.findAllPayloadToDtoPaged(pageable);
} }
@Override @Override
public List<BaremRfuNonBati> getBaremRfuNonBatiList() { public List<BaremRfuNonBatiPayloadWeb> getBaremRfuNonBatiList() {
return baremRfuNonBatiRepository.findAll(); return baremRfuNonBatiRepository.findAllPayloadToDto();
} }
@Override @Override
public Optional<BaremRfuNonBati> getBaremRfuNonBatiById(Long id) { public Optional<BaremRfuNonBatiPayloadWeb> getBaremRfuNonBatiById(Long id) {
return baremRfuNonBatiRepository.findById(id); return baremRfuNonBatiRepository.findByIdToDto(id);
} }
@Override
public Optional<BaremRfuNonBatiPayloadWeb> getBaremRfuNonBatiByCommuneAndZoneId(Long communeId,Long zoneId) {
return baremRfuNonBatiRepository.findByCommuneAndZoneToDto(communeId,zoneId);
}
} }

View File

@@ -3,6 +3,7 @@ package io.gmss.fiscad.interfaces.rfu.parametre;
import io.gmss.fiscad.entities.rfu.parametre.BaremRfuNonBati; import io.gmss.fiscad.entities.rfu.parametre.BaremRfuNonBati;
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.BaremRfuNonBatiPayloadWeb;
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,17 +12,18 @@ import java.util.Optional;
public interface BaremRfuNonBatiService { public interface BaremRfuNonBatiService {
BaremRfuNonBati createBaremRfuNonBati(BaremRfuNonBati baremRfuNonBati) throws BadRequestException; BaremRfuNonBatiPayloadWeb createBaremRfuNonBati(BaremRfuNonBatiPayloadWeb baremRfuNonBatiPayloadWeb) throws BadRequestException;
BaremRfuNonBati updateBaremRfuNonBati(Long id, BaremRfuNonBati baremRfuNonBati) throws NotFoundException; BaremRfuNonBatiPayloadWeb updateBaremRfuNonBati(Long id, BaremRfuNonBatiPayloadWeb baremRfuNonBatiPayloadWeb) throws NotFoundException;
void deleteBaremRfuNonBati(Long id) throws NotFoundException; void deleteBaremRfuNonBati(Long id) throws NotFoundException;
Page<BaremRfuNonBati> getBaremRfuNonBatiList(Pageable pageable); Page<BaremRfuNonBatiPayloadWeb> getBaremRfuNonBatiList(Pageable pageable);
List<BaremRfuNonBati> getBaremRfuNonBatiList(); List<BaremRfuNonBatiPayloadWeb> getBaremRfuNonBatiList();
Optional<BaremRfuNonBati> getBaremRfuNonBatiById(Long id); Optional<BaremRfuNonBatiPayloadWeb> getBaremRfuNonBatiById(Long id);
Optional<BaremRfuNonBatiPayloadWeb> getBaremRfuNonBatiByCommuneAndZoneId(Long communeId,Long zoneId);
} }

View File

@@ -15,18 +15,18 @@ public class BaremRfuNonBatiPayloadWeb {
private Long communeId; private Long communeId;
private String communeCode; private String communeCode;
private String communeNom; private String communeNom;
private Long zoneRfu; private Long zoneRfuId;
private String zoneRfuCode; private String zoneRfuCode;
private String zoneRfuNom; private String zoneRfuNom;
public BaremRfuNonBatiPayloadWeb(Long id, Long valeurAdministrative, float taux, Long communeId, String communeCode, String communeNom, Long zoneRfu, String zoneRfuCode, String zoneRfuNom) { public BaremRfuNonBatiPayloadWeb(Long id, Long valeurAdministrative, float taux, Long communeId, String communeCode, String communeNom, Long zoneRfuId, String zoneRfuCode, String zoneRfuNom) {
this.id = id; this.id = id;
this.valeurAdministrative = valeurAdministrative; this.valeurAdministrative = valeurAdministrative;
this.taux = taux; this.taux = taux;
this.communeId = communeId; this.communeId = communeId;
this.communeCode = communeCode; this.communeCode = communeCode;
this.communeNom = communeNom; this.communeNom = communeNom;
this.zoneRfu = zoneRfu; this.zoneRfuId = zoneRfuId;
this.zoneRfuCode = zoneRfuCode; this.zoneRfuCode = zoneRfuCode;
this.zoneRfuNom = zoneRfuNom; this.zoneRfuNom = zoneRfuNom;
} }

View File

@@ -2,11 +2,136 @@ package io.gmss.fiscad.persistence.repositories.rfu.parametre;
import io.gmss.fiscad.entities.rfu.parametre.BaremRfuNonBati; import io.gmss.fiscad.entities.rfu.parametre.BaremRfuNonBati;
import io.gmss.fiscad.entities.rfu.parametre.ZoneRfu; import io.gmss.fiscad.entities.rfu.parametre.ZoneRfu;
import io.gmss.fiscad.paylaods.request.crudweb.BaremRfuNonBatiPayloadWeb;
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.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional; import java.util.Optional;
public interface BaremRfuNonBatiRepository extends JpaRepository<BaremRfuNonBati, Long> { public interface BaremRfuNonBatiRepository extends JpaRepository<BaremRfuNonBati, Long> {
Optional<BaremRfuNonBati> findAllByCommune_IdAndZoneRfu_Id(Long communeId,Long zoneRfuId); Optional<BaremRfuNonBati> findAllByCommune_IdAndZoneRfu_Id(Long communeId,Long zoneRfuId);
@Query(
value = """
SELECT new io.gmss.fiscad.paylaods.request.crudweb.BaremRfuNonBatiPayloadWeb(
b.id,
b.valeurAdministrative,
b.taux,
c.id,
c.code,
c.nom,
z.id,
z.code,
z.nom
)
FROM BaremRfuNonBati b
LEFT JOIN b.commune c
LEFT JOIN b.zoneRfu z
""",
countQuery = """
SELECT COUNT(b)
FROM BaremRfuNonBati b
"""
)
Page<BaremRfuNonBatiPayloadWeb> findAllPayloadToDtoPaged(Pageable pageable);
@Query(
"""
SELECT new io.gmss.fiscad.paylaods.request.crudweb.BaremRfuNonBatiPayloadWeb(
b.id,
b.valeurAdministrative,
b.taux,
c.id,
c.code,
c.nom,
z.id,
z.code,
z.nom
)
FROM BaremRfuNonBati b
LEFT JOIN b.commune c
LEFT JOIN b.zoneRfu z
"""
)
List<BaremRfuNonBatiPayloadWeb> findAllPayloadToDto();
@Query(
"""
SELECT new io.gmss.fiscad.paylaods.request.crudweb.BaremRfuNonBatiPayloadWeb(
b.id,
b.valeurAdministrative,
b.taux,
c.id,
c.code,
c.nom,
z.id,
z.code,
z.nom
)
FROM BaremRfuNonBati b
LEFT JOIN b.commune c
LEFT JOIN b.zoneRfu z
WHERE c.id = :communeId
"""
)
List<BaremRfuNonBatiPayloadWeb> findByCommuneToDto(
@Param("communeId") Long communeId
);
@Query(
"""
SELECT new io.gmss.fiscad.paylaods.request.crudweb.BaremRfuNonBatiPayloadWeb(
b.id,
b.valeurAdministrative,
b.taux,
c.id,
c.code,
c.nom,
z.id,
z.code,
z.nom
)
FROM BaremRfuNonBati b
LEFT JOIN b.commune c
LEFT JOIN b.zoneRfu z
WHERE b.id = :BaremNonBatiId
"""
)
Optional<BaremRfuNonBatiPayloadWeb> findByIdToDto(
@Param("BaremNonBatiId") Long BaremNonBatiId
);
@Query(
value = """
SELECT new io.gmss.fiscad.paylaods.request.crudweb.BaremRfuNonBatiPayloadWeb(
b.id,
b.valeurAdministrative,
b.taux,
c.id,
c.code,
c.nom,
z.id,
z.code,
z.nom
)
FROM BaremRfuNonBati b
LEFT JOIN b.commune c
LEFT JOIN b.zoneRfu z
WHERE (:communeId IS NULL OR c.id = :communeId)
AND (:zoneId IS NULL OR z.id = :zoneId)
"""
)
Optional<BaremRfuNonBatiPayloadWeb> findByCommuneAndZoneToDto(
@Param("communeId") Long communeId,
@Param("zoneId") Long zoneId
);
} }

View File

@@ -24,6 +24,7 @@ import io.gmss.fiscad.persistence.repositories.infocad.metier.PieceRepository;
import io.gmss.fiscad.persistence.repositories.infocad.metier.UploadRepository; import io.gmss.fiscad.persistence.repositories.infocad.metier.UploadRepository;
import io.gmss.fiscad.persistence.repositories.infocad.parametre.*; import io.gmss.fiscad.persistence.repositories.infocad.parametre.*;
import io.gmss.fiscad.persistence.repositories.rfu.metier.*; import io.gmss.fiscad.persistence.repositories.rfu.metier.*;
import io.gmss.fiscad.persistence.repositories.rfu.parametre.BaremRfuNonBatiRepository;
import io.gmss.fiscad.persistence.repositories.rfu.parametre.BaremRfuRepository; import io.gmss.fiscad.persistence.repositories.rfu.parametre.BaremRfuRepository;
import io.gmss.fiscad.persistence.repositories.rfu.parametre.CaracteristiqueRepository; import io.gmss.fiscad.persistence.repositories.rfu.parametre.CaracteristiqueRepository;
import io.gmss.fiscad.persistence.repositories.rfu.parametre.ExerciceRepository; import io.gmss.fiscad.persistence.repositories.rfu.parametre.ExerciceRepository;
@@ -74,6 +75,7 @@ public class EntityFromPayLoadService {
private final EnqueteActiviteRepository enqueteActiviteRepository; private final EnqueteActiviteRepository enqueteActiviteRepository;
private final ExerciceRepository exerciceRepository ; private final ExerciceRepository exerciceRepository ;
private final BaremRfuRepository baremRfuRepository ; private final BaremRfuRepository baremRfuRepository ;
private final BaremRfuNonBatiRepository baremRfuNonBatiRepository ;
private final ImpositionsTfuRepository impositionsTfuRepository ; private final ImpositionsTfuRepository impositionsTfuRepository ;
@@ -927,4 +929,32 @@ public class EntityFromPayLoadService {
return impositionsTfu; return impositionsTfu;
} }
public BaremRfuNonBati getBaremRfuNonBatiFromPayLoadWeb(BaremRfuNonBatiPayloadWeb baremRfuNonBatiPayloadWeb){
BaremRfuNonBati baremRfuNonBati = new BaremRfuNonBati();
if (baremRfuNonBatiPayloadWeb.getId()!=null)
baremRfuNonBati=baremRfuNonBatiRepository.findById(baremRfuNonBatiPayloadWeb.getId()).orElse(new BaremRfuNonBati());
// ======================
// Relations (sans hit DB)
// ======================
if (baremRfuNonBatiPayloadWeb.getZoneRfuId() != null) {
ZoneRfu zoneRfu = new ZoneRfu();
zoneRfu.setId(baremRfuNonBatiPayloadWeb.getZoneRfuId());
baremRfuNonBati.setZoneRfu(zoneRfu);
}
if (baremRfuNonBatiPayloadWeb.getCommuneId() != null) {
Commune commune = new Commune();
commune.setId(baremRfuNonBatiPayloadWeb.getCommuneId());
baremRfuNonBati.setCommune(commune);
}
baremRfuNonBati.setTaux(baremRfuNonBatiPayloadWeb.getTaux());
return baremRfuNonBati;
}
} }