Gestion des barem
Some checks failed
CI - Build & Test (develop) / build-and-test (pull_request) Failing after 9s

This commit is contained in:
2026-03-08 14:23:14 +01:00
parent d1c3cb190d
commit 5dcb2adf30
7 changed files with 226 additions and 33 deletions

View File

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

View File

@@ -23,7 +23,7 @@ public class BaremRfuNonBati extends BaseEntity implements Serializable {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private Long valeurAdministrative;
private float taux;
private Float taux;
@ManyToOne
private Commune commune;
@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.NotFoundException;
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.service.EntityFromPayLoadService;
import lombok.AllArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
@AllArgsConstructor
@Service
public class BaremRfuNonBatiServiceImpl implements BaremRfuNonBatiService {
private final BaremRfuNonBatiRepository baremRfuNonBatiRepository;
public BaremRfuNonBatiServiceImpl(BaremRfuNonBatiRepository baremRfuNonBatiRepository) {
this.baremRfuNonBatiRepository = baremRfuNonBatiRepository;
}
private final EntityFromPayLoadService entityFromPayLoadService;
@Override
public BaremRfuNonBati createBaremRfuNonBati(BaremRfuNonBati baremRfuNonBati) throws BadRequestException {
if (baremRfuNonBati.getId() != null) {
public BaremRfuNonBatiPayloadWeb createBaremRfuNonBati(BaremRfuNonBatiPayloadWeb baremRfuNonBatiPayloadWeb) throws BadRequestException {
if (baremRfuNonBatiPayloadWeb.getId() != 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
public BaremRfuNonBati updateBaremRfuNonBati(Long id, BaremRfuNonBati baremRfuNonBati) throws NotFoundException {
if (baremRfuNonBati.getId() == null) {
public BaremRfuNonBatiPayloadWeb updateBaremRfuNonBati(Long id, BaremRfuNonBatiPayloadWeb baremRfuNonBatiPayloadWeb) throws NotFoundException {
if (baremRfuNonBatiPayloadWeb.getId() == 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.");
}
return baremRfuNonBatiRepository.save(baremRfuNonBati);
BaremRfuNonBati baremRfuNonBati= entityFromPayLoadService.getBaremRfuNonBatiFromPayLoadWeb(baremRfuNonBatiPayloadWeb);
baremRfuNonBati=baremRfuNonBatiRepository.save(baremRfuNonBati);
return baremRfuNonBatiRepository.findByIdToDto(baremRfuNonBati.getId()).orElse(null);
}
@Override
@@ -48,20 +52,27 @@ public class BaremRfuNonBatiServiceImpl implements BaremRfuNonBatiService {
}
}
@Override
public Page<BaremRfuNonBati> getBaremRfuNonBatiList(Pageable pageable) {
return baremRfuNonBatiRepository.findAll(pageable);
public Page<BaremRfuNonBatiPayloadWeb> getBaremRfuNonBatiList(Pageable pageable) {
return baremRfuNonBatiRepository.findAllPayloadToDtoPaged(pageable);
}
@Override
public List<BaremRfuNonBati> getBaremRfuNonBatiList() {
return baremRfuNonBatiRepository.findAll();
public List<BaremRfuNonBatiPayloadWeb> getBaremRfuNonBatiList() {
return baremRfuNonBatiRepository.findAllPayloadToDto();
}
@Override
public Optional<BaremRfuNonBati> getBaremRfuNonBatiById(Long id) {
return baremRfuNonBatiRepository.findById(id);
public Optional<BaremRfuNonBatiPayloadWeb> getBaremRfuNonBatiById(Long 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.exceptions.BadRequestException;
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.Pageable;
@@ -11,17 +12,18 @@ import java.util.Optional;
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;
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 String communeCode;
private String communeNom;
private Long zoneRfu;
private Long zoneRfuId;
private String zoneRfuCode;
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.valeurAdministrative = valeurAdministrative;
this.taux = taux;
this.communeId = communeId;
this.communeCode = communeCode;
this.communeNom = communeNom;
this.zoneRfu = zoneRfu;
this.zoneRfuId = zoneRfuId;
this.zoneRfuCode = zoneRfuCode;
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.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.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional;
public interface BaremRfuNonBatiRepository extends JpaRepository<BaremRfuNonBati, Long> {
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.parametre.*;
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.CaracteristiqueRepository;
import io.gmss.fiscad.persistence.repositories.rfu.parametre.ExerciceRepository;
@@ -74,6 +75,7 @@ public class EntityFromPayLoadService {
private final EnqueteActiviteRepository enqueteActiviteRepository;
private final ExerciceRepository exerciceRepository ;
private final BaremRfuRepository baremRfuRepository ;
private final BaremRfuNonBatiRepository baremRfuNonBatiRepository ;
private final ImpositionsTfuRepository impositionsTfuRepository ;
@@ -927,4 +929,32 @@ public class EntityFromPayLoadService {
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;
}
}