Merge branch 'ch-evo-10-01-2024' into 'main'

Merge du code DU DAI sur les enquetes fiscales

See merge request christianakpona/fiscad!2
This commit is contained in:
2025-01-24 13:53:36 +00:00
24 changed files with 607 additions and 21 deletions

View File

@@ -1,8 +1,8 @@
package io.gmss.infocad.controllers.infocad.metier; package io.gmss.infocad.controllers.infocad.parametre;
import io.gmss.infocad.entities.infocad.metier.Bloc; import io.gmss.infocad.entities.infocad.parametre.Bloc;
import io.gmss.infocad.interfaces.infocad.metier.BlocService; import io.gmss.infocad.interfaces.infocad.parametre.BlocService;
import io.gmss.infocad.paylaods.ApiResponse; import io.gmss.infocad.paylaods.ApiResponse;
import io.gmss.infocad.security.CurrentUser; import io.gmss.infocad.security.CurrentUser;
import io.gmss.infocad.security.UserPrincipal; import io.gmss.infocad.security.UserPrincipal;

View File

@@ -7,7 +7,7 @@ package io.gmss.infocad.controllers.report;
import io.gmss.infocad.enums.FormatRapport; import io.gmss.infocad.enums.FormatRapport;
import io.gmss.infocad.paylaods.request.FiltreEnquetePayLoad; import io.gmss.infocad.paylaods.request.FiltreEnquetePayLoad;
import io.gmss.infocad.repositories.infocad.metier.BlocRepository; import io.gmss.infocad.repositories.infocad.parametre.BlocRepository;
import io.gmss.infocad.repositories.infocad.parametre.StructureRepository; import io.gmss.infocad.repositories.infocad.parametre.StructureRepository;
import io.gmss.infocad.service.ReportService; import io.gmss.infocad.service.ReportService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;

View File

@@ -0,0 +1,116 @@
package io.gmss.infocad.controllers.rfu.parametre;
import io.gmss.infocad.entities.rfu.parametre.Campagne;
import io.gmss.infocad.enums.TypeCampagne;
import io.gmss.infocad.exceptions.NotFoundException;
import io.gmss.infocad.interfaces.rfu.parametre.CampagneService;
import io.gmss.infocad.paylaods.ApiResponse;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@RestController
@RequestMapping("api/campagne")
public class CampagneController {
private final CampagneService campagneService;
public CampagneController(CampagneService campagneService) {
this.campagneService = campagneService;
}
@PostMapping("/create")
public ResponseEntity<?> createCampagne(@RequestBody @Valid @Validated Campagne campagne) {
try{
campagne = campagneService.createCampagne(campagne);
return new ResponseEntity<>(
new ApiResponse<>(true, campagne, "Campagne créé avec succès."),
HttpStatus.OK
);
}catch (Exception e){
return new ResponseEntity<>(
new ApiResponse<>(false, e.getMessage()),
HttpStatus.OK
);
}
}
@PutMapping("/update/{id}")
public ResponseEntity<?> updateCampagne(@PathVariable Long id, @RequestBody Campagne campagne) {
try{
return new ResponseEntity<>(
new ApiResponse<>(true, campagneService.updateCampagne(id, campagne), "Campagne mis à jour avec succès."),
HttpStatus.OK
);
}catch (Exception e){
return new ResponseEntity<>(
new ApiResponse<>(false, e.getMessage()),
HttpStatus.OK
);
}
}
@DeleteMapping("/delete/{id}")
public ResponseEntity<?> deleteCampagner(@PathVariable Long id) {
try{
campagneService.deleteCampagne(id);
return new ResponseEntity<>(
new ApiResponse<>(true,"Campagne supprimée avec succès."),
HttpStatus.OK
);
}catch (Exception e){
return new ResponseEntity<>(
new ApiResponse<>(false, e.getMessage()),
HttpStatus.OK
);
}
}
@GetMapping("/all")
public ResponseEntity<?> getAllCampagneList() {
return new ResponseEntity<>(
new ApiResponse<>(true, campagneService.getCampagneList(), "Liste des campagnes chargée avec succès."),
HttpStatus.OK
);
}
@GetMapping("/all-paged")
public ResponseEntity<?> getAllCampagnePaged(@RequestParam int pageNo, @RequestParam int pageSize) {
Pageable pageable = PageRequest.of(pageNo, pageSize);
return new ResponseEntity<>(
new ApiResponse<>(true, campagneService.getCampagneList(pageable), "Liste des campagnes chargée avec succès."),
HttpStatus.OK
);
}
@GetMapping("/id/{id}")
public ResponseEntity<?> getCampagneById(@PathVariable Long id) {
return new ResponseEntity<>(
new ApiResponse<>(true, campagneService.getCampagneById(id), "Campagne trouvée avec succès."),
HttpStatus.OK
);
}
@GetMapping("/type-campagne/{typeCampagne}")
public ResponseEntity<?> getCampagneByType(@PathVariable TypeCampagne typeCampagne) {
try{
return new ResponseEntity<>(
new ApiResponse<>(true, campagneService.getCampagnesByType(typeCampagne), "Liste des campagne par type chargée avec succès."),
HttpStatus.OK
);
}catch (NotFoundException e){
return new ResponseEntity<>(
new ApiResponse<>(false, e.getMessage()),
HttpStatus.OK
);
}
}
}

