From 3745e6774f5d959300a9fe606764be6861c4e830 Mon Sep 17 00:00:00 2001 From: Christian AKPONA Date: Thu, 27 Feb 2025 16:30:22 +0100 Subject: [PATCH] Fusion du code de M. Aurince avec la version actuelle de mon code. 27/02/2025 --- .../fiscad/configuration/OpenApiConfig.java | 4 + .../configuration/SwaggerOAS3Config.java | 3 +- .../decoupage/SecteurController.java | 108 +++++++++++++++ .../decoupage/SecteurDecoupageController.java | 104 +++++++++++++++ .../rfu/parametre/EquipeController.java | 9 +- .../RestaurationController.java | 35 +++++ .../fiscad/entities/decoupage/Secteur.java | 38 ++++++ .../entities/decoupage/SecteurDecoupage.java | 51 +++++++ .../entities/infocad/parametre/Bloc.java | 4 +- .../rfu/metier/CaracteristiqueBatiment.java | 1 - .../rfu/metier/EnqueteUniteLogement.java | 3 +- .../fiscad/entities/rfu/parametre/Equipe.java | 7 +- .../entities/rfu/parametre/Participer.java | 2 + .../io/gmss/fiscad/entities/user/User.java | 29 +++- .../SecteurDecoupageServiceImpl.java | 68 ++++++++++ .../decoupage/SecteurServiceImpl.java | 126 ++++++++++++++++++ .../rfu/parametre/EquipeServiceImpl.java | 65 ++++++++- .../RestaurationServiceImpl.java | 60 ++++++--- .../SynchronisationServiceImpl.java | 13 +- .../decoupage/SecteurDecoupageService.java | 21 +++ .../interfaces/decoupage/SecteurService.java | 22 +++ .../rfu/parametre/EquipeService.java | 5 +- .../synchronisation/RestaurationService.java | 8 ++ .../paylaods/request/EquipePayload.java | 22 +++ .../paylaods/request/ParticiperPayload.java | 27 ++++ .../request/SecteurDecoupagePayload.java | 31 +++++ .../paylaods/request/SecteurPayload.java | 20 +++ .../response/restoration/BatimentPayload.java | 23 ++++ .../CaracateristiqueBatimentPayLoads.java | 15 +++ .../CaracateristiqueParcellePayLoads.java | 15 +++ .../CaracteristiqueUniteLogementPayLoad.java | 4 + .../restoration/EnqueteBatimentPayLoad.java | 38 ++++++ .../EnqueteUniteLogementPayLoad.java | 37 +++++ .../restoration/UniteLogementPayLoad.java | 13 ++ .../decoupage/SecteurDecoupageRepository.java | 7 + .../decoupage/SecteurRepository.java | 7 + .../infocad/metier/EnqueteRepository.java | 15 +++ .../infocad/parametre/BlocRepository.java | 7 + .../rfu/metier/BatimentRepository.java | 15 +++ .../CaracteristiqueBatimentRepository.java | 18 +++ .../CaracteristiqueParcelleRepository.java | 14 ++ ...aracteristiqueUniteLogementRepository.java | 17 +++ .../rfu/metier/EnqueteBatimentRepository.java | 36 +++++ .../EnqueteUniteLogementRepository.java | 36 ++++- .../rfu/metier/UniteLogementRepository.java | 18 +++ src/main/resources/application.properties | 16 ++- 46 files changed, 1195 insertions(+), 42 deletions(-) create mode 100644 src/main/java/io/gmss/fiscad/controllers/decoupage/SecteurController.java create mode 100644 src/main/java/io/gmss/fiscad/controllers/decoupage/SecteurDecoupageController.java create mode 100644 src/main/java/io/gmss/fiscad/entities/decoupage/Secteur.java create mode 100644 src/main/java/io/gmss/fiscad/entities/decoupage/SecteurDecoupage.java create mode 100644 src/main/java/io/gmss/fiscad/implementations/decoupage/SecteurDecoupageServiceImpl.java create mode 100644 src/main/java/io/gmss/fiscad/implementations/decoupage/SecteurServiceImpl.java create mode 100644 src/main/java/io/gmss/fiscad/interfaces/decoupage/SecteurDecoupageService.java create mode 100644 src/main/java/io/gmss/fiscad/interfaces/decoupage/SecteurService.java create mode 100644 src/main/java/io/gmss/fiscad/paylaods/request/EquipePayload.java create mode 100644 src/main/java/io/gmss/fiscad/paylaods/request/ParticiperPayload.java create mode 100644 src/main/java/io/gmss/fiscad/paylaods/request/SecteurDecoupagePayload.java create mode 100644 src/main/java/io/gmss/fiscad/paylaods/request/SecteurPayload.java create mode 100644 src/main/java/io/gmss/fiscad/paylaods/response/restoration/BatimentPayload.java create mode 100644 src/main/java/io/gmss/fiscad/paylaods/response/restoration/CaracateristiqueBatimentPayLoads.java create mode 100644 src/main/java/io/gmss/fiscad/paylaods/response/restoration/CaracateristiqueParcellePayLoads.java create mode 100644 src/main/java/io/gmss/fiscad/paylaods/response/restoration/CaracteristiqueUniteLogementPayLoad.java create mode 100644 src/main/java/io/gmss/fiscad/paylaods/response/restoration/EnqueteBatimentPayLoad.java create mode 100644 src/main/java/io/gmss/fiscad/paylaods/response/restoration/EnqueteUniteLogementPayLoad.java create mode 100644 src/main/java/io/gmss/fiscad/paylaods/response/restoration/UniteLogementPayLoad.java create mode 100644 src/main/java/io/gmss/fiscad/repositories/decoupage/SecteurDecoupageRepository.java create mode 100644 src/main/java/io/gmss/fiscad/repositories/decoupage/SecteurRepository.java diff --git a/src/main/java/io/gmss/fiscad/configuration/OpenApiConfig.java b/src/main/java/io/gmss/fiscad/configuration/OpenApiConfig.java index bfbbaf5..ec17d80 100644 --- a/src/main/java/io/gmss/fiscad/configuration/OpenApiConfig.java +++ b/src/main/java/io/gmss/fiscad/configuration/OpenApiConfig.java @@ -38,6 +38,10 @@ import io.swagger.v3.oas.annotations.servers.Server; @Server( description = "PROD ENV (https)", url = "https://fiscadbackend.novatic.org" + ), + @Server( + description = "Local ENV (http) - 2", + url = "http://192.168.1.106:8282" ) }, security = { diff --git a/src/main/java/io/gmss/fiscad/configuration/SwaggerOAS3Config.java b/src/main/java/io/gmss/fiscad/configuration/SwaggerOAS3Config.java index e08cf27..f9196be 100644 --- a/src/main/java/io/gmss/fiscad/configuration/SwaggerOAS3Config.java +++ b/src/main/java/io/gmss/fiscad/configuration/SwaggerOAS3Config.java @@ -22,7 +22,8 @@ public class SwaggerOAS3Config { }; private static final String[] DECOUPAGE = { - "/api/arrondissement/**", "/api/commune/**", "/api/departement/**", "/api/nationalite/**", "/api/quartier/**" + "/api/arrondissement/**", "/api/commune/**", "/api/departement/**", "/api/nationalite/**", "/api/quartier/**", + "/api/secteur/**","/api/secteur-decoupage/**" }; private static final String[] INFOCAD_METIER = { diff --git a/src/main/java/io/gmss/fiscad/controllers/decoupage/SecteurController.java b/src/main/java/io/gmss/fiscad/controllers/decoupage/SecteurController.java new file mode 100644 index 0000000..5b136b6 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/controllers/decoupage/SecteurController.java @@ -0,0 +1,108 @@ +package io.gmss.fiscad.controllers.decoupage; + +import io.gmss.fiscad.entities.decoupage.Secteur; +import io.gmss.fiscad.interfaces.decoupage.SecteurService; +import io.gmss.fiscad.paylaods.ApiResponse; +import io.gmss.fiscad.paylaods.request.SecteurPayload; +import io.swagger.v3.oas.annotations.security.SecurityRequirement; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + + +@RestController +@RequestMapping(value = "api/secteur", produces = MediaType.APPLICATION_JSON_VALUE) +@SecurityRequirement(name = "bearer") +@Tag(name = "Secteur") +public class SecteurController { + + private final SecteurService secteurService; + + public SecteurController(SecteurService secteurService) { + this.secteurService = secteurService; + } + + + @PostMapping("/create") + public ResponseEntity createSecteur(@RequestBody @Valid @Validated SecteurPayload secteurPayload) { + try{ + // Secteur secteur=getSecteurFromPayload(secteurPayload); + Secteur secteur = secteurService.createSecteur(secteurPayload); + return new ResponseEntity<>( + new ApiResponse<>(true, secteur, "Secteur créé avec succès."), + HttpStatus.OK + ); + }catch (Exception e){ + return new ResponseEntity<>( + new ApiResponse<>(false, e.getMessage()), + HttpStatus.OK + ); + } + } + + + + @PutMapping("/update/{id}") + public ResponseEntity updateSecteur(@PathVariable Long id, @RequestBody SecteurPayload secteurPayload) { + try{ + return new ResponseEntity<>( + new ApiResponse<>(true, secteurService.updateSecteur(id, secteurPayload), "Secteur 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 deleteSecteurr(@PathVariable Long id) { + try{ + secteurService.deleteSecteur(id); + return new ResponseEntity<>( + new ApiResponse<>(true,"Secteur supprimée avec succès."), + HttpStatus.OK + ); + }catch (Exception e){ + return new ResponseEntity<>( + new ApiResponse<>(false, e.getMessage()), + HttpStatus.OK + ); + } + } + + @GetMapping("/all") + public ResponseEntity getAllSecteurList() { + return new ResponseEntity<>( + new ApiResponse<>(true, secteurService.getSecteurList(), "Liste des secteurs chargée avec succès."), + HttpStatus.OK + ); + } + + @GetMapping("/all-paged") + public ResponseEntity getAllSecteurPaged(@RequestParam int pageNo, @RequestParam int pageSize) { + Pageable pageable = PageRequest.of(pageNo, pageSize); + return new ResponseEntity<>( + new ApiResponse<>(true, secteurService.getSecteurList(pageable), "Liste des secteurs chargée avec succès."), + HttpStatus.OK + ); + } + + @GetMapping("/id/{id}") + public ResponseEntity getSecteurById(@PathVariable Long id) { + return new ResponseEntity<>( + new ApiResponse<>(true, secteurService.getSecteurById(id), "Secteur trouvée avec succès."), + HttpStatus.OK + ); + } + + +} \ No newline at end of file diff --git a/src/main/java/io/gmss/fiscad/controllers/decoupage/SecteurDecoupageController.java b/src/main/java/io/gmss/fiscad/controllers/decoupage/SecteurDecoupageController.java new file mode 100644 index 0000000..ca1274e --- /dev/null +++ b/src/main/java/io/gmss/fiscad/controllers/decoupage/SecteurDecoupageController.java @@ -0,0 +1,104 @@ +package io.gmss.fiscad.controllers.decoupage; + +import io.gmss.fiscad.entities.decoupage.SecteurDecoupage; +import io.gmss.fiscad.interfaces.decoupage.SecteurDecoupageService; +import io.gmss.fiscad.paylaods.ApiResponse; +import io.swagger.v3.oas.annotations.security.SecurityRequirement; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + + +@RestController +@RequestMapping(value = "api/secteur-decoupage", produces = MediaType.APPLICATION_JSON_VALUE) +@SecurityRequirement(name = "bearer") +@Tag(name = "SecteurDecoupage") +public class SecteurDecoupageController { + + private final SecteurDecoupageService secteurDecoupageService; + + public SecteurDecoupageController(SecteurDecoupageService secteurDecoupageService) { + this.secteurDecoupageService = secteurDecoupageService; + } + + + @PostMapping("/create") + public ResponseEntity createSecteurDecoupage(@RequestBody @Valid @Validated SecteurDecoupage secteurDecoupage) { + try{ + secteurDecoupage = secteurDecoupageService.createSecteurDecoupage(secteurDecoupage); + return new ResponseEntity<>( + new ApiResponse<>(true, secteurDecoupage, "SecteurDecoupage créé avec succès."), + HttpStatus.OK + ); + }catch (Exception e){ + return new ResponseEntity<>( + new ApiResponse<>(false, e.getMessage()), + HttpStatus.OK + ); + } + } + + @PutMapping("/update/{id}") + public ResponseEntity updateSecteurDecoupage(@PathVariable Long id, @RequestBody SecteurDecoupage secteurDecoupage) { + try{ + return new ResponseEntity<>( + new ApiResponse<>(true, secteurDecoupageService.updateSecteurDecoupage(id, secteurDecoupage), "SecteurDecoupage 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 deleteSecteurDecoupager(@PathVariable Long id) { + try{ + secteurDecoupageService.deleteSecteurDecoupage(id); + return new ResponseEntity<>( + new ApiResponse<>(true,"Secteur découpage supprimée avec succès."), + HttpStatus.OK + ); + }catch (Exception e){ + return new ResponseEntity<>( + new ApiResponse<>(false, e.getMessage()), + HttpStatus.OK + ); + } + } + + @GetMapping("/all") + public ResponseEntity getAllSecteurDecoupageList() { + return new ResponseEntity<>( + new ApiResponse<>(true, secteurDecoupageService.getSecteurDecoupageList(), "Liste des secteurDecoupages chargée avec succès."), + HttpStatus.OK + ); + } + + @GetMapping("/all-paged") + public ResponseEntity getAllSecteurDecoupagePaged(@RequestParam int pageNo, @RequestParam int pageSize) { + Pageable pageable = PageRequest.of(pageNo, pageSize); + return new ResponseEntity<>( + new ApiResponse<>(true, secteurDecoupageService.getSecteurDecoupageList(pageable), "Liste des secteurDecoupages chargée avec succès."), + HttpStatus.OK + ); + } + + @GetMapping("/id/{id}") + public ResponseEntity getSecteurDecoupageById(@PathVariable Long id) { + return new ResponseEntity<>( + new ApiResponse<>(true, secteurDecoupageService.getSecteurDecoupageById(id), "SecteurDecoupage trouvée avec succès."), + HttpStatus.OK + ); + } + + +} \ No newline at end of file diff --git a/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/EquipeController.java b/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/EquipeController.java index 8dd0aa4..beb8dfa 100644 --- a/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/EquipeController.java +++ b/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/EquipeController.java @@ -3,6 +3,7 @@ package io.gmss.fiscad.controllers.rfu.parametre; import io.gmss.fiscad.entities.rfu.parametre.Equipe; import io.gmss.fiscad.interfaces.rfu.parametre.EquipeService; import io.gmss.fiscad.paylaods.ApiResponse; +import io.gmss.fiscad.paylaods.request.EquipePayload; import io.swagger.v3.oas.annotations.security.SecurityRequirement; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; @@ -30,9 +31,9 @@ public class EquipeController { @PostMapping("/create") - public ResponseEntity createEquipe(@RequestBody @Valid @Validated Equipe equipe) { + public ResponseEntity createEquipe(@RequestBody @Valid @Validated EquipePayload equipePayload) { try{ - equipe = equipeService.createEquipe(equipe); + Equipe equipe = equipeService.createEquipe(equipePayload); return new ResponseEntity<>( new ApiResponse<>(true, equipe, "Equipe créé avec succès."), HttpStatus.OK @@ -46,10 +47,10 @@ public class EquipeController { } @PutMapping("/update/{id}") - public ResponseEntity updateEquipe(@PathVariable Long id, @RequestBody Equipe equipe) { + public ResponseEntity updateEquipe(@PathVariable Long id, @RequestBody EquipePayload equipePayload) { try{ return new ResponseEntity<>( - new ApiResponse<>(true, equipeService.updateEquipe(id, equipe), "Equipe mis à jour avec succès."), + new ApiResponse<>(true, equipeService.updateEquipe(id, equipePayload), "Equipe mis à jour avec succès."), HttpStatus.OK ); }catch (Exception e){ diff --git a/src/main/java/io/gmss/fiscad/controllers/synchronisation/RestaurationController.java b/src/main/java/io/gmss/fiscad/controllers/synchronisation/RestaurationController.java index 4af6a83..9b4ed6e 100644 --- a/src/main/java/io/gmss/fiscad/controllers/synchronisation/RestaurationController.java +++ b/src/main/java/io/gmss/fiscad/controllers/synchronisation/RestaurationController.java @@ -86,4 +86,39 @@ public class RestaurationController { } + @GetMapping(path = "/batiment/{terminalId}") + public ResponseEntity getBatiments(@PathVariable Long terminalId) { + return new ResponseEntity<>( + new ApiResponse<>(true, restaurationService.getBatiment(terminalId), "liste des batiments avec succès."), + HttpStatus.OK + ); + } + + + @GetMapping(path = "/enquete-batiment/{terminalId}") + public ResponseEntity getEnqueteBatiment(@PathVariable Long terminalId) { + return new ResponseEntity<>( + new ApiResponse<>(true, restaurationService.getEnqueteBatiment(terminalId), "liste des enquetes batiments avec succès."), + HttpStatus.OK + ); + } + + + @GetMapping(path = "/caracteristique-batiment/{terminalId}") + public ResponseEntity getCaracteristiqueBatiment(@PathVariable Long terminalId) { + return new ResponseEntity<>( + new ApiResponse<>(true, restaurationService.getCaracateristiqueBatiment(terminalId), "liste des caractéristiques batiments avec succès."), + HttpStatus.OK + ); + } + + @GetMapping(path = "/caracteristique-unite-logement/{terminalId}") + public ResponseEntity getCaracteristiqueUniteLogement(@PathVariable Long terminalId) { + return new ResponseEntity<>( + new ApiResponse<>(true, restaurationService.getCaracateristiqueUniteLogement(terminalId), "liste des caractéristiques des unités de logement avec succès."), + HttpStatus.OK + ); + } + + } \ No newline at end of file diff --git a/src/main/java/io/gmss/fiscad/entities/decoupage/Secteur.java b/src/main/java/io/gmss/fiscad/entities/decoupage/Secteur.java new file mode 100644 index 0000000..a42bd8e --- /dev/null +++ b/src/main/java/io/gmss/fiscad/entities/decoupage/Secteur.java @@ -0,0 +1,38 @@ +package io.gmss.fiscad.entities.decoupage; + +import io.gmss.fiscad.entities.BaseEntity; +import io.gmss.fiscad.entities.infocad.parametre.Structure; +import io.gmss.fiscad.entities.user.User; +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.Where; + +import java.io.Serializable; +import java.util.List; + +@EqualsAndHashCode(callSuper = true) +@Entity +@Data +@NoArgsConstructor +@AllArgsConstructor +@Where(clause = " deleted = false") +public class Secteur extends BaseEntity implements Serializable { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private String code; + private String nom; + @ManyToOne + private User chefSecteur; + @ManyToOne + private Structure structure; + //@JsonIgnore + //@OneToMany(mappedBy = "secteur") + @OneToMany(cascade = CascadeType.ALL,fetch = FetchType.EAGER) + @JoinColumn(name = "secteur_id") + private List secteurDecoupages; +} \ No newline at end of file diff --git a/src/main/java/io/gmss/fiscad/entities/decoupage/SecteurDecoupage.java b/src/main/java/io/gmss/fiscad/entities/decoupage/SecteurDecoupage.java new file mode 100644 index 0000000..c3abeb6 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/entities/decoupage/SecteurDecoupage.java @@ -0,0 +1,51 @@ +package io.gmss.fiscad.entities.decoupage; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import io.gmss.fiscad.deserializer.LocalDateDeserializer; +import io.gmss.fiscad.entities.BaseEntity; +import io.gmss.fiscad.entities.infocad.parametre.Bloc; +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.Where; + +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 SecteurDecoupage 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; + + @JsonIgnore + @ManyToOne + private Secteur secteur; + + @ManyToOne + private Arrondissement arrondissement; + @ManyToOne + private Quartier quartier; + + @JsonIgnore + @OneToMany(mappedBy = "secteurDecoupage") + private List blocs; + +} \ No newline at end of file diff --git a/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Bloc.java b/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Bloc.java index 2a291f6..27d86bf 100644 --- a/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Bloc.java +++ b/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Bloc.java @@ -4,8 +4,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import io.gmss.fiscad.entities.BaseEntity; import io.gmss.fiscad.entities.decoupage.Arrondissement; import io.gmss.fiscad.entities.decoupage.Quartier; +import io.gmss.fiscad.entities.decoupage.SecteurDecoupage; import io.gmss.fiscad.entities.infocad.metier.Enquete; -import io.gmss.fiscad.entities.user.User; import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Data; @@ -63,7 +63,7 @@ public class Bloc extends BaseEntity implements Serializable { @OneToMany(mappedBy = "bloc") private List enquetes; @ManyToOne - private User chefSecteur; + private SecteurDecoupage secteurDecoupage; public String getNomArrondissement() { return arrondissement.getNom(); diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/metier/CaracteristiqueBatiment.java b/src/main/java/io/gmss/fiscad/entities/rfu/metier/CaracteristiqueBatiment.java index 5da42fa..b86dde1 100644 --- a/src/main/java/io/gmss/fiscad/entities/rfu/metier/CaracteristiqueBatiment.java +++ b/src/main/java/io/gmss/fiscad/entities/rfu/metier/CaracteristiqueBatiment.java @@ -37,5 +37,4 @@ public class CaracteristiqueBatiment extends BaseEntity implements Serializable @JsonIgnore @ManyToOne private Tpe terminal; - } diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/metier/EnqueteUniteLogement.java b/src/main/java/io/gmss/fiscad/entities/rfu/metier/EnqueteUniteLogement.java index e5559f4..514d833 100644 --- a/src/main/java/io/gmss/fiscad/entities/rfu/metier/EnqueteUniteLogement.java +++ b/src/main/java/io/gmss/fiscad/entities/rfu/metier/EnqueteUniteLogement.java @@ -39,8 +39,7 @@ public class EnqueteUniteLogement extends BaseEntity implements Serializable { @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private float surface; - private int nbrePiece; //les champs int sont des integer, - // c'est juste la taille en mémoire que je veux préserver + private int nbrePiece; private int nbreHabitant; private int nbreMenage; private boolean enLocation; diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/parametre/Equipe.java b/src/main/java/io/gmss/fiscad/entities/rfu/parametre/Equipe.java index d8429f4..e6d6866 100644 --- a/src/main/java/io/gmss/fiscad/entities/rfu/parametre/Equipe.java +++ b/src/main/java/io/gmss/fiscad/entities/rfu/parametre/Equipe.java @@ -2,6 +2,7 @@ package io.gmss.fiscad.entities.rfu.parametre; import com.fasterxml.jackson.annotation.JsonIgnore; import io.gmss.fiscad.entities.BaseEntity; +import io.gmss.fiscad.entities.decoupage.Secteur; import io.gmss.fiscad.entities.infocad.metier.Enquete; import io.gmss.fiscad.entities.infocad.parametre.Bloc; import jakarta.persistence.*; @@ -30,9 +31,11 @@ public class Equipe extends BaseEntity implements Serializable { @ManyToOne private Bloc bloc; @ManyToOne + private Secteur secteur ; + @ManyToOne private Campagne campagne; - @JsonIgnore - @OneToMany(mappedBy = "equipe") + @OneToMany(cascade = CascadeType.ALL,fetch = FetchType.EAGER) + @JoinColumn(name = "equipe_id") private List participers; @JsonIgnore diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/parametre/Participer.java b/src/main/java/io/gmss/fiscad/entities/rfu/parametre/Participer.java index fb4f7a7..5bc3c98 100644 --- a/src/main/java/io/gmss/fiscad/entities/rfu/parametre/Participer.java +++ b/src/main/java/io/gmss/fiscad/entities/rfu/parametre/Participer.java @@ -1,6 +1,7 @@ package io.gmss.fiscad.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.fiscad.deserializer.LocalDateDeserializer; import io.gmss.fiscad.entities.BaseEntity; @@ -31,6 +32,7 @@ public class Participer extends BaseEntity implements Serializable { @JsonFormat(pattern = "dd-MM-yyyy") @JsonDeserialize(using = LocalDateDeserializer.class) private LocalDate dateFin; + @JsonIgnore @ManyToOne private Equipe equipe; @ManyToOne diff --git a/src/main/java/io/gmss/fiscad/entities/user/User.java b/src/main/java/io/gmss/fiscad/entities/user/User.java index f98bdbc..0ec06e9 100755 --- a/src/main/java/io/gmss/fiscad/entities/user/User.java +++ b/src/main/java/io/gmss/fiscad/entities/user/User.java @@ -2,8 +2,8 @@ package io.gmss.fiscad.entities.user; import com.fasterxml.jackson.annotation.JsonIgnore; import io.gmss.fiscad.entities.BaseEntity; +import io.gmss.fiscad.entities.decoupage.Secteur; import io.gmss.fiscad.entities.infocad.metier.Enquete; -import io.gmss.fiscad.entities.infocad.parametre.Bloc; import io.gmss.fiscad.entities.infocad.parametre.Structure; import io.gmss.fiscad.entities.rfu.parametre.Participer; import io.gmss.fiscad.enums.UserRole; @@ -62,7 +62,12 @@ public class User extends BaseEntity implements Serializable { private List participers; @JsonIgnore @OneToMany(mappedBy = "chefSecteur") - private List blocs ; + private List secteurs ; + + @Transient + private Long idCampagneCourant; + @Transient + private Long idSecteurCourant; public void setUsername(String username) { this.username = this.email; @@ -77,4 +82,24 @@ public class User extends BaseEntity implements Serializable { return false; } + + public Long getIdCampagneCourant(){ + for (Participer p:participers){ + if(p.getDateFin()==null){ + return p.getEquipe().getCampagne().getId(); + } + } + return null; + } + + public Long getIdSecteurCourant(){ + for (Participer p:participers){ + if(p.getDateFin()==null){ + return p.getEquipe().getSecteur().getId(); + } + } + return null; + } + + } diff --git a/src/main/java/io/gmss/fiscad/implementations/decoupage/SecteurDecoupageServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/decoupage/SecteurDecoupageServiceImpl.java new file mode 100644 index 0000000..f4c8673 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/implementations/decoupage/SecteurDecoupageServiceImpl.java @@ -0,0 +1,68 @@ +package io.gmss.fiscad.implementations.decoupage; + +import io.gmss.fiscad.entities.decoupage.SecteurDecoupage; +import io.gmss.fiscad.exceptions.BadRequestException; +import io.gmss.fiscad.exceptions.NotFoundException; +import io.gmss.fiscad.interfaces.decoupage.SecteurDecoupageService; +import io.gmss.fiscad.repositories.decoupage.SecteurDecoupageRepository; +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 SecteurDecoupageServiceImpl implements SecteurDecoupageService { + private final SecteurDecoupageRepository secteurDecoupageRepository; + + public SecteurDecoupageServiceImpl(SecteurDecoupageRepository secteurDecoupageRepository) { + this.secteurDecoupageRepository = secteurDecoupageRepository; + } + + @Override + public SecteurDecoupage createSecteurDecoupage(SecteurDecoupage secteurDecoupage) throws BadRequestException { + if(secteurDecoupage.getId() != null ){ + throw new BadRequestException("Impossible de créer un nouveau secteur découpage ayant un id non null."); + } + return secteurDecoupageRepository.save(secteurDecoupage); + } + + @Override + public SecteurDecoupage updateSecteurDecoupage(Long id, SecteurDecoupage secteurDecoupage) throws NotFoundException { + if(secteurDecoupage.getId() == null ){ + throw new BadRequestException("Impossible de mettre à jour un nouveau secteur découpage ayant un id null."); + } + if(!secteurDecoupageRepository.existsById(secteurDecoupage.getId())){ + throw new NotFoundException("Impossible de trouver le secteur découpage spécifié."); + } + return secteurDecoupageRepository.save(secteurDecoupage); + } + + @Override + public void deleteSecteurDecoupage(Long id) throws NotFoundException { + Optional secteurDecoupageOptional = secteurDecoupageRepository.findById(id); + if(secteurDecoupageOptional.isPresent()){ + secteurDecoupageRepository.deleteById(secteurDecoupageOptional.get().getId()); + }else{ + throw new NotFoundException("Impossible de trouver le secteur découpage spécifié."); + } + } + + @Override + public Page getSecteurDecoupageList(Pageable pageable) { + return secteurDecoupageRepository.findAll(pageable); + } + + @Override + public List getSecteurDecoupageList() { + return secteurDecoupageRepository.findAll(); + } + + + + @Override + public Optional getSecteurDecoupageById(Long id) { + return secteurDecoupageRepository.findById(id); + } +} \ No newline at end of file diff --git a/src/main/java/io/gmss/fiscad/implementations/decoupage/SecteurServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/decoupage/SecteurServiceImpl.java new file mode 100644 index 0000000..38f883e --- /dev/null +++ b/src/main/java/io/gmss/fiscad/implementations/decoupage/SecteurServiceImpl.java @@ -0,0 +1,126 @@ +package io.gmss.fiscad.implementations.decoupage; + +import io.gmss.fiscad.entities.decoupage.Secteur; +import io.gmss.fiscad.entities.decoupage.SecteurDecoupage; +import io.gmss.fiscad.entities.user.User; +import io.gmss.fiscad.exceptions.BadRequestException; +import io.gmss.fiscad.exceptions.NotFoundException; +import io.gmss.fiscad.interfaces.decoupage.SecteurService; +import io.gmss.fiscad.paylaods.request.SecteurDecoupagePayload; +import io.gmss.fiscad.paylaods.request.SecteurPayload; +import io.gmss.fiscad.repositories.decoupage.ArrondissementRepository; +import io.gmss.fiscad.repositories.decoupage.QuartierRepository; +import io.gmss.fiscad.repositories.decoupage.SecteurRepository; +import io.gmss.fiscad.repositories.user.UserRepository; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +@Service +public class SecteurServiceImpl implements SecteurService { + private final SecteurRepository secteurRepository; + private final UserRepository userRepository; + private final ArrondissementRepository arrondissementRepository; + private final QuartierRepository quartierRepository; + + public SecteurServiceImpl(SecteurRepository secteurRepository, UserRepository userRepository, ArrondissementRepository arrondissementRepository, QuartierRepository quartierRepository) { + this.secteurRepository = secteurRepository; + this.userRepository = userRepository; + this.arrondissementRepository = arrondissementRepository; + this.quartierRepository = quartierRepository; + } + + + @Override + public Secteur createSecteur(SecteurPayload secteurPayload) throws BadRequestException { + if(secteurPayload.getId() != null ){ + throw new BadRequestException("Impossible de créer un nouveau secteur ayant un id non null."); + } + + if(secteurPayload.getChefSecteurId()!=null && userRepository.existsById(secteurPayload.getChefSecteurId()) ) { + Secteur secteur = getSecteurFromPayload(secteurPayload); + return secteurRepository.save(secteur); + }else{ + throw new BadRequestException("Impossible de créer un nouveau secteur sans le chef le Chef Secteur."); + } + } + + private Secteur getSecteurFromPayload(SecteurPayload secteurPayload) { + Secteur secteur=new Secteur(); + Optional optionalUser=userRepository.findById(secteurPayload.getChefSecteurId()); + secteur.setChefSecteur(optionalUser.orElse(null)); + List secteurDecoupageList=new ArrayList<>(); + + for (SecteurDecoupagePayload sdp: secteurPayload.getSecteurDecoupages()){ + SecteurDecoupage sd=new SecteurDecoupage(); + if(sdp.getSecteurId()!=null && secteurRepository.existsById(sdp.getSecteurId()) ){ + sd.setSecteur(secteurRepository.findById(sdp.getSecteurId()).orElse(null)); + } + + if(sdp.getArrondissementId()!=null && arrondissementRepository.existsById(sdp.getArrondissementId()) ){ + sd.setArrondissement(arrondissementRepository.findById(sdp.getArrondissementId()).orElse(null)); + } + + if(sdp.getQuartierId()!=null && quartierRepository.existsById(sdp.getQuartierId()) ){ + sd.setQuartier(quartierRepository.findById(sdp.getQuartierId()).orElse(null)); + } + sd.setDateDebut(sdp.getDateDebut()); + sd.setDateFin(sdp.getDateFin()); + sd.setId(sdp.getId()); + secteurDecoupageList.add(sd); + } + secteur.setSecteurDecoupages(secteurDecoupageList); + secteur.setId(secteurPayload.getId()); + secteur.setCode(secteurPayload.getCode()); + secteur.setNom(secteurPayload.getNom()); + return secteur; + } + + @Override + public Secteur updateSecteur(Long id, SecteurPayload secteurPayload) throws NotFoundException { + if(secteurPayload.getId() == null ){ + throw new BadRequestException("Impossible de mettre à jour un nouveau secteur ayant un id null."); + } + + if(!secteurRepository.existsById(secteurPayload.getId())){ + throw new NotFoundException("Impossible de trouver le secteur spécifié."); + } + if(secteurPayload.getChefSecteurId()!=null && userRepository.existsById(secteurPayload.getChefSecteurId()) ) { + Secteur secteur = getSecteurFromPayload(secteurPayload); + return secteurRepository.save(secteur); + }else{ + throw new BadRequestException("Impossible de créer un nouveau secteur sans le chef le Chef Secteur."); + } + } + + @Override + public void deleteSecteur(Long id) throws NotFoundException { + Optional secteurOptional = secteurRepository.findById(id); + if(secteurOptional.isPresent()){ + secteurRepository.deleteById(secteurOptional.get().getId()); + }else{ + throw new NotFoundException("Impossible de trouver le secteur spécifié."); + } + } + + @Override + public Page getSecteurList(Pageable pageable) { + return secteurRepository.findAll(pageable); + } + + @Override + public List getSecteurList() { + return secteurRepository.findAll(); + } + + + + @Override + public Optional getSecteurById(Long id) { + return secteurRepository.findById(id); + } +} \ No newline at end of file diff --git a/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/EquipeServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/EquipeServiceImpl.java index c998bf3..bc4bc54 100644 --- a/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/EquipeServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/EquipeServiceImpl.java @@ -1,41 +1,94 @@ package io.gmss.fiscad.implementations.rfu.parametre; +import io.gmss.fiscad.entities.decoupage.Secteur; +import io.gmss.fiscad.entities.infocad.parametre.Bloc; +import io.gmss.fiscad.entities.rfu.parametre.Campagne; import io.gmss.fiscad.entities.rfu.parametre.Equipe; +import io.gmss.fiscad.entities.rfu.parametre.Participer; import io.gmss.fiscad.exceptions.BadRequestException; import io.gmss.fiscad.exceptions.NotFoundException; import io.gmss.fiscad.interfaces.rfu.parametre.EquipeService; +import io.gmss.fiscad.paylaods.request.EquipePayload; +import io.gmss.fiscad.paylaods.request.ParticiperPayload; +import io.gmss.fiscad.repositories.decoupage.SecteurRepository; +import io.gmss.fiscad.repositories.infocad.parametre.BlocRepository; +import io.gmss.fiscad.repositories.rfu.parametre.CampagneRepository; import io.gmss.fiscad.repositories.rfu.parametre.EquipeRepository; +import io.gmss.fiscad.repositories.user.UserRepository; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; import java.util.Optional; @Service public class EquipeServiceImpl implements EquipeService { private final EquipeRepository equipeRepository; + private final UserRepository userRepository; + private final BlocRepository blocRepository; + private final SecteurRepository secteurRepository; + private final CampagneRepository campagneRepository; - public EquipeServiceImpl(EquipeRepository equipeRepository) { + public EquipeServiceImpl(EquipeRepository equipeRepository, UserRepository userRepository, BlocRepository blocRepository, SecteurRepository secteurRepository, CampagneRepository campagneRepository) { this.equipeRepository = equipeRepository; + this.userRepository = userRepository; + this.blocRepository = blocRepository; + this.secteurRepository = secteurRepository; + this.campagneRepository = campagneRepository; } + @Override - public Equipe createEquipe(Equipe equipe) throws BadRequestException { - if(equipe.getId() != null ){ + public Equipe createEquipe(EquipePayload equipePayload) throws BadRequestException { + if(equipePayload.getId() != null ){ throw new BadRequestException("Impossible de créer une nouvelle equipe ayant un id non null."); } + Equipe equipe = getEquipeFromPayload(equipePayload); return equipeRepository.save(equipe); } + private Equipe getEquipeFromPayload(EquipePayload equipePayload) { + Equipe equipe=new Equipe(); + Optional optionalBloc=blocRepository.findById(equipePayload.getBlocId()); + equipe.setBloc(optionalBloc.orElse(null)); + equipe.setId(equipePayload.getId()); + equipe.setCode(equipePayload.getCode()); + equipe.setNom(equipePayload.getNom()); + Optional optionalSecteur=secteurRepository.findById(equipePayload.getSecteurId()); + equipe.setSecteur(optionalSecteur.orElse(null)); + Optional optionalCampagne=campagneRepository.findById(equipePayload.getCampagneId()); + equipe.setCampagne(optionalCampagne.orElse(null)); + + List participerList=new ArrayList<>(); + + for (ParticiperPayload pp: equipePayload.getParticiperPayloads()){ + Participer part=new Participer(); + if(pp.getEquipeId()!=null && equipeRepository.existsById(pp.getEquipeId()) ){ + part.setEquipe(equipeRepository.findById(pp.getEquipeId()).orElse(null)); + } + if(pp.getUserId()!=null && userRepository.existsById(pp.getUserId()) ){ + part.setUser(userRepository.findById(pp.getUserId()).orElse(null)); + } + part.setDateDebut(pp.getDateDebut()); + part.setDateFin(pp.getDateFin()); + participerList.add(part); + } + equipe.setParticipers(participerList); + + return equipe; + } + @Override - public Equipe updateEquipe(Long id, Equipe equipe) throws NotFoundException { - if(equipe.getId() == null ){ + public Equipe updateEquipe(Long id, EquipePayload equipePayload) throws NotFoundException { + if(equipePayload.getId() == null ){ throw new BadRequestException("Impossible de mettre à jour une nouvelle equipe ayant un id null."); } - if(!equipeRepository.existsById(equipe.getId())){ + if(!equipeRepository.existsById(equipePayload.getId())){ throw new NotFoundException("Impossible de trouver la equipe spécifiée dans notre base de données."); } + Equipe equipe = getEquipeFromPayload(equipePayload); return equipeRepository.save(equipe); } diff --git a/src/main/java/io/gmss/fiscad/implementations/synchronisation/RestaurationServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/synchronisation/RestaurationServiceImpl.java index 08e065a..95ea830 100644 --- a/src/main/java/io/gmss/fiscad/implementations/synchronisation/RestaurationServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/synchronisation/RestaurationServiceImpl.java @@ -7,7 +7,9 @@ import io.gmss.fiscad.interfaces.user.UserService; import io.gmss.fiscad.paylaods.response.restoration.*; import io.gmss.fiscad.repositories.infocad.metier.*; import io.gmss.fiscad.repositories.infocad.parametre.PersonneRepository; +import io.gmss.fiscad.repositories.rfu.metier.*; import io.gmss.fiscad.service.FileStorageService; +import lombok.RequiredArgsConstructor; import org.springframework.core.io.Resource; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; @@ -17,6 +19,7 @@ import java.util.ArrayList; import java.util.Base64; import java.util.List; @Service +@RequiredArgsConstructor public class RestaurationServiceImpl implements RestaurationService { public final ActeurConcerneRepository acteurConcerneRepository; public final EnqueteRepository enqueteRepository; @@ -29,19 +32,13 @@ public class RestaurationServiceImpl implements RestaurationService { private final TpeRepository tpeRepository; private final UserService userService; private Authentication authentication; - - public RestaurationServiceImpl(ActeurConcerneRepository acteurConcerneRepository, EnqueteRepository enqueteRepository, PersonneRepository personneRepository, ParcelleRepository parcelleRepository, MembreGroupeRepository membreGroupeRepository, PieceRepository pieceRepository, UploadRepository uploadRepository, FileStorageService fileStorageService, TpeRepository tpeRepository, UserService userService) { - this.acteurConcerneRepository = acteurConcerneRepository; - this.enqueteRepository = enqueteRepository; - this.personneRepository = personneRepository; - this.parcelleRepository = parcelleRepository; - this.membreGroupeRepository = membreGroupeRepository; - this.pieceRepository = pieceRepository; - this.uploadRepository = uploadRepository; - this.fileStorageService = fileStorageService; - this.tpeRepository = tpeRepository; - this.userService = userService; - } + private final BatimentRepository batimentRepository; + private final EnqueteBatimentRepository enqueteBatimentRepository; + private final CaracteristiqueBatimentRepository caracteristiqueBatimentRepository; + private final CaracteristiqueUniteLogementRepository caracteristiqueUniteLogementRepository; + private final CaracteristiqueParcelleRepository caracteristiqueParcelleRepository; + private final EnqueteUniteLogementRepository enqueteUniteLogementRepository; + private final UniteLogementRepository uniteLogementRepository; @Override @@ -83,8 +80,6 @@ public class RestaurationServiceImpl implements RestaurationService { List uploadPayLoads = uploadRepository.getUploadByTerminalId(terminaleId); List uploadPayLoadsOut=new ArrayList<>(); - - System.out.println(uploadPayLoads.size()); uploadPayLoads.forEach(uploadPayLoad -> { io.gmss.fiscad.paylaods.request.UploadPayLoad uploadPayLoadLocal=new io.gmss.fiscad.paylaods.request.UploadPayLoad(); uploadPayLoadLocal.setTerminalId(uploadPayLoad.getTerminalId()); @@ -108,6 +103,41 @@ public class RestaurationServiceImpl implements RestaurationService { return uploadPayLoadsOut; } + @Override + public List getBatiment(Long terminalId) { + return batimentRepository.getBatimentByTerminalId(terminalId); + } + + @Override + public List getEnqueteBatiment(Long terminalId) { + return enqueteBatimentRepository.getEnqueteBatimentByTerminalId(terminalId); + } + + @Override + public List getCaracateristiqueParcelle(Long terminalId) { + return caracteristiqueParcelleRepository.getCaracteristiqueParcelleByTerminalId(terminalId); + } + + @Override + public List getCaracateristiqueBatiment(Long terminalId) { + return caracteristiqueBatimentRepository.getCaracteristiqueBatimentByTerminalId(terminalId); + } + + @Override + public List getCaracateristiqueUniteLogement(Long terminalId) { + return caracteristiqueUniteLogementRepository.getCaracteristiqueUniteLogementByTerminalId(terminalId); + } + + @Override + public List getEnqueteUniteLogement(Long terminalId) { + return enqueteUniteLogementRepository.getEnqueteUniteLogementByTerminalId(terminalId); + } + + @Override + public List getUniteLogement(Long terminalId) { + return uniteLogementRepository.getUniteLogementByTerminalId(terminalId); + } + private String getUploadFile(UploadPayLoad uploadPayLoad) { try { diff --git a/src/main/java/io/gmss/fiscad/implementations/synchronisation/SynchronisationServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/synchronisation/SynchronisationServiceImpl.java index 8e0ad3c..8100abc 100644 --- a/src/main/java/io/gmss/fiscad/implementations/synchronisation/SynchronisationServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/synchronisation/SynchronisationServiceImpl.java @@ -143,8 +143,17 @@ public class SynchronisationServiceImpl implements SynchronisationService { List quartierSyncResponses = quartierRepository.getQuartierResponse(user.getStructure().getId()); - List blocSyncResponses = - blocRepository.getBlocResponse(user.getStructure().getId()); +// List blocSyncResponses = +// blocRepository.getBlocResponse(user.getStructure().getId()); + + List blocSyncResponses=new ArrayList<>(); + if(user.getIdSecteurCourant()==null) { + blocSyncResponses = + blocRepository.getBlocResponse(user.getStructure().getId()); + }else{ + blocSyncResponses = + blocRepository.getBlocSecteurResponse(user.getStructure().getId(),user.getIdSecteurCourant()); + } UserDecoupageSyncResponses userDecoupageSyncResponses = new UserDecoupageSyncResponses(); userDecoupageSyncResponses.setDepartementSyncResponses(departementSyncResponses); diff --git a/src/main/java/io/gmss/fiscad/interfaces/decoupage/SecteurDecoupageService.java b/src/main/java/io/gmss/fiscad/interfaces/decoupage/SecteurDecoupageService.java new file mode 100644 index 0000000..5b5e103 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/interfaces/decoupage/SecteurDecoupageService.java @@ -0,0 +1,21 @@ +package io.gmss.fiscad.interfaces.decoupage; + +import io.gmss.fiscad.entities.decoupage.SecteurDecoupage; +import io.gmss.fiscad.exceptions.BadRequestException; +import io.gmss.fiscad.exceptions.NotFoundException; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; + +import java.util.List; +import java.util.Optional; + +public interface SecteurDecoupageService { + + SecteurDecoupage createSecteurDecoupage(SecteurDecoupage secteurDecoupage) throws BadRequestException; + SecteurDecoupage updateSecteurDecoupage(Long id, SecteurDecoupage secteurDecoupage) throws NotFoundException; + void deleteSecteurDecoupage(Long id) throws NotFoundException; + Page getSecteurDecoupageList(Pageable pageable); + List getSecteurDecoupageList(); + + Optional getSecteurDecoupageById(Long id); +} \ No newline at end of file diff --git a/src/main/java/io/gmss/fiscad/interfaces/decoupage/SecteurService.java b/src/main/java/io/gmss/fiscad/interfaces/decoupage/SecteurService.java new file mode 100644 index 0000000..d52c44d --- /dev/null +++ b/src/main/java/io/gmss/fiscad/interfaces/decoupage/SecteurService.java @@ -0,0 +1,22 @@ +package io.gmss.fiscad.interfaces.decoupage; + +import io.gmss.fiscad.entities.decoupage.Secteur; +import io.gmss.fiscad.exceptions.BadRequestException; +import io.gmss.fiscad.exceptions.NotFoundException; +import io.gmss.fiscad.paylaods.request.SecteurPayload; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; + +import java.util.List; +import java.util.Optional; + +public interface SecteurService { + + Secteur createSecteur(SecteurPayload secteur) throws BadRequestException; + Secteur updateSecteur(Long id, SecteurPayload secteur) throws NotFoundException; + void deleteSecteur(Long id) throws NotFoundException; + Page getSecteurList(Pageable pageable); + List getSecteurList(); + + Optional getSecteurById(Long id); +} \ No newline at end of file diff --git a/src/main/java/io/gmss/fiscad/interfaces/rfu/parametre/EquipeService.java b/src/main/java/io/gmss/fiscad/interfaces/rfu/parametre/EquipeService.java index 332eccc..ec81ef2 100644 --- a/src/main/java/io/gmss/fiscad/interfaces/rfu/parametre/EquipeService.java +++ b/src/main/java/io/gmss/fiscad/interfaces/rfu/parametre/EquipeService.java @@ -3,6 +3,7 @@ package io.gmss.fiscad.interfaces.rfu.parametre; import io.gmss.fiscad.entities.rfu.parametre.Equipe; import io.gmss.fiscad.exceptions.BadRequestException; import io.gmss.fiscad.exceptions.NotFoundException; +import io.gmss.fiscad.paylaods.request.EquipePayload; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; @@ -11,8 +12,8 @@ import java.util.Optional; public interface EquipeService { - Equipe createEquipe(Equipe campagne) throws BadRequestException; - Equipe updateEquipe(Long id, Equipe campagne) throws NotFoundException; + Equipe createEquipe(EquipePayload equipePayload) throws BadRequestException; + Equipe updateEquipe(Long id, EquipePayload equipePayload) throws NotFoundException; void deleteEquipe(Long id) throws NotFoundException; Page getEquipeList(Pageable pageable); List getEquipeList(); diff --git a/src/main/java/io/gmss/fiscad/interfaces/synchronisation/RestaurationService.java b/src/main/java/io/gmss/fiscad/interfaces/synchronisation/RestaurationService.java index 6b8fead..73a76fe 100644 --- a/src/main/java/io/gmss/fiscad/interfaces/synchronisation/RestaurationService.java +++ b/src/main/java/io/gmss/fiscad/interfaces/synchronisation/RestaurationService.java @@ -15,6 +15,14 @@ public interface RestaurationService { List getMembreGroupe(Long terminaleId) ; List getUpload(Long terminaleId) ; + List getBatiment(Long terminalId); + List getEnqueteBatiment(Long terminalId); + List getCaracateristiqueParcelle(Long terminalId); + List getCaracateristiqueBatiment(Long terminalId); + List getCaracateristiqueUniteLogement(Long terminalId); + List getEnqueteUniteLogement(Long terminalId); + List getUniteLogement(Long terminalId); + public List getTpeListByCurrentUser(); } \ No newline at end of file diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/EquipePayload.java b/src/main/java/io/gmss/fiscad/paylaods/request/EquipePayload.java new file mode 100644 index 0000000..086aaef --- /dev/null +++ b/src/main/java/io/gmss/fiscad/paylaods/request/EquipePayload.java @@ -0,0 +1,22 @@ +package io.gmss.fiscad.paylaods.request; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class EquipePayload implements Serializable { + private Long id; + private String code; + private String nom; + private Long blocId; + private Long secteurId ; + private Long campagneId; + private List participerPayloads; +} \ No newline at end of file diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/ParticiperPayload.java b/src/main/java/io/gmss/fiscad/paylaods/request/ParticiperPayload.java new file mode 100644 index 0000000..74477ec --- /dev/null +++ b/src/main/java/io/gmss/fiscad/paylaods/request/ParticiperPayload.java @@ -0,0 +1,27 @@ +package io.gmss.fiscad.paylaods.request; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import io.gmss.fiscad.deserializer.LocalDateDeserializer; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.time.LocalDate; + + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ParticiperPayload implements Serializable { + 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; + private Long equipeId ; + private Long userId; +} \ No newline at end of file diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/SecteurDecoupagePayload.java b/src/main/java/io/gmss/fiscad/paylaods/request/SecteurDecoupagePayload.java new file mode 100644 index 0000000..5db270e --- /dev/null +++ b/src/main/java/io/gmss/fiscad/paylaods/request/SecteurDecoupagePayload.java @@ -0,0 +1,31 @@ +package io.gmss.fiscad.paylaods.request; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import io.gmss.fiscad.deserializer.LocalDateDeserializer; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.time.LocalDate; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class SecteurDecoupagePayload implements Serializable { + 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; + + private Long secteurId; + + private Long arrondissementId; + + private Long quartierId; + +} diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/SecteurPayload.java b/src/main/java/io/gmss/fiscad/paylaods/request/SecteurPayload.java new file mode 100644 index 0000000..d0e0eb3 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/paylaods/request/SecteurPayload.java @@ -0,0 +1,20 @@ +package io.gmss.fiscad.paylaods.request; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class SecteurPayload implements Serializable { + private Long id ; + private String code ; + private String nom ; + private Long chefSecteurId ; + private Long structure_id ; + private List secteurDecoupages ; +} \ No newline at end of file diff --git a/src/main/java/io/gmss/fiscad/paylaods/response/restoration/BatimentPayload.java b/src/main/java/io/gmss/fiscad/paylaods/response/restoration/BatimentPayload.java new file mode 100644 index 0000000..8c0e8de --- /dev/null +++ b/src/main/java/io/gmss/fiscad/paylaods/response/restoration/BatimentPayload.java @@ -0,0 +1,23 @@ +package io.gmss.fiscad.paylaods.response.restoration; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import io.gmss.fiscad.deserializer.LocalDateDeserializer; + +import java.time.LocalDate; + +public interface BatimentPayload { + + public Long getIdBackend(); + public Long getExternalKey(); + + public String getNub(); + public String getCode(); + @JsonFormat(pattern = "dd-MM-yyyy") + @JsonDeserialize(using = LocalDateDeserializer.class) + public LocalDate getDateConstruction(); + + public Long getParcelleId(); + + public Long getTerminalId(); +} diff --git a/src/main/java/io/gmss/fiscad/paylaods/response/restoration/CaracateristiqueBatimentPayLoads.java b/src/main/java/io/gmss/fiscad/paylaods/response/restoration/CaracateristiqueBatimentPayLoads.java new file mode 100644 index 0000000..f7d790a --- /dev/null +++ b/src/main/java/io/gmss/fiscad/paylaods/response/restoration/CaracateristiqueBatimentPayLoads.java @@ -0,0 +1,15 @@ +package io.gmss.fiscad.paylaods.response.restoration; + +public interface CaracateristiqueBatimentPayLoads { + + public Long getIdBackend(); + public Long getExternalKey(); + + public Long getEnqueteBatimentId(); + + public Long getCaracteristiqueId(); + + public String getValeur(); + + public Long getTerminalId(); +} diff --git a/src/main/java/io/gmss/fiscad/paylaods/response/restoration/CaracateristiqueParcellePayLoads.java b/src/main/java/io/gmss/fiscad/paylaods/response/restoration/CaracateristiqueParcellePayLoads.java new file mode 100644 index 0000000..140046a --- /dev/null +++ b/src/main/java/io/gmss/fiscad/paylaods/response/restoration/CaracateristiqueParcellePayLoads.java @@ -0,0 +1,15 @@ +package io.gmss.fiscad.paylaods.response.restoration; + +public interface CaracateristiqueParcellePayLoads { + + public Long getIdBackend(); + public Long getExternalKey(); + + public Long getEnqueteId(); + + public Long getCaracteristiqueId(); + + public String getValeur(); + + public Long getTerminalId(); +} diff --git a/src/main/java/io/gmss/fiscad/paylaods/response/restoration/CaracteristiqueUniteLogementPayLoad.java b/src/main/java/io/gmss/fiscad/paylaods/response/restoration/CaracteristiqueUniteLogementPayLoad.java new file mode 100644 index 0000000..e5ff37d --- /dev/null +++ b/src/main/java/io/gmss/fiscad/paylaods/response/restoration/CaracteristiqueUniteLogementPayLoad.java @@ -0,0 +1,4 @@ +package io.gmss.fiscad.paylaods.response.restoration; + +public interface CaracteristiqueUniteLogementPayLoad { +} diff --git a/src/main/java/io/gmss/fiscad/paylaods/response/restoration/EnqueteBatimentPayLoad.java b/src/main/java/io/gmss/fiscad/paylaods/response/restoration/EnqueteBatimentPayLoad.java new file mode 100644 index 0000000..d555ccc --- /dev/null +++ b/src/main/java/io/gmss/fiscad/paylaods/response/restoration/EnqueteBatimentPayLoad.java @@ -0,0 +1,38 @@ +package io.gmss.fiscad.paylaods.response.restoration; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import io.gmss.fiscad.deserializer.LocalDateDeserializer; + +import java.time.LocalDate; + +public interface EnqueteBatimentPayLoad { + public Long getIdBackend(); + public Long getExternalKey(); + public float getSurfaceAuSol(); + public String getAutreMenuisierie(); + public String getAutreMur(); + public boolean getSbee(); + public String getNumCompteurSbee(); + public boolean getSoneb(); + public String getNumCompteurSoneb(); + public int getNbreLotUnite(); + public int getNbreUniteLocation(); + public float getSurfaceLouee(); + public int getNbreMenage(); + public int getNbreHabitant(); + public float getValeurMensuelleLocation(); + public int getNbreMoisLocation(); + public String getAutreCaracteristiquePhysique(); + @JsonFormat(pattern = "dd-MM-yyyy") + @JsonDeserialize(using = LocalDateDeserializer.class) + public LocalDate getDateDebutExcemption(); + @JsonFormat(pattern = "dd-MM-yyyy") + @JsonDeserialize(using = LocalDateDeserializer.class) + public LocalDate getDateFinExcemption(); + public Long getPersonneId(); + public Long getBatimentId(); + public Long getEnqueteId(); + public Long getTerminalId(); + public Long getUserId(); +} diff --git a/src/main/java/io/gmss/fiscad/paylaods/response/restoration/EnqueteUniteLogementPayLoad.java b/src/main/java/io/gmss/fiscad/paylaods/response/restoration/EnqueteUniteLogementPayLoad.java new file mode 100644 index 0000000..fa312cb --- /dev/null +++ b/src/main/java/io/gmss/fiscad/paylaods/response/restoration/EnqueteUniteLogementPayLoad.java @@ -0,0 +1,37 @@ +package io.gmss.fiscad.paylaods.response.restoration; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import io.gmss.fiscad.deserializer.LocalDateDeserializer; + +import java.time.LocalDate; + +public interface EnqueteUniteLogementPayLoad { + public Long getIdBackend(); + public Long getExternalKey(); + public float getSurface(); + public int getNbrePiece(); + public int getNbreHabitant(); + public int getNbreMenage(); + public boolean getEnLocation(); + public float getMontantMensuelLoyer(); + public int getNbreMoisEnLocation(); + public float getMontantLocatifAnnuelDeclare(); + public float getSurfaceLouee(); + public boolean getSbee(); + public boolean getSoneb(); + public String getNumCompteurSbee(); + public String getNumCompteurSoneb(); + @JsonFormat(pattern = "dd-MM-yyyy") + @JsonDeserialize(using = LocalDateDeserializer.class) + public LocalDate getDateDebutExcemption(); + @JsonFormat(pattern = "dd-MM-yyyy") + @JsonDeserialize(using = LocalDateDeserializer.class) + public LocalDate getDateFinExcemption(); + public Long getPersonneId(); + public Long getUniteLogementId(); + public Long getEnqueteId(); + public Long getTerminalId(); + public Long getUserId(); + +} diff --git a/src/main/java/io/gmss/fiscad/paylaods/response/restoration/UniteLogementPayLoad.java b/src/main/java/io/gmss/fiscad/paylaods/response/restoration/UniteLogementPayLoad.java new file mode 100644 index 0000000..ee64df1 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/paylaods/response/restoration/UniteLogementPayLoad.java @@ -0,0 +1,13 @@ +package io.gmss.fiscad.paylaods.response.restoration; + +public interface UniteLogementPayLoad { + + public Long getIdBackend(); + public Long getExternalKey(); + public Long getTerminalId(); + public String getNul(); + public String getNumeroEtage(); + public String getCode(); + public Long getBatimentId(); + +} diff --git a/src/main/java/io/gmss/fiscad/repositories/decoupage/SecteurDecoupageRepository.java b/src/main/java/io/gmss/fiscad/repositories/decoupage/SecteurDecoupageRepository.java new file mode 100644 index 0000000..12b928a --- /dev/null +++ b/src/main/java/io/gmss/fiscad/repositories/decoupage/SecteurDecoupageRepository.java @@ -0,0 +1,7 @@ +package io.gmss.fiscad.repositories.decoupage; + +import io.gmss.fiscad.entities.decoupage.SecteurDecoupage; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface SecteurDecoupageRepository extends JpaRepository { +} \ No newline at end of file diff --git a/src/main/java/io/gmss/fiscad/repositories/decoupage/SecteurRepository.java b/src/main/java/io/gmss/fiscad/repositories/decoupage/SecteurRepository.java new file mode 100644 index 0000000..d190f9d --- /dev/null +++ b/src/main/java/io/gmss/fiscad/repositories/decoupage/SecteurRepository.java @@ -0,0 +1,7 @@ +package io.gmss.fiscad.repositories.decoupage; + +import io.gmss.fiscad.entities.decoupage.Secteur; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface SecteurRepository extends JpaRepository { +} \ No newline at end of file diff --git a/src/main/java/io/gmss/fiscad/repositories/infocad/metier/EnqueteRepository.java b/src/main/java/io/gmss/fiscad/repositories/infocad/metier/EnqueteRepository.java index 00b3106..01685de 100755 --- a/src/main/java/io/gmss/fiscad/repositories/infocad/metier/EnqueteRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/infocad/metier/EnqueteRepository.java @@ -164,6 +164,21 @@ public interface EnqueteRepository extends JpaRepository { " e.nom_proprietaire_parcelle as nomProprietaireParcelle, " + " e.code_equipe as codeEquipe, " + " e.numero_titre_foncier as numeroTitreFoncier " + + + " e.num_enter_parcelle as numEnterParcelle" + + " e.num_rue as numRue" + + " e.num_nom_rue as nomRue" + + " e.emplacement as emplacement" + + " e.altitude as altitude" + + " e.precision as precision" + + " e.nbre_co_proprietaire as nbreCoProprietaire" + + " e.nbre_indivisiaire as nbreIndivisiaire" + + " e.autre_adresse as autreAdresse" + + " e.surface as surface" + + " e.nbre_batiment as nbreBatiment" + + " e.nbre_piscine as nbrePiscine" + + " e.date_debut_excemption as dateDebutExcemption" + + " e.date_fin_excemption as dateFinExcemption" + " FROM enquete e inner join parcelle p on p.id = e.parcelle_id " + " WHERE e.terminal_id = ?1", nativeQuery = true) List getEnqueteByTerminalId(Long terminalId); diff --git a/src/main/java/io/gmss/fiscad/repositories/infocad/parametre/BlocRepository.java b/src/main/java/io/gmss/fiscad/repositories/infocad/parametre/BlocRepository.java index d386f00..1a96562 100755 --- a/src/main/java/io/gmss/fiscad/repositories/infocad/parametre/BlocRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/infocad/parametre/BlocRepository.java @@ -18,6 +18,13 @@ public interface BlocRepository extends JpaRepository { " where b.deleted is false and b.structure_id = ?1 ",nativeQuery = true) List getBlocResponse(Long structure_id); + @Query(value = "select b.id, b.cote, b.nom, b.arrondissement_id as arrondissementid, b.quartier_id as quartierid " + + " from bloc b " + + " inner join secteur_decoupage sd on cd.bloc_id=b.id " + + " where b.deleted is false and s.structure_id = ?1 and sd.secteur_id=?2",nativeQuery = true) + List getBlocSecteurResponse(Long structure_id,Long secteur_id); + + @Query(value = " select b.id, b.cote as code, b.nom as nom , a.nom as arrondissement, c.nom as commune, d.nom as departement " + " from bloc b inner join arrondissement a on a.id=b.arrondissement_id" + " inner join commune c on c.id=a.commune_id " + diff --git a/src/main/java/io/gmss/fiscad/repositories/rfu/metier/BatimentRepository.java b/src/main/java/io/gmss/fiscad/repositories/rfu/metier/BatimentRepository.java index 868e666..044461b 100755 --- a/src/main/java/io/gmss/fiscad/repositories/rfu/metier/BatimentRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/rfu/metier/BatimentRepository.java @@ -1,12 +1,27 @@ package io.gmss.fiscad.repositories.rfu.metier; import io.gmss.fiscad.entities.rfu.metier.Batiment; +import io.gmss.fiscad.paylaods.response.restoration.BatimentPayload; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import java.util.List; import java.util.Optional; public interface BatimentRepository extends JpaRepository { Optional findFirstByExternalKeyAndTerminal_Id(Long externalKey,Long TerminalId); + + @Query(value = "SELECT " + + " b.id as idBackend," + + " b.external_key as externalKey," + + " b.nub as nub, " + + " b.code as code," + + " b.date_construction as dateConstruction," + + " p.external_key as parcelleId," + + " b.terminal_id as terminalId " + + " FROM batiment b inner join parcelle p on b.id = b.parcelle_id " + + " WHERE b.terminal_id = ?1", nativeQuery = true) + List getBatimentByTerminalId(Long terminalId); } diff --git a/src/main/java/io/gmss/fiscad/repositories/rfu/metier/CaracteristiqueBatimentRepository.java b/src/main/java/io/gmss/fiscad/repositories/rfu/metier/CaracteristiqueBatimentRepository.java index e2811bd..8aaf2c8 100755 --- a/src/main/java/io/gmss/fiscad/repositories/rfu/metier/CaracteristiqueBatimentRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/rfu/metier/CaracteristiqueBatimentRepository.java @@ -2,9 +2,27 @@ package io.gmss.fiscad.repositories.rfu.metier; import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueBatiment; import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment; +import io.gmss.fiscad.paylaods.response.restoration.CaracateristiqueBatimentPayLoads; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import java.util.List; public interface CaracteristiqueBatimentRepository extends JpaRepository { void deleteAllByEnqueteBatiment(EnqueteBatiment enqueteBatiment); + + @Query( + nativeQuery = true, + value = "select cb.id as idBackend, " + + "cb.external_key as externalKey, " + + "c.external_key as caracteristiqueId, " + + "eb.external_key as enqueteBatimentId, " + + "cb.valeur as valeur " + + "from caracteristique_batiment cb " + + "inner join caracteristique c on cb.caracteristique_id = c.id " + + "inner join enquete_batiment eb on eb.id = cb.enquete_batiment_id " + + "where cb.terminal_id = ?1" + ) + List getCaracteristiqueBatimentByTerminalId(Long terminalId); } diff --git a/src/main/java/io/gmss/fiscad/repositories/rfu/metier/CaracteristiqueParcelleRepository.java b/src/main/java/io/gmss/fiscad/repositories/rfu/metier/CaracteristiqueParcelleRepository.java index c8466a1..9ee90bd 100755 --- a/src/main/java/io/gmss/fiscad/repositories/rfu/metier/CaracteristiqueParcelleRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/rfu/metier/CaracteristiqueParcelleRepository.java @@ -2,7 +2,9 @@ package io.gmss.fiscad.repositories.rfu.metier; import io.gmss.fiscad.entities.infocad.metier.Enquete; import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueParcelle; +import io.gmss.fiscad.paylaods.response.restoration.CaracateristiqueParcellePayLoads; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; import java.util.List; @@ -11,4 +13,16 @@ public interface CaracteristiqueParcelleRepository extends JpaRepository findAllByEnquete_Id(Long id); + + @Query(nativeQuery = true, + value = "select cp.id as idBackend, " + + "cp.external_key as externalKey, " + + "c.external_key as caracteristiqueId, " + + "e.external_key as enqueteId, " + + "cp.valeur as valeur " + + "from caracteristique_parcelle cp " + + "inner join caracteristique c on cp.caracteristique_id = c.id " + + "inner join enquete e on cp.enquete_id = e.id " + + "where cp.terminal_id = ?") + List getCaracteristiqueParcelleByTerminalId(Long terminalId); } diff --git a/src/main/java/io/gmss/fiscad/repositories/rfu/metier/CaracteristiqueUniteLogementRepository.java b/src/main/java/io/gmss/fiscad/repositories/rfu/metier/CaracteristiqueUniteLogementRepository.java index 4c1d4e2..c84bce0 100755 --- a/src/main/java/io/gmss/fiscad/repositories/rfu/metier/CaracteristiqueUniteLogementRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/rfu/metier/CaracteristiqueUniteLogementRepository.java @@ -2,9 +2,26 @@ package io.gmss.fiscad.repositories.rfu.metier; import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueUniteLogement; import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement; +import io.gmss.fiscad.paylaods.response.restoration.CaracteristiqueUniteLogementPayLoad; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import java.util.List; public interface CaracteristiqueUniteLogementRepository extends JpaRepository { void deleteAllByEnqueteUniteLogement(EnqueteUniteLogement enqueteUniteLogement); + + @Query(nativeQuery = true, + value = "select cul.id as idBackend, " + + "cul.external_key as externalKey, " + + "c.external_key as caracteristiqueId, " + + "eul.external_key as enqueteUniteLogementId, " + + "cul.valeur as valeur " + + "from caracteristique_unite_logement cul " + + "inner join caracteristique c on c.id = cul.caracteristique_id " + + "inner join enquete_unite_logement eul on eul.id = cul.enquete_unite_logement_id " + + "where cul.terminal_id = ?" + ) + List getCaracteristiqueUniteLogementByTerminalId(Long terminalId); } diff --git a/src/main/java/io/gmss/fiscad/repositories/rfu/metier/EnqueteBatimentRepository.java b/src/main/java/io/gmss/fiscad/repositories/rfu/metier/EnqueteBatimentRepository.java index 2ecba74..57340e2 100755 --- a/src/main/java/io/gmss/fiscad/repositories/rfu/metier/EnqueteBatimentRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/rfu/metier/EnqueteBatimentRepository.java @@ -1,7 +1,9 @@ package io.gmss.fiscad.repositories.rfu.metier; import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment; +import io.gmss.fiscad.paylaods.response.restoration.EnqueteBatimentPayLoad; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; import java.util.List; import java.util.Optional; @@ -12,4 +14,38 @@ public interface EnqueteBatimentRepository extends JpaRepository findFirstByExternalKeyAndTerminal_Id(Long externalKey,Long TerminalId); List findAllByEnquete_Id(Long enqueteId); + + @Query( + nativeQuery = true, + value = "select eb.id as idBackend, " + + "eb.terminal_id as terminalId, " + + "eb.external_key as externalKey, " + + "eb.autre_caracteristique_physique as autreCaracteristiquePhysique, " + + "eb.autre_menuisierie as autreMenuisierie, " + + "eb.autre_mur as autreMur, " + + "eb.date_debut_excemption as dateDebutExcemption, " + //ok + "eb.date_fin_excemption as dateFinExcemption, " + //ok + "eb.nbre_habitant as nbreHabitant, " + //ok + "eb.nbre_lot_unite as nbreLotUnite, " + //ok + "eb.nbre_menage as nbreMenage, " + //ok + "eb.nbre_mois_location as nbreMoisLocation, " + //ok + "eb.num_compteur_sbee as numCompteurSbee, " + //ok + "eb.num_compteur_soneb as numCompteurSoneb, " + //ok + "eb.sbee as sbee, " + //ok + "eb.nbre_unite_location as nbreUniteLocation, " + //ok + "eb.soneb as soneb, " + //ok + "eb.surface_au_sol as surfaceAuSol, " + //ok + "eb.surface_louee as surfaceLouee, " + //ok + "eb.valeur_mensuelle_location as valeurMensuelleLocation, " + //ok + "b.external_key as batimentId, " + //ok + "e.external_key as enquteId, " + //ok + "p2.external_key as personeId " + //ok + "from enquete_batiment eb " + + "inner join batiment b on b.id = eb.batiment_id " + + "inner join parcelle p on p.id = b.parcelle_id " + + "inner join personne p2 on p2.id = eb.personne_id " + + "inner join enquete e on e.id = eb.enquete_id " + + "WHERE eb.terminal_id = ?1" + ) + List getEnqueteBatimentByTerminalId(Long terminalId); } diff --git a/src/main/java/io/gmss/fiscad/repositories/rfu/metier/EnqueteUniteLogementRepository.java b/src/main/java/io/gmss/fiscad/repositories/rfu/metier/EnqueteUniteLogementRepository.java index 270eaf4..59f3098 100755 --- a/src/main/java/io/gmss/fiscad/repositories/rfu/metier/EnqueteUniteLogementRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/rfu/metier/EnqueteUniteLogementRepository.java @@ -1,13 +1,45 @@ package io.gmss.fiscad.repositories.rfu.metier; import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement; +import io.gmss.fiscad.paylaods.response.restoration.EnqueteUniteLogementPayLoad; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; import java.util.List; import java.util.Optional; public interface EnqueteUniteLogementRepository extends JpaRepository { - Optional findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long TerminalId); - List findAllByEnquete_Id(Long id); +Optional findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long TerminalId); +List findAllByEnquete_Id(Long id); + +@Query(nativeQuery = true, +value = "select eul.id as idBackend, " + + "eul.terminal_id as terminalId, " + + "eul.external_key as externalKey, " + + "eul.surface as surface, " + + "eul.nbre_piece as nbrePiece, " + + "eul.nbre_habitant as nbreHabitant, " + + "eul.nbre_menage as nbreMenage, " + + "eul.en_location as enLocation, " + + "eul.montant_mensuel_loyer as montantMensuelLoyer, " + + "eul.nbre_mois_en_location as nbreMoisEnLocation, " + + "eul.montant_locatif_annuel_declare as montantLocatifAnnuelDeclare, " + + "eul.surface_louee as surfaceLouee, " + + "eul.sbee as sbee, " + + "eul.soneb as soneb, " + + "eul.num_compteur_sbee as numCompteurSbee, " + + "eul.num_compteur_soneb as numCompteurSoneb, " + + "eul.date_debut_excemption as dateDebutExcemption, " + + "eul.date_fin_excemption as dateFinExcemption, " + + "eul.personne_id as personneId, " + + "eul.unite_logement_id as uniteLogementId, " + + "eul.enquete_id as enqueteId, " + + "eul.user_id as userId " + + "from enquete_unite_logement eul " + + "inner join enquete e on e.id = eul.enquete_id " + + "inner join unite_logement ul on eul.unite_logement_id = ul.id " + + "inner join personne p on eul.personne_id = p.id " + + "where eul.terminal_id = ?1") +List getEnqueteUniteLogementByTerminalId(Long terminalId); } diff --git a/src/main/java/io/gmss/fiscad/repositories/rfu/metier/UniteLogementRepository.java b/src/main/java/io/gmss/fiscad/repositories/rfu/metier/UniteLogementRepository.java index 43ec811..7c20f77 100755 --- a/src/main/java/io/gmss/fiscad/repositories/rfu/metier/UniteLogementRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/rfu/metier/UniteLogementRepository.java @@ -1,11 +1,29 @@ package io.gmss.fiscad.repositories.rfu.metier; import io.gmss.fiscad.entities.rfu.metier.UniteLogement; +import io.gmss.fiscad.paylaods.response.restoration.UniteLogementPayLoad; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import java.util.List; import java.util.Optional; public interface UniteLogementRepository extends JpaRepository { Optional findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long TerminalId); + + @Query( + nativeQuery = true, + value = "select ul.id as idBackend, " + + " ul.external_key as externalKey, " + + " ul.terminal_id as terminalId, " + + " ul.nul as nul, " + + " ul.numero_etage as numeroEtage, " + + " ul.code as code, " + + " ul.batiment_id as batimentId " + + " from unite_logement ul " + + " inner join batiment b on b.id = ul.batiment_id " + + " where ul.terminal_id = ?1" + ) + List getUniteLogementByTerminalId(Long terminalId); } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 838bb60..3150157 100755 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,8 +1,22 @@ spring.jpa.properties.hibernate.id.new_generator_mappings=false -#spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect +# TEST ENV spring.datasource.url=jdbc:postgresql://vmi792116.contaboserver.net:5599/abomey_db spring.datasource.username=infocad_user spring.datasource.password=W5fwD({9*q53 + +# LOCAL ENV +# +#spring.datasource.url=jdbc:postgresql://localhost:5432/fiscad +#spring.datasource.username=fiscad +#spring.datasource.password=fiscad + + +#spring.datasource.url=jdbc:postgresql://192.168.1.107:5432/abomey_db +#spring.datasource.username=infocad_user +#spring.datasource.password=12345 + + + spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true spring.jpa.open-in-view=false spring.jpa.show-sql=true