View File

@@ -0,0 +1,99 @@
package io.gmss.infocad.controllers.rfu.parametre;
import io.gmss.infocad.entities.rfu.parametre.Equipe;
import io.gmss.infocad.interfaces.rfu.parametre.EquipeService;
import io.gmss.infocad.paylaods.ApiResponse;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@RestController
@RequestMapping("api/equipe")
public class EquipeController {
private final EquipeService equipeService;
public EquipeController(EquipeService equipeService) {
this.equipeService = equipeService;
}
@PostMapping("/create")
public ResponseEntity<?> createEquipe(@RequestBody @Valid @Validated Equipe equipe) {
try{
equipe = equipeService.createEquipe(equipe);
return new ResponseEntity<>(
new ApiResponse<>(true, equipe, "Equipe créé avec succès."),
HttpStatus.OK
);
}catch (Exception e){
return new ResponseEntity<>(
new ApiResponse<>(false, e.getMessage()),
HttpStatus.OK
);
}
}
@PutMapping("/update/{id}")
public ResponseEntity<?> updateEquipe(@PathVariable Long id, @RequestBody Equipe equipe) {
try{
return new ResponseEntity<>(
new ApiResponse<>(true, equipeService.updateEquipe(id, equipe), "Equipe mis à jour avec succès."),
HttpStatus.OK
);
}catch (Exception e){
return new ResponseEntity<>(
new ApiResponse<>(false, e.getMessage()),
HttpStatus.OK
);
}
}
@DeleteMapping("/delete/{id}")
public ResponseEntity<?> deleteEquiper(@PathVariable Long id) {
try{
equipeService.deleteEquipe(id);
return new ResponseEntity<>(
new ApiResponse<>(true,"Equipe supprimée avec succès."),
HttpStatus.OK
);
}catch (Exception e){
return new ResponseEntity<>(
new ApiResponse<>(false, e.getMessage()),
HttpStatus.OK
);
}
}
@GetMapping("/all")
public ResponseEntity<?> getAllEquipeList() {
return new ResponseEntity<>(
new ApiResponse<>(true, equipeService.getEquipeList(), "Liste des equipes chargée avec succès."),
HttpStatus.OK
);
}
@GetMapping("/all-paged")
public ResponseEntity<?> getAllEquipePaged(@RequestParam int pageNo, @RequestParam int pageSize) {
Pageable pageable = PageRequest.of(pageNo, pageSize);
return new ResponseEntity<>(
new ApiResponse<>(true, equipeService.getEquipeList(pageable), "Liste des equipes chargée avec succès."),
HttpStatus.OK
);
}
@GetMapping("/id/{id}")
public ResponseEntity<?> getEquipeById(@PathVariable Long id) {
return new ResponseEntity<>(
new ApiResponse<>(true, equipeService.getEquipeById(id), "Equipe trouvée avec succès."),
HttpStatus.OK
);
}
}

View File

@@ -2,7 +2,7 @@ package io.gmss.infocad.entities.decoupage;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import io.gmss.infocad.entities.BaseEntity; import io.gmss.infocad.entities.BaseEntity;
import io.gmss.infocad.entities.infocad.metier.Bloc; import io.gmss.infocad.entities.infocad.parametre.Bloc;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;

View File

@@ -6,10 +6,13 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.gmss.infocad.deserializer.LocalDateDeserializer; import io.gmss.infocad.deserializer.LocalDateDeserializer;
import io.gmss.infocad.entities.BaseEntity; import io.gmss.infocad.entities.BaseEntity;
import io.gmss.infocad.entities.decoupage.Arrondissement; import io.gmss.infocad.entities.decoupage.Arrondissement;
import io.gmss.infocad.entities.infocad.parametre.Bloc;
import io.gmss.infocad.entities.infocad.parametre.NatureDomaine; import io.gmss.infocad.entities.infocad.parametre.NatureDomaine;
import io.gmss.infocad.entities.rfu.metier.CaracteristiqueParcelle; import io.gmss.infocad.entities.rfu.metier.CaracteristiqueParcelle;
import io.gmss.infocad.entities.rfu.metier.EnqueteBatiment; import io.gmss.infocad.entities.rfu.metier.EnqueteBatiment;
import io.gmss.infocad.entities.rfu.metier.EnqueteUniteLogement; import io.gmss.infocad.entities.rfu.metier.EnqueteUniteLogement;
import io.gmss.infocad.entities.rfu.parametre.Campagne;
import io.gmss.infocad.entities.rfu.parametre.Equipe;
import io.gmss.infocad.entities.user.User; import io.gmss.infocad.entities.user.User;
import io.gmss.infocad.enums.StatusEnquete; import io.gmss.infocad.enums.StatusEnquete;
import io.gmss.infocad.enums.StatutEnregistrement; import io.gmss.infocad.enums.StatutEnregistrement;
@@ -58,7 +61,12 @@ public class Enquete extends BaseEntity implements Serializable {
private Parcelle parcelle; private Parcelle parcelle;
@JsonIgnore @JsonIgnore
@ManyToOne @ManyToOne
private Bloc bloc; private Bloc bloc; //représente un secteur d'enquetes
@ManyToOne
private Campagne campagne;
@ManyToOne
private Equipe equipe;
@Enumerated(EnumType.STRING) @Enumerated(EnumType.STRING)
private StatusEnquete statusEnquete; private StatusEnquete statusEnquete;

View File

@@ -1,10 +1,11 @@
package io.gmss.infocad.entities.infocad.metier; package io.gmss.infocad.entities.infocad.parametre;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import io.gmss.infocad.entities.BaseEntity; import io.gmss.infocad.entities.BaseEntity;
import io.gmss.infocad.entities.decoupage.Arrondissement; import io.gmss.infocad.entities.decoupage.Arrondissement;
import io.gmss.infocad.entities.decoupage.Quartier; import io.gmss.infocad.entities.decoupage.Quartier;
import io.gmss.infocad.entities.infocad.parametre.Structure; import io.gmss.infocad.entities.infocad.metier.Enquete;
import io.gmss.infocad.entities.user.User;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@@ -17,6 +18,9 @@ import java.io.Serializable;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
/**
* Un bloc représente un secteur de découpage admin dans le cadre d'une enquete fiscale
*/
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Entity @Entity
@Data @Data
@@ -53,6 +57,9 @@ public class Bloc extends BaseEntity implements Serializable {
@JsonIgnore @JsonIgnore
@OneToMany(mappedBy = "bloc") @OneToMany(mappedBy = "bloc")
private List<Enquete> enquetes; private List<Enquete> enquetes;
@ManyToOne
private User chefSecteur;
public String getNomArrondissement() { public String getNomArrondissement() {
return arrondissement.getNom(); return arrondissement.getNom();
} }

View File

@@ -3,7 +3,6 @@ package io.gmss.infocad.entities.infocad.parametre;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import io.gmss.infocad.entities.BaseEntity; import io.gmss.infocad.entities.BaseEntity;
import io.gmss.infocad.entities.decoupage.Arrondissement; import io.gmss.infocad.entities.decoupage.Arrondissement;
import io.gmss.infocad.entities.infocad.metier.Bloc;
import io.gmss.infocad.entities.user.User; import io.gmss.infocad.entities.user.User;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
@@ -17,6 +16,10 @@ import java.io.Serializable;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
/**
* représente un centre d'impôt dans le cadre d'une enquête fiscale
*/
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Entity @Entity
@Data @Data

View File

@@ -0,0 +1,50 @@
package io.gmss.infocad.entities.rfu.parametre;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.gmss.infocad.deserializer.LocalDateDeserializer;
import io.gmss.infocad.entities.BaseEntity;
import io.gmss.infocad.entities.infocad.metier.Enquete;
import io.gmss.infocad.enums.TypeCampagne;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Where;
import javax.persistence.*;
import java.io.Serializable;
import java.time.LocalDate;
import java.util.List;
@EqualsAndHashCode(callSuper = true)
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
@Where(clause = " deleted = false")
public class Campagne extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String refAdministrative;
private String nom;
@JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateDebut;
@JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateFin;
@Enumerated(EnumType.STRING)
private TypeCampagne typeCampagne;
@JsonIgnore
@OneToMany(mappedBy = "campagne")
private List<Equipe> equipes;
@JsonIgnore
@OneToMany(mappedBy = "campagne")
private List<Enquete> enquetes;
}

View File

@@ -0,0 +1,41 @@
package io.gmss.infocad.entities.rfu.parametre;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.gmss.infocad.entities.BaseEntity;
import io.gmss.infocad.entities.infocad.metier.Enquete;
import io.gmss.infocad.entities.infocad.parametre.Bloc;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Where;
import javax.persistence.*;
import java.io.Serializable;
import java.util.List;
@EqualsAndHashCode(callSuper = true)
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
@Where(clause = " deleted = false")
public class Equipe extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String code;
private String nom;
@ManyToOne
private Bloc bloc;
@ManyToOne
private Campagne campagne;
@JsonIgnore
@OneToMany(mappedBy = "equipe")
private List<Participer> participers;
@JsonIgnore
@OneToMany(mappedBy = "equipe")
private List<Enquete> enquetes;
}

View File

@@ -0,0 +1,38 @@
package io.gmss.infocad.entities.rfu.parametre;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.gmss.infocad.deserializer.LocalDateDeserializer;
import io.gmss.infocad.entities.BaseEntity;
import io.gmss.infocad.entities.user.User;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Where;
import javax.persistence.*;
import java.io.Serializable;
import java.time.LocalDate;
@EqualsAndHashCode(callSuper = true)
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
@Where(clause = " deleted = false")
public class Participer extends BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateDebut;
@JsonFormat(pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate dateFin;
@ManyToOne
private Equipe equipe;
@ManyToOne
private User user;
}

View File

@@ -3,7 +3,9 @@ package io.gmss.infocad.entities.user;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import io.gmss.infocad.entities.BaseEntity; import io.gmss.infocad.entities.BaseEntity;
import io.gmss.infocad.entities.infocad.metier.Enquete; import io.gmss.infocad.entities.infocad.metier.Enquete;
import io.gmss.infocad.entities.infocad.parametre.Bloc;
import io.gmss.infocad.entities.infocad.parametre.Structure; import io.gmss.infocad.entities.infocad.parametre.Structure;
import io.gmss.infocad.entities.rfu.parametre.Participer;
import io.gmss.infocad.enums.UserRole; import io.gmss.infocad.enums.UserRole;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
@@ -55,6 +57,12 @@ public class User extends BaseEntity implements Serializable {
@JsonIgnore @JsonIgnore
@OneToMany(mappedBy = "user") @OneToMany(mappedBy = "user")
private List<Enquete> enquetes; private List<Enquete> enquetes;
@JsonIgnore
@OneToMany(mappedBy = "user")
private List<Participer> participers;
@JsonIgnore
@OneToMany(mappedBy = "chefSecteur")
private List<Bloc> blocs ;
public void setUsername(String username) { public void setUsername(String username) {
this.username = this.email; this.username = this.email;

View File

@@ -0,0 +1,8 @@
package io.gmss.infocad.enums;
public enum TypeCampagne {
ANNUELLE,
PERMANANTE
}

View File

@@ -1,6 +1,10 @@
package io.gmss.infocad.implementations.infocad.metier; package io.gmss.infocad.implementations.infocad.metier;
import io.gmss.infocad.entities.infocad.metier.*; import io.gmss.infocad.entities.infocad.metier.ActeurConcerne;
import io.gmss.infocad.entities.infocad.metier.Enquete;
import io.gmss.infocad.entities.infocad.metier.EnqueteFiltreResponse;
import io.gmss.infocad.entities.infocad.metier.Parcelle;
import io.gmss.infocad.entities.infocad.parametre.Bloc;
import io.gmss.infocad.entities.user.User; import io.gmss.infocad.entities.user.User;
import io.gmss.infocad.enums.StatusEnquete; import io.gmss.infocad.enums.StatusEnquete;
import io.gmss.infocad.exceptions.BadRequestException; import io.gmss.infocad.exceptions.BadRequestException;
@@ -14,9 +18,9 @@ import io.gmss.infocad.paylaods.response.*;
import io.gmss.infocad.repositories.decoupage.ArrondissementRepository; import io.gmss.infocad.repositories.decoupage.ArrondissementRepository;
import io.gmss.infocad.repositories.decoupage.CommuneRepository; import io.gmss.infocad.repositories.decoupage.CommuneRepository;
import io.gmss.infocad.repositories.infocad.metier.ActeurConcerneRepository; import io.gmss.infocad.repositories.infocad.metier.ActeurConcerneRepository;
import io.gmss.infocad.repositories.infocad.metier.BlocRepository;
import io.gmss.infocad.repositories.infocad.metier.EnqueteRepository; import io.gmss.infocad.repositories.infocad.metier.EnqueteRepository;
import io.gmss.infocad.repositories.infocad.metier.ParcelleRepository; import io.gmss.infocad.repositories.infocad.metier.ParcelleRepository;
import io.gmss.infocad.repositories.infocad.parametre.BlocRepository;
import io.gmss.infocad.repositories.user.UserRepository; import io.gmss.infocad.repositories.user.UserRepository;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;

View File

@@ -1,14 +1,14 @@
package io.gmss.infocad.implementations.infocad.metier; package io.gmss.infocad.implementations.infocad.parametre;
import io.gmss.infocad.entities.decoupage.Arrondissement; import io.gmss.infocad.entities.decoupage.Arrondissement;
import io.gmss.infocad.entities.infocad.metier.Bloc; import io.gmss.infocad.entities.infocad.parametre.Bloc;
import io.gmss.infocad.entities.infocad.parametre.Structure; import io.gmss.infocad.entities.infocad.parametre.Structure;
import io.gmss.infocad.exceptions.BadRequestException; import io.gmss.infocad.exceptions.BadRequestException;
import io.gmss.infocad.exceptions.NotFoundException; import io.gmss.infocad.exceptions.NotFoundException;
import io.gmss.infocad.interfaces.decoupage.ArrondissementService; import io.gmss.infocad.interfaces.decoupage.ArrondissementService;
import io.gmss.infocad.interfaces.infocad.metier.BlocService; import io.gmss.infocad.interfaces.infocad.parametre.BlocService;
import io.gmss.infocad.interfaces.infocad.parametre.StructureService; import io.gmss.infocad.interfaces.infocad.parametre.StructureService;
import io.gmss.infocad.repositories.infocad.metier.BlocRepository; import io.gmss.infocad.repositories.infocad.parametre.BlocRepository;
import io.gmss.infocad.service.StringService; import io.gmss.infocad.service.StringService;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;

View File

@@ -0,0 +1,72 @@
package io.gmss.infocad.implementations.rfu.parametre;
import io.gmss.infocad.entities.rfu.parametre.Campagne;
import io.gmss.infocad.enums.TypeCampagne;
import io.gmss.infocad.exceptions.BadRequestException;
import io.gmss.infocad.exceptions.NotFoundException;
import io.gmss.infocad.interfaces.rfu.parametre.CampagneService;
import io.gmss.infocad.repositories.rfu.parametre.CampagneRepository;
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;
@Service
public class CampagneServiceImpl implements CampagneService {
private final CampagneRepository campagneRepository;
public CampagneServiceImpl(CampagneRepository campagneRepository) {
this.campagneRepository = campagneRepository;
}
@Override
public Campagne createCampagne(Campagne campagne) throws BadRequestException {
if(campagne.getId() != null ){
throw new BadRequestException("Impossible de créer une nouvelle campgne ayant un id non null.");
}
return campagneRepository.save(campagne);
}
@Override
public Campagne updateCampagne(Long id, Campagne campagne) throws NotFoundException {
if(campagne.getId() == null ){
throw new BadRequestException("Impossible de mettre à jour une nouvelle campagne ayant un id null.");
}
if(!campagneRepository.existsById(campagne.getId())){
throw new NotFoundException("Impossible de trouver la campagne spécifiée dans notre base de données.");
}
return campagneRepository.save(campagne);
}
@Override
public void deleteCampagne(Long id) throws NotFoundException {
Optional<Campagne> campagneOptional = campagneRepository.findById(id);
if(campagneOptional.isPresent()){
campagneRepository.deleteById(campagneOptional.get().getId());
}else{
throw new NotFoundException("Impossible de trouver la campagne spécifiée dans notre base de données.");
}
}
@Override
public Page<Campagne> getCampagneList(Pageable pageable) {
return campagneRepository.findAll(pageable);
}
@Override
public List<Campagne> getCampagneList() {
return campagneRepository.findAll();
}
@Override
public List<Campagne> getCampagnesByType(TypeCampagne typeCampagne) {
return campagneRepository.findAllByTypeCampagne(typeCampagne);
}
@Override
public Optional<Campagne> getCampagneById(Long id) {
return campagneRepository.findById(id);
}
}

View File

@@ -0,0 +1,67 @@
package io.gmss.infocad.implementations.rfu.parametre;
import io.gmss.infocad.entities.rfu.parametre.Equipe;
import io.gmss.infocad.exceptions.BadRequestException;
import io.gmss.infocad.exceptions.NotFoundException;
import io.gmss.infocad.interfaces.rfu.parametre.EquipeService;
import io.gmss.infocad.repositories.rfu.parametre.EquipeRepository;
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;
@Service
public class EquipeServiceImpl implements EquipeService {
private final EquipeRepository equipeRepository;
public EquipeServiceImpl(EquipeRepository equipeRepository) {
this.equipeRepository = equipeRepository;
}
@Override
public Equipe createEquipe(Equipe equipe) throws BadRequestException {
if(equipe.getId() != null ){
throw new BadRequestException("Impossible de créer une nouvelle equipe ayant un id non null.");
}
return equipeRepository.save(equipe);
}
@Override
public Equipe updateEquipe(Long id, Equipe equipe) throws NotFoundException {
if(equipe.getId() == null ){
throw new BadRequestException("Impossible de mettre à jour une nouvelle equipe ayant un id null.");
}
if(!equipeRepository.existsById(equipe.getId())){
throw new NotFoundException("Impossible de trouver la equipe spécifiée dans notre base de données.");
}
return equipeRepository.save(equipe);
}
@Override
public void deleteEquipe(Long id) throws NotFoundException {
Optional<Equipe> equipeOptional = equipeRepository.findById(id);
if(equipeOptional.isPresent()){
equipeRepository.deleteById(equipeOptional.get().getId());
}else{
throw new NotFoundException("Impossible de trouver la equipe spécifiée dans notre base de données.");
}
}
@Override
public Page<Equipe> getEquipeList(Pageable pageable) {
return equipeRepository.findAll(pageable);
}
@Override
public List<Equipe> getEquipeList() {
return equipeRepository.findAll();
}
@Override
public Optional<Equipe> getEquipeById(Long id) {
return equipeRepository.findById(id);
}
}

View File

@@ -1,6 +1,6 @@
package io.gmss.infocad.interfaces.infocad.metier; package io.gmss.infocad.interfaces.infocad.parametre;
import io.gmss.infocad.entities.infocad.metier.Bloc; import io.gmss.infocad.entities.infocad.parametre.Bloc;
import io.gmss.infocad.exceptions.BadRequestException; import io.gmss.infocad.exceptions.BadRequestException;
import io.gmss.infocad.exceptions.NotFoundException; import io.gmss.infocad.exceptions.NotFoundException;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;

View File

@@ -0,0 +1,23 @@
package io.gmss.infocad.interfaces.rfu.parametre;
import io.gmss.infocad.entities.rfu.parametre.Campagne;
import io.gmss.infocad.enums.TypeCampagne;
import io.gmss.infocad.exceptions.BadRequestException;
import io.gmss.infocad.exceptions.NotFoundException;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import java.util.List;
import java.util.Optional;
public interface CampagneService {
Campagne createCampagne(Campagne campagne) throws BadRequestException;
Campagne updateCampagne(Long id, Campagne campagne) throws NotFoundException;
void deleteCampagne(Long id) throws NotFoundException;
Page<Campagne> getCampagneList(Pageable pageable);
List<Campagne> getCampagneList();
List<Campagne> getCampagnesByType(TypeCampagne typeCampagne);
Optional<Campagne> getCampagneById(Long id);
}

View File

@@ -0,0 +1,21 @@
package io.gmss.infocad.interfaces.rfu.parametre;
import io.gmss.infocad.entities.rfu.parametre.Equipe;
import io.gmss.infocad.exceptions.BadRequestException;
import io.gmss.infocad.exceptions.NotFoundException;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import java.util.List;
import java.util.Optional;
public interface EquipeService {
Equipe createEquipe(Equipe campagne) throws BadRequestException;
Equipe updateEquipe(Long id, Equipe campagne) throws NotFoundException;
void deleteEquipe(Long id) throws NotFoundException;
Page<Equipe> getEquipeList(Pageable pageable);
List<Equipe> getEquipeList();
Optional<Equipe> getEquipeById(Long id);
}

View File

@@ -1,7 +1,7 @@
package io.gmss.infocad.repositories.infocad.metier; package io.gmss.infocad.repositories.infocad.parametre;
import io.gmss.infocad.entities.decoupage.Arrondissement; import io.gmss.infocad.entities.decoupage.Arrondissement;
import io.gmss.infocad.entities.infocad.metier.Bloc; import io.gmss.infocad.entities.infocad.parametre.Bloc;
import io.gmss.infocad.paylaods.response.BlocEnqResponse; import io.gmss.infocad.paylaods.response.BlocEnqResponse;
import io.gmss.infocad.paylaods.response.BlocSyncResponse; import io.gmss.infocad.paylaods.response.BlocSyncResponse;
import io.gmss.infocad.paylaods.response.report.BlocsParStructureResponse; import io.gmss.infocad.paylaods.response.report.BlocsParStructureResponse;

View File

@@ -0,0 +1,12 @@
package io.gmss.infocad.repositories.rfu.parametre;
import io.gmss.infocad.entities.rfu.parametre.Campagne;
import io.gmss.infocad.enums.TypeCampagne;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface CampagneRepository extends JpaRepository<Campagne, Long> {
List<Campagne> findAllByTypeCampagne(TypeCampagne typeCampagne);
}

View File

@@ -0,0 +1,9 @@
package io.gmss.infocad.repositories.rfu.parametre;
import io.gmss.infocad.entities.rfu.parametre.Equipe;
import org.springframework.data.jpa.repository.JpaRepository;
public interface EquipeRepository extends JpaRepository<Equipe, Long> {
}

View File

@@ -2,8 +2,8 @@ package io.gmss.infocad.service;
import io.gmss.infocad.entities.decoupage.Arrondissement; import io.gmss.infocad.entities.decoupage.Arrondissement;
import io.gmss.infocad.entities.decoupage.Commune; import io.gmss.infocad.entities.decoupage.Commune;
import io.gmss.infocad.entities.infocad.metier.Bloc;
import io.gmss.infocad.entities.infocad.metier.EnqueteFiltreResponse; import io.gmss.infocad.entities.infocad.metier.EnqueteFiltreResponse;
import io.gmss.infocad.entities.infocad.parametre.Bloc;
import io.gmss.infocad.entities.infocad.parametre.Structure; import io.gmss.infocad.entities.infocad.parametre.Structure;
import io.gmss.infocad.enums.FormatRapport; import io.gmss.infocad.enums.FormatRapport;
import io.gmss.infocad.enums.RoleActeur; import io.gmss.infocad.enums.RoleActeur;
@@ -13,8 +13,8 @@ import io.gmss.infocad.paylaods.response.report.BlocsParStructureResponse;
import io.gmss.infocad.paylaods.response.report.EnqueteParBlocResponse; import io.gmss.infocad.paylaods.response.report.EnqueteParBlocResponse;
import io.gmss.infocad.repositories.decoupage.ArrondissementRepository; import io.gmss.infocad.repositories.decoupage.ArrondissementRepository;
import io.gmss.infocad.repositories.decoupage.CommuneRepository; import io.gmss.infocad.repositories.decoupage.CommuneRepository;
import io.gmss.infocad.repositories.infocad.metier.BlocRepository;
import io.gmss.infocad.repositories.infocad.metier.EnqueteRepository; import io.gmss.infocad.repositories.infocad.metier.EnqueteRepository;
import io.gmss.infocad.repositories.infocad.parametre.BlocRepository;
import io.gmss.infocad.repositories.infocad.parametre.StructureRepository; import io.gmss.infocad.repositories.infocad.parametre.StructureRepository;
import net.sf.jasperreports.engine.*; import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;