diff --git a/pom.xml b/pom.xml index 15fedd3..ef3a84a 100755 --- a/pom.xml +++ b/pom.xml @@ -147,6 +147,7 @@ provided + diff --git a/src/main/java/io/gmss/fiscad/configuration/AsyncConfig.java b/src/main/java/io/gmss/fiscad/configuration/AsyncConfig.java new file mode 100644 index 0000000..d486ed9 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/configuration/AsyncConfig.java @@ -0,0 +1,175 @@ +package io.gmss.fiscad.configuration; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableAsync; + +@Configuration +@EnableAsync +public class AsyncConfig { + + @Bean(name = "uploadExecutor") + public java.util.concurrent.Executor uploadExecutor() { + var exec = new org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor(); + exec.setThreadNamePrefix("Upload-"); + exec.setCorePoolSize(2); + exec.setMaxPoolSize(16); + exec.setQueueCapacity(100); + exec.initialize(); + return exec; + } + + @Bean(name = "pieceExecutor") + public java.util.concurrent.Executor fileExecutor() { + var exec = new org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor(); + exec.setThreadNamePrefix("Piece-"); + exec.setCorePoolSize(2); + exec.setMaxPoolSize(16); + exec.setQueueCapacity(100); + exec.initialize(); + return exec; + } + + + @Bean(name = "traitementTableRelationnelleExecutor") + public java.util.concurrent.Executor traitementTableRelationnelleExecutor() { + var exec = new org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor(); + exec.setThreadNamePrefix("traitementTableRelationnelle- "); + exec.setCorePoolSize(2); + exec.setMaxPoolSize(16); + exec.setQueueCapacity(100); + exec.initialize(); + return exec; + } + @Bean(name = "personneExecutor") + public java.util.concurrent.Executor personneExecutor() { + var exec = new org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor(); + exec.setThreadNamePrefix("Personne-"); + exec.setCorePoolSize(2); + exec.setMaxPoolSize(16); + exec.setQueueCapacity(100); + exec.initialize(); + return exec; + } + + @Bean(name = "parcelleExecutor") + public java.util.concurrent.Executor parcelleExecutor() { + var exec = new org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor(); + exec.setThreadNamePrefix("Parcelle-"); + exec.setCorePoolSize(2); + exec.setMaxPoolSize(20); + exec.setQueueCapacity(100); + exec.initialize(); + return exec; + } + + @Bean(name = "membreGroupeExecutor") + public java.util.concurrent.Executor membreGroupeExecutor() { + var exec = new org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor(); + exec.setThreadNamePrefix("MembreGroupe-"); + exec.setCorePoolSize(2); + exec.setMaxPoolSize(16); + exec.setQueueCapacity(100); + exec.initialize(); + return exec; + } + + @Bean(name = "acteurConcerneExecutor") + public java.util.concurrent.Executor acteurConcerneExecutor() { + var exec = new org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor(); + exec.setThreadNamePrefix("ActeurConcerne-"); + exec.setCorePoolSize(2); + exec.setMaxPoolSize(16); + exec.setQueueCapacity(100); + exec.initialize(); + return exec; + } + + @Bean(name = "enqueteExecutor") + public java.util.concurrent.Executor enqueteExecutor() { + var exec = new org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor(); + exec.setThreadNamePrefix("Enquete-"); + exec.setCorePoolSize(2); + exec.setMaxPoolSize(16); + exec.setQueueCapacity(100); + exec.initialize(); + return exec; + } + + @Bean(name = "enqueteBatimentExecutor") + public java.util.concurrent.Executor enqueteBatimentExecutor() { + var exec = new org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor(); + exec.setThreadNamePrefix("Enquete Batiment-"); + exec.setCorePoolSize(2); + exec.setMaxPoolSize(16); + exec.setQueueCapacity(100); + exec.initialize(); + return exec; + } + + @Bean(name = "batimentExecutor") + public java.util.concurrent.Executor batimentExecutor() { + var exec = new org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor(); + exec.setThreadNamePrefix("Batiment-"); + exec.setCorePoolSize(2); + exec.setMaxPoolSize(16); + exec.setQueueCapacity(100); + exec.initialize(); + return exec; + } + + @Bean(name = "uniteLogementExecutor") + public java.util.concurrent.Executor uniteLogementExecutor() { + var exec = new org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor(); + exec.setThreadNamePrefix("Unite de Logement-"); + exec.setCorePoolSize(2); + exec.setMaxPoolSize(16); + exec.setQueueCapacity(100); + exec.initialize(); + return exec; + } + + @Bean(name = "enqueteUniteLogementExecutor") + public java.util.concurrent.Executor enqueteUniteLogementExecutor() { + var exec = new org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor(); + exec.setThreadNamePrefix("Enquete Unité Logement-"); + exec.setCorePoolSize(2); + exec.setMaxPoolSize(16); + exec.setQueueCapacity(100); + exec.initialize(); + return exec; + } + + @Bean(name = "caracteristiqueParcelleExecutor") + public java.util.concurrent.Executor caracteristiqueParcelleExecutor() { + var exec = new org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor(); + exec.setThreadNamePrefix("Caracteristique Parcelle-"); + exec.setCorePoolSize(2); + exec.setMaxPoolSize(16); + exec.setQueueCapacity(100); + exec.initialize(); + return exec; + } + + @Bean(name = "caracteristiqueBatimentExecutor") + public java.util.concurrent.Executor caracteristiqueBatimentExecutor() { + var exec = new org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor(); + exec.setThreadNamePrefix("caracteristique Batiment-"); + exec.setCorePoolSize(2); + exec.setMaxPoolSize(16); + exec.setQueueCapacity(100); + exec.initialize(); + return exec; + } + + @Bean(name = "caracteristiqueUniteLogementExecutor") + public java.util.concurrent.Executor caracteristiqueUniteLogementExecutor() { + var exec = new org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor(); + exec.setThreadNamePrefix("caracteristique Unité de logement-"); + exec.setCorePoolSize(2); + exec.setMaxPoolSize(16); + exec.setQueueCapacity(100); + exec.initialize(); + return exec; + } +} diff --git a/src/main/java/io/gmss/fiscad/configuration/OpenApiConfig.java b/src/main/java/io/gmss/fiscad/configuration/OpenApiConfig.java index 755068f..c2c4f6f 100644 --- a/src/main/java/io/gmss/fiscad/configuration/OpenApiConfig.java +++ b/src/main/java/io/gmss/fiscad/configuration/OpenApiConfig.java @@ -31,6 +31,10 @@ import io.swagger.v3.oas.annotations.servers.Server; description = "Local ENV", url = "http://localhost:8282" ), + @Server( + description = "TEST ENV (http)", + url = "http://novatic.vps.webdock.cloud:8282" + ), @Server( description = "PROD ENV (https)", url = "https://backend.fiscad.org" diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/CommentaireController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/CommentaireController.java index 1fadc1e..f992758 100644 --- a/src/main/java/io/gmss/fiscad/controllers/infocad/metier/CommentaireController.java +++ b/src/main/java/io/gmss/fiscad/controllers/infocad/metier/CommentaireController.java @@ -28,7 +28,7 @@ import java.util.List; @SecurityRequirement(name = "bearer") @Tag(name = "Commentaire") @CrossOrigin(origins = "*") -@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") + public class CommentaireController { private final CommentaireService commentaireService; @@ -39,7 +39,7 @@ public class CommentaireController { this.commentaireService = commentaireService; } - + @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") @PostMapping("/create") public ResponseEntity createcommentaire(@RequestBody @Valid @Validated Commentaire commentaire) { try { @@ -64,7 +64,7 @@ public class CommentaireController { return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); } } - + @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") @PutMapping("/update/{id}") public ResponseEntity updatecommentaire(@PathVariable Long id, @RequestBody Commentaire commentaire) { try { @@ -87,7 +87,7 @@ public class CommentaireController { return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); } } - + @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") @DeleteMapping("/delete/{id}") public ResponseEntity deletecommentaire(@PathVariable Long id) { try { @@ -111,7 +111,7 @@ public class CommentaireController { return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); } } - + @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") @GetMapping("/all") public ResponseEntity getAllcommentaireList() { try { @@ -134,7 +134,7 @@ public class CommentaireController { return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); } } - + @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") @GetMapping("/id/{id}") public ResponseEntity getcommentaireById(@PathVariable Long id) { try { @@ -157,7 +157,7 @@ public class CommentaireController { return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); } } - + @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") @GetMapping("/nup/{nup}") public ResponseEntity getcommentaireByNup(@PathVariable String nup) { try { @@ -180,7 +180,7 @@ public class CommentaireController { return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); } } - + @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") @PostMapping("/enquete") public ResponseEntity getcommentaireByEnquete(@RequestBody Commentaire commentaire) { try { @@ -203,7 +203,7 @@ public class CommentaireController { return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); } } - + @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") @PostMapping("/enquete-and-state") //@ApiOperation(value = "Cette ressource permet d'avoir la liste de tous les commentaires d'une enquête avec le statut (lu ou non lu). Les champs a renseigner pour le payload sont idEnquete et lu") public ResponseEntity getcommentaireByEnqueteAndStatut(@RequestBody Commentaire commentaire) { @@ -227,7 +227,7 @@ public class CommentaireController { return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); } } - + @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") @PostMapping("/all-by-params") //@ApiOperation(value = "Cette ressource permet d'avoir 4 résultats différents. \n 1 - Liste des commentaires non lus provenant du Web. \n 2 - Liste des commentaires lus provenant du Web \n 3 - Liste des commentaires non lus provenant du mobile. \n 4 - Liste des commentaires lus provenant du mobile. \n A savoir : Les variables Origine et lu sont à varier pour avoir le résultat") public ResponseEntity getcommentaireByParams(@RequestBody CommentaireRequest commentaireRequest) { @@ -299,7 +299,7 @@ public class CommentaireController { return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); } } - + @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") @PostMapping("synchronise/notify-done-from-mobile") //@ApiOperation(value = "Cette ressource permet matérialiser coté backend les commentaires du WEB déjà synchronisé avec le MOBILE pour que les prochaines extractions ne prennent pas en compte cela. ") public ResponseEntity notifyDoneSynchronizedFromMobile(@RequestBody List syncCommentaireRequests) { diff --git a/src/main/java/io/gmss/fiscad/controllers/synchronisation/SynchronisationController.java b/src/main/java/io/gmss/fiscad/controllers/synchronisation/SynchronisationController.java index 35b1aa5..10b0704 100644 --- a/src/main/java/io/gmss/fiscad/controllers/synchronisation/SynchronisationController.java +++ b/src/main/java/io/gmss/fiscad/controllers/synchronisation/SynchronisationController.java @@ -514,7 +514,7 @@ public class SynchronisationController { @GetMapping("/traiter-non-synch-to-mobile/{terminalId}") - @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") + //@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") public ResponseEntity getEnqueteValideNonSynch(@PathVariable Long terminalId) { try { return new ResponseEntity<>( @@ -537,4 +537,31 @@ public class SynchronisationController { } } + + + @PostMapping("/traite-synchronisation/{terminalId}") + //@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") + public ResponseEntity traiteSynchronisation(@PathVariable Long terminalId) { + try { + synchronisationService.traitementTableRelationnelle(terminalId); + return new ResponseEntity<>( + new ApiResponse<>(true, null, "Synchronisation lancée avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } + } diff --git a/src/main/java/io/gmss/fiscad/entities/infocad/metier/ActeurConcerne.java b/src/main/java/io/gmss/fiscad/entities/infocad/metier/ActeurConcerne.java index 682ee7f..e26b747 100644 --- a/src/main/java/io/gmss/fiscad/entities/infocad/metier/ActeurConcerne.java +++ b/src/main/java/io/gmss/fiscad/entities/infocad/metier/ActeurConcerne.java @@ -69,5 +69,6 @@ public class ActeurConcerne extends BaseEntity implements Serializable { @ColumnDefault("0") private int haveDeclarant; private Long max_numero_acteur_concerne_id; + private Long mobileDataId; } diff --git a/src/main/java/io/gmss/fiscad/entities/infocad/metier/Enquete.java b/src/main/java/io/gmss/fiscad/entities/infocad/metier/Enquete.java index 03813a7..03bf195 100644 --- a/src/main/java/io/gmss/fiscad/entities/infocad/metier/Enquete.java +++ b/src/main/java/io/gmss/fiscad/entities/infocad/metier/Enquete.java @@ -56,7 +56,7 @@ public class Enquete extends BaseEntity implements Serializable { @JsonIgnore @ManyToOne private User user; - + private Long mobileDataId; @JsonIgnore @OneToMany(mappedBy = "enquete") private List acteurConcernes; diff --git a/src/main/java/io/gmss/fiscad/entities/infocad/metier/MembreGroupe.java b/src/main/java/io/gmss/fiscad/entities/infocad/metier/MembreGroupe.java index 2763fd1..5b935d3 100644 --- a/src/main/java/io/gmss/fiscad/entities/infocad/metier/MembreGroupe.java +++ b/src/main/java/io/gmss/fiscad/entities/infocad/metier/MembreGroupe.java @@ -41,7 +41,7 @@ public class MembreGroupe extends BaseEntity implements Serializable { @JsonIgnore @ManyToOne private Tpe terminal; - + private Long mobileDataId; private Long max_numero_piece_id; private Long max_numero_acteur_concerne_id; private Long enqueteId; diff --git a/src/main/java/io/gmss/fiscad/entities/infocad/metier/Parcelle.java b/src/main/java/io/gmss/fiscad/entities/infocad/metier/Parcelle.java index 3634b4e..f14d19d 100644 --- a/src/main/java/io/gmss/fiscad/entities/infocad/metier/Parcelle.java +++ b/src/main/java/io/gmss/fiscad/entities/infocad/metier/Parcelle.java @@ -59,6 +59,7 @@ public class Parcelle extends BaseEntity implements Serializable { @ColumnDefault("false") private boolean synchronise; private Long idDerniereEnquete; + private Long mobileDataId; // @JsonIgnore // @OneToMany(mappedBy = "parcelle") // private List batiments; diff --git a/src/main/java/io/gmss/fiscad/entities/infocad/metier/Piece.java b/src/main/java/io/gmss/fiscad/entities/infocad/metier/Piece.java index b3f166d..e27f9ac 100644 --- a/src/main/java/io/gmss/fiscad/entities/infocad/metier/Piece.java +++ b/src/main/java/io/gmss/fiscad/entities/infocad/metier/Piece.java @@ -45,7 +45,7 @@ public class Piece extends BaseEntity implements Serializable { private LocalDate dateExpiration; @ManyToOne private TypePiece typePiece; - + private Long mobileDataId; @JsonIgnore @ManyToOne(fetch = FetchType.LAZY) private Personne personne; diff --git a/src/main/java/io/gmss/fiscad/entities/infocad/metier/Upload.java b/src/main/java/io/gmss/fiscad/entities/infocad/metier/Upload.java index 43705d5..73a1765 100644 --- a/src/main/java/io/gmss/fiscad/entities/infocad/metier/Upload.java +++ b/src/main/java/io/gmss/fiscad/entities/infocad/metier/Upload.java @@ -38,7 +38,7 @@ public class Upload extends BaseEntity implements Serializable { private Piece piece; private Long pieceExternalKey; - + private Long mobileDataId; @JsonIgnore @ManyToOne(fetch = FetchType.LAZY) private MembreGroupe membreGroupe; diff --git a/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Personne.java b/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Personne.java index 6b7ebb5..2e0d462 100644 --- a/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Personne.java +++ b/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Personne.java @@ -8,6 +8,7 @@ import io.gmss.fiscad.entities.infocad.metier.ActeurConcerne; import io.gmss.fiscad.entities.infocad.metier.Piece; import io.gmss.fiscad.entities.infocad.metier.Tpe; import io.gmss.fiscad.entities.infocad.metier.Upload; +import io.gmss.fiscad.entities.metadata.MobileDataPersonne; import io.gmss.fiscad.enums.Categorie; import jakarta.persistence.*; import lombok.AllArgsConstructor; @@ -83,6 +84,8 @@ public class Personne extends BaseEntity implements Serializable { @OneToMany(mappedBy = "personne") private List pieces; + + private Long mobileDataId; public List getUploads() { return uploads.stream().filter(upload -> upload.getPiece() == null && upload.getMembreGroupe() == null).toList(); } diff --git a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataActeurConcerne.java b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataActeurConcerne.java index 9c7d9a1..8633e18 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataActeurConcerne.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataActeurConcerne.java @@ -17,6 +17,8 @@ public class MobileDataActeurConcerne extends BaseEntity implements Serializable @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + private Long terminalId; + private Long externalKey; @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private ActeurConcernePayLoad acteurConcernePayLoad ; diff --git a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataBatiment.java b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataBatiment.java index 50a5bdc..d44b3b0 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataBatiment.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataBatiment.java @@ -17,6 +17,8 @@ public class MobileDataBatiment extends BaseEntity implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + private Long terminalId; + private Long externalKey; @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private BatimentPaylaod batimentPaylaod ; diff --git a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataCaracteristiqueBatiment.java b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataCaracteristiqueBatiment.java index 7da51b2..8c18e76 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataCaracteristiqueBatiment.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataCaracteristiqueBatiment.java @@ -17,6 +17,8 @@ public class MobileDataCaracteristiqueBatiment extends BaseEntity implements Ser @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + private Long terminalId; + private Long externalKey; @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private CaracteristiqueBatimentPaylod caracteristiqueBatimentPaylod ; diff --git a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataCaracteristiqueParcelle.java b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataCaracteristiqueParcelle.java index df025a5..af95c2d 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataCaracteristiqueParcelle.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataCaracteristiqueParcelle.java @@ -17,6 +17,8 @@ public class MobileDataCaracteristiqueParcelle extends BaseEntity implements Ser @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + private Long terminalId; + private Long externalKey; @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private CaracteristiqueParcellePaylod caracteristiqueParcellePaylod ; diff --git a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataCaracteristiqueUniteLogement.java b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataCaracteristiqueUniteLogement.java index 64802fb..6d1edca 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataCaracteristiqueUniteLogement.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataCaracteristiqueUniteLogement.java @@ -17,6 +17,8 @@ public class MobileDataCaracteristiqueUniteLogement extends BaseEntity implement @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + private Long terminalId; + private Long externalKey; @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private CaracteristiqueUniteLogementPaylod caracteristiqueUniteLogementPaylod ; diff --git a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataEnquete.java b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataEnquete.java index 5b10494..99602d9 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataEnquete.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataEnquete.java @@ -17,6 +17,8 @@ public class MobileDataEnquete extends BaseEntity implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + private Long terminalId; + private Long externalKey; @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private EnquetePayLoad enquetePayLoad ; diff --git a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataEnqueteBatiment.java b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataEnqueteBatiment.java index 8baafdd..e16dee2 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataEnqueteBatiment.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataEnqueteBatiment.java @@ -17,6 +17,8 @@ public class MobileDataEnqueteBatiment extends BaseEntity implements Serializabl @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + private Long terminalId; + private Long externalKey; @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private EnqueteBatimentPayload enqueteBatimentPayload ; diff --git a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataEnqueteUniteLogement.java b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataEnqueteUniteLogement.java index 755a463..9da7b1e 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataEnqueteUniteLogement.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataEnqueteUniteLogement.java @@ -17,6 +17,8 @@ public class MobileDataEnqueteUniteLogement extends BaseEntity implements Serial @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + private Long terminalId; + private Long externalKey; @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private EnqueteUniteLogementPayload enqueteUniteLogementPayload ; diff --git a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataMembreGroupe.java b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataMembreGroupe.java index 14e8fe4..3a7d16b 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataMembreGroupe.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataMembreGroupe.java @@ -17,6 +17,8 @@ public class MobileDataMembreGroupe extends BaseEntity implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + private Long terminalId; + private Long externalKey; @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private MembreGroupePayLoad membreGroupePayLoad ; diff --git a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataParcelle.java b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataParcelle.java index b2820c6..1bc6459 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataParcelle.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataParcelle.java @@ -17,6 +17,8 @@ public class MobileDataParcelle extends BaseEntity implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + private Long terminalId; + private Long externalKey; @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private ParcellePayLoad parcellePayLoad ; diff --git a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataPersonne.java b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataPersonne.java index c7a733a..57dfb88 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataPersonne.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataPersonne.java @@ -18,6 +18,8 @@ public class MobileDataPersonne extends BaseEntity implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + private Long terminalId; + private Long externalKey; @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private PersonnePayLoad personnePayLoad ; diff --git a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataPiece.java b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataPiece.java index 48edb0f..4182fe4 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataPiece.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataPiece.java @@ -17,6 +17,8 @@ public class MobileDataPiece extends BaseEntity implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + private Long terminalId; + private Long externalKey; @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private PiecePayLoad piecePayLoad ; diff --git a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataUniteLogement.java b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataUniteLogement.java index e23dac5..cc1c900 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataUniteLogement.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataUniteLogement.java @@ -18,6 +18,8 @@ public class MobileDataUniteLogement extends BaseEntity implements Serializable @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + private Long terminalId; + private Long externalKey; @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private UniteLogementPaylaod uniteLogementPaylaod ; diff --git a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataUpload.java b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataUpload.java index 6a82de3..06cb56f 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataUpload.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataUpload.java @@ -17,6 +17,8 @@ public class MobileDataUpload extends BaseEntity implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + private Long terminalId; + private Long externalKey; @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private UploadPayLoad uploadPayLoad ; diff --git a/src/main/java/io/gmss/fiscad/entities/metadata/PieceMetaData.java b/src/main/java/io/gmss/fiscad/entities/metadata/PieceMetaData.java index 78cf1f6..61dc369 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/PieceMetaData.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/PieceMetaData.java @@ -18,7 +18,8 @@ public class PieceMetaData extends BaseEntity implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - + private Long terminalId; + private Long externalKey; private Long pieceId; @Type(JsonBinaryType.class) diff --git a/src/main/java/io/gmss/fiscad/entities/metadata/UploadMetaData.java b/src/main/java/io/gmss/fiscad/entities/metadata/UploadMetaData.java index da4352d..7260255 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/UploadMetaData.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/UploadMetaData.java @@ -26,7 +26,8 @@ public class UploadMetaData extends BaseEntity implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - + private Long terminalId; + private Long externalKey; private Long uploadId; @Type(JsonBinaryType.class) diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/metier/Batiment.java b/src/main/java/io/gmss/fiscad/entities/rfu/metier/Batiment.java index d74b49d..b06a9ad 100644 --- a/src/main/java/io/gmss/fiscad/entities/rfu/metier/Batiment.java +++ b/src/main/java/io/gmss/fiscad/entities/rfu/metier/Batiment.java @@ -43,4 +43,5 @@ public class Batiment extends BaseEntity implements Serializable { @ManyToOne private Tpe terminal; private Long enqueteId; + private Long mobileDataId; } 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 1942096..c00b6d7 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 @@ -31,7 +31,7 @@ public class CaracteristiqueBatiment extends BaseEntity implements Serializable @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - + private Long mobileDataId; @ManyToOne(fetch = FetchType.LAZY) @JsonBackReference ///pour couper la recurcivité private EnqueteBatiment enqueteBatiment; diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/metier/CaracteristiqueParcelle.java b/src/main/java/io/gmss/fiscad/entities/rfu/metier/CaracteristiqueParcelle.java index 8419fce..ca71f52 100644 --- a/src/main/java/io/gmss/fiscad/entities/rfu/metier/CaracteristiqueParcelle.java +++ b/src/main/java/io/gmss/fiscad/entities/rfu/metier/CaracteristiqueParcelle.java @@ -30,7 +30,7 @@ public class CaracteristiqueParcelle extends BaseEntity implements Serializable @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - + private Long mobileDataId; @JsonIgnore @ManyToOne(fetch = FetchType.LAZY) private Enquete enquete; diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/metier/CaracteristiqueUniteLogement.java b/src/main/java/io/gmss/fiscad/entities/rfu/metier/CaracteristiqueUniteLogement.java index dca1e05..de2553f 100644 --- a/src/main/java/io/gmss/fiscad/entities/rfu/metier/CaracteristiqueUniteLogement.java +++ b/src/main/java/io/gmss/fiscad/entities/rfu/metier/CaracteristiqueUniteLogement.java @@ -41,5 +41,5 @@ public class CaracteristiqueUniteLogement extends BaseEntity implements Serializ @ManyToOne private Tpe terminal; private Long enqueteId; - + private Long mobileDataId; } diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/metier/EnqueteBatiment.java b/src/main/java/io/gmss/fiscad/entities/rfu/metier/EnqueteBatiment.java index 1654384..9e5a340 100644 --- a/src/main/java/io/gmss/fiscad/entities/rfu/metier/EnqueteBatiment.java +++ b/src/main/java/io/gmss/fiscad/entities/rfu/metier/EnqueteBatiment.java @@ -84,7 +84,7 @@ public class EnqueteBatiment extends BaseEntity implements Serializable { @JsonIgnore @ManyToOne private User user; - + private Long mobileDataId; //@JsonIgnore @OneToMany(mappedBy = "enqueteBatiment") private List uploads; 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 9d45867..6596d78 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 @@ -68,7 +68,7 @@ public class EnqueteUniteLogement extends BaseEntity implements Serializable { @OneToOne private Personne personne; private Long personneExternalKey; - + private Long mobileDataId; @OneToMany(mappedBy = "enqueteUniteLogement") @JsonManagedReference private List caracteristiqueUniteLogements; diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/metier/UniteLogement.java b/src/main/java/io/gmss/fiscad/entities/rfu/metier/UniteLogement.java index a015d3b..006409d 100644 --- a/src/main/java/io/gmss/fiscad/entities/rfu/metier/UniteLogement.java +++ b/src/main/java/io/gmss/fiscad/entities/rfu/metier/UniteLogement.java @@ -38,4 +38,5 @@ public class UniteLogement extends BaseEntity implements Serializable { @ManyToOne private Tpe terminal; private Long enqueteId; + private Long mobileDataId; } diff --git a/src/main/java/io/gmss/fiscad/enums/TypeObjet.java b/src/main/java/io/gmss/fiscad/enums/TypeObjet.java index d79ea79..d666dab 100644 --- a/src/main/java/io/gmss/fiscad/enums/TypeObjet.java +++ b/src/main/java/io/gmss/fiscad/enums/TypeObjet.java @@ -2,6 +2,7 @@ package io.gmss.fiscad.enums; public enum TypeObjet { PARCELLE, + ENQUETE, PERSONNE, MEMBREGROUPE, ACTEURCONCERNER, 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 9c978b5..973a536 100644 --- a/src/main/java/io/gmss/fiscad/implementations/synchronisation/SynchronisationServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/synchronisation/SynchronisationServiceImpl.java @@ -27,15 +27,18 @@ import io.gmss.fiscad.repositories.rfu.parametre.TypeCaracteristiqueRepository; import io.gmss.fiscad.repositories.rfu.parametre.ZoneRfuRepository; import io.gmss.fiscad.repositories.user.UserRepository; import io.gmss.fiscad.service.FileStorageService; +import io.gmss.fiscad.service.worker.*; import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.jpa.repository.Modifying; +import org.springframework.scheduling.annotation.Async; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -45,7 +48,6 @@ import java.util.function.ToDoubleBiFunction; @Service @RequiredArgsConstructor public class SynchronisationServiceImpl implements SynchronisationService { - private Authentication authentication; private final UserService userService; private final DepartementRepository departementRepository; private final CommuneRepository communeRepository; @@ -59,40 +61,17 @@ public class SynchronisationServiceImpl implements SynchronisationService { private final ProfessionRepository professionRepository; private final SituationMatrimonialeRepository situationMatrimonialeRepository; private final SourceDroitRepository sourceDroitRepository; - private final StructureRepository structureRepository; private final TypeContestationRepository typeContestationRepository; private final TypeDomaineRepository typeDomaineRepository; private final TypePersonneRepository typePersonneRepository; private final TypePieceRepository typePieceRepository; private final TypeRepresentationRepository typeRepresentationRepository; - private final MembreGroupeRepository membreGroupeRepository; - private final PersonneRepository personneRepository; private final EnqueteRepository enqueteRepository; - private final ParcelleRepository parcelleRepository; - private final UserRepository userRepository; private final SituationGeographiqueRepository situationGeographiqueRepository; - private final PieceRepository pieceRepository; - private final ActeurConcerneRepository acteurConcerneRepository; - private final UploadRepository uploadRepository; - private final UploadMetaDataRepository uploadMetaDataRepository; - private final PieceMetaDataRepository pieceMetaDataRepository; private final FileStorageService fileStorageService; - private final TpeRepository tpeRepository; - private final BatimentRepository batimentRepository; - private final UniteLogementRepository uniteLogementRepository; private final ZoneRfuRepository zoneRfuRepository; - private final CaracteristiqueRepository caracteristiqueRepository; private final TypeCaracteristiqueRepository typeCaracteristiqueRepository; - - private final EnqueteBatimentRepository enqueteBatimentRepository; - private final EnqueteUniteLogementRepository enqueteUniteLogementRepository; - - private final CaracteristiqueBatimentRepository caracteristiqueBatimentRepository; - private final CaracteristiqueParcelleRepository caracteristiqueParcelleRepository; - private final CaracteristiqueUniteLogementRepository caracteristiqueUniteLogementRepository; - private final ParcelleGeomService parcelleGeomService; - private final MobileDataEnqueteBatimentRepository mobileDataEnqueteBatimentRepository; private final MobileDataActeurConcerneRepository mobileDataActeurConcerneRepository; private final MobileDataPersonneRepository mobileDataPersonneRepository; @@ -107,12 +86,27 @@ public class SynchronisationServiceImpl implements SynchronisationService { private final MobileDataCaracteristiqueUniteLogementRepository mobileDataCaracteristiqueUniteLogementRepository; private final MobileDataUniteLogementRepository mobileDataUniteLogementRepository; private final MobileDataParcelleRepository mobileDataParcelleRepository; + private final PersonneAsyncWorker personneAsyncWorker; + private final MembreGroupeAsyncWorker membreGroupeAsyncWorker; + private final ActeurConcerneAsyncWorker acteurConcerneAsyncWorker; + private final BatimentAsyncWorker batimentAsyncWorker; + private final CaracteristiqueBatimentAsyncWorker caracteristiqueBatimentAsyncWorker; + private final CaracteristiqueParcelleAsyncWorker caracteristiqueParcelleAsyncWorker; + private final CaracteristiqueUniteLogementAsyncWorker caracteristiqueUniteLogementAsyncWorker; + private final EnqueteAsyncWorker enqueteAsyncWorker; + private final EnqueteBatimentAsyncWorker enqueteBatimentAsyncWorker; + private final EnqueteUniteLogementAsyncWorker enqueteUniteLogementAsyncWorker; + private final ParcelleAsyncWorker parcelleAsyncWorker; + private final PieceAsyncWorker pieceAsyncWorker; + private final UniteLogementAsyncWorker uniteLogementAsyncWorker; + private final UploadAsyncWorker uploadAsyncWorker; @Value("${io.gmss.fiscad.profile}") private String profile; + @Override public UserDecoupageSyncResponses getDecoupageAdminUserConnecter() { - authentication = SecurityContextHolder.getContext().getAuthentication(); + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); String userName = authentication.getName(); User user = userService.getUserByUsername(userName); @@ -131,7 +125,6 @@ public class SynchronisationServiceImpl implements SynchronisationService { List blocSyncResponses = new ArrayList<>(); System.out.println(profile); if (profile.equals(ProfileApp.ABOMEY.toString().toLowerCase())) { - System.out.println("ABOMEY"); if (user.getStructure() != null) { System.out.println(user.getStructure().getId()); blocSyncResponses = @@ -159,14 +152,11 @@ public class SynchronisationServiceImpl implements SynchronisationService { @Override public ReferencesSyncResponses getReferencesSyncResponses() { ReferencesSyncResponses referencesSyncResponses = new ReferencesSyncResponses(); - List typeRepresentationSyncResponses = typeRepresentationRepository.findAll(); List typePieceSyncResponses = typePieceRepository.findAll(); List typePersonneSyncResponses = typePersonneRepository.findAll(); List typeDomaineSyncResponses = typeDomaineRepository.findAll(); List typeContestationSyncResponses = typeContestationRepository.findAll(); - // List structureSyncResponses = structureRepository.findAll(); - //List sourceDroitResponses = sourceDroitRepository.findAll(); List sourceDroitSyncResponses = sourceDroitRepository.getSourceDroitSyncResponse(); List situationMatrimonialeSyncResponses = situationMatrimonialeRepository.findAll(); List professionSyncResponses = professionRepository.findAll(); @@ -178,13 +168,11 @@ public class SynchronisationServiceImpl implements SynchronisationService { List situationGeographiques = situationGeographiqueRepository.findAll(); List typePersonneNatureDomaineSyncResponses = natureDomaineRepository.getTypePersonneNatureDomaineSyncResponse(); List modesAcquisitionTypePersonneSyncResponses = modeAcquisitionRepository.getModeAcquisitionTypePersonne(); - List caracteristiquesSyncResponses = caracteristiqueRepository.findAllByActifIsTrue(); List typeCaracteristiquesSyncResponses = typeCaracteristiqueRepository.findAllByActifIsTrue(); List zoneRfuSyncResponses = zoneRfuRepository.getZoneRfuResponse(); - referencesSyncResponses.setNatureDomaineSyncResponses(natureDomaineSyncResponses); referencesSyncResponses.setNationaliteSyncResponses(nationaliteSyncResponses); referencesSyncResponses.setModeAcquisitionSyncResponses(modeAcquisitionSyncResponses); @@ -238,76 +226,330 @@ public class SynchronisationServiceImpl implements SynchronisationService { syncResponses.add(syncResponse); return syncResponses; } - - //saveMobileData(personnePayLoads,TypeObjet.PERSONNE); - - personnePayLoads.forEach(personnePayLoad -> { - try { - System.out.println(personnePayLoad); - if (personnePayLoad.getTerminalId() == null) { - SyncResponse syncResponse = new SyncResponse(personnePayLoad.getIdBackend(), - personnePayLoad.getExternalKey(), false, "Le terminal n'est pas précisé"); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalTpe = tpeRepository.findById(personnePayLoad.getTerminalId()); - if (optionalTpe.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(personnePayLoad.getIdBackend(), - personnePayLoad.getExternalKey(), false, "Le terminal n'existe pas"); - syncResponses.add(syncResponse); - return; - } - } - Personne personne = new Personne(); - SyncResponse syncResponse = new SyncResponse(); - personnePayLoad.setSynchronise(true); - if (personnePayLoad.getIdBackend() != null && personnePayLoad.getIdBackend() != 0) { - Optional optionalPersonne = personneRepository.findById(personnePayLoad.getIdBackend()); - if (optionalPersonne.isPresent()) { - personne = optionalPersonne.get(); - deleteFromPersonne(personne.getId()); - }else{ - personnePayLoad.setIdBackend(null); - } - personne = getPersonneFromPersonnePayLoad(personne, personnePayLoad); - personne = personneRepository.save(personne); - personnePayLoad.setIdBackend(personne.getId()); - } - else { - Optional optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(personnePayLoad.getExternalKey(),personnePayLoad.getTerminalId()); - if(optionalPersonne.isPresent()){ - System.out.println("SUPRESSION FROM PERSONNE "+personne.getId()); - deleteFromPersonne(optionalPersonne.get().getId()); - personne = optionalPersonne.get(); - personne = getPersonneFromPersonnePayLoad(personne, personnePayLoad); - personne = personneRepository.save(personne); - personnePayLoad.setIdBackend(personne.getId()); - }else { - personne = getPersonneFromPersonnePayLoad(personne, personnePayLoad); - personne = personneRepository.save(personne); - personnePayLoad.setIdBackend(personne.getId()); - } - } - syncResponse.setObservation(personnePayLoad.getObservation()); - syncResponse.setExternalKey(personnePayLoad.getExternalKey()); - syncResponse.setSynchronise(personnePayLoad.isSynchronise()); - syncResponse.setIdBackend(personnePayLoad.getIdBackend()); - syncResponses.add(syncResponse); - } catch (Exception e) { - e.printStackTrace(); - SyncResponse syncResponse = new SyncResponse(personnePayLoad.getIdBackend(), - personnePayLoad.getExternalKey(), false, "Erreur inattendue"); - syncResponses.add(syncResponse); - } - }); + syncResponses = saveMobileData(personnePayLoads, TypeObjet.PERSONNE); +// syncResponses.forEach(syncResponse -> { +// Optional optionalMobileDataPersonne= mobileDataPersonneRepository.findById(syncResponse.getIdBackend()); +// if(optionalMobileDataPersonne.isPresent()){ +// personneAsyncWorker.traitementAsyncPersonne(optionalMobileDataPersonne.get()); +// } +// //optionalMobileDataPersonne.ifPresent(personneAsyncWorker::traitementAsyncPersonne); +// }); return syncResponses; } - private List saveMobileData(List payloads, TypeObjet typeObjet) { - List syncResponses = new ArrayList<>(); - switch (typeObjet){ + @Override + public List syncMembreGroupe(List membreGroupePayLoads) { + List syncResponses = new ArrayList<>(); + if (membreGroupePayLoads == null) { + SyncResponse syncResponse = new SyncResponse(null, + null, false, "Aucun membre à synchroniser"); + syncResponses.add(syncResponse); + return syncResponses; + } + syncResponses = saveMobileData(membreGroupePayLoads, TypeObjet.MEMBREGROUPE); + +// syncResponses.forEach(syncResponse -> { +// Optional optionalMobileDataMembreGroupe= mobileDataMembreGroupeRepository.findById(syncResponse.getIdBackend()); +// if(optionalMobileDataMembreGroupe.isPresent()){ +// membreGroupeAsyncWorker.traitementAsyncMembreGroupe(optionalMobileDataMembreGroupe.get()); +// } +// //optionalMobileDataMembreGroupe.ifPresent(membreGroupeAsyncWorker::traitementAsyncMembreGroupe); +// }); + + return syncResponses; + } + + @Override + @Transactional + public List syncEnquete(List enquetePayLoads) { + List syncResponses = new ArrayList<>(); + if (enquetePayLoads == null) { + SyncResponse syncResponse = new SyncResponse(null, + null, false, "Aucune enquête à synchroniser"); + syncResponses.add(syncResponse); + return syncResponses; + } + syncResponses = saveMobileData(enquetePayLoads, TypeObjet.ENQUETE); + +// syncResponses.forEach(syncResponse -> { +// Optional optionalMobileDataEnquete= mobileDataEnqueteRepository.findById(syncResponse.getIdBackend()); +// if(optionalMobileDataEnquete.isPresent()){ +// enqueteAsyncWorker.traitementAsyncEnquete(optionalMobileDataEnquete.get()); +// } +// +// }); + + return syncResponses; + } + + @Override + public List syncParcelle(List parcellePayLoads) { + List syncResponses = new ArrayList<>(); + if (parcellePayLoads == null) { + SyncResponse syncResponse = new SyncResponse(null, + null, false, "Aucune parcelle à synchroniser"); + syncResponses.add(syncResponse); + return syncResponses; + } + syncResponses = saveMobileData(parcellePayLoads, TypeObjet.PARCELLE); + +// syncResponses.forEach(syncResponse -> { +// Optional optionalMobileDataParcelle= mobileDataParcelleRepository.findById(syncResponse.getIdBackend()); +// if(optionalMobileDataParcelle.isPresent()){ +// parcelleAsyncWorker.traitementAsyncParcelle(optionalMobileDataParcelle.get()); +// } +// //optionalMobileDataParcelle.ifPresent(parcelleAsyncWorker::traitementAsyncParcelle); +// }); + + return syncResponses; + } + @Override + public List syncPiece(List piecePayLoads) { + List syncResponses = new ArrayList<>(); + if (piecePayLoads == null) { + SyncResponse syncResponse = new SyncResponse(null, + null, false, "Aucune pièce à synchroniser"); + syncResponses.add(syncResponse); + return syncResponses; + } + syncResponses = saveMobileData(piecePayLoads, TypeObjet.PIECE); +// syncResponses.forEach(syncResponse -> { +// Optional optionalMobileDataPiece= mobileDataPieceRepository.findById(syncResponse.getIdBackend()); +// if(optionalMobileDataPiece.isPresent()){ +// pieceAsyncWorker.traitementAsyncPiece(optionalMobileDataPiece.get()); +// } +// //optionalMobileDataPiece.ifPresent(pieceAsyncWorker::traitementAsyncPiece); +// }); + return syncResponses; + } + + @Override + public List syncActeurConcerne(List acteurConcernePayLoads) { + List syncResponses = new ArrayList<>(); + if (acteurConcernePayLoads == null) { + SyncResponse syncResponse = new SyncResponse(null, + null, false, "Aucun acteur concerné à synchroniser"); + syncResponses.add(syncResponse); + return syncResponses; + } + syncResponses = saveMobileData(acteurConcernePayLoads, TypeObjet.ACTEURCONCERNER); +// syncResponses.forEach(syncResponse -> { +// Optional optionalMobileDataActeurConcerne= mobileDataActeurConcerneRepository.findById(syncResponse.getIdBackend()); +// if(optionalMobileDataActeurConcerne.isPresent()){ +// acteurConcerneAsyncWorker.traitementAsyncActeurConcerne(optionalMobileDataActeurConcerne.get()); +// } +// //optionalMobileDataActeurConcerne.ifPresent(acteurConcerneAsyncWorker::traitementAsyncActeurConcerne); +// }); + + return syncResponses; + } + @Override + public SyncResponse syncFiles(MultipartFile file, + Long idBackend, + Long externalKey, + Long pieceId, + Long membreGroupeId, + Long terminalId, + String name, + String filePath, + Long max_numero_piece_id, + Long max_numero_upload_id, + Long max_numero_acteur_concerne_id, + Long enqueteId, + Long enqueteBatimentId, + Long enqueteUniteLogementId, + Long personneId) { + UploadPayLoad uploadPayLoad = new UploadPayLoad(); + uploadPayLoad.setSynchronise(false); + //uploadPayLoad.setFile(file); + uploadPayLoad.setExternalKey(externalKey); + uploadPayLoad.setPieceId(pieceId); + uploadPayLoad.setIdBackend(idBackend); + uploadPayLoad.setMembreGroupeId(membreGroupeId); + uploadPayLoad.setTerminalId(terminalId); + uploadPayLoad.setName(name); + uploadPayLoad.setFilePath(filePath); + uploadPayLoad.setMax_numero_upload_id(max_numero_upload_id); + uploadPayLoad.setMax_numero_piece_id(max_numero_piece_id); + uploadPayLoad.setMax_numero_acteur_concerne_id(max_numero_acteur_concerne_id); + uploadPayLoad.setEnqueteId(enqueteId); + uploadPayLoad.setEnqueteBatimentId(enqueteBatimentId); + uploadPayLoad.setEnqueteUniteLogementId(enqueteUniteLogementId); + uploadPayLoad.setPersonneId(personneId); + List uploadPayLoads = new ArrayList<>(); + uploadPayLoads.add(uploadPayLoad); + try { + List syncResponses = saveMobileData(uploadPayLoads, TypeObjet.UPLOAD,file); +// syncResponses.forEach(syncResponse -> { +// Optional optionalMobileDataUpload= mobileDataUploadRepository.findById(syncResponse.getIdBackend()); +// if(optionalMobileDataUpload.isPresent()){ +// uploadAsyncWorker.traitementAsyncUpload(optionalMobileDataUpload.get()); +// } +// +// //optionalMobileDataUpload.ifPresent(uploadAsyncWorker::traitementAsyncUpload); +// }); + return syncResponses.get(0); + } catch (Exception e) { + e.printStackTrace(); + SyncResponse syncResponse = new SyncResponse(uploadPayLoad.getIdBackend(), + uploadPayLoad.getExternalKey(), false, "Erreur inattendue"); + return syncResponse; + } + } + + + + @Override + public List syncBatiment(List batimentPaylaods) { + + List syncResponses = new ArrayList<>(); + if (batimentPaylaods == null) { + SyncResponse syncResponse = new SyncResponse(null, + null, false, "Aucun batiment à synchroniser"); + syncResponses.add(syncResponse); + return syncResponses; + } + + syncResponses = saveMobileData(batimentPaylaods, TypeObjet.BATIMENT); +// syncResponses.forEach(syncResponse -> { +// Optional optionalMobileDataBatiment = mobileDataBatimentRepository.findById(syncResponse.getIdBackend()); +// if(optionalMobileDataBatiment.isPresent()){ +// batimentAsyncWorker.traitementAsyncBatiment(optionalMobileDataBatiment.get()); +// } +// //optionalMobileDataBatiment.ifPresent(batimentAsyncWorker::traitementAsyncBatiment); +// }); + return syncResponses; + } + @Override + public List syncUniteLogement(List uniteLogementPaylaods) { + + List syncResponses = new ArrayList<>(); + if (uniteLogementPaylaods == null) { + SyncResponse syncResponse = new SyncResponse(null, + null, false, "Aucune unité de logement à synchroniser"); + syncResponses.add(syncResponse); + return syncResponses; + } + syncResponses = saveMobileData(uniteLogementPaylaods, TypeObjet.UNITELOGEMENT); +// syncResponses.forEach(syncResponse -> { +// Optional optionalMobileDataUniteLogement= mobileDataUniteLogementRepository.findById(syncResponse.getIdBackend()); +// if(optionalMobileDataUniteLogement.isPresent()){ +// uniteLogementAsyncWorker.traitementAsyncUniteLogement(optionalMobileDataUniteLogement.get()); +// } +// //optionalMobileDataUniteLogement.ifPresent(uniteLogementAsyncWorker::traitementAsyncUniteLogement); +// }); + return syncResponses; + } + + @Override + public List syncCaracteristiqueBatiment(List caracteristiqueBatimentPaylods) { + List syncResponses = new ArrayList<>(); + if (caracteristiqueBatimentPaylods == null) { + SyncResponse syncResponse = new SyncResponse(null, + null, false, "Aucune caracteristique de bâtiment à synchroniser"); + syncResponses.add(syncResponse); + return syncResponses; + } + syncResponses = saveMobileData(caracteristiqueBatimentPaylods, TypeObjet.CARACTERISTIQUEBATIMENT); + +// syncResponses.forEach(syncResponse -> { +// Optional optionalMobileDataCaracteristiqueBatiment= mobileDataCaracteristiqueBatimentRepository.findById(syncResponse.getIdBackend()); +// if(optionalMobileDataCaracteristiqueBatiment.isPresent()){ +// caracteristiqueBatimentAsyncWorker.traitementAsyncCaracteristiqueBatiment(optionalMobileDataCaracteristiqueBatiment.get()); +// } +// //optionalMobileDataCaracteristiqueBatiment.ifPresent(caracteristiqueBatimentAsyncWorker::traitementAsyncCaracteristiqueBatiment); +// }); + + return syncResponses; + } + @Override + public List syncCaracteristiqueUniteLogement(List caracteristiqueUniteLogementPaylods) { + List syncResponses = new ArrayList<>(); + if (caracteristiqueUniteLogementPaylods == null) { + SyncResponse syncResponse = new SyncResponse(null, + null, false, "Aucune caracteristique d'unité de logement à synchroniser"); + syncResponses.add(syncResponse); + return syncResponses; + } + syncResponses = saveMobileData(caracteristiqueUniteLogementPaylods, TypeObjet.CARACTERISTIQUEUNITELOGEMENT); +// syncResponses.forEach(syncResponse -> { +// Optional optionalMobileDataCaracteristiqueUniteLogement= mobileDataCaracteristiqueUniteLogementRepository.findById(syncResponse.getIdBackend()); +// if(optionalMobileDataCaracteristiqueUniteLogement.isPresent()){ +// caracteristiqueUniteLogementAsyncWorker.traitementAsyncCaracteristiqueUniteLogement(optionalMobileDataCaracteristiqueUniteLogement.get()); +// } +// //optionalMobileDataCaracteristiqueUniteLogement.ifPresent(caracteristiqueUniteLogementAsyncWorker::traitementAsyncCaracteristiqueUniteLogement); +// }); + return syncResponses; + } + @Override + public List syncCaracteristiqueParcelle(List caracteristiqueParcellePaylods) { + List syncResponses = new ArrayList<>(); + if (caracteristiqueParcellePaylods == null) { + SyncResponse syncResponse = new SyncResponse(null, + null, false, "Aucune caracteristique de parcelle à synchroniser"); + syncResponses.add(syncResponse); + return syncResponses; + } + syncResponses = saveMobileData(caracteristiqueParcellePaylods, TypeObjet.CARACTERISTIQUEPARCELLE); +// syncResponses.forEach(syncResponse -> { +// Optional optionalMobileDataCaracteristiqueParcelle= mobileDataCaracteristiqueParcelleRepository.findById(syncResponse.getIdBackend()); +// if(optionalMobileDataCaracteristiqueParcelle.isPresent()){ +// caracteristiqueParcelleAsyncWorker.traitementAsyncCaracteristiqueParcelle(optionalMobileDataCaracteristiqueParcelle.get()); +// } +// //optionalMobileDataCaracteristiqueParcelle.ifPresent(caracteristiqueParcelleAsyncWorker::traitementAsyncCaracteristiqueParcelle); +// }); + return syncResponses; + } + @Override + public List syncEnqueteBatiment(List enqueteBatimentPayLoads) { + List syncResponses = new ArrayList<>(); + if (enqueteBatimentPayLoads == null) { + SyncResponse syncResponse = new SyncResponse(null, + null, false, "Aucune enquête de batiment à synchroniser"); + syncResponses.add(syncResponse); + return syncResponses; + } + syncResponses = saveMobileData(enqueteBatimentPayLoads, TypeObjet.ENQUETEBATIMENT); +// syncResponses.forEach(syncResponse -> { +// Optional optionalMobileDataEnqueteBatiment= mobileDataEnqueteBatimentRepository.findById(syncResponse.getIdBackend()); +// if(optionalMobileDataEnqueteBatiment.isPresent()){ +// enqueteBatimentAsyncWorker.traitementAsyncEnqueteBatiment(optionalMobileDataEnqueteBatiment.get()); +// } +// //optionalMobileDataEnqueteBatiment.ifPresent(enqueteBatimentAsyncWorker::traitementAsyncEnqueteBatiment); +// }); + return syncResponses; + } + + @Override + public List syncEnqueteUniteLogement(List enqueteUniteLogementPayloads) { + List syncResponses = new ArrayList<>(); + if (enqueteUniteLogementPayloads == null) { + SyncResponse syncResponse = new SyncResponse(null, + null, false, "Aucune enquête d'unité de logement à synchroniser"); + syncResponses.add(syncResponse); + return syncResponses; + } + syncResponses = saveMobileData(enqueteUniteLogementPayloads, TypeObjet.ENQUETEUNITELOGEMENT); +// syncResponses.forEach(syncResponse -> { +// Optional optionalMobileDataEnqueteUniteLogement= mobileDataEnqueteUniteLogementRepository.findById(syncResponse.getIdBackend()); +// if(optionalMobileDataEnqueteUniteLogement.isPresent()){ +// enqueteUniteLogementAsyncWorker.traitementAsyncEnqueteUniteLogement(optionalMobileDataEnqueteUniteLogement.get()); +// } +// //optionalMobileDataEnqueteUniteLogement.ifPresent(enqueteUniteLogementAsyncWorker::traitementAsyncEnqueteUniteLogement); +// }); + return syncResponses; + } + + private List saveMobileData(List payloads, TypeObjet typeObjet) { + return saveMobileData(payloads, typeObjet, null); + } + + private List saveMobileData(List payloads, TypeObjet typeObjet, MultipartFile file) { + List syncResponses = new ArrayList<>(); + System.out.println("==SYNCHRONISATION== : "+typeObjet.toString()); + switch (typeObjet) { case PERSONNE -> { payloads.forEach(payLoad -> { PersonnePayLoad personnePayLoad = (PersonnePayLoad) payLoad; @@ -322,12 +564,14 @@ public class SynchronisationServiceImpl implements SynchronisationService { mobileDataPersonne = optionalMobileDataPersonne.get(); } } else { - optionalMobileDataPersonne = mobileDataPersonneRepository.findByPersonnePayLoad_TerminalIdAndPersonnePayLoad_ExternalKey(personnePayLoad.getTerminalId(), personnePayLoad.getExternalKey()); + optionalMobileDataPersonne = mobileDataPersonneRepository.findFirstByTerminalIdAndEnqueteExternalKey(personnePayLoad.getTerminalId(), personnePayLoad.getExternalKey()); if (optionalMobileDataPersonne.isPresent()) { mobileDataPersonne = optionalMobileDataPersonne.get(); } } + mobileDataPersonne.setTerminalId(personnePayLoad.getTerminalId()); + mobileDataPersonne.setExternalKey(personnePayLoad.getExternalKey()); mobileDataPersonne.setTraiter(false); mobileDataPersonne.setPersonnePayLoad(personnePayLoad); mobileDataPersonne = mobileDataPersonneRepository.save(mobileDataPersonne); @@ -337,7 +581,7 @@ public class SynchronisationServiceImpl implements SynchronisationService { syncResponse.setSynchronise(true); syncResponse.setIdBackend(mobileDataPersonne.getId()); syncResponses.add(syncResponse); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); SyncResponse syncResponse = new SyncResponse(); syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.PERSONNE.toString()); @@ -362,12 +606,13 @@ public class SynchronisationServiceImpl implements SynchronisationService { mobileDataMembreGroupe = optionalMobileDataMembreGroupe.get(); } } else { - optionalMobileDataMembreGroupe = mobileDataMembreGroupeRepository.findByMembreGroupePayLoad_TerminalIdAndMembreGroupePayLoad_ExternalKey(membreGroupePayLoad.getTerminalId(), membreGroupePayLoad.getExternalKey()); + optionalMobileDataMembreGroupe = mobileDataMembreGroupeRepository.findFirstByTerminalIdAndEnqueteExternalKey(membreGroupePayLoad.getTerminalId(), membreGroupePayLoad.getExternalKey()); if (optionalMobileDataMembreGroupe.isPresent()) { mobileDataMembreGroupe = optionalMobileDataMembreGroupe.get(); } } - + mobileDataMembreGroupe.setTerminalId(membreGroupePayLoad.getTerminalId()); + mobileDataMembreGroupe.setExternalKey(membreGroupePayLoad.getExternalKey()); mobileDataMembreGroupe.setTraiter(false); mobileDataMembreGroupe.setMembreGroupePayLoad(membreGroupePayLoad); mobileDataMembreGroupe = mobileDataMembreGroupeRepository.save(mobileDataMembreGroupe); @@ -377,7 +622,7 @@ public class SynchronisationServiceImpl implements SynchronisationService { syncResponse.setSynchronise(true); syncResponse.setIdBackend(mobileDataMembreGroupe.getId()); syncResponses.add(syncResponse); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); SyncResponse syncResponse = new SyncResponse(); syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.MEMBREGROUPE.toString()); @@ -402,12 +647,13 @@ public class SynchronisationServiceImpl implements SynchronisationService { mobileDataActeurConcerne = optionalMobileDataActeurConcerne.get(); } } else { - optionalMobileDataActeurConcerne = mobileDataActeurConcerneRepository.findByActeurConcernePayLoad_TerminalIdAndActeurConcernePayLoad_ExternalKey(acteurConcernePayLoad.getTerminalId(), acteurConcernePayLoad.getExternalKey()); + optionalMobileDataActeurConcerne = mobileDataActeurConcerneRepository.findFirstByTerminalIdAndEnqueteExternalKey(acteurConcernePayLoad.getTerminalId(), acteurConcernePayLoad.getExternalKey()); if (optionalMobileDataActeurConcerne.isPresent()) { mobileDataActeurConcerne = optionalMobileDataActeurConcerne.get(); } } - + mobileDataActeurConcerne.setTerminalId(acteurConcernePayLoad.getTerminalId()); + mobileDataActeurConcerne.setExternalKey(acteurConcernePayLoad.getExternalKey()); mobileDataActeurConcerne.setTraiter(false); mobileDataActeurConcerne.setActeurConcernePayLoad(acteurConcernePayLoad); mobileDataActeurConcerne = mobileDataActeurConcerneRepository.save(mobileDataActeurConcerne); @@ -417,7 +663,7 @@ public class SynchronisationServiceImpl implements SynchronisationService { syncResponse.setSynchronise(true); syncResponse.setIdBackend(mobileDataActeurConcerne.getId()); syncResponses.add(syncResponse); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); SyncResponse syncResponse = new SyncResponse(); syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.ACTEURCONCERNER.toString()); @@ -442,11 +688,13 @@ public class SynchronisationServiceImpl implements SynchronisationService { mobileDataPiece = optionalMobileDataPiece.get(); } } else { - optionalMobileDataPiece = mobileDataPieceRepository.findByPiecePayLoad_TerminalIdAndPiecePayLoad_ExternalKey(piecePayLoad.getTerminalId(), piecePayLoad.getExternalKey()); + optionalMobileDataPiece = mobileDataPieceRepository.findFirstByTerminalIdAndEnqueteExternalKey(piecePayLoad.getTerminalId(), piecePayLoad.getExternalKey()); if (optionalMobileDataPiece.isPresent()) { mobileDataPiece = optionalMobileDataPiece.get(); } } + mobileDataPiece.setTerminalId(piecePayLoad.getTerminalId()); + mobileDataPiece.setExternalKey(piecePayLoad.getExternalKey()); mobileDataPiece.setTraiter(false); mobileDataPiece.setPiecePayLoad(piecePayLoad); mobileDataPiece = mobileDataPieceRepository.save(mobileDataPiece); @@ -456,7 +704,7 @@ public class SynchronisationServiceImpl implements SynchronisationService { syncResponse.setSynchronise(true); syncResponse.setIdBackend(mobileDataPiece.getId()); syncResponses.add(syncResponse); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); SyncResponse syncResponse = new SyncResponse(); syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.PIECE.toString()); @@ -481,21 +729,23 @@ public class SynchronisationServiceImpl implements SynchronisationService { mobileDataUpload = optionalMobileDataUpload.get(); } } else { - optionalMobileDataUpload = mobileDataUploadRepository.findByUploadPayLoad_TerminalIdAndUploadPayLoad_ExternalKey(uploadPayLoad.getTerminalId(), uploadPayLoad.getExternalKey()); + optionalMobileDataUpload = mobileDataUploadRepository.findFirstByTerminalIdAndEnqueteExternalKey(uploadPayLoad.getTerminalId(), uploadPayLoad.getExternalKey()); if (optionalMobileDataUpload.isPresent()) { mobileDataUpload = optionalMobileDataUpload.get(); } } + + mobileDataUpload.setTerminalId(uploadPayLoad.getTerminalId()); + mobileDataUpload.setExternalKey(uploadPayLoad.getExternalKey()); mobileDataUpload.setTraiter(false); mobileDataUpload.setUploadPayLoad(uploadPayLoad); - String fileName = fileStorageService.storeFile(uploadPayLoad.getFile()); + String fileName = fileStorageService.storeFile(file); mobileDataUpload.setFileName(fileName); - mobileDataUpload.setMimeType(uploadPayLoad.getFile().getContentType()); - mobileDataUpload.setSize(uploadPayLoad.getFile().getSize()); - mobileDataUpload.setOriginalFileName(uploadPayLoad.getFile().getOriginalFilename()); + mobileDataUpload.setMimeType(file.getContentType()); + mobileDataUpload.setSize(file.getSize()); + mobileDataUpload.setOriginalFileName(file.getOriginalFilename()); mobileDataUpload.setName(uploadPayLoad.getName()); mobileDataUpload.setFilePath(uploadPayLoad.getFilePath()); - mobileDataUpload = mobileDataUploadRepository.save(mobileDataUpload); SyncResponse syncResponse = new SyncResponse(); syncResponse.setObservation("Synchronisation effectuée avec succès pour " + TypeObjet.UPLOAD.toString()); @@ -503,7 +753,7 @@ public class SynchronisationServiceImpl implements SynchronisationService { syncResponse.setSynchronise(true); syncResponse.setIdBackend(mobileDataUpload.getId()); syncResponses.add(syncResponse); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); SyncResponse syncResponse = new SyncResponse(); syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.UPLOAD.toString()); @@ -528,11 +778,13 @@ public class SynchronisationServiceImpl implements SynchronisationService { mobileDataBatiment = optionalMobileDataBatiment.get(); } } else { - optionalMobileDataBatiment = mobileDataBatimentRepository.findMobileDataBatimentByBatimentPaylaod_TerminalIdAndBatimentPaylaod_ExternalKey(batimentPaylaod.getTerminalId(), batimentPaylaod.getExternalKey()); + optionalMobileDataBatiment = mobileDataBatimentRepository.findFirstByTerminalIdAndEnqueteExternalKey(batimentPaylaod.getTerminalId(), batimentPaylaod.getExternalKey()); if (optionalMobileDataBatiment.isPresent()) { mobileDataBatiment = optionalMobileDataBatiment.get(); } } + mobileDataBatiment.setTerminalId(batimentPaylaod.getTerminalId()); + mobileDataBatiment.setExternalKey(batimentPaylaod.getExternalKey()); mobileDataBatiment.setTraiter(false); mobileDataBatiment.setBatimentPaylaod(batimentPaylaod); mobileDataBatiment = mobileDataBatimentRepository.save(mobileDataBatiment); @@ -542,7 +794,7 @@ public class SynchronisationServiceImpl implements SynchronisationService { syncResponse.setSynchronise(true); syncResponse.setIdBackend(mobileDataBatiment.getId()); syncResponses.add(syncResponse); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); SyncResponse syncResponse = new SyncResponse(); syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.PIECE.toString()); @@ -567,11 +819,13 @@ public class SynchronisationServiceImpl implements SynchronisationService { mobileDataUniteLogement = optionalMobileDataUniteLogement.get(); } } else { - optionalMobileDataUniteLogement = mobileDataUniteLogementRepository.findByUniteLogementPaylaod_TerminalIdAndUniteLogementPaylaod_ExternalKey(uniteLogementPaylaod.getTerminalId(), uniteLogementPaylaod.getExternalKey()); + optionalMobileDataUniteLogement = mobileDataUniteLogementRepository.findFirstByTerminalIdAndEnqueteExternalKey(uniteLogementPaylaod.getTerminalId(), uniteLogementPaylaod.getExternalKey()); if (optionalMobileDataUniteLogement.isPresent()) { mobileDataUniteLogement = optionalMobileDataUniteLogement.get(); } } + mobileDataUniteLogement.setTerminalId(uniteLogementPaylaod.getTerminalId()); + mobileDataUniteLogement.setExternalKey(uniteLogementPaylaod.getExternalKey()); mobileDataUniteLogement.setTraiter(false); mobileDataUniteLogement.setUniteLogementPaylaod(uniteLogementPaylaod); mobileDataUniteLogement = mobileDataUniteLogementRepository.save(mobileDataUniteLogement); @@ -581,7 +835,7 @@ public class SynchronisationServiceImpl implements SynchronisationService { syncResponse.setSynchronise(true); syncResponse.setIdBackend(mobileDataUniteLogement.getId()); syncResponses.add(syncResponse); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); SyncResponse syncResponse = new SyncResponse(); syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.PIECE.toString()); @@ -606,11 +860,13 @@ public class SynchronisationServiceImpl implements SynchronisationService { mobileDataEnqueteBatiment = optionalMobileDataEnqueteBatiment.get(); } } else { - optionalMobileDataEnqueteBatiment = mobileDataEnqueteBatimentRepository.findByEnqueteBatimentPayload_TerminalIdAndEnqueteBatimentPayload_ExternalKey(enqueteBatimentPayload.getTerminalId(), enqueteBatimentPayload.getExternalKey()); + optionalMobileDataEnqueteBatiment = mobileDataEnqueteBatimentRepository.findFirstByTerminalIdAndEnqueteExternalKey(enqueteBatimentPayload.getTerminalId(), enqueteBatimentPayload.getExternalKey()); if (optionalMobileDataEnqueteBatiment.isPresent()) { mobileDataEnqueteBatiment = optionalMobileDataEnqueteBatiment.get(); } } + mobileDataEnqueteBatiment.setTerminalId(enqueteBatimentPayload.getTerminalId()); + mobileDataEnqueteBatiment.setExternalKey(enqueteBatimentPayload.getExternalKey()); mobileDataEnqueteBatiment.setTraiter(false); mobileDataEnqueteBatiment.setEnqueteBatimentPayload(enqueteBatimentPayload); mobileDataEnqueteBatiment = mobileDataEnqueteBatimentRepository.save(mobileDataEnqueteBatiment); @@ -620,7 +876,7 @@ public class SynchronisationServiceImpl implements SynchronisationService { syncResponse.setSynchronise(true); syncResponse.setIdBackend(mobileDataEnqueteBatiment.getId()); syncResponses.add(syncResponse); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); SyncResponse syncResponse = new SyncResponse(); syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.ENQUETEBATIMENT.toString()); @@ -645,11 +901,13 @@ public class SynchronisationServiceImpl implements SynchronisationService { mobileDataEnqueteUniteLogement = optionalMobileDataEnqueteUniteLogement.get(); } } else { - optionalMobileDataEnqueteUniteLogement = mobileDataEnqueteUniteLogementRepository.findByEnqueteUniteLogementPayload_TerminalIdAndEnqueteUniteLogementPayload_ExternalKey(enqueteUniteLogementPayload.getTerminalId(), enqueteUniteLogementPayload.getExternalKey()); + optionalMobileDataEnqueteUniteLogement = mobileDataEnqueteUniteLogementRepository.findFirstByTerminalIdAndEnqueteExternalKey(enqueteUniteLogementPayload.getTerminalId(), enqueteUniteLogementPayload.getExternalKey()); if (optionalMobileDataEnqueteUniteLogement.isPresent()) { mobileDataEnqueteUniteLogement = optionalMobileDataEnqueteUniteLogement.get(); } } + mobileDataEnqueteUniteLogement.setTerminalId(enqueteUniteLogementPayload.getTerminalId()); + mobileDataEnqueteUniteLogement.setExternalKey(enqueteUniteLogementPayload.getExternalKey()); mobileDataEnqueteUniteLogement.setTraiter(false); mobileDataEnqueteUniteLogement.setEnqueteUniteLogementPayload(enqueteUniteLogementPayload); mobileDataEnqueteUniteLogement = mobileDataEnqueteUniteLogementRepository.save(mobileDataEnqueteUniteLogement); @@ -659,7 +917,7 @@ public class SynchronisationServiceImpl implements SynchronisationService { syncResponse.setSynchronise(true); syncResponse.setIdBackend(mobileDataEnqueteUniteLogement.getId()); syncResponses.add(syncResponse); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); SyncResponse syncResponse = new SyncResponse(); syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.ENQUETEUNITELOGEMENT.toString()); @@ -684,11 +942,13 @@ public class SynchronisationServiceImpl implements SynchronisationService { mobileDataCaracteristiqueParcelle = optionalMobileDataCaracteristiqueParcelle.get(); } } else { - optionalMobileDataCaracteristiqueParcelle = mobileDataCaracteristiqueParcelleRepository.findByCaracteristiqueParcellePaylod_TerminalIdAndCaracteristiqueParcellePaylod_ExternalKey(caracteristiqueParcellePaylod.getTerminalId(), caracteristiqueParcellePaylod.getExternalKey()); + optionalMobileDataCaracteristiqueParcelle = mobileDataCaracteristiqueParcelleRepository.findFirstByTerminalIdAndEnqueteExternalKey(caracteristiqueParcellePaylod.getTerminalId(), caracteristiqueParcellePaylod.getExternalKey()); if (optionalMobileDataCaracteristiqueParcelle.isPresent()) { mobileDataCaracteristiqueParcelle = optionalMobileDataCaracteristiqueParcelle.get(); } } + mobileDataCaracteristiqueParcelle.setTerminalId(caracteristiqueParcellePaylod.getTerminalId()); + mobileDataCaracteristiqueParcelle.setExternalKey(caracteristiqueParcellePaylod.getExternalKey()); mobileDataCaracteristiqueParcelle.setTraiter(false); mobileDataCaracteristiqueParcelle.setCaracteristiqueParcellePaylod(caracteristiqueParcellePaylod); mobileDataCaracteristiqueParcelle = mobileDataCaracteristiqueParcelleRepository.save(mobileDataCaracteristiqueParcelle); @@ -698,7 +958,7 @@ public class SynchronisationServiceImpl implements SynchronisationService { syncResponse.setSynchronise(true); syncResponse.setIdBackend(mobileDataCaracteristiqueParcelle.getId()); syncResponses.add(syncResponse); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); SyncResponse syncResponse = new SyncResponse(); syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.CARACTERISTIQUEPARCELLE.toString()); @@ -724,11 +984,14 @@ public class SynchronisationServiceImpl implements SynchronisationService { mobileDataCaracteristiqueBatiment = optionalMobileDataCaracteristiqueBatiment.get(); } } else { - optionalMobileDataCaracteristiqueBatiment = mobileDataCaracteristiqueBatimentRepository.findByCaracteristiqueBatimentPaylod_TerminalIdAndCaracteristiqueBatimentPaylod_ExternalKey(caracteristiqueBatimentPaylod.getTerminalId(), caracteristiqueBatimentPaylod.getExternalKey()); + optionalMobileDataCaracteristiqueBatiment = mobileDataCaracteristiqueBatimentRepository.findFirstByTerminalIdAndEnqueteExternalKey(caracteristiqueBatimentPaylod.getTerminalId(), caracteristiqueBatimentPaylod.getExternalKey()); if (optionalMobileDataCaracteristiqueBatiment.isPresent()) { mobileDataCaracteristiqueBatiment = optionalMobileDataCaracteristiqueBatiment.get(); } } + + mobileDataCaracteristiqueBatiment.setTerminalId(caracteristiqueBatimentPaylod.getTerminalId()); + mobileDataCaracteristiqueBatiment.setExternalKey(caracteristiqueBatimentPaylod.getExternalKey()); mobileDataCaracteristiqueBatiment.setTraiter(false); mobileDataCaracteristiqueBatiment.setCaracteristiqueBatimentPaylod(caracteristiqueBatimentPaylod); mobileDataCaracteristiqueBatiment = mobileDataCaracteristiqueBatimentRepository.save(mobileDataCaracteristiqueBatiment); @@ -738,7 +1001,7 @@ public class SynchronisationServiceImpl implements SynchronisationService { syncResponse.setSynchronise(true); syncResponse.setIdBackend(mobileDataCaracteristiqueBatiment.getId()); syncResponses.add(syncResponse); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); SyncResponse syncResponse = new SyncResponse(); syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.CARACTERISTIQUEBATIMENT.toString()); @@ -763,11 +1026,13 @@ public class SynchronisationServiceImpl implements SynchronisationService { mobileDataCaracteristiqueUniteLogement = optionalMobileDataCaracteristiqueUniteLogement.get(); } } else { - optionalMobileDataCaracteristiqueUniteLogement = mobileDataCaracteristiqueUniteLogementRepository.findByCaracteristiqueUniteLogementPaylod_TerminalIdAndCaracteristiqueUniteLogementPaylod_ExternalKey(caracteristiqueUniteLogementPaylod.getTerminalId(), caracteristiqueUniteLogementPaylod.getExternalKey()); + optionalMobileDataCaracteristiqueUniteLogement = mobileDataCaracteristiqueUniteLogementRepository.findFirstByTerminalIdAndEnqueteExternalKey(caracteristiqueUniteLogementPaylod.getTerminalId(), caracteristiqueUniteLogementPaylod.getExternalKey()); if (optionalMobileDataCaracteristiqueUniteLogement.isPresent()) { mobileDataCaracteristiqueUniteLogement = optionalMobileDataCaracteristiqueUniteLogement.get(); } } + mobileDataCaracteristiqueUniteLogement.setTerminalId(caracteristiqueUniteLogementPaylod.getTerminalId()); + mobileDataCaracteristiqueUniteLogement.setExternalKey(caracteristiqueUniteLogementPaylod.getExternalKey()); mobileDataCaracteristiqueUniteLogement.setTraiter(false); mobileDataCaracteristiqueUniteLogement.setCaracteristiqueUniteLogementPaylod(caracteristiqueUniteLogementPaylod); mobileDataCaracteristiqueUniteLogement = mobileDataCaracteristiqueUniteLogementRepository.save(mobileDataCaracteristiqueUniteLogement); @@ -777,7 +1042,7 @@ public class SynchronisationServiceImpl implements SynchronisationService { syncResponse.setSynchronise(true); syncResponse.setIdBackend(mobileDataCaracteristiqueUniteLogement.getId()); syncResponses.add(syncResponse); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); SyncResponse syncResponse = new SyncResponse(); syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.CARACTERISTIQUEUNITELOGEMENT.toString()); @@ -802,11 +1067,13 @@ public class SynchronisationServiceImpl implements SynchronisationService { mobileDataParcelle = optionalMobileDataParcelle.get(); } } else { - optionalMobileDataParcelle = mobileDataParcelleRepository.findByParcellePayLoad_TerminalIdAndParcellePayLoad_ExternalKey(parcellePayLoad.getTerminalId(), parcellePayLoad.getExternalKey()); + optionalMobileDataParcelle = mobileDataParcelleRepository.findFirstByTerminalIdAndEnqueteExternalKey(parcellePayLoad.getTerminalId(), parcellePayLoad.getExternalKey()); if (optionalMobileDataParcelle.isPresent()) { mobileDataParcelle = optionalMobileDataParcelle.get(); } } + mobileDataParcelle.setTerminalId(parcellePayLoad.getTerminalId()); + mobileDataParcelle.setExternalKey(parcellePayLoad.getExternalKey()); mobileDataParcelle.setTraiter(false); mobileDataParcelle.setParcellePayLoad(parcellePayLoad); mobileDataParcelle = mobileDataParcelleRepository.save(mobileDataParcelle); @@ -816,7 +1083,7 @@ public class SynchronisationServiceImpl implements SynchronisationService { syncResponse.setSynchronise(true); syncResponse.setIdBackend(mobileDataParcelle.getId()); syncResponses.add(syncResponse); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); SyncResponse syncResponse = new SyncResponse(); syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.CARACTERISTIQUEUNITELOGEMENT.toString()); @@ -827,1165 +1094,51 @@ public class SynchronisationServiceImpl implements SynchronisationService { } }); } - } - return syncResponses; - } + case ENQUETE -> { + payloads.forEach(payLoad -> { + EnquetePayLoad enquetePayLoad = (EnquetePayLoad) payLoad; + try { + MobileDataEnquete mobileDataEnquete = new MobileDataEnquete(); - private void deleteFromPersonne(Long idBackend) { - uploadRepository.deleteUploadByMembreGroupe_PersonneRepresantee_Id(idBackend); - uploadRepository.deleteUploadByPiece_Personne_Id(idBackend); - uploadRepository.deleteUploadByPersonne_Id(idBackend); - membreGroupeRepository.deleteMembreGroupeByPersonneRepresantante_Id(idBackend); - pieceRepository.deletePieceByPersonne_Id(idBackend); - } + Optional optionalMobileDataEnquete = Optional.empty(); - private Personne getPersonneFromPersonnePayLoad(Personne personne, PersonnePayLoad personnePayLoad) { - if (personnePayLoad.getCommuneId() != null) { - Optional optionalCommune = communeRepository.findById(personnePayLoad.getCommuneId()); - personne.setCommune(optionalCommune.orElse(null)); - } - if (personnePayLoad.getNationaliteId() != null) { - Optional optionalNationalite = nationaliteRepository.findById(personnePayLoad.getNationaliteId()); - personne.setNationalite(optionalNationalite.orElse(null)); - } - if (personnePayLoad.getProfessionId() != null) { - Optional optionalProfession = professionRepository.findById(personnePayLoad.getProfessionId()); - personne.setProfession(optionalProfession.orElse(null)); - } - if (personnePayLoad.getTypePersonneId() != null) { - Optional optionalTypePersonne = typePersonneRepository.findById(personnePayLoad.getTypePersonneId()); - personne.setTypePersonne(optionalTypePersonne.orElse(null)); - } else { - Optional optionalTypePersonne = typePersonneRepository.findFirstByCategorie(Categorie.PERSONNE_PHYSIQUE); - personne.setTypePersonne(optionalTypePersonne.orElse(null)); - - } - if (personnePayLoad.getSituationMatrimonialeId() != null) { - Optional optionalSituationMatrimoniale = situationMatrimonialeRepository.findById(personnePayLoad.getSituationMatrimonialeId()); - personne.setSituationMatrimoniale(optionalSituationMatrimoniale.orElse(null)); - } - if (personnePayLoad.getTerminalId() != null) { - Optional optionalTpe = tpeRepository.findById(personnePayLoad.getTerminalId()); - personne.setTerminal(optionalTpe.orElse(null)); - } - - personne.setCategorie(personnePayLoad.getCategorie()); - personne.setAdresse(personnePayLoad.getAdresse()); - personne.setIfu(personnePayLoad.getIfu()); - personne.setDateNaissanceOuConsti(personnePayLoad.getDateNaissanceOuConsti()); - personne.setLieuNaissance(personnePayLoad.getLieuNaissance()); - personne.setNomOuSigle(personnePayLoad.getNomOuSigle()); - personne.setNpi(personnePayLoad.getNpi()); - personne.setNumRavip(personnePayLoad.getNumRavip()); - personne.setPrenomOuRaisonSociale(personnePayLoad.getPrenomOuRaisonSociale()); - personne.setTel1(personnePayLoad.getTel1()); - personne.setTel2(personnePayLoad.getTel2()); - personne.setExternalKey(personnePayLoad.getExternalKey()); - - personne.setHaveRepresentant(personnePayLoad.getHaveRepresentant()); - personne.setRavipQuestion(personnePayLoad.getRavipQuestion()); - personne.setAge(personnePayLoad.getAge()); - personne.setNomJeuneFille(personnePayLoad.getNomJeuneFille()); - personne.setNomMere(personnePayLoad.getNomMere()); - personne.setPrenomMere(personnePayLoad.getPrenomMere()); - personne.setIndicatifTel1(personnePayLoad.getIndicatifTel1()); - personne.setIndicatifTel2(personnePayLoad.getIndicatifTel2()); - personne.setSexe(personnePayLoad.getSexe()); - personne.setMustHaveRepresentant(personnePayLoad.getMustHaveRepresentant()); - personne.setFilePath(personnePayLoad.getFilePath()); - personne.setObservation(personnePayLoad.getObservation()); - return personne; - } - - @Override - public List syncMembreGroupe(List membreGroupePayLoads) { - List syncResponses = new ArrayList<>(); - if (membreGroupePayLoads == null) { - SyncResponse syncResponse = new SyncResponse(null, - null, false, "Aucun membre à synchroniser"); - syncResponses.add(syncResponse); - return syncResponses; - } - membreGroupePayLoads.forEach(membreGroupePayLoad -> { - try { - if (membreGroupePayLoad.getTerminalId() == null) { - SyncResponse syncResponse = new SyncResponse(membreGroupePayLoad.getIdBackend(), - membreGroupePayLoad.getExternalKey(), false, "Le terminal n'est pas précisé"); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalTpe = tpeRepository.findById(membreGroupePayLoad.getTerminalId()); - if (optionalTpe.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(membreGroupePayLoad.getIdBackend(), - membreGroupePayLoad.getExternalKey(), false, "Le terminal n'existe pas"); + if (enquetePayLoad.getIdBackend() != null) { + optionalMobileDataEnquete = mobileDataEnqueteRepository.findById(enquetePayLoad.getIdBackend()); + if (optionalMobileDataEnquete.isPresent()) { + mobileDataEnquete = optionalMobileDataEnquete.get(); + } + } else { + optionalMobileDataEnquete = mobileDataEnqueteRepository.findFirstByTerminalIdAndEnqueteExternalKey(enquetePayLoad.getTerminalId(), enquetePayLoad.getExternalKey()); + if (optionalMobileDataEnquete.isPresent()) { + mobileDataEnquete = optionalMobileDataEnquete.get(); + } + } + mobileDataEnquete.setTerminalId(enquetePayLoad.getTerminalId()); + mobileDataEnquete.setExternalKey(enquetePayLoad.getExternalKey()); + mobileDataEnquete.setTraiter(false); + mobileDataEnquete.setEnquetePayLoad(enquetePayLoad); + mobileDataEnquete = mobileDataEnqueteRepository.save(mobileDataEnquete); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation effectuée avec succès pour " + TypeObjet.CARACTERISTIQUEUNITELOGEMENT.toString()); + syncResponse.setExternalKey(enquetePayLoad.getExternalKey()); + syncResponse.setSynchronise(true); + syncResponse.setIdBackend(mobileDataEnquete.getId()); syncResponses.add(syncResponse); - return; - } - } - - if (membreGroupePayLoad.getPersonneRepresentanteId() == null) { - SyncResponse syncResponse = new SyncResponse(membreGroupePayLoad.getIdBackend(), - membreGroupePayLoad.getExternalKey(), false, "La personne représentante n'est pas précisée"); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(membreGroupePayLoad.getPersonneRepresentanteId(), membreGroupePayLoad.getTerminalId()); - if (optionalPersonne.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(membreGroupePayLoad.getIdBackend(), - membreGroupePayLoad.getExternalKey(), false, "La personne représentante précisée n'existe pas"); + } catch (Exception e) { + e.printStackTrace(); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.CARACTERISTIQUEUNITELOGEMENT.toString()); + syncResponse.setExternalKey(enquetePayLoad.getExternalKey()); + syncResponse.setSynchronise(false); + syncResponse.setIdBackend(enquetePayLoad.getIdBackend()); syncResponses.add(syncResponse); - return; } - } - if (membreGroupePayLoad.getPersonneRepresenteeId() == null) { - SyncResponse syncResponse = new SyncResponse(membreGroupePayLoad.getIdBackend(), - membreGroupePayLoad.getExternalKey(), false, "La personne représentée n'est pas précisée"); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(membreGroupePayLoad.getPersonneRepresenteeId(), membreGroupePayLoad.getTerminalId()); - if (optionalPersonne.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(membreGroupePayLoad.getIdBackend(), - membreGroupePayLoad.getExternalKey(), false, "La personne représentée précisée n'existe pas"); - syncResponses.add(syncResponse); - return; - } - } - - MembreGroupe membreGroupe = new MembreGroupe(); - membreGroupePayLoad.setSynchronise(true); - if (membreGroupePayLoad.getIdBackend() != null && membreGroupePayLoad.getIdBackend() != 0) { - Optional optionalMembreGroupe = membreGroupeRepository.findById(membreGroupePayLoad.getIdBackend()); - if (optionalMembreGroupe.isPresent()) { - membreGroupe = optionalMembreGroupe.get(); - } else { - membreGroupePayLoad.setIdBackend(null); - } - membreGroupe = getMembreGroupeFromMembreGroupePayLoad(membreGroupe, membreGroupePayLoad); - membreGroupe = membreGroupeRepository.save(membreGroupe); - membreGroupePayLoad.setIdBackend(membreGroupe.getId()); - - } else { - Optional optionalMembreGroupe = membreGroupeRepository.findFirstByExternalKeyAndTerminal_Id(membreGroupePayLoad.getExternalKey(),membreGroupePayLoad.getTerminalId()); - if (optionalMembreGroupe.isPresent()) { - membreGroupe=optionalMembreGroupe.get(); - membreGroupe = getMembreGroupeFromMembreGroupePayLoad(membreGroupe, membreGroupePayLoad); - membreGroupe = membreGroupeRepository.save(membreGroupe); - membreGroupePayLoad.setIdBackend(membreGroupe.getId()); - }else { - membreGroupe = getMembreGroupeFromMembreGroupePayLoad(membreGroupe, membreGroupePayLoad); - membreGroupe = membreGroupeRepository.save(membreGroupe); - membreGroupePayLoad.setIdBackend(membreGroupe.getId()); - } - } - SyncResponse syncResponse = new SyncResponse(); - syncResponse.setObservation(membreGroupePayLoad.getObservation()); - syncResponse.setExternalKey(membreGroupePayLoad.getExternalKey()); - syncResponse.setSynchronise(membreGroupePayLoad.isSynchronise()); - syncResponse.setIdBackend(membreGroupePayLoad.getIdBackend()); - syncResponses.add(syncResponse); - } catch (Exception e) { - e.printStackTrace(); - SyncResponse syncResponse = new SyncResponse(membreGroupePayLoad.getIdBackend(), - membreGroupePayLoad.getExternalKey(), false, "Erreur inattendue"); - syncResponses.add(syncResponse); - } - }); - return syncResponses; - } - - - private MembreGroupe getMembreGroupeFromMembreGroupePayLoad(MembreGroupe membreGroupe, MembreGroupePayLoad membreGroupePayLoad) { - if (membreGroupePayLoad.getPersonneRepresentanteId() != null) { - Optional optionalRepresentant = personneRepository.findFirstByExternalKeyAndTerminal_Id(membreGroupePayLoad.getPersonneRepresentanteId(), membreGroupePayLoad.getTerminalId()); - membreGroupe.setPersonneRepresantante(optionalRepresentant.orElse(null)); - } - if (membreGroupePayLoad.getPersonneRepresenteeId() != null) { - Optional optionalRepresente = personneRepository.findFirstByExternalKeyAndTerminal_Id(membreGroupePayLoad.getPersonneRepresenteeId(), membreGroupePayLoad.getTerminalId()); - membreGroupe.setPersonneRepresantee(optionalRepresente.orElse(null)); - } - - if (membreGroupePayLoad.getPositionRepresentationId() != null) { - Optional optionalPositionRepresentation = positionRepresentationRepository.findById(membreGroupePayLoad.getPositionRepresentationId()); - membreGroupe.setPositionRepresentation(optionalPositionRepresentation.orElse(null)); - } - if (membreGroupePayLoad.getTerminalId() != null) { - Optional optionalTpe = tpeRepository.findById(membreGroupePayLoad.getTerminalId()); - membreGroupe.setTerminal(optionalTpe.orElse(null)); - } - - if (membreGroupePayLoad.getTypeRepresentationId() != null) { - Optional optionalTypeRepresentation = typeRepresentationRepository.findById(membreGroupePayLoad.getTypeRepresentationId()); - membreGroupe.setExternalKey(membreGroupePayLoad.getExternalKey()); - - } - - if (membreGroupePayLoad.getEnqueteId() != null) { - Optional optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(membreGroupePayLoad.getEnqueteId(),membreGroupePayLoad.getTerminalId()); - membreGroupe.setExternalKey(membreGroupePayLoad.getExternalKey()); - membreGroupe.setEnqueteId(optionalEnquete.get().getId()); - } - - membreGroupe.setMax_numero_acteur_concerne_id(membreGroupePayLoad.getMax_numero_acteur_concerne_id()); - membreGroupe.setMax_numero_piece_id(membreGroupePayLoad.getMax_numero_piece_id()); - membreGroupe.setEnqueteExternalKey(membreGroupePayLoad.getEnqueteId()); - - membreGroupe.setBlocId(membreGroupePayLoad.getBlocId()); - membreGroupe.setObservation(membreGroupePayLoad.getObservation()); - - return membreGroupe; - } - - @Override - @Transactional - public List syncEnquete(List enquetePayLoads) { - List syncResponses = new ArrayList<>(); - if (enquetePayLoads == null) { - SyncResponse syncResponse = new SyncResponse(null, - null, false, "Aucune enquête à synchroniser"); - syncResponses.add(syncResponse); - return syncResponses; - } - enquetePayLoads.forEach(enquetePayLoad -> { - System.out.println("ENQUETE A SUPPRIMER " +enquetePayLoad.getCodeParcelle()); - deleteFromCodeParcelle(enquetePayLoad.getCodeParcelle()); }); - - enquetePayLoads.forEach(enquetePayLoad -> { - try { - // deleteFromCodeParcelle(enquetePayLoad.getCodeParcelle()); - if (enquetePayLoad.getTerminalId() == null) { - SyncResponse syncResponse = new SyncResponse(enquetePayLoad.getIdBackend(), - enquetePayLoad.getExternalKey(), false, "Le terminal n'est pas précisé"); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalTpe = tpeRepository.findById(enquetePayLoad.getTerminalId()); - if (optionalTpe.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(enquetePayLoad.getIdBackend(), - enquetePayLoad.getExternalKey(), false, "Le terminal n'existe pas"); - syncResponses.add(syncResponse); - return; - } - } - - if (enquetePayLoad.getUserId() == null) { - SyncResponse syncResponse = new SyncResponse(enquetePayLoad.getIdBackend(), - enquetePayLoad.getExternalKey(), false, "L'enquêteur n'est pas précisée"); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalUser = userRepository.findById(enquetePayLoad.getUserId()); - if (optionalUser.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(enquetePayLoad.getIdBackend(), - enquetePayLoad.getExternalKey(), false, "L'enquêteur précisé n'existe pas"); - syncResponses.add(syncResponse); - return; - } - } - if (enquetePayLoad.getZoneRfuId() != null) { - Optional optionalZoneRfu = zoneRfuRepository.findById(enquetePayLoad.getZoneRfuId()); - if (optionalZoneRfu.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(enquetePayLoad.getIdBackend(), - enquetePayLoad.getExternalKey(), false, "La zone rfu n'existe pas"); - syncResponses.add(syncResponse); - return; - } - } - if (enquetePayLoad.getParcelleId() == null) { - SyncResponse syncResponse = new SyncResponse(enquetePayLoad.getIdBackend(), - enquetePayLoad.getExternalKey(), false, "La parcelle n'est pas précisée"); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalParcelle = parcelleRepository.findFirstByExternalKeyAndTerminal_Id(enquetePayLoad.getParcelleId(), enquetePayLoad.getTerminalId()); - if (optionalParcelle.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(enquetePayLoad.getIdBackend(), - enquetePayLoad.getExternalKey(), false, "La parcelle précisée n'existe pas"); - syncResponses.add(syncResponse); - return; - } - } - if (enquetePayLoad.getBlocId() == null) { - SyncResponse syncResponse = new SyncResponse(enquetePayLoad.getIdBackend(), - enquetePayLoad.getExternalKey(), false, "Le bloc n'est pas précisé"); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalBloc = blocRepository.findById(enquetePayLoad.getBlocId()); - if (optionalBloc.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(enquetePayLoad.getIdBackend(), - enquetePayLoad.getExternalKey(), false, "Le bloc précisé n'existe pas"); - syncResponses.add(syncResponse); - return; - } - } - Enquete enquete = new Enquete(); - enquetePayLoad.setSynchronise(true); - Optional optionalEnquete; - if (enquetePayLoad.getIdBackend() != null && enquetePayLoad.getIdBackend() != 0) { - optionalEnquete = enqueteRepository.findById(enquetePayLoad.getIdBackend()); - } else { - optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(enquetePayLoad.getExternalKey(), enquetePayLoad.getTerminalId()); - } - if (optionalEnquete.isPresent()) { - enquete = optionalEnquete.get(); - } else { - enquetePayLoad.setIdBackend(null); - } - enquete = getEnqueteFromEnquetePayLoad(enquete, enquetePayLoad); - enquete.setStatutEnregistrement(StatutEnregistrement.NOUVELLE_INSERTION); - enquete = enqueteRepository.save(enquete); - enquetePayLoad.setIdBackend(enquete.getId()); - SyncResponse syncResponse = new SyncResponse(); - syncResponse.setObservation(enquetePayLoad.getObservation()); - syncResponse.setExternalKey(enquetePayLoad.getExternalKey()); - syncResponse.setSynchronise(enquetePayLoad.isSynchronise()); - syncResponse.setIdBackend(enquetePayLoad.getIdBackend()); - syncResponses.add(syncResponse); - try{ - if(enquete.getParcelle()!=null) { - parcelleGeomService.setStatutParcelleGeomFromEnquete(enquete); - } - }catch (Exception e){ - e.printStackTrace(); - } - } catch (Exception e) { - e.printStackTrace(); - SyncResponse syncResponse = new SyncResponse(enquetePayLoad.getIdBackend(), - enquetePayLoad.getExternalKey(), false, "Erreur inattendue"); - syncResponses.add(syncResponse); } - }); - + } return syncResponses; } - private void deleteFromEnquete(Long idBackend) { - try { - uploadRepository.deleteUploadByEnqueteId(idBackend); - } catch (Exception e) { - - } - try { - pieceRepository.deletePieceByEnqueteId(idBackend); - } catch (Exception e) { - - } - try { - acteurConcerneRepository.deleteActeurConcerneByEnquete(idBackend); - } catch (Exception e) { - - } - try { - caracteristiqueParcelleRepository.deleteAllByEnquete_Id(idBackend); - } catch (Exception e) { - - } - } - - //@Transactional - protected void deleteFromCodeParcelle(String codeParcelle) { - Optional optionalEnquete=enqueteRepository.findFirstByCodeParcelle(codeParcelle); - Long idEnquete=null; - if(optionalEnquete.isPresent()){ - idEnquete=optionalEnquete.get().getId(); - } - if(idEnquete!=null) { - System.out.println("ENQUETE ID"+idEnquete); - try { - uploadRepository.deleteUploadByEnqueteId(idEnquete); - } catch (Exception e) { - - } - try { - pieceRepository.deletePieceByEnqueteId(idEnquete); - } catch (Exception e) { - - } - try { - acteurConcerneRepository.deleteActeurConcerneByEnquete(idEnquete); - } catch (Exception e) { - - } - try { - caracteristiqueParcelleRepository.deleteAllByEnquete_Id(idEnquete); - } catch (Exception e) { - - } - - try { - caracteristiqueBatimentRepository.deleteByEnqueteId(idEnquete); - }catch (Exception e){ - - } - - try { - caracteristiqueUniteLogementRepository.deleteByEnqueteId(idEnquete); - }catch (Exception e){ - - } - - try { - enqueteBatimentRepository.deleteAllByEnquete_Id(idEnquete); - }catch (Exception e){ - - } - - try { - enqueteUniteLogementRepository.deleteAllByEnquete_id(idEnquete); - }catch (Exception e){ - - } - - try { - uniteLogementRepository.deleteByEnqueteId(idEnquete); - }catch (Exception e){ - - } - - try { - batimentRepository.deleteByEnqueteId(idEnquete); - }catch (Exception e){ - - } - - try { - System.out.println("SUPPRESSION DE ENQUETE "+idEnquete); - enqueteRepository.deleteById(idEnquete); - }catch (Exception e){ - - } - } - } - - private Enquete getEnqueteFromEnquetePayLoad(Enquete enquete, EnquetePayLoad enquetePayLoad) { - - if (enquetePayLoad.getUserId() != null) { - Optional optionalUser = userRepository.findById(enquetePayLoad.getUserId()); - enquete.setUser(optionalUser.orElse(null)); - } - if (enquetePayLoad.getZoneRfuId() != null) { - Optional optionalZoneRfu = zoneRfuRepository.findById(enquetePayLoad.getZoneRfuId()); - enquete.setZoneRfu(optionalZoneRfu.orElse(null)); - } - - if (enquetePayLoad.getParcelleId() != null) { - Optional optionalParcelle = parcelleRepository.findFirstByNupProvisoire(enquetePayLoad.getCodeParcelle()); - //Optional optionalParcelle = parcelleRepository.findFirstByExternalKeyAndTerminal_Id(enquetePayLoad.getParcelleId(), enquetePayLoad.getTerminalId()); - enquete.setParcelle(optionalParcelle.orElse(null)); - } - if (enquetePayLoad.getBlocId() != null) { - Optional optionalBloc = blocRepository.findById(enquetePayLoad.getBlocId()); - enquete.setBloc(optionalBloc.orElse(null)); - } - - if (enquetePayLoad.getTerminalId() != null) { - Optional optionalTpe = tpeRepository.findById(enquetePayLoad.getTerminalId()); - enquete.setTerminal(optionalTpe.orElse(null)); - } - enquete.setParcelleExternalKey(enquetePayLoad.getParcelleId()); - enquete.setStatusEnquete(enquetePayLoad.getStatusEnquete()); - enquete.setLitige(enquetePayLoad.isLitige()); - enquete.setObservationParticuliere(enquetePayLoad.getObservationParticuliere()); - enquete.setDateEnquete(enquetePayLoad.getDateEnquete()); - enquete.setDateFinalisation(enquetePayLoad.getDateFinalisation()); - enquete.setExternalKey(enquetePayLoad.getExternalKey()); - enquete.setQuartierId(enquetePayLoad.getQuartierId()); - enquete.setArrondissementId(enquetePayLoad.getArrondissementId()); - enquete.setCommuneId(enquetePayLoad.getCommuneId()); - enquete.setCommuneId(enquetePayLoad.getCommuneId()); - enquete.setDepartementId(enquetePayLoad.getDepartementId()); - enquete.setNumeroProvisoir(enquetePayLoad.getNumeroProvisoir()); - enquete.setCodeParcelle(enquetePayLoad.getCodeParcelle()); - enquete.setNomProprietaireParcelle(enquetePayLoad.getNomProprietaireParcelle()); - enquete.setCodeEquipe(enquetePayLoad.getCodeEquipe()); - enquete.setNumeroTitreFoncier(enquetePayLoad.getNumeroTitreFoncier()); - // Liste des champs pour FISCAD - enquete.setNumEnterParcelle(enquetePayLoad.getNumEnterParcelle()); - enquete.setNumRue(enquetePayLoad.getNumRue()); - enquete.setNomRue(enquetePayLoad.getNomRue()); - enquete.setEmplacement(enquetePayLoad.getEmplacement()); - enquete.setAltitude(enquetePayLoad.getAltitude()); - enquete.setPrecision(enquetePayLoad.getPrecision()); - enquete.setNbreCoProprietaire(enquetePayLoad.getNbreCoProprietaire()); - enquete.setNbreIndivisiaire(enquetePayLoad.getNbreIndivisiaire()); - enquete.setAutreAdresse(enquetePayLoad.getAutreAdresse()); - enquete.setSurface(enquetePayLoad.getSurface()); - enquete.setNbreBatiment(enquetePayLoad.getNbreBatiment()); - enquete.setNbrePiscine(enquetePayLoad.getNbrePiscine()); - enquete.setDateDebutExcemption(enquetePayLoad.getDateDebutExcemption()); - enquete.setDateFinExcemption(enquetePayLoad.getDateFinExcemption()); - enquete.setPersonneId(enquetePayLoad.getPersonneId()); - enquete.setAutreNumeroTitreFoncier(enquete.getAutreNumeroTitreFoncier()); - return enquete; - } - - - private Batiment getBatimentFromBatimentPayLoad(Batiment batiment, BatimentPaylaod batimentPaylaod) { - - if (batimentPaylaod.getParcelleId() != null) { - Optional optionalParcelle = parcelleRepository.findFirstByExternalKeyAndTerminal_Id(batimentPaylaod.getParcelleId(), batimentPaylaod.getTerminalId()); - batiment.setParcelle(optionalParcelle.orElse(null)); - } - - if (batimentPaylaod.getTerminalId() != null) { - Optional optionalTpe = tpeRepository.findById(batimentPaylaod.getTerminalId()); - batiment.setTerminal(optionalTpe.orElse(null)); - } - if (batimentPaylaod.getTerminalId() != null && batimentPaylaod.getEnqueteId()!=null) { - Optional optionalEnquete=enqueteRepository.findFirstByExternalKeyAndTerminal_Id(batimentPaylaod.getEnqueteId(),batimentPaylaod.getTerminalId()); - if(optionalEnquete.isPresent()){ - batiment.setEnqueteId(optionalEnquete.get().getId()); - } - } - batiment.setParcelleExternalKey(batimentPaylaod.getParcelleId()); - batiment.setEnqueteExternalKey(batimentPaylaod.getEnqueteId()); - batiment.setNub(batimentPaylaod.getNub()); - batiment.setCode(batimentPaylaod.getCode()); - batiment.setDateConstruction(batimentPaylaod.getDateConstruction()); - batiment.setExternalKey(batimentPaylaod.getExternalKey()); - - return batiment; - } - - private UniteLogement getUniteLogementFromUniteLogementPayLoad(UniteLogement uniteLogement, UniteLogementPaylaod uniteLogementPaylaod) { - - if (uniteLogementPaylaod.getBatimentId() != null) { - Optional optionalBatiment = batimentRepository.findFirstByExternalKeyAndTerminal_Id(uniteLogementPaylaod.getBatimentId(), uniteLogementPaylaod.getTerminalId()); - uniteLogement.setBatiment(optionalBatiment.orElse(null)); - } - - if (uniteLogementPaylaod.getTerminalId() != null) { - Optional optionalTpe = tpeRepository.findById(uniteLogementPaylaod.getTerminalId()); - uniteLogement.setTerminal(optionalTpe.orElse(null)); - } - if (uniteLogementPaylaod.getTerminalId() != null && uniteLogementPaylaod.getEnqueteId()!=null) { - Optional optionalEnquete=enqueteRepository.findFirstByExternalKeyAndTerminal_Id(uniteLogementPaylaod.getEnqueteId(),uniteLogementPaylaod.getTerminalId()); - if(optionalEnquete.isPresent()){ - uniteLogement.setEnqueteId(optionalEnquete.get().getId()); - } - } - uniteLogement.setEnqueteExternalKey(uniteLogementPaylaod.getEnqueteId()); - uniteLogement.setNul(uniteLogementPaylaod.getNul()); - uniteLogement.setNumeroEtage(uniteLogementPaylaod.getNumeroEtage()); - uniteLogement.setCode(uniteLogementPaylaod.getCode()); - uniteLogement.setExternalKey(uniteLogementPaylaod.getExternalKey()); - uniteLogement.setBatimentExternalKey(uniteLogementPaylaod.getBatimentId()); - return uniteLogement; - - } - - private CaracteristiqueUniteLogement getCaracteristiqueUniteLogementFromCaracteristiqueUniteLogementPayLoad(CaracteristiqueUniteLogement caracteristiqueUniteLogement, CaracteristiqueUniteLogementPaylod caracteristiqueUniteLogementPaylod) { - - if (caracteristiqueUniteLogementPaylod.getEnqueteUniteLogementId() != null) { - Optional optionalEnqueteUniteLogement = enqueteUniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueUniteLogementPaylod.getEnqueteUniteLogementId(), caracteristiqueUniteLogementPaylod.getTerminalId()); - caracteristiqueUniteLogement.setEnqueteUniteLogement(optionalEnqueteUniteLogement.orElse(null)); - } - - if (caracteristiqueUniteLogementPaylod.getCaracteristiqueId() != null) { - Optional optionalCaracteristique = caracteristiqueRepository.findById(caracteristiqueUniteLogementPaylod.getCaracteristiqueId()); - caracteristiqueUniteLogement.setCaracteristique(optionalCaracteristique.orElse(null)); - } - - if (caracteristiqueUniteLogementPaylod.getTerminalId() != null) { - Optional optionalTpe = tpeRepository.findById(caracteristiqueUniteLogementPaylod.getTerminalId()); - caracteristiqueUniteLogement.setTerminal(optionalTpe.orElse(null)); - } - if (caracteristiqueUniteLogementPaylod.getTerminalId() != null && caracteristiqueUniteLogementPaylod.getEnqueteId()!=null) { - Optional optionalEnquete=enqueteRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueUniteLogementPaylod.getEnqueteId(),caracteristiqueUniteLogementPaylod.getTerminalId()); - if(optionalEnquete.isPresent()){ - caracteristiqueUniteLogement.setEnqueteId(optionalEnquete.get().getId()); - } - } - caracteristiqueUniteLogement.setEnqueteExternalKey(caracteristiqueUniteLogementPaylod.getEnqueteId()); - caracteristiqueUniteLogement.setEnqueteUniteLogementExternalKey(caracteristiqueUniteLogementPaylod.getEnqueteUniteLogementId()); - caracteristiqueUniteLogement.setValeur(caracteristiqueUniteLogementPaylod.getValeur()); - caracteristiqueUniteLogement.setExternalKey(caracteristiqueUniteLogementPaylod.getExternalKey()); - return caracteristiqueUniteLogement; - - } - - - private CaracteristiqueBatiment getCaracteristiqueBatimentFromCaracteristiqueBatimentPayLoad(CaracteristiqueBatiment caracteristiqueBatiment, CaracteristiqueBatimentPaylod caracteristiqueBatimentPaylod) { - - - if (caracteristiqueBatimentPaylod.getEnqueteBatimentId() != null) { - Optional optionalEnqueteBatiment = enqueteBatimentRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueBatimentPaylod.getEnqueteBatimentId(), caracteristiqueBatimentPaylod.getTerminalId()); - caracteristiqueBatiment.setEnqueteBatiment(optionalEnqueteBatiment.orElse(null)); - } - - if (caracteristiqueBatimentPaylod.getCaracteristiqueId() != null) { - Optional optionalCaracteristique = caracteristiqueRepository.findById(caracteristiqueBatimentPaylod.getCaracteristiqueId()); - caracteristiqueBatiment.setCaracteristique(optionalCaracteristique.orElse(null)); - } - - if (caracteristiqueBatimentPaylod.getTerminalId() != null) { - Optional optionalTpe = tpeRepository.findById(caracteristiqueBatimentPaylod.getTerminalId()); - caracteristiqueBatiment.setTerminal(optionalTpe.orElse(null)); - } - - - if (caracteristiqueBatimentPaylod.getTerminalId() != null && caracteristiqueBatimentPaylod.getEnqueteId()!=null) { - Optional optionalEnquete=enqueteRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueBatimentPaylod.getEnqueteId(),caracteristiqueBatimentPaylod.getTerminalId()); - if(optionalEnquete.isPresent()){ - caracteristiqueBatiment.setEnqueteId(optionalEnquete.get().getId()); - } - } - caracteristiqueBatiment.setEnqueteBatimentExternalKey(caracteristiqueBatimentPaylod.getEnqueteBatimentId()); - caracteristiqueBatiment.setEnqueteExternalKey(caracteristiqueBatimentPaylod.getEnqueteId()); - caracteristiqueBatiment.setValeur(caracteristiqueBatimentPaylod.getValeur()); - caracteristiqueBatiment.setExternalKey(caracteristiqueBatimentPaylod.getExternalKey()); - return caracteristiqueBatiment; - - } - - private CaracteristiqueParcelle getCaracteristiqueParcelleFromCaracteristiqueParcellePayLoad(CaracteristiqueParcelle caracteristiqueParcelle, CaracteristiqueParcellePaylod caracteristiqueParcellePaylod) { - - if (caracteristiqueParcellePaylod.getEnqueteId() != null) { - Optional optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueParcellePaylod.getEnqueteId(), caracteristiqueParcellePaylod.getTerminalId()); - - caracteristiqueParcelle.setEnquete(optionalEnquete.orElse(null)); - } - - if (caracteristiqueParcellePaylod.getCaracteristiqueId() != null) { - Optional optionalCaracteristique = caracteristiqueRepository.findById(caracteristiqueParcellePaylod.getCaracteristiqueId()); - caracteristiqueParcelle.setCaracteristique(optionalCaracteristique.orElse(null)); - } - - if (caracteristiqueParcellePaylod.getTerminalId() != null) { - Optional optionalTpe = tpeRepository.findById(caracteristiqueParcellePaylod.getTerminalId()); - caracteristiqueParcelle.setTerminal(optionalTpe.orElse(null)); - } - - caracteristiqueParcelle.setEnqueteExternalKey(caracteristiqueParcellePaylod.getEnqueteId()); - caracteristiqueParcelle.setValeur(caracteristiqueParcellePaylod.getValeur()); - caracteristiqueParcelle.setExternalKey(caracteristiqueParcellePaylod.getExternalKey()); - return caracteristiqueParcelle; - - } - - @Override - public List syncParcelle(List parcellePayLoads) { - List syncResponses = new ArrayList<>(); - if (parcellePayLoads == null) { - SyncResponse syncResponse = new SyncResponse(null, - null, false, "Aucune parcelle à synchroniser"); - syncResponses.add(syncResponse); - return syncResponses; - } - - parcellePayLoads.forEach(parcellePayLoad -> { - System.out.println(parcellePayLoad); - try { - if (parcellePayLoad.getTerminalId() == null) { - SyncResponse syncResponse = new SyncResponse(parcellePayLoad.getIdBackend(), - parcellePayLoad.getExternalKey(), false, "Le terminal n'est pas précisé"); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalTpe = tpeRepository.findById(parcellePayLoad.getTerminalId()); - if (optionalTpe.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(parcellePayLoad.getIdBackend(), - parcellePayLoad.getExternalKey(), false, "Le terminal n'existe pas"); - syncResponses.add(syncResponse); - return; - } - } - Parcelle parcelle = new Parcelle(); - parcellePayLoad.setSynchronise(true); - if (parcellePayLoad.getNupProvisoire() == null || parcellePayLoad.getNupProvisoire()=="" ) { - parcellePayLoad.setObservation("Le code parcelle n'est pas précisé"); - parcellePayLoad.setSynchronise(false); - } else { - Optional optionalParcelle = parcelleRepository.findFirstByNupProvisoire(parcellePayLoad.getNupProvisoire()); - if(optionalParcelle.isPresent()){ - parcelle=optionalParcelle.get(); - } - parcelle = getParcelleFromParcellePayLoad(parcelle, parcellePayLoad); - parcelle = parcelleRepository.save(parcelle); - parcellePayLoad.setIdBackend(parcelle.getId()); - } - SyncResponse syncResponse = new SyncResponse(); - syncResponse.setObservation(parcellePayLoad.getObservation()); - syncResponse.setExternalKey(parcellePayLoad.getExternalKey()); - syncResponse.setSynchronise(parcellePayLoad.isSynchronise()); - syncResponse.setIdBackend(parcellePayLoad.getIdBackend()); - syncResponses.add(syncResponse); - } catch (Exception e) { - e.printStackTrace(); - SyncResponse syncResponse = new SyncResponse(parcellePayLoad.getIdBackend(), - parcellePayLoad.getExternalKey(), false, "Erreur inattendue"); - syncResponses.add(syncResponse); - } - }); - return syncResponses; - } - - - private Parcelle getParcelleFromParcellePayLoad(Parcelle parcelle, ParcellePayLoad parcellePayLoad) { -// if (parcellePayLoad.getSituationGeographiqueId() != null) { -// Optional optionalSituationGeographique = situationGeographiqueRepository.findById(parcellePayLoad.getSituationGeographiqueId()); -// parcelle.setSituationGeographique(optionalSituationGeographique.orElse(null)); -// } - if (parcellePayLoad.getNatureDomaineId() != null) { - Optional optionalNatureDomaine = natureDomaineRepository.findById(parcellePayLoad.getNatureDomaineId()); - parcelle.setNatureDomaine(optionalNatureDomaine.orElse(null)); - } - if (parcellePayLoad.getQuartierId() != null) { - Optional optionalQuartier = quartierRepository.findById(parcellePayLoad.getQuartierId()); - parcelle.setQuartier(optionalQuartier.orElse(null)); - } - if (parcellePayLoad.getTerminalId() != null) { - Optional optionalTpe = tpeRepository.findById(parcellePayLoad.getTerminalId()); - parcelle.setTerminal(optionalTpe.orElse(null)); - } - parcelle.setExternalKey(parcellePayLoad.getExternalKey()); - parcelle.setNupProvisoire(parcellePayLoad.getNupProvisoire()); - parcelle.setQ(parcellePayLoad.getQ()); - parcelle.setI(parcellePayLoad.getI()); - parcelle.setP(parcellePayLoad.getP()); - parcelle.setNup(parcellePayLoad.getNup()); - parcelle.setLongitude(parcellePayLoad.getLongitude()); - parcelle.setLatitude(parcellePayLoad.getLatitude()); - parcelle.setNumTitreFoncier(parcellePayLoad.getNumTitreFoncier()); - parcelle.setTypeDomaineId(parcellePayLoad.getTypeDomaineId()); - parcelle.setNumeroProvisoire(parcellePayLoad.getNumeroProvisoire()); - parcelle.setBlocId(parcellePayLoad.getBlocId()); - parcelle.setObservation(parcellePayLoad.getObservation()); - parcelle.setSituationGeographique(parcellePayLoad.getSituationGeographique()); - parcelle.setAutreNumeroTitreFoncier(parcellePayLoad.getAutreNumeroTitreFoncier()); - return parcelle; - } - - - @Override - public List syncPiece(List piecePayLoads) { - List syncResponses = new ArrayList<>(); - if (piecePayLoads == null) { - SyncResponse syncResponse = new SyncResponse(null, - null, false, "Aucune pièce à synchroniser"); - syncResponses.add(syncResponse); - return syncResponses; - } - piecePayLoads.forEach(piecePayLoad -> { - try { - if (piecePayLoad.getTerminalId() == null) { - SyncResponse syncResponse = new SyncResponse(piecePayLoad.getIdBackend(), - piecePayLoad.getExternalKey(), false, "Le terminal n'est pas précisé"); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalTpe = tpeRepository.findById(piecePayLoad.getTerminalId()); - if (optionalTpe.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(piecePayLoad.getIdBackend(), - piecePayLoad.getExternalKey(), false, "Le terminal n'existe pas"); - syncResponses.add(syncResponse); - return; - } - } - - if (piecePayLoad.getPersonneId() == null && piecePayLoad.getActeurConcerneId() == null) { - SyncResponse syncResponse = new SyncResponse(piecePayLoad.getIdBackend(), - piecePayLoad.getExternalKey(), false, "La personne ou l'acteur concerné n'est pas précisé"); - syncResponses.add(syncResponse); - return; - } else { - if (piecePayLoad.getPersonneId() != null) { - Optional optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(piecePayLoad.getPersonneId(), piecePayLoad.getTerminalId()); - if (optionalPersonne.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(piecePayLoad.getIdBackend(), - piecePayLoad.getExternalKey(), false, "La personne précisée n'existe pas"); - syncResponses.add(syncResponse); - return; - } - } - if (piecePayLoad.getActeurConcerneId() != null) { - Optional optionalActeurConcerne = acteurConcerneRepository.findFirstByExternalKeyAndTerminal_Id(piecePayLoad.getActeurConcerneId(), piecePayLoad.getTerminalId()); - if (optionalActeurConcerne.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(piecePayLoad.getIdBackend(), - piecePayLoad.getExternalKey(), false, "L'acteur concerné précisé n'existe pas"); - syncResponses.add(syncResponse); - return; - } - } - } - Piece piece = new Piece(); - piecePayLoad.setSynchronise(true); - System.out.println("JE SUIS AU DEBUT DU TEST DE PIECE"); - System.out.println(piecePayLoad); - Optional optionalPiece=Optional.empty(); - if (piecePayLoad.getIdBackend() != null && piecePayLoad.getIdBackend() != 0) { - optionalPiece = pieceRepository.findById(piecePayLoad.getIdBackend()); - }else{ - optionalPiece = pieceRepository.findFirstByExternalKeyAndTerminal_Id(piecePayLoad.getExternalKey(),piecePayLoad.getTerminalId()); - } - if (optionalPiece.isPresent()) { - piece = optionalPiece.get(); - }else { - piecePayLoad.setIdBackend(null); - } - - piece = getPieceFromPiecePayLoad(piece, piecePayLoad); - piece = pieceRepository.save(piece); - piecePayLoad.setIdBackend(piece.getId()); - - SyncResponse syncResponse = new SyncResponse(); - syncResponse.setObservation(piecePayLoad.getObservation()); - syncResponse.setExternalKey(piecePayLoad.getExternalKey()); - syncResponse.setSynchronise(piecePayLoad.isSynchronise()); - syncResponse.setIdBackend(piecePayLoad.getIdBackend()); - syncResponses.add(syncResponse); - - try{ - PieceMetaData pieceMetaData= new PieceMetaData(); - pieceMetaData.setPieceJson(piece); - pieceMetaData.setPieceId(piece.getId()); - pieceMetaDataRepository.save(pieceMetaData); - }catch (Exception e){ - e.printStackTrace(); - } - - } catch (Exception e) { - SyncResponse syncResponse = new SyncResponse(piecePayLoad.getIdBackend(), - piecePayLoad.getExternalKey(), false, "Erreur inattendue"); - syncResponses.add(syncResponse); - } - }); - return syncResponses; - } - - - private Piece getPieceFromPiecePayLoad(Piece piece, PiecePayLoad piecePayLoad) { - if (piecePayLoad.getTypePieceId() != null) { - Optional optionalTypePiece = typePieceRepository.findById(piecePayLoad.getTypePieceId()); - piece.setTypePiece(optionalTypePiece.orElse(null)); - } else { - piece.setTypePiece(null); - } - if (piecePayLoad.getPersonneId() != null) { - Optional optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(piecePayLoad.getPersonneId(), piecePayLoad.getTerminalId()); - piece.setPersonne(optionalPersonne.orElse(null)); - } else { - piece.setPersonne(null); - } - if (piecePayLoad.getActeurConcerneId() != null) { - Optional optionalActeurConcerne = acteurConcerneRepository.findFirstByExternalKeyAndTerminal_Id(piecePayLoad.getActeurConcerneId(), piecePayLoad.getTerminalId()); - piece.setActeurConcerne(optionalActeurConcerne.orElse(null)); - } else { - piece.setActeurConcerne(null); - } - if (piecePayLoad.getModeAcquisitionId() != null) { - Optional optionalModeAcquisition = modeAcquisitionRepository.findById(piecePayLoad.getModeAcquisitionId()); - piece.setModeAcquisition(optionalModeAcquisition.orElse(null)); - } else { - piece.setModeAcquisition(null); - } - if (piecePayLoad.getSourceDroitId() != null) { - Optional optionalSourceDroit = sourceDroitRepository.findById(piecePayLoad.getSourceDroitId()); - piece.setSourceDroit(optionalSourceDroit.orElse(null)); - } else { - piece.setSourceDroit(null); - } - if (piecePayLoad.getTerminalId() != null) { - Optional optionalTpe = tpeRepository.findById(piecePayLoad.getTerminalId()); - piece.setTerminal(optionalTpe.orElse(null)); - } - - if (piecePayLoad.getTerminalId() != null && piecePayLoad.getEnqueteId()!=null) { - Optional optionalEnquete=enqueteRepository.findFirstByExternalKeyAndTerminal_Id(piecePayLoad.getEnqueteId(),piecePayLoad.getTerminalId()); - if(optionalEnquete.isPresent()){ - piece.setEnqueteId(optionalEnquete.get().getId()); - } - } - - piece.setActeurConcerneExternalKey(piecePayLoad.getActeurConcerneId()); - piece.setPersonneExternalKey(piecePayLoad.getPersonneId()); - piece.setEnqueteExternalKey(piecePayLoad.getEnqueteId()); - piece.setNumeroPiece(piecePayLoad.getNumeroPiece()); - piece.setUrl(piecePayLoad.getUrl()); - piece.setExternalKey(piecePayLoad.getExternalKey()); - piece.setDateExpiration(piecePayLoad.getDateExpiration()); - piece.setMax_numero_piece_id(piecePayLoad.getMax_numero_piece_id()); - piece.setMax_numero_acteur_concerne_id(piecePayLoad.getMax_numero_acteur_concerne_id()); - piece.setEnqueteId(piecePayLoad.getEnqueteId()); - piece.setBlocId(piecePayLoad.getBlocId()); - piece.setEnqueteExternalKey(piecePayLoad.getEnqueteId()); - return piece; - } - - @Override - public List syncActeurConcerne(List acteurConcernePayLoads) { - List syncResponses = new ArrayList<>(); - if (acteurConcernePayLoads == null) { - SyncResponse syncResponse = new SyncResponse(null, - null, false, "Aucun acteur concerné à synchroniser"); - syncResponses.add(syncResponse); - return syncResponses; - } - acteurConcernePayLoads.forEach(acteurConcernePayLoad -> { - try { - if (acteurConcernePayLoad.getTerminalId() == null) { - SyncResponse syncResponse = new SyncResponse(acteurConcernePayLoad.getIdBackend(), - acteurConcernePayLoad.getExternalKey(), false, "Le terminal n'est pas précisé"); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalTpe = tpeRepository.findById(acteurConcernePayLoad.getTerminalId()); - if (optionalTpe.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(acteurConcernePayLoad.getIdBackend(), - acteurConcernePayLoad.getExternalKey(), false, "Le terminal n'existe pas"); - syncResponses.add(syncResponse); - return; - } - } - if (acteurConcernePayLoad.getPersonneId() == null) { - SyncResponse syncResponse = new SyncResponse(acteurConcernePayLoad.getIdBackend(), - acteurConcernePayLoad.getExternalKey(), false, "La personne n'est pas précisée"); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(acteurConcernePayLoad.getPersonneId(), acteurConcernePayLoad.getTerminalId()); - if (optionalPersonne.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(acteurConcernePayLoad.getIdBackend(), - acteurConcernePayLoad.getExternalKey(), false, "La personne précisée n'existe pas"); - syncResponses.add(syncResponse); - return; - } - } - if (acteurConcernePayLoad.getEnqueteId() == null) { - SyncResponse syncResponse = new SyncResponse(acteurConcernePayLoad.getIdBackend(), - acteurConcernePayLoad.getExternalKey(), false, "L'enquête n'est pas précisée"); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(acteurConcernePayLoad.getEnqueteId(), acteurConcernePayLoad.getTerminalId()); - if (optionalEnquete.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(acteurConcernePayLoad.getIdBackend(), - acteurConcernePayLoad.getExternalKey(), false, "L'enquête précisée n'existe pas"); - syncResponses.add(syncResponse); - return; - } - } - ActeurConcerne acteurConcerne = new ActeurConcerne(); - acteurConcernePayLoad.setSynchronise(true); - if (acteurConcernePayLoad.getIdBackend() != null && acteurConcernePayLoad.getIdBackend() != 0) { - Optional optionalActeurConcerne = acteurConcerneRepository.findById(acteurConcernePayLoad.getIdBackend()); - if (optionalActeurConcerne.isPresent()) { - acteurConcerne = optionalActeurConcerne.get(); - } else { - acteurConcernePayLoad.setIdBackend(null); - } - acteurConcerne = getActeurConcerneFromActeurConcernePayLoad(acteurConcerne, acteurConcernePayLoad); - acteurConcerne = acteurConcerneRepository.save(acteurConcerne); - acteurConcernePayLoad.setIdBackend(acteurConcerne.getId()); - - } else { - Optional optionalActeurConcerne = acteurConcerneRepository.findFirstByExternalKeyAndTerminal_Id(acteurConcernePayLoad.getExternalKey(),acteurConcernePayLoad.getTerminalId()); - if(optionalActeurConcerne.isPresent()){ - acteurConcerne=optionalActeurConcerne.get(); - } - acteurConcerne = getActeurConcerneFromActeurConcernePayLoad(acteurConcerne, acteurConcernePayLoad); - acteurConcerne = acteurConcerneRepository.save(acteurConcerne); - acteurConcernePayLoad.setIdBackend(acteurConcerne.getId()); - } - SyncResponse syncResponse = new SyncResponse(); - syncResponse.setObservation(acteurConcernePayLoad.getObservation()); - syncResponse.setExternalKey(acteurConcernePayLoad.getExternalKey()); - syncResponse.setSynchronise(acteurConcernePayLoad.isSynchronise()); - syncResponse.setIdBackend(acteurConcernePayLoad.getIdBackend()); - syncResponses.add(syncResponse); - } catch (Exception e) { - e.printStackTrace(); - SyncResponse syncResponse = new SyncResponse(acteurConcernePayLoad.getIdBackend(), - acteurConcernePayLoad.getExternalKey(), false, "Erreur inattendue"); - syncResponses.add(syncResponse); - } - }); - return syncResponses; - } - - - private ActeurConcerne getActeurConcerneFromActeurConcernePayLoad(ActeurConcerne acteurConcerne, ActeurConcernePayLoad acteurConcernePayLoad) { - - if (acteurConcernePayLoad.getEnqueteId() != null) { - Optional optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(acteurConcernePayLoad.getEnqueteId(), acteurConcernePayLoad.getTerminalId()); - acteurConcerne.setEnquete(optionalEnquete.orElse(null)); - } - if (acteurConcernePayLoad.getEnqueteId() != null) { - Optional optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(acteurConcernePayLoad.getPersonneId(), acteurConcernePayLoad.getTerminalId()); - acteurConcerne.setPersonne(optionalPersonne.orElse(null)); - } - if (acteurConcernePayLoad.getPositionRepresentationId() != null) { - Optional optionalPositionRepresentation = positionRepresentationRepository.findById(acteurConcernePayLoad.getPositionRepresentationId()); - acteurConcerne.setPositionRepresentation(optionalPositionRepresentation.orElse(null)); - } - if (acteurConcernePayLoad.getTypeContestationId() != null) { - Optional optionalTypeContestation = typeContestationRepository.findById(acteurConcernePayLoad.getTypeContestationId()); - acteurConcerne.setTypeContestation(optionalTypeContestation.orElse(null)); - } - if (acteurConcernePayLoad.getTypeRepresentationId() != null) { - Optional optionalTypeRepresentation = typeRepresentationRepository.findById(acteurConcernePayLoad.getTypeRepresentationId()); - acteurConcerne.setTypeRepresentation(optionalTypeRepresentation.orElse(null)); - } - if (acteurConcernePayLoad.getTerminalId() != null) { - Optional optionalTpe = tpeRepository.findById(acteurConcernePayLoad.getTerminalId()); - acteurConcerne.setTerminal(optionalTpe.orElse(null)); - } - - acteurConcerne.setEnqueteExternalKey(acteurConcernePayLoad.getEnqueteId()); - acteurConcerne.setPersonneExternalKey(acteurConcernePayLoad.getPersonneId()); - acteurConcerne.setPart(acteurConcernePayLoad.getPart()); - acteurConcerne.setTypeDroit(acteurConcernePayLoad.getTypeDroit()); - acteurConcerne.setExternalKey(acteurConcernePayLoad.getExternalKey()); - acteurConcerne.setRoleActeur(acteurConcernePayLoad.getRoleActeur()); - acteurConcerne.setBlocId(acteurConcernePayLoad.getBlocId()); - acteurConcerne.setHaveDeclarant(acteurConcernePayLoad.getHaveDeclarant()); - acteurConcerne.setMax_numero_acteur_concerne_id(acteurConcernePayLoad.getMax_numero_acteur_concerne_id()); - return acteurConcerne; - } - - @Override - public SyncResponse syncFiles(MultipartFile file, - Long idBackend, - Long externalKey, - Long pieceId, - Long membreGroupeId, - Long terminalId, - String name, - String filePath, - Long max_numero_piece_id, - Long max_numero_upload_id, - Long max_numero_acteur_concerne_id, - Long enqueteId, - Long enqueteBatimentId, - Long enqueteUniteLogementId, - Long personneId) { - - UploadPayLoad uploadPayLoad = new UploadPayLoad(); - uploadPayLoad.setSynchronise(false); - uploadPayLoad.setFile(file); - uploadPayLoad.setExternalKey(externalKey); - uploadPayLoad.setPieceId(pieceId); - uploadPayLoad.setIdBackend(idBackend); - uploadPayLoad.setMembreGroupeId(membreGroupeId); - uploadPayLoad.setTerminalId(terminalId); - uploadPayLoad.setName(name); - uploadPayLoad.setFilePath(filePath); - uploadPayLoad.setMax_numero_upload_id(max_numero_upload_id); - uploadPayLoad.setMax_numero_piece_id(max_numero_piece_id); - uploadPayLoad.setMax_numero_acteur_concerne_id(max_numero_acteur_concerne_id); - uploadPayLoad.setEnqueteId(enqueteId); - uploadPayLoad.setEnqueteBatimentId(enqueteBatimentId); - uploadPayLoad.setEnqueteUniteLogementId(enqueteUniteLogementId); - uploadPayLoad.setPersonneId(personneId); - //System.out.println(uploadPayLoad); - try { - Upload upload = new Upload(); - SyncResponse syncResponse = new SyncResponse(); - if (terminalId == null) { - syncResponse = new SyncResponse(idBackend, - externalKey, false, "Le terminal n'est pas précisé"); - return syncResponse; - } else { - Optional optionalTpe = tpeRepository.findById(terminalId); - if (optionalTpe.isEmpty()) { - syncResponse = new SyncResponse(idBackend, - externalKey, false, "Le terminal n'existe pas"); - return syncResponse; - } - } - - if ((uploadPayLoad.getPieceId() == null || uploadPayLoad.getPieceId() == 0) - && (uploadPayLoad.getMembreGroupeId() == null || uploadPayLoad.getMembreGroupeId() == 0) - && (uploadPayLoad.getPersonneId() == null || uploadPayLoad.getPersonneId() == 0) - && (uploadPayLoad.getEnqueteBatimentId() == null || uploadPayLoad.getEnqueteBatimentId() == 0) - && (uploadPayLoad.getEnqueteUniteLogementId() == null || uploadPayLoad.getEnqueteUniteLogementId() == 0)) { - - syncResponse = new SyncResponse(uploadPayLoad.getIdBackend(), - uploadPayLoad.getExternalKey(), false, "La pièce ou le membre groupe concernée ou l'enquête batiment ou l'enquête unité de logement ou la personnes n'est pas précisé"); - return syncResponse; - } else { - Optional optionalEnqueteUniteLogement = null; - if (uploadPayLoad.getEnqueteUniteLogementId() != null && uploadPayLoad.getEnqueteUniteLogementId() != 0) { - optionalEnqueteUniteLogement = enqueteUniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getEnqueteUniteLogementId(), uploadPayLoad.getTerminalId()); - } - - Optional optionalEnqueteBatiment = null; - if (uploadPayLoad.getEnqueteBatimentId() != null && uploadPayLoad.getEnqueteBatimentId() != 0) { - optionalEnqueteBatiment = enqueteBatimentRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getEnqueteBatimentId(), uploadPayLoad.getTerminalId()); - } - - - Optional optionalPiece = null; - if (uploadPayLoad.getPieceId() != null) { - optionalPiece = pieceRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getPieceId(), terminalId); - } - Optional optionalMembreGroupe = null; - if (uploadPayLoad.getMembreGroupeId() != null) { - optionalMembreGroupe = membreGroupeRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getMembreGroupeId(), terminalId); - } - - Optional optionalPersonne = null; - if (uploadPayLoad.getPersonneId() != null) { - optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getPersonneId(),terminalId); - } - - if ((optionalMembreGroupe == null || optionalMembreGroupe.isEmpty()) - && (optionalPiece == null || optionalPiece.isEmpty()) - && (optionalPersonne==null || optionalPersonne.isEmpty()) - && (optionalEnqueteUniteLogement == null || optionalEnqueteUniteLogement.isEmpty()) - && (optionalEnqueteBatiment == null || optionalEnqueteBatiment.isEmpty()) - ) { - syncResponse = new SyncResponse(uploadPayLoad.getIdBackend(), - uploadPayLoad.getExternalKey(), false, "La pièce ou le groupe ou la personne précisée n'existe ou l'enquete batiment ou l'enquete unité de logement pas"); - return syncResponse; - } - } - - uploadPayLoad.setSynchronise(true); - if (uploadPayLoad.getIdBackend() != null && uploadPayLoad.getIdBackend() != 0) { - Optional optionalUpload = uploadRepository.findById(uploadPayLoad.getIdBackend()); - if (optionalUpload.isPresent()) { - upload = optionalUpload.get(); - }else{ - uploadPayLoad.setIdBackend(null); - } - upload = getUploadFromUplaodPayLoad(upload, uploadPayLoad); - uploadPayLoad.setIdBackend(upload.getId()); - - } else { - Optional optionalUpload = uploadRepository.findDistinctFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getExternalKey(), uploadPayLoad.getTerminalId()); - if(optionalUpload.isPresent()) { - upload = optionalUpload.get(); - } - upload = getUploadFromUplaodPayLoad(upload, uploadPayLoad); - uploadPayLoad.setIdBackend(upload.getId()); - } - - if(upload.getId()!=null) { - try { - UploadMetaData uploadMetaData = new UploadMetaData(); - uploadMetaData.setUploadJson(upload); - uploadMetaData.setUploadId(upload.getId()); - uploadMetaDataRepository.save(uploadMetaData); - } catch (Exception e) { - e.printStackTrace(); - } - } - syncResponse.setObservation(uploadPayLoad.getObservation()); - syncResponse.setExternalKey(uploadPayLoad.getExternalKey()); - syncResponse.setSynchronise(uploadPayLoad.isSynchronise()); - syncResponse.setIdBackend(uploadPayLoad.getIdBackend()); - return syncResponse; - } catch (Exception e) { - e.printStackTrace(); - SyncResponse syncResponse = new SyncResponse(uploadPayLoad.getIdBackend(), - uploadPayLoad.getExternalKey(), false, "Erreur inattendue"); - return syncResponse; - } - } - @Override public List syncEnqueteFromMobile(List idEnquete) { List syncResponses = new ArrayList<>(); @@ -2007,816 +1160,71 @@ public class SynchronisationServiceImpl implements SynchronisationService { return syncResponses; } } + @Async("traitementTableRelationnelleExecutor") + public void traitementTableRelationnelle(Long terminalId){ - public Upload getUploadFromUplaodPayLoad(Upload upload, UploadPayLoad uploadPayLoad) { - - if (uploadPayLoad.getTerminalId() != null) { - Optional optionalTpe = tpeRepository.findById(uploadPayLoad.getTerminalId()); - upload.setTerminal(optionalTpe.orElse(null)); - } - if (uploadPayLoad.getPieceId() != null) { - Optional optionalPiece = pieceRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getPieceId(), uploadPayLoad.getTerminalId()); - upload.setPiece(optionalPiece.orElse(null)); - } - if (uploadPayLoad.getMembreGroupeId() != null) { - Optional optionalMembreGroupe = membreGroupeRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getMembreGroupeId(), uploadPayLoad.getTerminalId()); - upload.setMembreGroupe(optionalMembreGroupe.orElse(null)); - } - if(uploadPayLoad.getPersonneId() != null){ - Optional optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getPersonneId(),uploadPayLoad.getTerminalId()); - upload.setPersonne(optionalPersonne.orElse(null)); - } - if (uploadPayLoad.getEnqueteBatimentId() != null) { - Optional optionalEnqueteBatiment = enqueteBatimentRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getEnqueteBatimentId(), uploadPayLoad.getTerminalId()); - upload.setEnqueteBatiment(optionalEnqueteBatiment.orElse(null)); - } - if (uploadPayLoad.getEnqueteUniteLogementId() != null) { - Optional optionalEnqueteUniteLogement = enqueteUniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getEnqueteUniteLogementId(), uploadPayLoad.getTerminalId()); - upload.setEnqueteUniteLogement(optionalEnqueteUniteLogement.orElse(null)); - } - - if (uploadPayLoad.getIdBackend() != null && uploadPayLoad.getIdBackend() != 0) { - try { - fileStorageService.deleteFile(upload.getFileName()); - } catch (IOException e) { - e.printStackTrace(); - //throw new RuntimeException(e); - } - } - - if (uploadPayLoad.getTerminalId() != null && uploadPayLoad.getEnqueteId()!=null) { - Optional optionalEnquete=enqueteRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getEnqueteId(),uploadPayLoad.getTerminalId()); - if(optionalEnquete.isPresent()){ - upload.setEnqueteId(optionalEnquete.get().getId()); - } - } - - String fileName = fileStorageService.storeFile(uploadPayLoad.getFile()); - upload.setExternalKey(uploadPayLoad.getExternalKey()); - upload.setFileName(fileName); - upload.setMimeType(uploadPayLoad.getFile().getContentType()); - upload.setSize(uploadPayLoad.getFile().getSize()); - upload.setOriginalFileName(uploadPayLoad.getFile().getOriginalFilename()); - upload.setName(uploadPayLoad.getName()); - upload.setFilePath(uploadPayLoad.getFilePath()); - upload.setMax_numero_upload_id(uploadPayLoad.getMax_numero_upload_id()); - upload.setMax_numero_piece_id(uploadPayLoad.getMax_numero_piece_id()); - upload.setMax_numero_acteur_concerne_id(uploadPayLoad.getMax_numero_acteur_concerne_id()); - upload.setEnqueteExternalKey(uploadPayLoad.getEnqueteId()); - upload.setBlocId(uploadPayLoad.getBlocId()); - upload.setEnqueteBatimentExternalKey(uploadPayLoad.getEnqueteBatimentId()); - upload.setEnqueteUniteLogementExternalKey(uploadPayLoad.getEnqueteUniteLogementId()); - upload.setPieceExternalKey(uploadPayLoad.getPieceId()); - upload.setPersonneExternalKey(uploadPayLoad.getPersonneId()); - upload = uploadRepository.save(upload); - return upload; - } - - - @Override - public List syncBatiment(List batimentPaylaods) { - - List syncResponses = new ArrayList<>(); - if (batimentPaylaods == null) { - SyncResponse syncResponse = new SyncResponse(null, - null, false, "Aucun batiment à synchroniser"); - syncResponses.add(syncResponse); - return syncResponses; - } - batimentPaylaods.forEach(batimentPaylaod -> { - try { - System.out.println(batimentPaylaods); - if (batimentPaylaod.getTerminalId() == null) { - SyncResponse syncResponse = new SyncResponse(batimentPaylaod.getIdBackend(), - batimentPaylaod.getExternalKey(), false, "Le terminal n'est pas précisé."); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalTpe = tpeRepository.findById(batimentPaylaod.getTerminalId()); - if (optionalTpe.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(batimentPaylaod.getIdBackend(), - batimentPaylaod.getExternalKey(), false, "Le terminal n'existe pas."); - syncResponses.add(syncResponse); - return; - } - } - - if (batimentPaylaod.getParcelleId() == null) { - SyncResponse syncResponse = new SyncResponse(batimentPaylaod.getIdBackend(), - batimentPaylaod.getExternalKey(), false, "La parcelle n'est pas précisée"); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalParcelle = parcelleRepository.findFirstByExternalKeyAndTerminal_Id(batimentPaylaod.getParcelleId(), batimentPaylaod.getTerminalId()); - if (optionalParcelle.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(batimentPaylaod.getIdBackend(), - batimentPaylaod.getExternalKey(), false, "La parcelle précisée n'existe pas"); - syncResponses.add(syncResponse); - return; - } - } - Batiment batiment = new Batiment(); - batimentPaylaod.setSynchronise(true); - if (batimentPaylaod.getIdBackend() != null && batimentPaylaod.getIdBackend() != 0) { - Optional batimentOptional = batimentRepository.findById(batimentPaylaod.getIdBackend()); - if (batimentOptional.isPresent()) { - batiment = batimentOptional.get(); - } else { - batimentPaylaod.setIdBackend(null); - } - batiment = getBatimentFromBatimentPayLoad(batiment, batimentPaylaod); - batiment = batimentRepository.save(batiment); - batimentPaylaod.setIdBackend(batiment.getId()); - - } else { - Optional batimentOptional = batimentRepository.findFirstByExternalKeyAndTerminal_Id(batimentPaylaod.getExternalKey(),batimentPaylaod.getTerminalId()); - if(batimentOptional.isPresent()){ - batiment=batimentOptional.get(); - } - batiment = getBatimentFromBatimentPayLoad(batiment, batimentPaylaod); - batimentRepository.save(batiment); - batimentPaylaod.setIdBackend(batiment.getId()); - } - SyncResponse syncResponse = new SyncResponse(); - syncResponse.setObservation(batimentPaylaod.getObservation()); - syncResponse.setExternalKey(batimentPaylaod.getExternalKey()); - syncResponse.setSynchronise(batimentPaylaod.isSynchronise()); - syncResponse.setIdBackend(batimentPaylaod.getIdBackend()); - syncResponses.add(syncResponse); - } catch (Exception e) { - e.printStackTrace(); - SyncResponse syncResponse = new SyncResponse(batimentPaylaod.getIdBackend(), - batimentPaylaod.getExternalKey(), false, "Erreur inattendue"); - syncResponses.add(syncResponse); - } + List mobileDataPersonnes= mobileDataPersonneRepository.findAllByTraiterIsFalseAndTerminalId(terminalId); + mobileDataPersonnes.forEach(mobileDataPersonne -> { + personneAsyncWorker.traitementAsyncPersonne(mobileDataPersonne); }); - return syncResponses; - } - - - @Override - public List syncUniteLogement(List uniteLogementPaylaods) { - - List syncResponses = new ArrayList<>(); - if (uniteLogementPaylaods == null) { - SyncResponse syncResponse = new SyncResponse(null, - null, false, "Aucune unité de logement à synchroniser"); - syncResponses.add(syncResponse); - return syncResponses; - } - uniteLogementPaylaods.forEach(uniteLogementPaylaod -> { - try { - if (uniteLogementPaylaod.getTerminalId() == null) { - SyncResponse syncResponse = new SyncResponse(uniteLogementPaylaod.getIdBackend(), - uniteLogementPaylaod.getExternalKey(), false, "Le terminal n'est pas précisé."); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalTpe = tpeRepository.findById(uniteLogementPaylaod.getTerminalId()); - if (optionalTpe.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(uniteLogementPaylaod.getIdBackend(), - uniteLogementPaylaod.getExternalKey(), false, "Le terminal n'existe pas."); - syncResponses.add(syncResponse); - return; - } - } - - if (uniteLogementPaylaod.getBatimentId() == null) { - SyncResponse syncResponse = new SyncResponse(uniteLogementPaylaod.getIdBackend(), - uniteLogementPaylaod.getExternalKey(), false, "Le batiment n'est pas précisé."); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalBatiment = batimentRepository.findFirstByExternalKeyAndTerminal_Id(uniteLogementPaylaod.getBatimentId(), uniteLogementPaylaod.getTerminalId()); - if (optionalBatiment.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(uniteLogementPaylaod.getIdBackend(), - uniteLogementPaylaod.getExternalKey(), false, "Le batiment précisé n'existe pas"); - syncResponses.add(syncResponse); - return; - } - } - UniteLogement uniteLogement = new UniteLogement(); - uniteLogementPaylaod.setSynchronise(true); - if (uniteLogementPaylaod.getIdBackend() != null && uniteLogementPaylaod.getIdBackend() != 0) { - Optional uniteLogementOptional = uniteLogementRepository.findById(uniteLogementPaylaod.getIdBackend()); - if (uniteLogementOptional.isPresent()) { - uniteLogement = uniteLogementOptional.get(); - } else { - uniteLogementPaylaod.setIdBackend(null); - } - uniteLogement = getUniteLogementFromUniteLogementPayLoad(uniteLogement, uniteLogementPaylaod); - uniteLogementRepository.save(uniteLogement); - uniteLogementPaylaod.setIdBackend(uniteLogement.getId()); - - } else { - Optional uniteLogementOptional = uniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(uniteLogementPaylaod.getExternalKey(),uniteLogementPaylaod.getTerminalId()); - if(uniteLogementOptional.isPresent()){ - uniteLogement=uniteLogementOptional.get(); - } - uniteLogement = getUniteLogementFromUniteLogementPayLoad(uniteLogement, uniteLogementPaylaod); - uniteLogementRepository.save(uniteLogement); - uniteLogementPaylaod.setIdBackend(uniteLogement.getId()); - } - SyncResponse syncResponse = new SyncResponse(); - syncResponse.setObservation(uniteLogementPaylaod.getObservation()); - syncResponse.setExternalKey(uniteLogementPaylaod.getExternalKey()); - syncResponse.setSynchronise(uniteLogementPaylaod.isSynchronise()); - syncResponse.setIdBackend(uniteLogementPaylaod.getIdBackend()); - syncResponses.add(syncResponse); - } catch (Exception e) { - e.printStackTrace(); - SyncResponse syncResponse = new SyncResponse(uniteLogementPaylaod.getIdBackend(), - uniteLogementPaylaod.getExternalKey(), false, "Erreur inattendue"); - syncResponses.add(syncResponse); - } + List mobileDataMembreGroupes=mobileDataMembreGroupeRepository.findAllByTraiterIsFalseAndTerminalId(terminalId); + mobileDataMembreGroupes.forEach(mobileDataMembreGroupe -> { + membreGroupeAsyncWorker.traitementAsyncMembreGroupe(mobileDataMembreGroupe); }); - return syncResponses; - } - - @Override - public List syncCaracteristiqueBatiment(List caracteristiqueBatimentPaylods) { - System.out.println("DANS CARACT BATIMENT"); - List syncResponses = new ArrayList<>(); - if (caracteristiqueBatimentPaylods == null) { - SyncResponse syncResponse = new SyncResponse(null, - null, false, "Aucune caracteristique de bâtiment à synchroniser"); - syncResponses.add(syncResponse); - return syncResponses; - } - caracteristiqueBatimentPaylods.forEach(caracteristiqueBatimentPaylod -> { - try { - System.out.println(caracteristiqueBatimentPaylod); - if (caracteristiqueBatimentPaylod.getTerminalId() == null) { - SyncResponse syncResponse = new SyncResponse(caracteristiqueBatimentPaylod.getIdBackend(), - caracteristiqueBatimentPaylod.getExternalKey(), false, "Le terminal n'est pas précisé."); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalTpe = tpeRepository.findById(caracteristiqueBatimentPaylod.getTerminalId()); - if (optionalTpe.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(caracteristiqueBatimentPaylod.getIdBackend(), - caracteristiqueBatimentPaylod.getExternalKey(), false, "Le terminal n'existe pas."); - syncResponses.add(syncResponse); - return; - } - } - - if (caracteristiqueBatimentPaylod.getCaracteristiqueId() == null) { - SyncResponse syncResponse = new SyncResponse(caracteristiqueBatimentPaylod.getIdBackend(), - caracteristiqueBatimentPaylod.getExternalKey(), false, "La caracteristique du batiment n'est pas précisé."); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalCaracteristique = caracteristiqueRepository.findById(caracteristiqueBatimentPaylod.getCaracteristiqueId()); - if (optionalCaracteristique.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(caracteristiqueBatimentPaylod.getIdBackend(), - caracteristiqueBatimentPaylod.getExternalKey(), false, "La caracteristique du batiment précisée n'existe pas"); - syncResponses.add(syncResponse); - return; - } - } - CaracteristiqueBatiment caracteristiqueBatiment = new CaracteristiqueBatiment(); - caracteristiqueBatimentPaylod.setSynchronise(true); - caracteristiqueBatiment = getCaracteristiqueBatimentFromCaracteristiqueBatimentPayLoad(caracteristiqueBatiment, caracteristiqueBatimentPaylod); - caracteristiqueBatimentRepository.save(caracteristiqueBatiment); - caracteristiqueBatimentPaylod.setIdBackend(caracteristiqueBatiment.getId()); - - SyncResponse syncResponse = new SyncResponse(); - syncResponse.setObservation(caracteristiqueBatimentPaylod.getObservation()); - syncResponse.setExternalKey(caracteristiqueBatimentPaylod.getExternalKey()); - syncResponse.setSynchronise(caracteristiqueBatimentPaylod.isSynchronise()); - syncResponse.setIdBackend(caracteristiqueBatimentPaylod.getIdBackend()); - syncResponses.add(syncResponse); - } catch (Exception e) { - e.printStackTrace(); - SyncResponse syncResponse = new SyncResponse(caracteristiqueBatimentPaylod.getIdBackend(), - caracteristiqueBatimentPaylod.getExternalKey(), false, "Erreur inattendue"); - syncResponses.add(syncResponse); - } + List mobileDataParcelles= mobileDataParcelleRepository.findAllByTraiterIsFalseAndTerminalId(terminalId); + mobileDataParcelles.forEach(mobileDataParcelle -> { + parcelleAsyncWorker.traitementAsyncParcelle(mobileDataParcelle); }); - return syncResponses; - } - - private void deleteAllCaracteristiqueBatimentFromEnqueteBatiment(EnqueteBatiment enqueteBatiment) { - caracteristiqueBatimentRepository.deleteAllByEnqueteBatiment(enqueteBatiment); - } - - - @Override - public List syncCaracteristiqueUniteLogement(List caracteristiqueUniteLogementPaylods) { - - List syncResponses = new ArrayList<>(); - if (caracteristiqueUniteLogementPaylods == null) { - SyncResponse syncResponse = new SyncResponse(null, - null, false, "Aucune caracteristique d'unité de logement à synchroniser"); - syncResponses.add(syncResponse); - return syncResponses; - } - caracteristiqueUniteLogementPaylods.forEach(caracteristiqueUniteLogementPaylod -> { - try { - if (caracteristiqueUniteLogementPaylod.getTerminalId() == null) { - SyncResponse syncResponse = new SyncResponse(caracteristiqueUniteLogementPaylod.getIdBackend(), - caracteristiqueUniteLogementPaylod.getExternalKey(), false, "Le terminal n'est pas précisé."); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalTpe = tpeRepository.findById(caracteristiqueUniteLogementPaylod.getTerminalId()); - if (optionalTpe.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(caracteristiqueUniteLogementPaylod.getIdBackend(), - caracteristiqueUniteLogementPaylod.getExternalKey(), false, "Le terminal n'existe pas."); - syncResponses.add(syncResponse); - return; - } - } - - if (caracteristiqueUniteLogementPaylod.getCaracteristiqueId() == null) { - SyncResponse syncResponse = new SyncResponse(caracteristiqueUniteLogementPaylod.getIdBackend(), - caracteristiqueUniteLogementPaylod.getExternalKey(), false, "La caracteristique de l'unité de logement n'est pas précisée."); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalCaracteristique = caracteristiqueRepository.findById(caracteristiqueUniteLogementPaylod.getCaracteristiqueId()); - if (optionalCaracteristique.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(caracteristiqueUniteLogementPaylod.getIdBackend(), - caracteristiqueUniteLogementPaylod.getExternalKey(), false, "La caracteristique de l'unité de logement précisée n'existe pas"); - syncResponses.add(syncResponse); - return; - } - } - - CaracteristiqueUniteLogement caracteristiqueUniteLogement = new CaracteristiqueUniteLogement(); - caracteristiqueUniteLogementPaylod.setSynchronise(true); - caracteristiqueUniteLogement = getCaracteristiqueUniteLogementFromCaracteristiqueUniteLogementPayLoad(caracteristiqueUniteLogement, caracteristiqueUniteLogementPaylod); - caracteristiqueUniteLogementRepository.save(caracteristiqueUniteLogement); - caracteristiqueUniteLogementPaylod.setIdBackend(caracteristiqueUniteLogement.getId()); - SyncResponse syncResponse = new SyncResponse(); - syncResponse.setObservation(caracteristiqueUniteLogementPaylod.getObservation()); - syncResponse.setExternalKey(caracteristiqueUniteLogementPaylod.getExternalKey()); - syncResponse.setSynchronise(caracteristiqueUniteLogementPaylod.isSynchronise()); - syncResponse.setIdBackend(caracteristiqueUniteLogementPaylod.getIdBackend()); - syncResponses.add(syncResponse); - } catch (Exception e) { - e.printStackTrace(); - SyncResponse syncResponse = new SyncResponse(caracteristiqueUniteLogementPaylod.getIdBackend(), - caracteristiqueUniteLogementPaylod.getExternalKey(), false, "Erreur inattendue"); - syncResponses.add(syncResponse); - } + List mobileDataEnquetes= mobileDataEnqueteRepository.findAllByTraiterIsFalseAndTerminalId(terminalId); + mobileDataEnquetes.forEach(mobileDataEnquete -> { + enqueteAsyncWorker.traitementAsyncEnquete(mobileDataEnquete); }); - return syncResponses; - } - - private void deleteAllCaracteristiqueUniteLogementFromEnqueteUniteLogement(EnqueteUniteLogement enqueteUniteLogement) { - caracteristiqueUniteLogementRepository.deleteAllByEnqueteUniteLogement(enqueteUniteLogement); - } - - - @Override - public List syncCaracteristiqueParcelle(List caracteristiqueParcellePaylods) { - List syncResponses = new ArrayList<>(); - if (caracteristiqueParcellePaylods == null) { - SyncResponse syncResponse = new SyncResponse(null, - null, false, "Aucune caracteristique de parcelle à synchroniser"); - syncResponses.add(syncResponse); - return syncResponses; - } - caracteristiqueParcellePaylods.forEach(caracteristiqueParcellePaylod -> { - try { - if (caracteristiqueParcellePaylod.getTerminalId() == null) { - SyncResponse syncResponse = new SyncResponse(caracteristiqueParcellePaylod.getIdBackend(), - caracteristiqueParcellePaylod.getExternalKey(), false, "Le terminal n'est pas précisé."); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalTpe = tpeRepository.findById(caracteristiqueParcellePaylod.getTerminalId()); - if (optionalTpe.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(caracteristiqueParcellePaylod.getIdBackend(), - caracteristiqueParcellePaylod.getExternalKey(), false, "Le terminal n'existe pas."); - syncResponses.add(syncResponse); - return; - } - } - - if (caracteristiqueParcellePaylod.getCaracteristiqueId() == null) { - SyncResponse syncResponse = new SyncResponse(caracteristiqueParcellePaylod.getIdBackend(), - caracteristiqueParcellePaylod.getExternalKey(), false, "La caracteristique de la parcelle n'est pas précisée."); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalCaracteristique = caracteristiqueRepository.findById(caracteristiqueParcellePaylod.getCaracteristiqueId()); - if (optionalCaracteristique.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(caracteristiqueParcellePaylod.getIdBackend(), - caracteristiqueParcellePaylod.getExternalKey(), false, "La caracteristique de la parcelle précisée n'existe pas"); - syncResponses.add(syncResponse); - return; - } - } - CaracteristiqueParcelle caracteristiqueParcelle = new CaracteristiqueParcelle(); - caracteristiqueParcellePaylod.setSynchronise(true); - caracteristiqueParcelle = getCaracteristiqueParcelleFromCaracteristiqueParcellePayLoad(caracteristiqueParcelle, caracteristiqueParcellePaylod); - caracteristiqueParcelleRepository.save(caracteristiqueParcelle); - caracteristiqueParcellePaylod.setIdBackend(caracteristiqueParcelle.getId()); - - SyncResponse syncResponse = new SyncResponse(); - syncResponse.setObservation(caracteristiqueParcellePaylod.getObservation()); - syncResponse.setExternalKey(caracteristiqueParcellePaylod.getExternalKey()); - syncResponse.setSynchronise(caracteristiqueParcellePaylod.isSynchronise()); - syncResponse.setIdBackend(caracteristiqueParcellePaylod.getIdBackend()); - syncResponses.add(syncResponse); - } catch (Exception e) { - e.printStackTrace(); - SyncResponse syncResponse = new SyncResponse(caracteristiqueParcellePaylod.getIdBackend(), - caracteristiqueParcellePaylod.getExternalKey(), false, "Erreur inattendue"); - syncResponses.add(syncResponse); - } + List mobileDataActeurConcernes= mobileDataActeurConcerneRepository.findAllByTraiterIsFalseAndTerminalId(terminalId); + mobileDataActeurConcernes.forEach(mobileDataActeurConcerne -> { + acteurConcerneAsyncWorker.traitementAsyncActeurConcerne(mobileDataActeurConcerne); }); - return syncResponses; - } - - private void deleteAllCaracteristiqueParcelleFromEnquete(Enquete enquete) { - caracteristiqueParcelleRepository.deleteAllByEnquete(enquete); - } - - - @Override - public List syncEnqueteBatiment(List enqueteBatimentPayLoads) { - List syncResponses = new ArrayList<>(); - if (enqueteBatimentPayLoads == null) { - SyncResponse syncResponse = new SyncResponse(null, - null, false, "Aucune enquête de batiment à synchroniser"); - syncResponses.add(syncResponse); - return syncResponses; - } - enqueteBatimentPayLoads.forEach(enqueteBatimentPayload -> { - System.out.println(enqueteBatimentPayload); - try { - System.out.println(enqueteBatimentPayload); - if (enqueteBatimentPayload.getTerminalId() == null) { - SyncResponse syncResponse = new SyncResponse(enqueteBatimentPayload.getIdBackend(), - enqueteBatimentPayload.getExternalKey(), false, "Le terminal n'est pas précisé"); - syncResponses.add(syncResponse); - System.out.println("PAS DE TPE"); - return; - } else { - Optional optionalTpe = tpeRepository.findById(enqueteBatimentPayload.getTerminalId()); - if (optionalTpe.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(enqueteBatimentPayload.getIdBackend(), - enqueteBatimentPayload.getExternalKey(), false, "Le terminal n'existe pas"); - syncResponses.add(syncResponse); - System.out.println("PAS DE TPE"); - return; - } - } - - if (enqueteBatimentPayload.getUserId() == null) { - SyncResponse syncResponse = new SyncResponse(enqueteBatimentPayload.getIdBackend(), - enqueteBatimentPayload.getExternalKey(), false, "L'enquêteur n'est pas précisé"); - syncResponses.add(syncResponse); - System.out.println("PAS DE USER"); - return; - } else { - Optional optionalUser = userRepository.findById(enqueteBatimentPayload.getUserId()); - if (optionalUser.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(enqueteBatimentPayload.getIdBackend(), - enqueteBatimentPayload.getExternalKey(), false, "L'enquêteur précisé n'existe pas"); - syncResponses.add(syncResponse); - System.out.println("PAS DE USER"); - return; - } - } - if (enqueteBatimentPayload.getEnqueteId() == null) { - SyncResponse syncResponse = new SyncResponse(enqueteBatimentPayload.getIdBackend(), - enqueteBatimentPayload.getExternalKey(), false, "L'enquete de la parcelle n'est pas précisée"); - syncResponses.add(syncResponse); - System.out.println("PAS DE ENQUETE"); - return; - } else { - Optional optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(enqueteBatimentPayload.getEnqueteId(), enqueteBatimentPayload.getTerminalId()); - if (optionalEnquete.isEmpty()) { - System.out.println("PAS DE ENQUETE"); - SyncResponse syncResponse = new SyncResponse(enqueteBatimentPayload.getIdBackend(), - enqueteBatimentPayload.getExternalKey(), false, "L'enquete de la parcelle précisée n'existe pas"); - syncResponses.add(syncResponse); - return; - } - } - if (enqueteBatimentPayload.getPersonneId() == null) { - SyncResponse syncResponse = new SyncResponse(enqueteBatimentPayload.getIdBackend(), - enqueteBatimentPayload.getExternalKey(), false, "La personne n'est pas précisée."); - syncResponses.add(syncResponse); - System.out.println("PAS DE PERSONNE"); - return; - } else { - Optional optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(enqueteBatimentPayload.getPersonneId(),enqueteBatimentPayload.getTerminalId()); - if (optionalPersonne.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(enqueteBatimentPayload.getIdBackend(), - enqueteBatimentPayload.getExternalKey(), false, "La personne précisée n'existe pas."); - syncResponses.add(syncResponse); - System.out.println("PAS DE PERSONNE"); - return; - } - } - - if (enqueteBatimentPayload.getBatimentId() == null) { - SyncResponse syncResponse = new SyncResponse(enqueteBatimentPayload.getIdBackend(), - enqueteBatimentPayload.getExternalKey(), false, "Le batiment n'est pas précisée."); - syncResponses.add(syncResponse); - System.out.println("PAS DE BATIMENT"); - return; - } else { - Optional optionalBatiment = batimentRepository.findFirstByExternalKeyAndTerminal_Id(enqueteBatimentPayload.getBatimentId(), enqueteBatimentPayload.getTerminalId()); - if (optionalBatiment.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(enqueteBatimentPayload.getIdBackend(), - enqueteBatimentPayload.getExternalKey(), false, "Le batiment précisé n'existe pas."); - syncResponses.add(syncResponse); - System.out.println("PAS DE BATIMENT"); - return; - } - } - - EnqueteBatiment enqueteBatiment = new EnqueteBatiment(); - enqueteBatimentPayload.setSynchronise(true); - if (enqueteBatimentPayload.getIdBackend() != null && enqueteBatimentPayload.getIdBackend() != 0) { - Optional optionalEnqueteBatiment = enqueteBatimentRepository.findById(enqueteBatimentPayload.getIdBackend()); - if (optionalEnqueteBatiment.isPresent()) { - enqueteBatiment = optionalEnqueteBatiment.get(); - //deleteAllCaracteristiqueBatimentFromEnqueteBatiment(enqueteBatiment); - //deleteAllUploadFromEnqueteBatiment(enqueteBatiment); - } else { - enqueteBatimentPayload.setIdBackend(null); - } - enqueteBatiment = getEnqueteBatimentFromEnqueteBatimentPayLoad(enqueteBatiment, enqueteBatimentPayload); - enqueteBatiment.setStatutEnregistrement(StatutEnregistrement.MISE_A_JOUR); - enqueteBatimentRepository.save(enqueteBatiment); - enqueteBatimentPayload.setIdBackend(enqueteBatiment.getId()); - } else { - Optional optionalEnqueteBatiment = enqueteBatimentRepository.findFirstByExternalKeyAndTerminal_Id(enqueteBatimentPayload.getExternalKey(),enqueteBatimentPayload.getTerminalId()); - if(optionalEnqueteBatiment.isPresent()){ - enqueteBatiment = optionalEnqueteBatiment.get(); - // deleteAllCaracteristiqueBatimentFromEnqueteBatiment(enqueteBatiment); - // deleteAllUploadFromEnqueteBatiment(enqueteBatiment); - } - enqueteBatiment = getEnqueteBatimentFromEnqueteBatimentPayLoad(enqueteBatiment, enqueteBatimentPayload); - enqueteBatiment.setStatutEnregistrement(StatutEnregistrement.NOUVELLE_INSERTION); - enqueteBatiment = enqueteBatimentRepository.save(enqueteBatiment); - enqueteBatimentPayload.setIdBackend(enqueteBatiment.getId()); - } - SyncResponse syncResponse = new SyncResponse(); - syncResponse.setObservation(enqueteBatimentPayload.getObservation()); - syncResponse.setExternalKey(enqueteBatimentPayload.getExternalKey()); - syncResponse.setSynchronise(enqueteBatimentPayload.isSynchronise()); - syncResponse.setIdBackend(enqueteBatimentPayload.getIdBackend()); - syncResponses.add(syncResponse); - } catch (Exception e) { - e.printStackTrace(); - SyncResponse syncResponse = new SyncResponse(enqueteBatimentPayload.getIdBackend(), - enqueteBatimentPayload.getExternalKey(), false, "Erreur inattendue"); - syncResponses.add(syncResponse); - } + List mobileDataPieces= mobileDataPieceRepository.findAllByTraiterIsFalseAndTerminalId(terminalId); + mobileDataPieces.forEach(mobileDataPiece -> { + pieceAsyncWorker.traitementAsyncPiece(mobileDataPiece); }); - - return syncResponses; - } - - @Override - public List syncEnqueteUniteLogement(List enqueteUniteLogementPayloads) { - List syncResponses = new ArrayList<>(); - if (enqueteUniteLogementPayloads == null) { - SyncResponse syncResponse = new SyncResponse(null, - null, false, "Aucune enquête d'unité de logement à synchroniser"); - syncResponses.add(syncResponse); - return syncResponses; - } - enqueteUniteLogementPayloads.forEach(enqueteUniteLogementPayload -> { - - try { - if (enqueteUniteLogementPayload.getTerminalId() == null) { - SyncResponse syncResponse = new SyncResponse(enqueteUniteLogementPayload.getIdBackend(), - enqueteUniteLogementPayload.getExternalKey(), false, "Le terminal n'est pas précisé"); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalTpe = tpeRepository.findById(enqueteUniteLogementPayload.getTerminalId()); - if (optionalTpe.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(enqueteUniteLogementPayload.getIdBackend(), - enqueteUniteLogementPayload.getExternalKey(), false, "Le terminal n'existe pas"); - syncResponses.add(syncResponse); - return; - } - } - - if (enqueteUniteLogementPayload.getUserId() == null) { - SyncResponse syncResponse = new SyncResponse(enqueteUniteLogementPayload.getIdBackend(), - enqueteUniteLogementPayload.getExternalKey(), false, "L'enquêteur n'est pas précisé"); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalUser = userRepository.findById(enqueteUniteLogementPayload.getUserId()); - if (optionalUser.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(enqueteUniteLogementPayload.getIdBackend(), - enqueteUniteLogementPayload.getExternalKey(), false, "L'enquêteur précisé n'existe pas"); - syncResponses.add(syncResponse); - return; - } - } - if (enqueteUniteLogementPayload.getEnqueteId() == null) { - SyncResponse syncResponse = new SyncResponse(enqueteUniteLogementPayload.getIdBackend(), - enqueteUniteLogementPayload.getExternalKey(), false, "L'enquete de la parcelle n'est pas précisée"); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(enqueteUniteLogementPayload.getEnqueteId(), enqueteUniteLogementPayload.getTerminalId()); - if (optionalEnquete.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(enqueteUniteLogementPayload.getIdBackend(), - enqueteUniteLogementPayload.getExternalKey(), false, "L'enquete de la parcelle précisée n'existe pas"); - syncResponses.add(syncResponse); - return; - } - } - if (enqueteUniteLogementPayload.getPersonneId() == null) { - SyncResponse syncResponse = new SyncResponse(enqueteUniteLogementPayload.getIdBackend(), - enqueteUniteLogementPayload.getExternalKey(), false, "La personne n'est pas précisée."); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(enqueteUniteLogementPayload.getPersonneId(),enqueteUniteLogementPayload.getTerminalId()); - if (optionalPersonne.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(enqueteUniteLogementPayload.getIdBackend(), - enqueteUniteLogementPayload.getExternalKey(), false, "La personne précisée n'existe pas."); - syncResponses.add(syncResponse); - return; - } - } - - if (enqueteUniteLogementPayload.getUniteLogementId() == null) { - SyncResponse syncResponse = new SyncResponse(enqueteUniteLogementPayload.getIdBackend(), - enqueteUniteLogementPayload.getExternalKey(), false, "L'unité de logement n'est pas précisée."); - syncResponses.add(syncResponse); - return; - } else { - Optional optionalUniteLogement = uniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(enqueteUniteLogementPayload.getUniteLogementId(), enqueteUniteLogementPayload.getTerminalId()); - if (optionalUniteLogement.isEmpty()) { - SyncResponse syncResponse = new SyncResponse(enqueteUniteLogementPayload.getIdBackend(), - enqueteUniteLogementPayload.getExternalKey(), false, "L'unité de logement précisée n'existe pas."); - syncResponses.add(syncResponse); - return; - } - } - - EnqueteUniteLogement enqueteUniteLogement = new EnqueteUniteLogement(); - enqueteUniteLogementPayload.setSynchronise(true); - if (enqueteUniteLogementPayload.getIdBackend() != null && enqueteUniteLogementPayload.getIdBackend() != 0) { - Optional optionalEnqueteUniteLogement = enqueteUniteLogementRepository.findById(enqueteUniteLogementPayload.getIdBackend()); - if (optionalEnqueteUniteLogement.isPresent()) { - enqueteUniteLogement = optionalEnqueteUniteLogement.get(); - //deleteAllCaracteristiqueUniteLogementFromEnqueteUniteLogement(enqueteUniteLogement); - //deleteAllUploadFromEnqueteUniteLogement(enqueteUniteLogement); - } else { - enqueteUniteLogementPayload.setIdBackend(null); - } - enqueteUniteLogement = getEnqueteUniteLogementFromEnqueteUniteLogementPayLoad(enqueteUniteLogement, enqueteUniteLogementPayload); - enqueteUniteLogement.setStatutEnregistrement(StatutEnregistrement.MISE_A_JOUR); - enqueteUniteLogementRepository.save(enqueteUniteLogement); - enqueteUniteLogementPayload.setIdBackend(enqueteUniteLogement.getId()); - } else { - Optional optionalEnqueteUniteLogement = enqueteUniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(enqueteUniteLogementPayload.getExternalKey(),enqueteUniteLogementPayload.getTerminalId()); - if(optionalEnqueteUniteLogement.isPresent()){ - enqueteUniteLogement = optionalEnqueteUniteLogement.get(); - //deleteAllCaracteristiqueUniteLogementFromEnqueteUniteLogement(enqueteUniteLogement); - //deleteAllUploadFromEnqueteUniteLogement(enqueteUniteLogement); - } else { - enqueteUniteLogementPayload.setIdBackend(null); - } - enqueteUniteLogement = getEnqueteUniteLogementFromEnqueteUniteLogementPayLoad(enqueteUniteLogement, enqueteUniteLogementPayload); - enqueteUniteLogement.setStatutEnregistrement(StatutEnregistrement.NOUVELLE_INSERTION); - enqueteUniteLogement = enqueteUniteLogementRepository.save(enqueteUniteLogement); - enqueteUniteLogementPayload.setIdBackend(enqueteUniteLogement.getId()); - } - SyncResponse syncResponse = new SyncResponse(); - syncResponse.setObservation(enqueteUniteLogementPayload.getObservation()); - syncResponse.setExternalKey(enqueteUniteLogementPayload.getExternalKey()); - syncResponse.setSynchronise(enqueteUniteLogementPayload.isSynchronise()); - syncResponse.setIdBackend(enqueteUniteLogementPayload.getIdBackend()); - syncResponses.add(syncResponse); - } catch (Exception e) { - e.printStackTrace(); - SyncResponse syncResponse = new SyncResponse(enqueteUniteLogementPayload.getIdBackend(), - enqueteUniteLogementPayload.getExternalKey(), false, "Erreur inattendue"); - syncResponses.add(syncResponse); - } + List mobileDataCaracteristiqueParcelles= mobileDataCaracteristiqueParcelleRepository.findAllByTraiterIsFalseAndTerminalId(terminalId); + mobileDataCaracteristiqueParcelles.forEach(mobileDataCaracteristiqueParcelle -> { + caracteristiqueParcelleAsyncWorker.traitementAsyncCaracteristiqueParcelle(mobileDataCaracteristiqueParcelle); + }); + List mobileDataBatiments= mobileDataBatimentRepository.findAllByTraiterIsFalseAndTerminalId(terminalId); + mobileDataBatiments.forEach(mobileDataBatiment -> { + batimentAsyncWorker.traitementAsyncBatiment(mobileDataBatiment); + }); + List mobileDataEnqueteBatiments= mobileDataEnqueteBatimentRepository.findAllByTraiterIsFalseAndTerminalId(terminalId); + mobileDataEnqueteBatiments.forEach(mobileDataEnqueteBatiment -> { + enqueteBatimentAsyncWorker.traitementAsyncEnqueteBatiment(mobileDataEnqueteBatiment); + }); + List mobileDataCaracteristiqueBatiments= mobileDataCaracteristiqueBatimentRepository.findAllByTraiterIsFalseAndTerminalId(terminalId); + mobileDataCaracteristiqueBatiments.forEach(mobileDataCaracteristiqueBatiment -> { + caracteristiqueBatimentAsyncWorker.traitementAsyncCaracteristiqueBatiment(mobileDataCaracteristiqueBatiment); + }); + List mobileDataUniteLogements= mobileDataUniteLogementRepository.findAllByTraiterIsFalseAndTerminalId(terminalId); + mobileDataUniteLogements.forEach(mobileDataUniteLogement -> { + uniteLogementAsyncWorker.traitementAsyncUniteLogement(mobileDataUniteLogement); + }); + List mobileDataEnqueteUniteLogements= mobileDataEnqueteUniteLogementRepository.findAllByTraiterIsFalseAndTerminalId(terminalId); + mobileDataEnqueteUniteLogements.forEach(mobileDataEnqueteUniteLogement -> { + enqueteUniteLogementAsyncWorker.traitementAsyncEnqueteUniteLogement(mobileDataEnqueteUniteLogement); + }); + List mobileDataCaracteristiqueUniteLogements= mobileDataCaracteristiqueUniteLogementRepository.findAllByTraiterIsFalseAndTerminalId(terminalId); + mobileDataCaracteristiqueUniteLogements.forEach(mobileDataCaracteristiqueUniteLogement -> { + caracteristiqueUniteLogementAsyncWorker.traitementAsyncCaracteristiqueUniteLogement(mobileDataCaracteristiqueUniteLogement); + }); + List mobileDataUploads= mobileDataUploadRepository.findAllByTraiterIsFalseAndTerminalId(terminalId); + mobileDataUploads.forEach(mobileDataUpload -> { + uploadAsyncWorker.traitementAsyncUpload(mobileDataUpload); }); - - return syncResponses; } - private EnqueteUniteLogement getEnqueteUniteLogementFromEnqueteUniteLogementPayLoad(EnqueteUniteLogement enqueteUniteLogement, EnqueteUniteLogementPayload enqueteUniteLogementPayload) { - - if (enqueteUniteLogementPayload.getPersonneId() != null) { - Optional optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(enqueteUniteLogementPayload.getPersonneId(), enqueteUniteLogementPayload.getTerminalId()); - enqueteUniteLogement.setPersonne(optionalPersonne.orElse(null)); - } - - if (enqueteUniteLogementPayload.getUniteLogementId() != null) { - Optional optionalUniteLogement = uniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(enqueteUniteLogementPayload.getUniteLogementId(), enqueteUniteLogementPayload.getTerminalId()); - enqueteUniteLogement.setUniteLogement(optionalUniteLogement.orElse(null)); - } - - if (enqueteUniteLogementPayload.getEnqueteId() != null) { - Optional optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(enqueteUniteLogementPayload.getEnqueteId(), enqueteUniteLogementPayload.getTerminalId()); - enqueteUniteLogement.setEnquete(optionalEnquete.orElse(null)); - } - if (enqueteUniteLogementPayload.getTerminalId() != null) { - Optional optionalTpe = tpeRepository.findById(enqueteUniteLogementPayload.getTerminalId()); - enqueteUniteLogement.setTerminal(optionalTpe.orElse(null)); - } - - if (enqueteUniteLogementPayload.getUserId() != null) { - Optional optionalUser = userRepository.findById(enqueteUniteLogementPayload.getUserId()); - enqueteUniteLogement.setUser(optionalUser.orElse(null)); - } - - enqueteUniteLogement.setEnqueteExternalKey(enqueteUniteLogementPayload.getEnqueteId()); - enqueteUniteLogement.setSurface(enqueteUniteLogementPayload.getSurface()); - enqueteUniteLogement.setNbrePiece(enqueteUniteLogementPayload.getNbrePiece()); - enqueteUniteLogement.setNbreHabitant(enqueteUniteLogementPayload.getNbreHabitant()); - enqueteUniteLogement.setNbreMenage(enqueteUniteLogementPayload.getNbreMenage()); - enqueteUniteLogement.setEnLocation(enqueteUniteLogementPayload.isEnLocation()); - enqueteUniteLogement.setMontantMensuelLoyer(enqueteUniteLogementPayload.getMontantMensuelLoyer()); - enqueteUniteLogement.setNbreMoisEnLocation(enqueteUniteLogementPayload.getNbreMoisEnLocation()); - enqueteUniteLogement.setMontantLocatifAnnuelDeclare(enqueteUniteLogementPayload.getMontantLocatifAnnuelDeclare()); - enqueteUniteLogement.setSurfaceLouee(enqueteUniteLogementPayload.getSurfaceLouee()); - enqueteUniteLogement.setSbee(enqueteUniteLogementPayload.isSbee()); - enqueteUniteLogement.setSoneb(enqueteUniteLogementPayload.isSoneb()); - enqueteUniteLogement.setNumCompteurSbee(enqueteUniteLogementPayload.getNumCompteurSbee()); - enqueteUniteLogement.setNumCompteurSoneb(enqueteUniteLogementPayload.getNumCompteurSoneb()); - enqueteUniteLogement.setDateDebutExcemption(enqueteUniteLogementPayload.getDateDebutExcemption()); - enqueteUniteLogement.setDateFinExcemption(enqueteUniteLogementPayload.getDateFinExcemption()); - - enqueteUniteLogement.setExternalKey(enqueteUniteLogementPayload.getExternalKey()); - enqueteUniteLogement.setPersonneExternalKey(enqueteUniteLogementPayload.getPersonneId()); - enqueteUniteLogement.setUniteLogementExternalKey(enqueteUniteLogementPayload.getUniteLogementId()); - - return enqueteUniteLogement; - } - - private void deleteAllUploadFromEnqueteUniteLogement(EnqueteUniteLogement enqueteUniteLogement) { - } - - - private void deleteAllUploadFromEnqueteBatiment(EnqueteBatiment enqueteBatiment) { - uploadRepository.deleteAllByEnqueteBatiment(enqueteBatiment); - } - - private EnqueteBatiment getEnqueteBatimentFromEnqueteBatimentPayLoad(EnqueteBatiment enqueteBatiment, EnqueteBatimentPayload enqueteBatimentPayload) { - System.out.println(enqueteBatimentPayload); - enqueteBatiment.setSurfaceAuSol(enqueteBatimentPayload.getSurfaceAuSol()); - enqueteBatiment.setAutreMenuisierie(enqueteBatimentPayload.getAutreMenuisierie()); - enqueteBatiment.setAutreMur(enqueteBatimentPayload.getAutreMur()); - enqueteBatiment.setSbee(enqueteBatimentPayload.isSbee()); - enqueteBatiment.setNumCompteurSbee(enqueteBatimentPayload.getNumCompteurSbee()); - enqueteBatiment.setSoneb(enqueteBatimentPayload.isSoneb()); - enqueteBatiment.setNumCompteurSoneb(enqueteBatimentPayload.getNumCompteurSoneb()); - enqueteBatiment.setNbreLotUnite(enqueteBatimentPayload.getNbreLotUnite()); - enqueteBatiment.setNbreUniteLocation(enqueteBatimentPayload.getNbreUniteLocation()); - enqueteBatiment.setSurfaceLouee(enqueteBatimentPayload.getSurfaceLouee()); - enqueteBatiment.setNbreMenage(enqueteBatimentPayload.getNbreMenage()); - enqueteBatiment.setNbreHabitant(enqueteBatimentPayload.getNbreHabitant()); - enqueteBatiment.setValeurMensuelleLocation(enqueteBatimentPayload.getValeurMensuelleLocation()); - enqueteBatiment.setNbreMoisLocation(enqueteBatimentPayload.getNbreMoisLocation()); - enqueteBatiment.setAutreCaracteristiquePhysique(enqueteBatimentPayload.getAutreCaracteristiquePhysique()); - enqueteBatiment.setDateDebutExcemption(enqueteBatimentPayload.getDateDebutExcemption()); - enqueteBatiment.setDateFinExcemption(enqueteBatimentPayload.getDateFinExcemption()); - enqueteBatiment.setExternalKey(enqueteBatimentPayload.getExternalKey()); - enqueteBatiment.setEnqueteExternalKey(enqueteBatimentPayload.getEnqueteId()); - enqueteBatiment.setPersonneExternalKey(enqueteBatimentPayload.getPersonneId()); - enqueteBatiment.setBatimentExternalKey(enqueteBatimentPayload.getBatimentId()); - - if (enqueteBatimentPayload.getPersonneId() != null) { - Optional optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(enqueteBatimentPayload.getPersonneId(), enqueteBatimentPayload.getTerminalId()); - enqueteBatiment.setPersonne(optionalPersonne.orElse(null)); - } - - if (enqueteBatimentPayload.getBatimentId() != null) { - Optional optionalBatiment = batimentRepository.findFirstByExternalKeyAndTerminal_Id(enqueteBatimentPayload.getBatimentId(), enqueteBatimentPayload.getTerminalId()); - enqueteBatiment.setBatiment(optionalBatiment.orElse(null)); - } - - if (enqueteBatimentPayload.getEnqueteId() != null) { - Optional optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(enqueteBatimentPayload.getEnqueteId(), enqueteBatimentPayload.getTerminalId()); - enqueteBatiment.setEnquete(optionalEnquete.orElse(null)); - } - if (enqueteBatimentPayload.getTerminalId() != null) { - Optional optionalTpe = tpeRepository.findById(enqueteBatimentPayload.getTerminalId()); - enqueteBatiment.setTerminal(optionalTpe.orElse(null)); - } - - if (enqueteBatimentPayload.getUserId() != null) { - Optional optionalUser = userRepository.findById(enqueteBatimentPayload.getUserId()); - enqueteBatiment.setUser(optionalUser.orElse(null)); - } - - return enqueteBatiment; - } } + + + diff --git a/src/main/java/io/gmss/fiscad/interfaces/synchronisation/SynchronisationService.java b/src/main/java/io/gmss/fiscad/interfaces/synchronisation/SynchronisationService.java index 91bc80a..12b6036 100755 --- a/src/main/java/io/gmss/fiscad/interfaces/synchronisation/SynchronisationService.java +++ b/src/main/java/io/gmss/fiscad/interfaces/synchronisation/SynchronisationService.java @@ -1,6 +1,7 @@ package io.gmss.fiscad.interfaces.synchronisation; import io.gmss.fiscad.entities.infocad.metier.Upload; +import io.gmss.fiscad.entities.metadata.MobileDataUpload; import io.gmss.fiscad.paylaods.request.*; import io.gmss.fiscad.paylaods.response.ReferencesSyncResponses; import io.gmss.fiscad.paylaods.response.SyncEnqueteAllDataResponse; @@ -62,6 +63,6 @@ public interface SynchronisationService { ); public List syncEnqueteFromMobile(List idEnquete); - - public Upload getUploadFromUplaodPayLoad(Upload upload, UploadPayLoad uploadPayLoad); + public void traitementTableRelationnelle(Long terminalId); + // public Upload getUploadFromUplaodPayLoad(Upload upload, MobileDataUpload mobileDataUpload); } \ No newline at end of file diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/UploadPayLoad.java b/src/main/java/io/gmss/fiscad/paylaods/request/UploadPayLoad.java index d529365..ff9a952 100644 --- a/src/main/java/io/gmss/fiscad/paylaods/request/UploadPayLoad.java +++ b/src/main/java/io/gmss/fiscad/paylaods/request/UploadPayLoad.java @@ -10,7 +10,7 @@ public class UploadPayLoad { private Long pieceId; private String Observation; private boolean synchronise; - private MultipartFile file; + //private MultipartFile file; private String fileBase64; private Long membreGroupeId; private Long terminalId; diff --git a/src/main/java/io/gmss/fiscad/repositories/infocad/metier/ActeurConcerneRepository.java b/src/main/java/io/gmss/fiscad/repositories/infocad/metier/ActeurConcerneRepository.java index 71372ea..bf00f61 100755 --- a/src/main/java/io/gmss/fiscad/repositories/infocad/metier/ActeurConcerneRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/infocad/metier/ActeurConcerneRepository.java @@ -1,6 +1,7 @@ package io.gmss.fiscad.repositories.infocad.metier; import io.gmss.fiscad.entities.infocad.metier.ActeurConcerne; +import io.gmss.fiscad.entities.infocad.parametre.Personne; import io.gmss.fiscad.paylaods.response.restoration.ActeurConcernePayLoad; import jakarta.transaction.Transactional; import org.springframework.data.jpa.repository.JpaRepository; @@ -12,7 +13,7 @@ import java.util.Optional; public interface ActeurConcerneRepository extends JpaRepository { Optional findFirstByExternalKey(Long externalKey); - + Optional findByMobileDataId(Long id); List findActeurConcerneByEnquete_Id(Long EnqueteId); Optional findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long terminalId); 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 31d8697..6dd3154 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 @@ -1,6 +1,7 @@ package io.gmss.fiscad.repositories.infocad.metier; import io.gmss.fiscad.entities.infocad.metier.Enquete; +import io.gmss.fiscad.entities.infocad.parametre.Personne; import io.gmss.fiscad.paylaods.response.*; import io.gmss.fiscad.paylaods.response.report.EnqueteParBlocResponse; import io.gmss.fiscad.paylaods.response.restoration.EnquetePayLoad; @@ -13,7 +14,7 @@ import java.util.Optional; public interface EnqueteRepository extends JpaRepository { Optional findFirstByCodeParcelle(String codeParcelle); - + Optional findByMobileDataId(Long id); @Query(value = "select distinct " + " e.id," + " e.parcelle_id as parcelleId," + diff --git a/src/main/java/io/gmss/fiscad/repositories/infocad/metier/MembreGroupeRepository.java b/src/main/java/io/gmss/fiscad/repositories/infocad/metier/MembreGroupeRepository.java index a302766..2d8334d 100755 --- a/src/main/java/io/gmss/fiscad/repositories/infocad/metier/MembreGroupeRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/infocad/metier/MembreGroupeRepository.java @@ -1,6 +1,7 @@ package io.gmss.fiscad.repositories.infocad.metier; import io.gmss.fiscad.entities.infocad.metier.MembreGroupe; +import io.gmss.fiscad.entities.infocad.parametre.Personne; import io.gmss.fiscad.paylaods.response.restoration.MembreGroupePayLoad; import jakarta.transaction.Transactional; import org.springframework.data.jpa.repository.JpaRepository; @@ -12,6 +13,7 @@ import java.util.Optional; public interface MembreGroupeRepository extends JpaRepository { Optional findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long terminalId); + Optional findByMobileDataId(Long id); @Modifying @Transactional void deleteMembreGroupeByPersonneRepresantante_Id(Long personneRepresenteId); diff --git a/src/main/java/io/gmss/fiscad/repositories/infocad/metier/ParcelleRepository.java b/src/main/java/io/gmss/fiscad/repositories/infocad/metier/ParcelleRepository.java index d7ba992..553d72a 100755 --- a/src/main/java/io/gmss/fiscad/repositories/infocad/metier/ParcelleRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/infocad/metier/ParcelleRepository.java @@ -1,6 +1,7 @@ package io.gmss.fiscad.repositories.infocad.metier; import io.gmss.fiscad.entities.infocad.metier.Parcelle; +import io.gmss.fiscad.entities.infocad.parametre.Personne; import io.gmss.fiscad.paylaods.response.restoration.ParcellePayLoad; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; @@ -10,7 +11,7 @@ import java.util.Optional; public interface ParcelleRepository extends JpaRepository { Optional findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long TerminalId); - + Optional findByMobileDataId(Long id); @Query(value = "Select " + " p.id as idBackend, " + " p.external_key as externalKey, " + diff --git a/src/main/java/io/gmss/fiscad/repositories/infocad/metier/PieceRepository.java b/src/main/java/io/gmss/fiscad/repositories/infocad/metier/PieceRepository.java index 7928639..0709d3b 100755 --- a/src/main/java/io/gmss/fiscad/repositories/infocad/metier/PieceRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/infocad/metier/PieceRepository.java @@ -1,6 +1,7 @@ package io.gmss.fiscad.repositories.infocad.metier; import io.gmss.fiscad.entities.infocad.metier.Piece; +import io.gmss.fiscad.entities.infocad.parametre.Personne; import io.gmss.fiscad.paylaods.response.restoration.PiecePayLoad; import jakarta.transaction.Transactional; import org.springframework.data.jpa.repository.JpaRepository; @@ -50,6 +51,7 @@ public interface PieceRepository extends JpaRepository { , nativeQuery = true) List getPiecesByTerminalId(Long terminalId); List findByPersonne_Id(Long id); + Optional findByMobileDataId(Long id); List findByPersonne_IdAndActeurConcerneIsNull(Long id); } diff --git a/src/main/java/io/gmss/fiscad/repositories/infocad/metier/UploadRepository.java b/src/main/java/io/gmss/fiscad/repositories/infocad/metier/UploadRepository.java index dc4bc62..86a400e 100644 --- a/src/main/java/io/gmss/fiscad/repositories/infocad/metier/UploadRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/infocad/metier/UploadRepository.java @@ -1,6 +1,7 @@ package io.gmss.fiscad.repositories.infocad.metier; import io.gmss.fiscad.entities.infocad.metier.Upload; +import io.gmss.fiscad.entities.infocad.parametre.Personne; import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment; import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement; import io.gmss.fiscad.paylaods.response.restoration.UploadPayLoad; @@ -39,7 +40,7 @@ public interface UploadRepository extends JpaRepository { @Modifying @Transactional void deleteUploadByPersonne_Id(Long personneId); - + Optional findByMobileDataId(Long id); @Query(value = "Select " + " u.id as idBackend, " + " u.external_key as externalKey, " + diff --git a/src/main/java/io/gmss/fiscad/repositories/infocad/parametre/PersonneRepository.java b/src/main/java/io/gmss/fiscad/repositories/infocad/parametre/PersonneRepository.java index 56727af..0c7c72f 100755 --- a/src/main/java/io/gmss/fiscad/repositories/infocad/parametre/PersonneRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/infocad/parametre/PersonneRepository.java @@ -11,6 +11,7 @@ import java.util.Optional; public interface PersonneRepository extends JpaRepository { Optional findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long TerminalId); + Optional findByMobileDataId(Long id); @Query(value = "Select " + " p.id as idBackend, " + " p.ifu, " + @@ -49,4 +50,5 @@ public interface PersonneRepository extends JpaRepository { " where p.terminal_id = ?1", nativeQuery = true) List getPersonnesByTerminalId(Long terminalId); + } diff --git a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataActeurConcerneRepository.java b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataActeurConcerneRepository.java index e328a8c..8d2ef38 100755 --- a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataActeurConcerneRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataActeurConcerneRepository.java @@ -1,11 +1,15 @@ package io.gmss.fiscad.repositories.metadata; import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne; +import io.gmss.fiscad.entities.metadata.MobileDataPersonne; import io.gmss.fiscad.entities.metadata.MobileDataUpload; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; import java.util.Optional; public interface MobileDataActeurConcerneRepository extends JpaRepository { - Optional findByActeurConcernePayLoad_TerminalIdAndActeurConcernePayLoad_ExternalKey(Long terminalId,Long ExternalKey); + //Optional findByActeurConcernePayLoad_TerminalIdAndActeurConcernePayLoad_ExternalKey(Long terminalId,Long ExternalKey); + Optional findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId,Long ExternalKey); + List findAllByTraiterIsFalseAndTerminalId(Long TerminalId); } diff --git a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataBatimentRepository.java b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataBatimentRepository.java index 64c3aa0..3239f33 100755 --- a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataBatimentRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataBatimentRepository.java @@ -1,10 +1,14 @@ package io.gmss.fiscad.repositories.metadata; +import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne; import io.gmss.fiscad.entities.metadata.MobileDataBatiment; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; import java.util.Optional; public interface MobileDataBatimentRepository extends JpaRepository { - Optional findMobileDataBatimentByBatimentPaylaod_TerminalIdAndBatimentPaylaod_ExternalKey(Long terminalId, Long externalKey); + //Optional findMobileDataBatimentByBatimentPaylaod_TerminalIdAndBatimentPaylaod_ExternalKey(Long terminalId, Long externalKey); + Optional findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId,Long ExternalKey); + List findAllByTraiterIsFalseAndTerminalId(Long TerminalId); } diff --git a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataCaracteristiqueBatimentRepository.java b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataCaracteristiqueBatimentRepository.java index 8e17b96..26b5908 100755 --- a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataCaracteristiqueBatimentRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataCaracteristiqueBatimentRepository.java @@ -1,11 +1,16 @@ package io.gmss.fiscad.repositories.metadata; +import io.gmss.fiscad.entities.metadata.MobileDataBatiment; import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueBatiment; import io.gmss.fiscad.entities.metadata.MobileDataUpload; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; import java.util.Optional; public interface MobileDataCaracteristiqueBatimentRepository extends JpaRepository { - Optional findByCaracteristiqueBatimentPaylod_TerminalIdAndCaracteristiqueBatimentPaylod_ExternalKey(Long terminalId,Long externalKey); + //Optional findByCaracteristiqueBatimentPaylod_TerminalIdAndCaracteristiqueBatimentPaylod_ExternalKey(Long terminalId,Long externalKey); + Optional findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId,Long ExternalKey); + + List findAllByTraiterIsFalseAndTerminalId(Long TerminalId); } diff --git a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataCaracteristiqueParcelleRepository.java b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataCaracteristiqueParcelleRepository.java index b1e8478..1a09f65 100755 --- a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataCaracteristiqueParcelleRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataCaracteristiqueParcelleRepository.java @@ -1,11 +1,16 @@ package io.gmss.fiscad.repositories.metadata; +import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueBatiment; import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueParcelle; import io.gmss.fiscad.entities.metadata.MobileDataUpload; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; import java.util.Optional; public interface MobileDataCaracteristiqueParcelleRepository extends JpaRepository { - Optional findByCaracteristiqueParcellePaylod_TerminalIdAndCaracteristiqueParcellePaylod_ExternalKey(Long terminalId,Long externalKey); + //Optional findByCaracteristiqueParcellePaylod_TerminalIdAndCaracteristiqueParcellePaylod_ExternalKey(Long terminalId,Long externalKey); + Optional findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId,Long ExternalKey); + + List findAllByTraiterIsFalseAndTerminalId(Long TerminalId); } diff --git a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataCaracteristiqueUniteLogementRepository.java b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataCaracteristiqueUniteLogementRepository.java index 2999de8..2a63e15 100755 --- a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataCaracteristiqueUniteLogementRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataCaracteristiqueUniteLogementRepository.java @@ -1,11 +1,16 @@ package io.gmss.fiscad.repositories.metadata; +import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueParcelle; import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueUniteLogement; import io.gmss.fiscad.entities.metadata.MobileDataUpload; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; import java.util.Optional; public interface MobileDataCaracteristiqueUniteLogementRepository extends JpaRepository { - Optional findByCaracteristiqueUniteLogementPaylod_TerminalIdAndCaracteristiqueUniteLogementPaylod_ExternalKey(Long terminalId,Long externalKey); + //Optional findByCaracteristiqueUniteLogementPaylod_TerminalIdAndCaracteristiqueUniteLogementPaylod_ExternalKey(Long terminalId,Long externalKey); + Optional findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId,Long ExternalKey); + + List findAllByTraiterIsFalseAndTerminalId(Long TerminalId); } diff --git a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataEnqueteBatimentRepository.java b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataEnqueteBatimentRepository.java index 083a4e0..cc5e334 100755 --- a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataEnqueteBatimentRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataEnqueteBatimentRepository.java @@ -1,11 +1,16 @@ package io.gmss.fiscad.repositories.metadata; import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne; +import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueUniteLogement; import io.gmss.fiscad.entities.metadata.MobileDataEnqueteBatiment; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; import java.util.Optional; public interface MobileDataEnqueteBatimentRepository extends JpaRepository { - Optional findByEnqueteBatimentPayload_TerminalIdAndEnqueteBatimentPayload_ExternalKey(Long terminalId,Long externalKey); + //Optional findByEnqueteBatimentPayload_TerminalIdAndEnqueteBatimentPayload_ExternalKey(Long terminalId,Long externalKey); + Optional findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId,Long ExternalKey); + + List findAllByTraiterIsFalseAndTerminalId(Long TerminalId); } diff --git a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataEnqueteRepository.java b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataEnqueteRepository.java index b386d6f..06aceda 100755 --- a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataEnqueteRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataEnqueteRepository.java @@ -1,11 +1,16 @@ package io.gmss.fiscad.repositories.metadata; import io.gmss.fiscad.entities.metadata.MobileDataEnquete; +import io.gmss.fiscad.entities.metadata.MobileDataEnqueteBatiment; import io.gmss.fiscad.entities.metadata.MobileDataUpload; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; import java.util.Optional; public interface MobileDataEnqueteRepository extends JpaRepository { - Optional findByEnquetePayLoad_TerminalIdAndEnquetePayLoad_ExternalKey(Long terminalId,Long externalKey); + //Optional findByEnquetePayLoad_TerminalIdAndEnquetePayLoad_ExternalKey(Long terminalId,Long externalKey); + Optional findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId,Long ExternalKey); + + List findAllByTraiterIsFalseAndTerminalId(Long TerminalId); } diff --git a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataEnqueteUniteLogementRepository.java b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataEnqueteUniteLogementRepository.java index 8ef8bbd..aee9154 100755 --- a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataEnqueteUniteLogementRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataEnqueteUniteLogementRepository.java @@ -1,11 +1,16 @@ package io.gmss.fiscad.repositories.metadata; import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne; +import io.gmss.fiscad.entities.metadata.MobileDataEnquete; import io.gmss.fiscad.entities.metadata.MobileDataEnqueteUniteLogement; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; import java.util.Optional; public interface MobileDataEnqueteUniteLogementRepository extends JpaRepository { - Optional findByEnqueteUniteLogementPayload_TerminalIdAndEnqueteUniteLogementPayload_ExternalKey(Long terminalId,Long externalKey); + // Optional findByEnqueteUniteLogementPayload_TerminalIdAndEnqueteUniteLogementPayload_ExternalKey(Long terminalId,Long externalKey); + Optional findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId,Long ExternalKey); + + List findAllByTraiterIsFalseAndTerminalId(Long TerminalId); } diff --git a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataMembreGroupeRepository.java b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataMembreGroupeRepository.java index 84ae87d..1578094 100755 --- a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataMembreGroupeRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataMembreGroupeRepository.java @@ -1,11 +1,16 @@ package io.gmss.fiscad.repositories.metadata; import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne; +import io.gmss.fiscad.entities.metadata.MobileDataEnqueteUniteLogement; import io.gmss.fiscad.entities.metadata.MobileDataMembreGroupe; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; import java.util.Optional; public interface MobileDataMembreGroupeRepository extends JpaRepository { - Optional findByMembreGroupePayLoad_TerminalIdAndMembreGroupePayLoad_ExternalKey(Long terminalId,Long externalKey); + //Optional findByMembreGroupePayLoad_TerminalIdAndMembreGroupePayLoad_ExternalKey(Long terminalId,Long externalKey); + Optional findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId,Long ExternalKey); + + List findAllByTraiterIsFalseAndTerminalId(Long TerminalId); } diff --git a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataParcelleRepository.java b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataParcelleRepository.java index f42d55b..144e9f2 100755 --- a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataParcelleRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataParcelleRepository.java @@ -1,12 +1,17 @@ package io.gmss.fiscad.repositories.metadata; +import io.gmss.fiscad.entities.metadata.MobileDataMembreGroupe; import io.gmss.fiscad.entities.metadata.MobileDataParcelle; import io.gmss.fiscad.entities.metadata.MobileDataUpload; import org.modelmapper.internal.bytebuddy.dynamic.DynamicType; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; import java.util.Optional; public interface MobileDataParcelleRepository extends JpaRepository { - Optional findByParcellePayLoad_TerminalIdAndParcellePayLoad_ExternalKey(Long terminalId,Long externalKey); + //Optional findByParcellePayLoad_TerminalIdAndParcellePayLoad_ExternalKey(Long terminalId,Long externalKey); + Optional findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId,Long ExternalKey); + + List findAllByTraiterIsFalseAndTerminalId(Long TerminalId); } diff --git a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataPersonneRepository.java b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataPersonneRepository.java index 8409636..78d383c 100755 --- a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataPersonneRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataPersonneRepository.java @@ -1,13 +1,17 @@ package io.gmss.fiscad.repositories.metadata; import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne; +import io.gmss.fiscad.entities.metadata.MobileDataParcelle; import io.gmss.fiscad.entities.metadata.MobileDataPersonne; import org.modelmapper.internal.bytebuddy.dynamic.DynamicType; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; import java.util.Optional; public interface MobileDataPersonneRepository extends JpaRepository { - Optional findByPersonnePayLoad_TerminalIdAndPersonnePayLoad_ExternalKey(Long terminalId,Long externalKey); + //Optional findByPersonnePayLoad_TerminalIdAndPersonnePayLoad_ExternalKey(Long terminalId,Long externalKey); + List findAllByTraiterIsFalseAndTerminalId(Long TerminalId); + Optional findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId, Long ExternalKey); } diff --git a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataPieceRepository.java b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataPieceRepository.java index d9e9a82..548248e 100755 --- a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataPieceRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataPieceRepository.java @@ -1,11 +1,17 @@ package io.gmss.fiscad.repositories.metadata; import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne; +import io.gmss.fiscad.entities.metadata.MobileDataParcelle; +import io.gmss.fiscad.entities.metadata.MobileDataPersonne; import io.gmss.fiscad.entities.metadata.MobileDataPiece; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; import java.util.Optional; public interface MobileDataPieceRepository extends JpaRepository { - Optional findByPiecePayLoad_TerminalIdAndPiecePayLoad_ExternalKey(Long terminalId,Long externalKey); + //Optional findByPiecePayLoad_TerminalIdAndPiecePayLoad_ExternalKey(Long terminalId,Long externalKey); + List findAllByTraiterIsFalseAndTerminalId(Long TerminalId); + Optional findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId, Long ExternalKey); + } diff --git a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataUniteLogementRepository.java b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataUniteLogementRepository.java index 1df4a39..45a736e 100755 --- a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataUniteLogementRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataUniteLogementRepository.java @@ -1,11 +1,16 @@ package io.gmss.fiscad.repositories.metadata; import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne; +import io.gmss.fiscad.entities.metadata.MobileDataPiece; import io.gmss.fiscad.entities.metadata.MobileDataUniteLogement; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; import java.util.Optional; public interface MobileDataUniteLogementRepository extends JpaRepository { - Optional findByUniteLogementPaylaod_TerminalIdAndUniteLogementPaylaod_ExternalKey(Long terminalId,Long externalKey); + //Optional findByUniteLogementPaylaod_TerminalIdAndUniteLogementPaylaod_ExternalKey(Long terminalId,Long externalKey); + List findAllByTraiterIsFalseAndTerminalId(Long TerminalId); + Optional findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId, Long ExternalKey); + } diff --git a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataUploadRepository.java b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataUploadRepository.java index 0a64035..ed02a54 100755 --- a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataUploadRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataUploadRepository.java @@ -1,10 +1,15 @@ package io.gmss.fiscad.repositories.metadata; +import io.gmss.fiscad.entities.metadata.MobileDataUniteLogement; import io.gmss.fiscad.entities.metadata.MobileDataUpload; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; import java.util.Optional; public interface MobileDataUploadRepository extends JpaRepository { - Optional findByUploadPayLoad_TerminalIdAndUploadPayLoad_ExternalKey(Long terminalId,Long externalKey); + //Optional findByUploadPayLoad_TerminalIdAndUploadPayLoad_ExternalKey(Long terminalId,Long externalKey); + List findAllByTraiterIsFalseAndTerminalId(Long TerminalId); + Optional findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId, Long ExternalKey); + } 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 0374e1e..8167752 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,5 +1,6 @@ package io.gmss.fiscad.repositories.rfu.metier; +import io.gmss.fiscad.entities.infocad.parametre.Personne; import io.gmss.fiscad.entities.rfu.metier.Batiment; import io.gmss.fiscad.paylaods.response.restoration.BatimentPayload; import org.springframework.data.jpa.repository.JpaRepository; @@ -10,7 +11,7 @@ import java.util.Optional; public interface BatimentRepository extends JpaRepository { - + Optional findByMobileDataId(Long id); Optional findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long TerminalId); @Query(value = "SELECT " + 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 90d8b07..ce896a1 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 @@ -1,5 +1,6 @@ package io.gmss.fiscad.repositories.rfu.metier; +import io.gmss.fiscad.entities.infocad.parametre.Personne; import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueBatiment; import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment; import io.gmss.fiscad.paylaods.response.restoration.CaracateristiqueBatimentPayLoads; @@ -10,13 +11,14 @@ import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import java.util.List; +import java.util.Optional; public interface CaracteristiqueBatimentRepository extends JpaRepository { @Transactional @Modifying void deleteAllByEnqueteBatiment(EnqueteBatiment enqueteBatiment); - + Optional findByMobileDataId(Long id); @Modifying @Transactional @Query(""" 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 1b46b16..2c2b215 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 @@ -1,6 +1,7 @@ package io.gmss.fiscad.repositories.rfu.metier; import io.gmss.fiscad.entities.infocad.metier.Enquete; +import io.gmss.fiscad.entities.infocad.parametre.Personne; import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueParcelle; import io.gmss.fiscad.paylaods.response.restoration.CaracateristiqueParcellePayLoads; import jakarta.transaction.Transactional; @@ -9,11 +10,13 @@ import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import java.util.List; +import java.util.Optional; public interface CaracteristiqueParcelleRepository extends JpaRepository { void deleteAllByEnquete(Enquete enquete); + Optional findByMobileDataId(Long id); @Transactional @Modifying void deleteAllByEnquete_Id(Long enqueteId); 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 35d6250..6ba59e5 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 @@ -1,5 +1,6 @@ package io.gmss.fiscad.repositories.rfu.metier; +import io.gmss.fiscad.entities.infocad.parametre.Personne; import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueUniteLogement; import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement; import io.gmss.fiscad.paylaods.response.restoration.CaracteristiqueUniteLogementPayLoad; @@ -10,13 +11,14 @@ import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import java.util.List; +import java.util.Optional; public interface CaracteristiqueUniteLogementRepository extends JpaRepository { @Modifying @Transactional void deleteAllByEnqueteUniteLogement(EnqueteUniteLogement enqueteUniteLogement); - + Optional findByMobileDataId(Long id); @Modifying @Transactional @Query(""" diff --git a/src/main/java/io/gmss/fiscad/repositories/rfu/metier/DonneesImpositionTfuRepository.java b/src/main/java/io/gmss/fiscad/repositories/rfu/metier/DonneesImpositionTfuRepository.java index b1a5821..5324ad4 100755 --- a/src/main/java/io/gmss/fiscad/repositories/rfu/metier/DonneesImpositionTfuRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/rfu/metier/DonneesImpositionTfuRepository.java @@ -1,5 +1,6 @@ package io.gmss.fiscad.repositories.rfu.metier; +import io.gmss.fiscad.entities.infocad.parametre.Personne; import io.gmss.fiscad.entities.rfu.metier.DonneesImpositionTfu; import io.gmss.fiscad.paylaods.response.DonneesImpositionTfuResponse; import org.springframework.data.jpa.repository.JpaRepository; @@ -10,6 +11,7 @@ import java.util.Optional; public interface DonneesImpositionTfuRepository extends JpaRepository { + @Query(value = """ select distinct 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 03ea84b..4dad393 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,5 +1,6 @@ package io.gmss.fiscad.repositories.rfu.metier; +import io.gmss.fiscad.entities.infocad.parametre.Personne; import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment; import io.gmss.fiscad.paylaods.response.restoration.EnqueteBatimentPayLoad; import org.springframework.data.jpa.repository.JpaRepository; @@ -10,7 +11,7 @@ import java.util.Optional; public interface EnqueteBatimentRepository extends JpaRepository { - + Optional findByMobileDataId(Long id); Optional findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long TerminalId); List findAllByEnquete_Id(Long enqueteId); 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 9888aba..c4077b0 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,5 +1,6 @@ package io.gmss.fiscad.repositories.rfu.metier; +import io.gmss.fiscad.entities.infocad.parametre.Personne; import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement; import io.gmss.fiscad.paylaods.response.restoration.EnqueteUniteLogementPayLoad; import org.springframework.data.jpa.repository.JpaRepository; @@ -11,6 +12,7 @@ import java.util.Optional; public interface EnqueteUniteLogementRepository extends JpaRepository { Optional findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long TerminalId); + Optional findByMobileDataId(Long id); List findAllByEnquete_Id(Long id); 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 fd8cc77..711d8b1 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,5 +1,6 @@ package io.gmss.fiscad.repositories.rfu.metier; +import io.gmss.fiscad.entities.infocad.parametre.Personne; import io.gmss.fiscad.entities.rfu.metier.UniteLogement; import io.gmss.fiscad.paylaods.response.restoration.UniteLogementPayLoad; import org.springframework.data.jpa.repository.JpaRepository; @@ -11,7 +12,7 @@ import java.util.Optional; public interface UniteLogementRepository extends JpaRepository { Optional findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long TerminalId); - + Optional findByMobileDataId(Long id); @Query( nativeQuery = true, value = "select ul.id as idBackend, " + diff --git a/src/main/java/io/gmss/fiscad/service/LogService.java b/src/main/java/io/gmss/fiscad/service/LogService.java new file mode 100644 index 0000000..0b3c25c --- /dev/null +++ b/src/main/java/io/gmss/fiscad/service/LogService.java @@ -0,0 +1,15 @@ +package io.gmss.fiscad.service; + +import io.gmss.fiscad.enums.TypeObjet; +import org.springframework.stereotype.Service; + +@Service +public class LogService { + public void logTraiementAsync(TypeObjet typeObjet, String typeDeProbleme, String detail, Long idtable) { + System.out.println("ATTENTION"); + System.out.println(typeObjet.toString()); + System.out.println(typeDeProbleme); + System.out.println(detail); + System.out.println(idtable); + } +} diff --git a/src/main/java/io/gmss/fiscad/service/worker/ActeurConcerneAsyncWorker.java b/src/main/java/io/gmss/fiscad/service/worker/ActeurConcerneAsyncWorker.java new file mode 100644 index 0000000..d66758c --- /dev/null +++ b/src/main/java/io/gmss/fiscad/service/worker/ActeurConcerneAsyncWorker.java @@ -0,0 +1,138 @@ +package io.gmss.fiscad.service.worker; + +import io.gmss.fiscad.entities.infocad.metier.ActeurConcerne; +import io.gmss.fiscad.entities.infocad.metier.Enquete; +import io.gmss.fiscad.entities.infocad.metier.Tpe; +import io.gmss.fiscad.entities.infocad.parametre.Personne; +import io.gmss.fiscad.entities.infocad.parametre.PositionRepresentation; +import io.gmss.fiscad.entities.infocad.parametre.TypeContestation; +import io.gmss.fiscad.entities.infocad.parametre.TypeRepresentation; +import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne; +import io.gmss.fiscad.enums.TypeObjet; +import io.gmss.fiscad.paylaods.request.ActeurConcernePayLoad; +import io.gmss.fiscad.repositories.infocad.metier.ActeurConcerneRepository; +import io.gmss.fiscad.repositories.infocad.metier.EnqueteRepository; +import io.gmss.fiscad.repositories.infocad.metier.TpeRepository; +import io.gmss.fiscad.repositories.infocad.parametre.PersonneRepository; +import io.gmss.fiscad.repositories.infocad.parametre.PositionRepresentationRepository; +import io.gmss.fiscad.repositories.infocad.parametre.TypeContestationRepository; +import io.gmss.fiscad.repositories.infocad.parametre.TypeRepresentationRepository; +import io.gmss.fiscad.repositories.metadata.MobileDataActeurConcerneRepository; +import io.gmss.fiscad.service.LogService; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.Optional; + +@Service +@RequiredArgsConstructor +public class ActeurConcerneAsyncWorker { + private final TpeRepository tpeRepository; + private final EnqueteRepository enqueteRepository; + private final ActeurConcerneRepository acteurConcerneRepository; + private final PersonneRepository personneRepository; + private final MobileDataActeurConcerneRepository mobileDataActeurConcerneRepository; + private final PositionRepresentationRepository positionRepresentationRepository; + private final TypeContestationRepository typeContestationRepository; + private final TypeRepresentationRepository typeRepresentationRepository; + private final LogService logService; + //@Async("acteurConcerneExecutor") + public void traitementAsyncActeurConcerne(MobileDataActeurConcerne mobileDataActeurConcerne) { + ActeurConcernePayLoad acteurConcernePayLoad=mobileDataActeurConcerne.getActeurConcernePayLoad(); + try { + if (acteurConcernePayLoad.getTerminalId() == null) { + logService.logTraiementAsync(TypeObjet.ACTEURCONCERNER, "Problème de terminal", "terminal non fourni : ", mobileDataActeurConcerne.getId()); + return; + } else { + Optional optionalTpe = tpeRepository.findById(acteurConcernePayLoad.getTerminalId()); + if (optionalTpe.isEmpty()) { + logService.logTraiementAsync(TypeObjet.ACTEURCONCERNER, "Problème de terminal", "terminal inexistant : ", mobileDataActeurConcerne.getId()); + return; + } + } + if (acteurConcernePayLoad.getPersonneId() == null) { + logService.logTraiementAsync(TypeObjet.ACTEURCONCERNER, "Problème de Personne", "Id Personne non fournie : ", mobileDataActeurConcerne.getId()); + return; + } else { + Optional optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(acteurConcernePayLoad.getPersonneId(), acteurConcernePayLoad.getTerminalId()); + if (optionalPersonne.isEmpty()) { + logService.logTraiementAsync(TypeObjet.ACTEURCONCERNER, "Problème de Personne", "La personne précisée n'existe pas : ", mobileDataActeurConcerne.getId()); + return; + } + } + + if (acteurConcernePayLoad.getEnqueteId() == null) { + logService.logTraiementAsync(TypeObjet.ACTEURCONCERNER, "Problème de enquete", "Id enquête non fournie : ", mobileDataActeurConcerne.getId()); + return ; + } else { + Optional optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(acteurConcernePayLoad.getEnqueteId(), acteurConcernePayLoad.getTerminalId()); + if (optionalEnquete.isEmpty()) { + logService.logTraiementAsync(TypeObjet.ACTEURCONCERNER, "Problème de enquête", "L'enquête précisée n'existe pas : ", mobileDataActeurConcerne.getId()); + return; + } + } + + ActeurConcerne acteurConcerne = new ActeurConcerne(); + Optional optionalActeurConcerne=Optional.empty(); + optionalActeurConcerne = acteurConcerneRepository.findByMobileDataId(mobileDataActeurConcerne.getId()); + if (optionalActeurConcerne.isPresent()) { + acteurConcerne = optionalActeurConcerne.get(); + }else { + optionalActeurConcerne = acteurConcerneRepository.findFirstByExternalKeyAndTerminal_Id(acteurConcernePayLoad.getExternalKey(),acteurConcernePayLoad.getTerminalId()); + if (optionalActeurConcerne.isPresent()) { + acteurConcerne=optionalActeurConcerne.get(); + } + } + acteurConcerne.setMobileDataId(mobileDataActeurConcerne.getId()); + acteurConcerne = getActeurConcerneFromActeurConcernePayLoad(acteurConcerne, acteurConcernePayLoad); + acteurConcerneRepository.save(acteurConcerne); + mobileDataActeurConcerne.setTraiter(true); + mobileDataActeurConcerneRepository.save(mobileDataActeurConcerne); + + } catch (Exception e) { + logService.logTraiementAsync(TypeObjet.ACTEURCONCERNER, "Problème de inattendu", e.getMessage(), mobileDataActeurConcerne.getId()); + + } + } + + private ActeurConcerne getActeurConcerneFromActeurConcernePayLoad(ActeurConcerne acteurConcerne, ActeurConcernePayLoad acteurConcernePayLoad) { + + if (acteurConcernePayLoad.getEnqueteId() != null) { + Optional optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(acteurConcernePayLoad.getEnqueteId(), acteurConcernePayLoad.getTerminalId()); + acteurConcerne.setEnquete(optionalEnquete.orElse(null)); + } + if (acteurConcernePayLoad.getEnqueteId() != null) { + Optional optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(acteurConcernePayLoad.getPersonneId(), acteurConcernePayLoad.getTerminalId()); + acteurConcerne.setPersonne(optionalPersonne.orElse(null)); + } + if (acteurConcernePayLoad.getPositionRepresentationId() != null) { + Optional optionalPositionRepresentation = positionRepresentationRepository.findById(acteurConcernePayLoad.getPositionRepresentationId()); + acteurConcerne.setPositionRepresentation(optionalPositionRepresentation.orElse(null)); + } + if (acteurConcernePayLoad.getTypeContestationId() != null) { + Optional optionalTypeContestation = typeContestationRepository.findById(acteurConcernePayLoad.getTypeContestationId()); + acteurConcerne.setTypeContestation(optionalTypeContestation.orElse(null)); + } + if (acteurConcernePayLoad.getTypeRepresentationId() != null) { + Optional optionalTypeRepresentation = typeRepresentationRepository.findById(acteurConcernePayLoad.getTypeRepresentationId()); + acteurConcerne.setTypeRepresentation(optionalTypeRepresentation.orElse(null)); + } + if (acteurConcernePayLoad.getTerminalId() != null) { + Optional optionalTpe = tpeRepository.findById(acteurConcernePayLoad.getTerminalId()); + acteurConcerne.setTerminal(optionalTpe.orElse(null)); + } + acteurConcerne.setEnqueteExternalKey(acteurConcernePayLoad.getEnqueteId()); + acteurConcerne.setPersonneExternalKey(acteurConcernePayLoad.getPersonneId()); + acteurConcerne.setPart(acteurConcernePayLoad.getPart()); + acteurConcerne.setTypeDroit(acteurConcernePayLoad.getTypeDroit()); + acteurConcerne.setExternalKey(acteurConcernePayLoad.getExternalKey()); + acteurConcerne.setRoleActeur(acteurConcernePayLoad.getRoleActeur()); + acteurConcerne.setBlocId(acteurConcernePayLoad.getBlocId()); + acteurConcerne.setHaveDeclarant(acteurConcernePayLoad.getHaveDeclarant()); + acteurConcerne.setMax_numero_acteur_concerne_id(acteurConcernePayLoad.getMax_numero_acteur_concerne_id()); + return acteurConcerne; + } + +} diff --git a/src/main/java/io/gmss/fiscad/service/worker/BatimentAsyncWorker.java b/src/main/java/io/gmss/fiscad/service/worker/BatimentAsyncWorker.java new file mode 100644 index 0000000..cb564f8 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/service/worker/BatimentAsyncWorker.java @@ -0,0 +1,112 @@ +package io.gmss.fiscad.service.worker; + +import io.gmss.fiscad.entities.infocad.metier.Enquete; +import io.gmss.fiscad.entities.infocad.metier.Parcelle; +import io.gmss.fiscad.entities.infocad.metier.Tpe; +import io.gmss.fiscad.entities.infocad.parametre.Bloc; +import io.gmss.fiscad.entities.metadata.MobileDataBatiment; +import io.gmss.fiscad.entities.metadata.MobileDataEnquete; +import io.gmss.fiscad.entities.rfu.metier.Batiment; +import io.gmss.fiscad.entities.rfu.parametre.ZoneRfu; +import io.gmss.fiscad.entities.user.User; +import io.gmss.fiscad.enums.TypeObjet; +import io.gmss.fiscad.paylaods.request.BatimentPaylaod; +import io.gmss.fiscad.paylaods.request.EnquetePayLoad; +import io.gmss.fiscad.repositories.infocad.metier.*; +import io.gmss.fiscad.repositories.infocad.parametre.BlocRepository; +import io.gmss.fiscad.repositories.metadata.MobileDataBatimentRepository; +import io.gmss.fiscad.repositories.metadata.MobileDataEnqueteRepository; +import io.gmss.fiscad.repositories.rfu.metier.*; +import io.gmss.fiscad.repositories.rfu.parametre.ZoneRfuRepository; +import io.gmss.fiscad.repositories.user.UserRepository; +import io.gmss.fiscad.service.LogService; +import lombok.RequiredArgsConstructor; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.Optional; + +@Service +@RequiredArgsConstructor +public class BatimentAsyncWorker { + private final TpeRepository tpeRepository; + private final ParcelleRepository parcelleRepository; + private final EnqueteRepository enqueteRepository; + private final MobileDataBatimentRepository mobileDataBatimentRepository; + private final BatimentRepository batimentRepository; + private final LogService logService; + //@Async("batimentExecutor") + public void traitementAsyncBatiment(MobileDataBatiment mobileDataBatiment) { + BatimentPaylaod batimentPaylaod = mobileDataBatiment.getBatimentPaylaod(); + try { + if (batimentPaylaod.getTerminalId() == null) { + logService.logTraiementAsync(TypeObjet.BATIMENT, "Problème de terminal", "terminal non fourni : ", mobileDataBatiment.getId()); + return; + } else { + Optional optionalTpe = tpeRepository.findById(batimentPaylaod.getTerminalId()); + if (optionalTpe.isEmpty()) { + logService.logTraiementAsync(TypeObjet.BATIMENT, "Problème de terminal", "terminal inexistant : ", mobileDataBatiment.getId()); + return; + } + } + + if (batimentPaylaod.getParcelleId() == null) { + logService.logTraiementAsync(TypeObjet.BATIMENT, "Problème de parcelle", "terminal inexistant : ", mobileDataBatiment.getId()); + return; + } else { + Optional optionalParcelle = parcelleRepository.findFirstByExternalKeyAndTerminal_Id(batimentPaylaod.getParcelleId(), batimentPaylaod.getTerminalId()); + if (optionalParcelle.isEmpty()) { + logService.logTraiementAsync(TypeObjet.BATIMENT, "Problème de parcelle", "La parcelle précisée n'existe pas : ", mobileDataBatiment.getId()); + return; + } + } + + Batiment batiment = new Batiment(); + Optional optionalBatiment= Optional.empty(); + optionalBatiment = batimentRepository.findByMobileDataId(mobileDataBatiment.getId()); + if (optionalBatiment.isPresent()) { + batiment = optionalBatiment.get(); + }else { + optionalBatiment = batimentRepository.findFirstByExternalKeyAndTerminal_Id(batimentPaylaod.getExternalKey(),batimentPaylaod.getTerminalId()); + if (optionalBatiment.isPresent()) { + batiment = optionalBatiment.get(); + } + } + batiment.setMobileDataId(mobileDataBatiment.getId()); + batiment = getBatimentFromBatimentPayLoad(batiment, batimentPaylaod); + batimentRepository.save(batiment); + mobileDataBatiment.setTraiter(true); + mobileDataBatimentRepository.save(mobileDataBatiment); + } catch (Exception e) { + logService.logTraiementAsync(TypeObjet.BATIMENT, "Problème de inattendu", e.getMessage(), mobileDataBatiment.getId()); + } + } + + private Batiment getBatimentFromBatimentPayLoad(Batiment batiment, BatimentPaylaod batimentPaylaod) { + + if (batimentPaylaod.getParcelleId() != null) { + Optional optionalParcelle = parcelleRepository.findFirstByExternalKeyAndTerminal_Id(batimentPaylaod.getParcelleId(), batimentPaylaod.getTerminalId()); + batiment.setParcelle(optionalParcelle.orElse(null)); + } + + if (batimentPaylaod.getTerminalId() != null) { + Optional optionalTpe = tpeRepository.findById(batimentPaylaod.getTerminalId()); + batiment.setTerminal(optionalTpe.orElse(null)); + } + if (batimentPaylaod.getTerminalId() != null && batimentPaylaod.getEnqueteId() != null) { + Optional optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(batimentPaylaod.getEnqueteId(), batimentPaylaod.getTerminalId()); + if (optionalEnquete.isPresent()) { + batiment.setEnqueteId(optionalEnquete.get().getId()); + } + } + batiment.setParcelleExternalKey(batimentPaylaod.getParcelleId()); + batiment.setEnqueteExternalKey(batimentPaylaod.getEnqueteId()); + batiment.setNub(batimentPaylaod.getNub()); + batiment.setCode(batimentPaylaod.getCode()); + batiment.setDateConstruction(batimentPaylaod.getDateConstruction()); + batiment.setExternalKey(batimentPaylaod.getExternalKey()); + + return batiment; + } + +} diff --git a/src/main/java/io/gmss/fiscad/service/worker/CaracteristiqueBatimentAsyncWorker.java b/src/main/java/io/gmss/fiscad/service/worker/CaracteristiqueBatimentAsyncWorker.java new file mode 100644 index 0000000..08dc1d9 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/service/worker/CaracteristiqueBatimentAsyncWorker.java @@ -0,0 +1,111 @@ +package io.gmss.fiscad.service.worker; + +import io.gmss.fiscad.entities.infocad.metier.Enquete; +import io.gmss.fiscad.entities.infocad.metier.Parcelle; +import io.gmss.fiscad.entities.infocad.metier.Tpe; +import io.gmss.fiscad.entities.infocad.parametre.Bloc; +import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueBatiment; +import io.gmss.fiscad.entities.metadata.MobileDataEnquete; +import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueBatiment; +import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment; +import io.gmss.fiscad.entities.rfu.parametre.Caracteristique; +import io.gmss.fiscad.entities.rfu.parametre.ZoneRfu; +import io.gmss.fiscad.entities.user.User; +import io.gmss.fiscad.enums.TypeObjet; +import io.gmss.fiscad.paylaods.request.CaracteristiqueBatimentPaylod; +import io.gmss.fiscad.paylaods.request.EnquetePayLoad; +import io.gmss.fiscad.repositories.infocad.metier.*; +import io.gmss.fiscad.repositories.infocad.parametre.BlocRepository; +import io.gmss.fiscad.repositories.metadata.MobileDataCaracteristiqueBatimentRepository; +import io.gmss.fiscad.repositories.metadata.MobileDataEnqueteRepository; +import io.gmss.fiscad.repositories.rfu.metier.*; +import io.gmss.fiscad.repositories.rfu.parametre.CaracteristiqueRepository; +import io.gmss.fiscad.repositories.rfu.parametre.ZoneRfuRepository; +import io.gmss.fiscad.repositories.user.UserRepository; +import io.gmss.fiscad.service.LogService; +import lombok.RequiredArgsConstructor; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.Optional; + +@Service +@RequiredArgsConstructor +public class CaracteristiqueBatimentAsyncWorker { + private final TpeRepository tpeRepository; + private final MobileDataCaracteristiqueBatimentRepository mobileDataCaracteristiqueBatimentRepository; + private final EnqueteRepository enqueteRepository; + private final CaracteristiqueRepository caracteristiqueRepository; + private final EnqueteBatimentRepository enqueteBatimentRepository; + private final CaracteristiqueBatimentRepository caracteristiqueBatimentRepository; + private final LogService logService; + // @Async("caracteristiqueBatimentExecutor") + public void traitementAsyncCaracteristiqueBatiment(MobileDataCaracteristiqueBatiment mobileDataCaracteristiqueBatiment) { + CaracteristiqueBatimentPaylod caracteristiqueBatimentPaylod = mobileDataCaracteristiqueBatiment.getCaracteristiqueBatimentPaylod(); + try { + if (caracteristiqueBatimentPaylod.getTerminalId() == null) { + logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEBATIMENT, "Problème de terminal", "terminal non fourni : ", mobileDataCaracteristiqueBatiment.getId()); + return; + } else { + Optional optionalTpe = tpeRepository.findById(caracteristiqueBatimentPaylod.getTerminalId()); + if (optionalTpe.isEmpty()) { + logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEBATIMENT, "Problème de terminal", "terminal inexistant : ", mobileDataCaracteristiqueBatiment.getId()); + return; + } + } + + if (caracteristiqueBatimentPaylod.getEnqueteBatimentId() == null) { + logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEBATIMENT, "Problème de enquete batiment", "enquete non fourni : ", mobileDataCaracteristiqueBatiment.getId()); + return; + } else { + Optional optionalEnqueteBatiment = enqueteBatimentRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueBatimentPaylod.getEnqueteBatimentId(), caracteristiqueBatimentPaylod.getTerminalId()); + if (optionalEnqueteBatiment.isEmpty()) { + logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEBATIMENT, "Problème de enquete batiment", "L'enquete précisée n'existe pas : ", mobileDataCaracteristiqueBatiment.getId()); + return; + } + } + CaracteristiqueBatiment caracteristiqueBatiment = new CaracteristiqueBatiment(); + caracteristiqueBatiment.setMobileDataId(mobileDataCaracteristiqueBatiment.getId()); + caracteristiqueBatiment = getCaracteristiqueBatimentFromCaracteristiqueBatimentPayLoad(caracteristiqueBatiment, caracteristiqueBatimentPaylod); + caracteristiqueBatimentRepository.save(caracteristiqueBatiment); + mobileDataCaracteristiqueBatiment.setTraiter(true); + mobileDataCaracteristiqueBatimentRepository.save(mobileDataCaracteristiqueBatiment); + } catch (Exception e) { + logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEBATIMENT, "Problème de inattendu", e.getMessage(), mobileDataCaracteristiqueBatiment.getId()); + } + } + + private CaracteristiqueBatiment getCaracteristiqueBatimentFromCaracteristiqueBatimentPayLoad(CaracteristiqueBatiment caracteristiqueBatiment, CaracteristiqueBatimentPaylod caracteristiqueBatimentPaylod) { + + + if (caracteristiqueBatimentPaylod.getEnqueteBatimentId() != null) { + Optional optionalEnqueteBatiment = enqueteBatimentRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueBatimentPaylod.getEnqueteBatimentId(), caracteristiqueBatimentPaylod.getTerminalId()); + caracteristiqueBatiment.setEnqueteBatiment(optionalEnqueteBatiment.orElse(null)); + } + + if (caracteristiqueBatimentPaylod.getCaracteristiqueId() != null) { + Optional optionalCaracteristique = caracteristiqueRepository.findById(caracteristiqueBatimentPaylod.getCaracteristiqueId()); + caracteristiqueBatiment.setCaracteristique(optionalCaracteristique.orElse(null)); + } + + if (caracteristiqueBatimentPaylod.getTerminalId() != null) { + Optional optionalTpe = tpeRepository.findById(caracteristiqueBatimentPaylod.getTerminalId()); + caracteristiqueBatiment.setTerminal(optionalTpe.orElse(null)); + } + + + if (caracteristiqueBatimentPaylod.getTerminalId() != null && caracteristiqueBatimentPaylod.getEnqueteId() != null) { + Optional optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueBatimentPaylod.getEnqueteId(), caracteristiqueBatimentPaylod.getTerminalId()); + if (optionalEnquete.isPresent()) { + caracteristiqueBatiment.setEnqueteId(optionalEnquete.get().getId()); + } + } + caracteristiqueBatiment.setEnqueteBatimentExternalKey(caracteristiqueBatimentPaylod.getEnqueteBatimentId()); + caracteristiqueBatiment.setEnqueteExternalKey(caracteristiqueBatimentPaylod.getEnqueteId()); + caracteristiqueBatiment.setValeur(caracteristiqueBatimentPaylod.getValeur()); + caracteristiqueBatiment.setExternalKey(caracteristiqueBatimentPaylod.getExternalKey()); + return caracteristiqueBatiment; + + } + +} diff --git a/src/main/java/io/gmss/fiscad/service/worker/CaracteristiqueParcelleAsyncWorker.java b/src/main/java/io/gmss/fiscad/service/worker/CaracteristiqueParcelleAsyncWorker.java new file mode 100644 index 0000000..f556186 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/service/worker/CaracteristiqueParcelleAsyncWorker.java @@ -0,0 +1,102 @@ +package io.gmss.fiscad.service.worker; + +import io.gmss.fiscad.entities.infocad.metier.Enquete; +import io.gmss.fiscad.entities.infocad.metier.Parcelle; +import io.gmss.fiscad.entities.infocad.metier.Tpe; +import io.gmss.fiscad.entities.infocad.parametre.Bloc; +import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueParcelle; +import io.gmss.fiscad.entities.metadata.MobileDataEnquete; +import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueParcelle; +import io.gmss.fiscad.entities.rfu.parametre.Caracteristique; +import io.gmss.fiscad.entities.rfu.parametre.ZoneRfu; +import io.gmss.fiscad.entities.user.User; +import io.gmss.fiscad.enums.TypeObjet; +import io.gmss.fiscad.paylaods.request.CaracteristiqueParcellePaylod; +import io.gmss.fiscad.paylaods.request.EnquetePayLoad; +import io.gmss.fiscad.repositories.infocad.metier.*; +import io.gmss.fiscad.repositories.infocad.parametre.BlocRepository; +import io.gmss.fiscad.repositories.metadata.MobileDataCaracteristiqueParcelleRepository; +import io.gmss.fiscad.repositories.metadata.MobileDataEnqueteRepository; +import io.gmss.fiscad.repositories.rfu.metier.*; +import io.gmss.fiscad.repositories.rfu.parametre.CaracteristiqueRepository; +import io.gmss.fiscad.repositories.rfu.parametre.ZoneRfuRepository; +import io.gmss.fiscad.repositories.user.UserRepository; +import io.gmss.fiscad.service.LogService; +import lombok.RequiredArgsConstructor; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.Optional; + +@Service +@RequiredArgsConstructor +public class CaracteristiqueParcelleAsyncWorker { + private final TpeRepository tpeRepository; + private final CaracteristiqueRepository caracteristiqueRepository; + private final EnqueteRepository enqueteRepository; + private final MobileDataCaracteristiqueParcelleRepository mobileDataCaracteristiqueParcelleRepository; + private final CaracteristiqueParcelleRepository caracteristiqueParcelleRepository; + private final LogService logService; + //@Async("caracteristiqueParcelleExecutor") + public void traitementAsyncCaracteristiqueParcelle(MobileDataCaracteristiqueParcelle mobileDataCaracteristiqueParcelle) { + CaracteristiqueParcellePaylod caracteristiqueParcellePaylod = mobileDataCaracteristiqueParcelle.getCaracteristiqueParcellePaylod(); + + try { + if (caracteristiqueParcellePaylod.getTerminalId() == null) { + logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEPARCELLE, "Problème de terminal", "terminal non fourni : ", mobileDataCaracteristiqueParcelle.getId()); + return; + } else { + Optional optionalTpe = tpeRepository.findById(caracteristiqueParcellePaylod.getTerminalId()); + if (optionalTpe.isEmpty()) { + logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEPARCELLE, "Problème de terminal", "terminal inexistant : ", mobileDataCaracteristiqueParcelle.getId()); + return; + } + } + + if (caracteristiqueParcellePaylod.getEnqueteId() == null) { + logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEPARCELLE, "Problème de enquete", "enquete non fourni : ", mobileDataCaracteristiqueParcelle.getId()); + return; + } else { + Optional optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueParcellePaylod.getEnqueteId(), caracteristiqueParcellePaylod.getTerminalId()); + if (optionalEnquete.isEmpty()) { + logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEPARCELLE, "Problème de enquete", "L'enquete précisée n'existe pas : ", mobileDataCaracteristiqueParcelle.getId()); + return; + } + } + CaracteristiqueParcelle caracteristiqueParcelle = new CaracteristiqueParcelle(); + caracteristiqueParcelle.setMobileDataId(mobileDataCaracteristiqueParcelle.getId()); + caracteristiqueParcelle = getCaracteristiqueParcelleFromCaracteristiqueParcellePayLoad(caracteristiqueParcelle, caracteristiqueParcellePaylod); + caracteristiqueParcelleRepository.save(caracteristiqueParcelle); + mobileDataCaracteristiqueParcelle.setTraiter(true); + mobileDataCaracteristiqueParcelleRepository.save(mobileDataCaracteristiqueParcelle); + } catch (Exception e) { + logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEPARCELLE, "Problème de inattendu", e.getMessage(), mobileDataCaracteristiqueParcelle.getId()); + } + } + + private CaracteristiqueParcelle getCaracteristiqueParcelleFromCaracteristiqueParcellePayLoad(CaracteristiqueParcelle caracteristiqueParcelle, CaracteristiqueParcellePaylod caracteristiqueParcellePaylod) { + + if (caracteristiqueParcellePaylod.getEnqueteId() != null) { + Optional optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueParcellePaylod.getEnqueteId(), caracteristiqueParcellePaylod.getTerminalId()); + + caracteristiqueParcelle.setEnquete(optionalEnquete.orElse(null)); + } + + if (caracteristiqueParcellePaylod.getCaracteristiqueId() != null) { + Optional optionalCaracteristique = caracteristiqueRepository.findById(caracteristiqueParcellePaylod.getCaracteristiqueId()); + caracteristiqueParcelle.setCaracteristique(optionalCaracteristique.orElse(null)); + } + + if (caracteristiqueParcellePaylod.getTerminalId() != null) { + Optional optionalTpe = tpeRepository.findById(caracteristiqueParcellePaylod.getTerminalId()); + caracteristiqueParcelle.setTerminal(optionalTpe.orElse(null)); + } + + caracteristiqueParcelle.setEnqueteExternalKey(caracteristiqueParcellePaylod.getEnqueteId()); + caracteristiqueParcelle.setValeur(caracteristiqueParcellePaylod.getValeur()); + caracteristiqueParcelle.setExternalKey(caracteristiqueParcellePaylod.getExternalKey()); + return caracteristiqueParcelle; + + } +} + diff --git a/src/main/java/io/gmss/fiscad/service/worker/CaracteristiqueUniteLogementAsyncWorker.java b/src/main/java/io/gmss/fiscad/service/worker/CaracteristiqueUniteLogementAsyncWorker.java new file mode 100644 index 0000000..90fe988 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/service/worker/CaracteristiqueUniteLogementAsyncWorker.java @@ -0,0 +1,106 @@ +package io.gmss.fiscad.service.worker; + +import io.gmss.fiscad.entities.infocad.metier.Enquete; +import io.gmss.fiscad.entities.infocad.metier.Tpe; +import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueBatiment; +import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueUniteLogement; +import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueBatiment; +import io.gmss.fiscad.entities.rfu.metier.CaracteristiqueUniteLogement; +import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment; +import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement; +import io.gmss.fiscad.entities.rfu.parametre.Caracteristique; +import io.gmss.fiscad.enums.TypeObjet; +import io.gmss.fiscad.paylaods.request.CaracteristiqueBatimentPaylod; +import io.gmss.fiscad.paylaods.request.CaracteristiqueUniteLogementPaylod; +import io.gmss.fiscad.repositories.infocad.metier.EnqueteRepository; +import io.gmss.fiscad.repositories.infocad.metier.TpeRepository; +import io.gmss.fiscad.repositories.metadata.MobileDataCaracteristiqueBatimentRepository; +import io.gmss.fiscad.repositories.metadata.MobileDataCaracteristiqueUniteLogementRepository; +import io.gmss.fiscad.repositories.rfu.metier.CaracteristiqueBatimentRepository; +import io.gmss.fiscad.repositories.rfu.metier.CaracteristiqueUniteLogementRepository; +import io.gmss.fiscad.repositories.rfu.metier.EnqueteBatimentRepository; +import io.gmss.fiscad.repositories.rfu.metier.EnqueteUniteLogementRepository; +import io.gmss.fiscad.repositories.rfu.parametre.CaracteristiqueRepository; +import io.gmss.fiscad.service.LogService; +import lombok.RequiredArgsConstructor; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.Optional; + +@Service +@RequiredArgsConstructor +public class CaracteristiqueUniteLogementAsyncWorker { + private final TpeRepository tpeRepository; + private final MobileDataCaracteristiqueBatimentRepository mobileDataCaracteristiqueBatimentRepository; + private final EnqueteRepository enqueteRepository; + private final CaracteristiqueRepository caracteristiqueRepository; + private final EnqueteUniteLogementRepository enqueteUniteLogementRepository; + private final CaracteristiqueUniteLogementRepository caracteristiqueUniteLogementRepository; + private final MobileDataCaracteristiqueUniteLogementRepository mobileDataCaracteristiqueUniteLogementRepository; + private final LogService logService; + //@Async("caracteristiqueUniteLogementExecutor") + public void traitementAsyncCaracteristiqueUniteLogement(MobileDataCaracteristiqueUniteLogement mobileDataCaracteristiqueUniteLogement) { + CaracteristiqueUniteLogementPaylod caracteristiqueUniteLogementPaylod = mobileDataCaracteristiqueUniteLogement.getCaracteristiqueUniteLogementPaylod(); + try { + if (caracteristiqueUniteLogementPaylod.getTerminalId() == null) { + logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEUNITELOGEMENT, "Problème de terminal", "terminal non fourni : ", mobileDataCaracteristiqueUniteLogement.getId()); + return; + } else { + Optional optionalTpe = tpeRepository.findById(caracteristiqueUniteLogementPaylod.getTerminalId()); + if (optionalTpe.isEmpty()) { + logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEUNITELOGEMENT, "Problème de terminal", "terminal inexistant : ", mobileDataCaracteristiqueUniteLogement.getId()); + return; + } + } + + if (caracteristiqueUniteLogementPaylod.getEnqueteUniteLogementId() == null) { + logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEUNITELOGEMENT, "Problème de enquete unite logement", "enquete non fourni : ", mobileDataCaracteristiqueUniteLogement.getId()); + return; + } else { + Optional optionalEnqueteUniteLogement = enqueteUniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueUniteLogementPaylod.getEnqueteUniteLogementId(), caracteristiqueUniteLogementPaylod.getTerminalId()); + if (optionalEnqueteUniteLogement.isEmpty()) { + logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEUNITELOGEMENT, "Problème de enquete unite logement", "L'enquete précisée n'existe pas : ", mobileDataCaracteristiqueUniteLogement.getId()); + return; + } + } + CaracteristiqueUniteLogement caracteristiqueUniteLogement = new CaracteristiqueUniteLogement(); + caracteristiqueUniteLogement.setMobileDataId(mobileDataCaracteristiqueUniteLogement.getId()); + caracteristiqueUniteLogement = getCaracteristiqueUniteLogementFromCaracteristiqueUniteLogementPayLoad(caracteristiqueUniteLogement, caracteristiqueUniteLogementPaylod); + caracteristiqueUniteLogementRepository.save(caracteristiqueUniteLogement); + mobileDataCaracteristiqueUniteLogement.setTraiter(true); + mobileDataCaracteristiqueUniteLogementRepository.save(mobileDataCaracteristiqueUniteLogement); + } catch (Exception e) { + logService.logTraiementAsync(TypeObjet.CARACTERISTIQUEUNITELOGEMENT, "Problème de inattendu", e.getMessage(), mobileDataCaracteristiqueUniteLogement.getId()); + } + } + + private CaracteristiqueUniteLogement getCaracteristiqueUniteLogementFromCaracteristiqueUniteLogementPayLoad(CaracteristiqueUniteLogement caracteristiqueUniteLogement, CaracteristiqueUniteLogementPaylod caracteristiqueUniteLogementPaylod) { + + if (caracteristiqueUniteLogementPaylod.getEnqueteUniteLogementId() != null) { + Optional optionalEnqueteUniteLogement = enqueteUniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueUniteLogementPaylod.getEnqueteUniteLogementId(), caracteristiqueUniteLogementPaylod.getTerminalId()); + caracteristiqueUniteLogement.setEnqueteUniteLogement(optionalEnqueteUniteLogement.orElse(null)); + } + + if (caracteristiqueUniteLogementPaylod.getCaracteristiqueId() != null) { + Optional optionalCaracteristique = caracteristiqueRepository.findById(caracteristiqueUniteLogementPaylod.getCaracteristiqueId()); + caracteristiqueUniteLogement.setCaracteristique(optionalCaracteristique.orElse(null)); + } + + if (caracteristiqueUniteLogementPaylod.getTerminalId() != null) { + Optional optionalTpe = tpeRepository.findById(caracteristiqueUniteLogementPaylod.getTerminalId()); + caracteristiqueUniteLogement.setTerminal(optionalTpe.orElse(null)); + } + if (caracteristiqueUniteLogementPaylod.getTerminalId() != null && caracteristiqueUniteLogementPaylod.getEnqueteId() != null) { + Optional optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueUniteLogementPaylod.getEnqueteId(), caracteristiqueUniteLogementPaylod.getTerminalId()); + if (optionalEnquete.isPresent()) { + caracteristiqueUniteLogement.setEnqueteId(optionalEnquete.get().getId()); + } + } + caracteristiqueUniteLogement.setEnqueteExternalKey(caracteristiqueUniteLogementPaylod.getEnqueteId()); + caracteristiqueUniteLogement.setEnqueteUniteLogementExternalKey(caracteristiqueUniteLogementPaylod.getEnqueteUniteLogementId()); + caracteristiqueUniteLogement.setValeur(caracteristiqueUniteLogementPaylod.getValeur()); + caracteristiqueUniteLogement.setExternalKey(caracteristiqueUniteLogementPaylod.getExternalKey()); + return caracteristiqueUniteLogement; + } +} diff --git a/src/main/java/io/gmss/fiscad/service/worker/EnqueteAsyncWorker.java b/src/main/java/io/gmss/fiscad/service/worker/EnqueteAsyncWorker.java new file mode 100644 index 0000000..fc33143 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/service/worker/EnqueteAsyncWorker.java @@ -0,0 +1,261 @@ +package io.gmss.fiscad.service.worker; + +import io.gmss.fiscad.entities.infocad.metier.*; +import io.gmss.fiscad.entities.infocad.parametre.Bloc; +import io.gmss.fiscad.entities.infocad.parametre.Personne; +import io.gmss.fiscad.entities.metadata.MobileDataEnquete; +import io.gmss.fiscad.entities.metadata.MobileDataUpload; +import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment; +import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement; +import io.gmss.fiscad.entities.rfu.parametre.ZoneRfu; +import io.gmss.fiscad.entities.user.User; +import io.gmss.fiscad.enums.TypeObjet; +import io.gmss.fiscad.paylaods.request.EnquetePayLoad; +import io.gmss.fiscad.paylaods.request.UploadPayLoad; +import io.gmss.fiscad.repositories.infocad.metier.*; +import io.gmss.fiscad.repositories.infocad.parametre.BlocRepository; +import io.gmss.fiscad.repositories.infocad.parametre.PersonneRepository; +import io.gmss.fiscad.repositories.metadata.MobileDataEnqueteRepository; +import io.gmss.fiscad.repositories.metadata.MobileDataUploadRepository; +import io.gmss.fiscad.repositories.rfu.metier.*; +import io.gmss.fiscad.repositories.rfu.parametre.ZoneRfuRepository; +import io.gmss.fiscad.repositories.user.UserRepository; +import io.gmss.fiscad.service.LogService; +import lombok.RequiredArgsConstructor; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.Optional; + +@Service +@RequiredArgsConstructor +public class EnqueteAsyncWorker { + private final TpeRepository tpeRepository; + private final ParcelleRepository parcelleRepository; + private final EnqueteRepository enqueteRepository; + private final EnqueteUniteLogementRepository enqueteUniteLogementRepository; + private final EnqueteBatimentRepository enqueteBatimentRepository; + private final UserRepository userRepository; + private final ZoneRfuRepository zoneRfuRepository; + private final UploadRepository uploadRepository; + private final PieceRepository pieceRepository; + private final BlocRepository blocRepository; + private final MobileDataEnqueteRepository mobileDataEnqueteRepository; + private final ActeurConcerneRepository acteurConcerneRepository; + private final CaracteristiqueParcelleRepository caracteristiqueParcelleRepository; + private final CaracteristiqueBatimentRepository caracteristiqueBatimentRepository; + private final CaracteristiqueUniteLogementRepository caracteristiqueUniteLogementRepository; + private final UniteLogementRepository uniteLogementRepository; + private final BatimentRepository batimentRepository; + private final LogService logService; + //@Async("enqueteExecutor") + public void traitementAsyncEnquete(MobileDataEnquete mobileDataEnquete) { + EnquetePayLoad enquetePayLoad=mobileDataEnquete.getEnquetePayLoad(); + try { + if (enquetePayLoad.getTerminalId() == null) { + logService.logTraiementAsync(TypeObjet.ENQUETE, "Problème de terminal", "terminal non fourni : ", mobileDataEnquete.getId()); + return; + } else { + Optional optionalTpe = tpeRepository.findById(enquetePayLoad.getTerminalId()); + if (optionalTpe.isEmpty()) { + logService.logTraiementAsync(TypeObjet.ENQUETE, "Problème de terminal", "terminal inexistant : ", mobileDataEnquete.getId()); + return; + } + } + deleteFromCodeParcelle(enquetePayLoad.getCodeParcelle()); + + if (enquetePayLoad.getUserId() == null) { + logService.logTraiementAsync(TypeObjet.ENQUETE, "Problème d'enqueteur", "L'enquêteur n'est pas précisée: ", mobileDataEnquete.getId()); + return; + } else { + Optional optionalUser = userRepository.findById(enquetePayLoad.getUserId()); + if (optionalUser.isEmpty()) { + logService.logTraiementAsync(TypeObjet.ENQUETE, "Problème d'enqueteur", "L'enquêteur précisé n'existe pas : ", mobileDataEnquete.getId()); + return; + } + } + + if (enquetePayLoad.getZoneRfuId() != null) { + Optional optionalZoneRfu = zoneRfuRepository.findById(enquetePayLoad.getZoneRfuId()); + if (optionalZoneRfu.isEmpty()) { + logService.logTraiementAsync(TypeObjet.ENQUETE, "Problème de zone rfu", "La zone rfu précisé n'existe pas : ", mobileDataEnquete.getId()); + return; + } + } + if (enquetePayLoad.getParcelleId() == null) { + logService.logTraiementAsync(TypeObjet.ENQUETE, "Problème de parcelle", "La parcelle n'est pas précisée", mobileDataEnquete.getId()); + return; + } else { + Optional optionalParcelle = parcelleRepository.findFirstByExternalKeyAndTerminal_Id(enquetePayLoad.getParcelleId(), enquetePayLoad.getTerminalId()); + if (optionalParcelle.isEmpty()) { + logService.logTraiementAsync(TypeObjet.ENQUETE, "Problème de parcelle", "La parcelle précisée n'existe pas", mobileDataEnquete.getId()); + return; + } + } + if (enquetePayLoad.getBlocId() == null) { + logService.logTraiementAsync(TypeObjet.ENQUETE, "Problème de bloc", "Le bloc n'est pas précisé", mobileDataEnquete.getId()); + return; + } else { + Optional optionalBloc = blocRepository.findById(enquetePayLoad.getBlocId()); + if (optionalBloc.isEmpty()) { + logService.logTraiementAsync(TypeObjet.ENQUETE, "Problème de bloc", "Le bloc précisé n'existe pas", mobileDataEnquete.getId()); + return; + } + } + Enquete enquete = new Enquete(); + Optional optionalEnquete=Optional.empty(); + optionalEnquete = enqueteRepository.findByMobileDataId(mobileDataEnquete.getId()); + if (optionalEnquete.isPresent()) { + enquete = optionalEnquete.get(); + }else { + optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(enquetePayLoad.getExternalKey(),enquetePayLoad.getTerminalId()); + if (optionalEnquete.isPresent()) { + enquete=optionalEnquete.get(); + } + } + enquete.setMobileDataId(mobileDataEnquete.getId()); + enquete = getEnqueteFromEnquetePayLoad(enquete, enquetePayLoad); + enqueteRepository.save(enquete); + mobileDataEnquete.setTraiter(true); + mobileDataEnqueteRepository.save(mobileDataEnquete); + + } catch (Exception e) { + logService.logTraiementAsync(TypeObjet.ENQUETE, "Problème de inattendu", e.getMessage(), mobileDataEnquete.getId()); + } + } + + private Enquete getEnqueteFromEnquetePayLoad(Enquete enquete, EnquetePayLoad enquetePayLoad) { + + if (enquetePayLoad.getUserId() != null) { + Optional optionalUser = userRepository.findById(enquetePayLoad.getUserId()); + enquete.setUser(optionalUser.orElse(null)); + } + if (enquetePayLoad.getZoneRfuId() != null) { + Optional optionalZoneRfu = zoneRfuRepository.findById(enquetePayLoad.getZoneRfuId()); + enquete.setZoneRfu(optionalZoneRfu.orElse(null)); + } + + if (enquetePayLoad.getParcelleId() != null) { + Optional optionalParcelle = parcelleRepository.findFirstByNupProvisoire(enquetePayLoad.getCodeParcelle()); + //Optional optionalParcelle = parcelleRepository.findFirstByExternalKeyAndTerminal_Id(enquetePayLoad.getParcelleId(), enquetePayLoad.getTerminalId()); + enquete.setParcelle(optionalParcelle.orElse(null)); + } + if (enquetePayLoad.getBlocId() != null) { + Optional optionalBloc = blocRepository.findById(enquetePayLoad.getBlocId()); + enquete.setBloc(optionalBloc.orElse(null)); + } + + if (enquetePayLoad.getTerminalId() != null) { + Optional optionalTpe = tpeRepository.findById(enquetePayLoad.getTerminalId()); + enquete.setTerminal(optionalTpe.orElse(null)); + } + enquete.setParcelleExternalKey(enquetePayLoad.getParcelleId()); + enquete.setStatusEnquete(enquetePayLoad.getStatusEnquete()); + enquete.setLitige(enquetePayLoad.isLitige()); + enquete.setObservationParticuliere(enquetePayLoad.getObservationParticuliere()); + enquete.setDateEnquete(enquetePayLoad.getDateEnquete()); + enquete.setDateFinalisation(enquetePayLoad.getDateFinalisation()); + enquete.setExternalKey(enquetePayLoad.getExternalKey()); + enquete.setQuartierId(enquetePayLoad.getQuartierId()); + enquete.setArrondissementId(enquetePayLoad.getArrondissementId()); + enquete.setCommuneId(enquetePayLoad.getCommuneId()); + enquete.setCommuneId(enquetePayLoad.getCommuneId()); + enquete.setDepartementId(enquetePayLoad.getDepartementId()); + enquete.setNumeroProvisoir(enquetePayLoad.getNumeroProvisoir()); + enquete.setCodeParcelle(enquetePayLoad.getCodeParcelle()); + enquete.setNomProprietaireParcelle(enquetePayLoad.getNomProprietaireParcelle()); + enquete.setCodeEquipe(enquetePayLoad.getCodeEquipe()); + enquete.setNumeroTitreFoncier(enquetePayLoad.getNumeroTitreFoncier()); + + enquete.setNumEnterParcelle(enquetePayLoad.getNumEnterParcelle()); + enquete.setNumRue(enquetePayLoad.getNumRue()); + enquete.setNomRue(enquetePayLoad.getNomRue()); + enquete.setEmplacement(enquetePayLoad.getEmplacement()); + enquete.setAltitude(enquetePayLoad.getAltitude()); + enquete.setPrecision(enquetePayLoad.getPrecision()); + enquete.setNbreCoProprietaire(enquetePayLoad.getNbreCoProprietaire()); + enquete.setNbreIndivisiaire(enquetePayLoad.getNbreIndivisiaire()); + enquete.setAutreAdresse(enquetePayLoad.getAutreAdresse()); + enquete.setSurface(enquetePayLoad.getSurface()); + enquete.setNbreBatiment(enquetePayLoad.getNbreBatiment()); + enquete.setNbrePiscine(enquetePayLoad.getNbrePiscine()); + enquete.setDateDebutExcemption(enquetePayLoad.getDateDebutExcemption()); + enquete.setDateFinExcemption(enquetePayLoad.getDateFinExcemption()); + enquete.setPersonneId(enquetePayLoad.getPersonneId()); + enquete.setAutreNumeroTitreFoncier(enquete.getAutreNumeroTitreFoncier()); + return enquete; + } + + + protected void deleteFromCodeParcelle(String codeParcelle) { + Optional optionalEnquete = enqueteRepository.findFirstByCodeParcelle(codeParcelle); + Long idEnquete = null; + if (optionalEnquete.isPresent()) { + idEnquete = optionalEnquete.get().getId(); + } + if (idEnquete != null) { + System.out.println("ENQUETE ID" + idEnquete); + try { + uploadRepository.deleteUploadByEnqueteId(idEnquete); + } catch (Exception e) { + + } + try { + pieceRepository.deletePieceByEnqueteId(idEnquete); + } catch (Exception e) { + + } + try { + acteurConcerneRepository.deleteActeurConcerneByEnquete(idEnquete); + } catch (Exception e) { + + } + try { + caracteristiqueParcelleRepository.deleteAllByEnquete_Id(idEnquete); + } catch (Exception e) { + + } + + try { + caracteristiqueBatimentRepository.deleteByEnqueteId(idEnquete); + } catch (Exception e) { + + } + + try { + caracteristiqueUniteLogementRepository.deleteByEnqueteId(idEnquete); + } catch (Exception e) { + + } + + try { + enqueteBatimentRepository.deleteAllByEnquete_Id(idEnquete); + } catch (Exception e) { + + } + + try { + enqueteUniteLogementRepository.deleteAllByEnquete_id(idEnquete); + } catch (Exception e) { + + } + + try { + uniteLogementRepository.deleteByEnqueteId(idEnquete); + } catch (Exception e) { + + } + + try { + batimentRepository.deleteByEnqueteId(idEnquete); + } catch (Exception e) { + + } + try { + enqueteRepository.deleteById(idEnquete); + } catch (Exception e) { + + } + } + } +} diff --git a/src/main/java/io/gmss/fiscad/service/worker/EnqueteBatimentAsyncWorker.java b/src/main/java/io/gmss/fiscad/service/worker/EnqueteBatimentAsyncWorker.java new file mode 100644 index 0000000..7de9f2a --- /dev/null +++ b/src/main/java/io/gmss/fiscad/service/worker/EnqueteBatimentAsyncWorker.java @@ -0,0 +1,153 @@ +package io.gmss.fiscad.service.worker; + +import io.gmss.fiscad.entities.infocad.metier.Enquete; +import io.gmss.fiscad.entities.infocad.metier.Parcelle; +import io.gmss.fiscad.entities.infocad.metier.Tpe; +import io.gmss.fiscad.entities.infocad.parametre.Bloc; +import io.gmss.fiscad.entities.infocad.parametre.Personne; +import io.gmss.fiscad.entities.metadata.MobileDataEnquete; +import io.gmss.fiscad.entities.metadata.MobileDataEnqueteBatiment; +import io.gmss.fiscad.entities.rfu.metier.Batiment; +import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment; +import io.gmss.fiscad.entities.rfu.parametre.ZoneRfu; +import io.gmss.fiscad.entities.user.User; +import io.gmss.fiscad.enums.TypeObjet; +import io.gmss.fiscad.paylaods.request.EnqueteBatimentPayload; +import io.gmss.fiscad.paylaods.request.EnquetePayLoad; +import io.gmss.fiscad.repositories.infocad.metier.*; +import io.gmss.fiscad.repositories.infocad.parametre.BlocRepository; +import io.gmss.fiscad.repositories.infocad.parametre.PersonneRepository; +import io.gmss.fiscad.repositories.metadata.MobileDataEnqueteBatimentRepository; +import io.gmss.fiscad.repositories.metadata.MobileDataEnqueteRepository; +import io.gmss.fiscad.repositories.rfu.metier.*; +import io.gmss.fiscad.repositories.rfu.parametre.ZoneRfuRepository; +import io.gmss.fiscad.repositories.user.UserRepository; +import io.gmss.fiscad.service.LogService; +import lombok.RequiredArgsConstructor; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.Optional; + +@Service +@RequiredArgsConstructor +public class EnqueteBatimentAsyncWorker { + private final TpeRepository tpeRepository; + private final MobileDataEnqueteBatimentRepository mobileDataEnqueteBatimentRepository; + private final EnqueteRepository enqueteRepository; + private final EnqueteBatimentRepository enqueteBatimentRepository; + private final UserRepository userRepository; + private final PersonneRepository personneRepository; + private final BatimentRepository batimentRepository; + private final LogService logService; + //@Async("enqueteBatimentExecutor") + public void traitementAsyncEnqueteBatiment(MobileDataEnqueteBatiment mobileDataEnqueteBatiment) { + EnqueteBatimentPayload enqueteBatimentPayload = mobileDataEnqueteBatiment.getEnqueteBatimentPayload(); + + try { + if (enqueteBatimentPayload.getTerminalId() == null) { + logService.logTraiementAsync(TypeObjet.ENQUETEBATIMENT, "Problème de terminal", "terminal non fourni : ", mobileDataEnqueteBatiment.getId()); + return; + } else { + Optional optionalTpe = tpeRepository.findById(enqueteBatimentPayload.getTerminalId()); + if (optionalTpe.isEmpty()) { + logService.logTraiementAsync(TypeObjet.ENQUETEBATIMENT, "Problème de terminal", "terminal inexistant : ", mobileDataEnqueteBatiment.getId()); + return; + } + } + + if (enqueteBatimentPayload.getEnqueteId() == null) { + logService.logTraiementAsync(TypeObjet.ENQUETEBATIMENT, "Problème de enquete", "enquete non fourni : ", mobileDataEnqueteBatiment.getId()); + return; + } else { + Optional optionalBatiment = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(enqueteBatimentPayload.getEnqueteId(), enqueteBatimentPayload.getTerminalId()); + if (optionalBatiment.isEmpty()) { + logService.logTraiementAsync(TypeObjet.ENQUETEBATIMENT, "Problème de batiment", "L'enquete précisée n'existe pas : ", mobileDataEnqueteBatiment.getId()); + return; + } + } + + + if (enqueteBatimentPayload.getBatimentId() == null) { + logService.logTraiementAsync(TypeObjet.ENQUETEBATIMENT, "Problème de batiment", "batiment non fourni : ", mobileDataEnqueteBatiment.getId()); + return; + } else { + Optional optionalBatiment = batimentRepository.findFirstByExternalKeyAndTerminal_Id(enqueteBatimentPayload.getBatimentId(), enqueteBatimentPayload.getTerminalId()); + if (optionalBatiment.isEmpty()) { + logService.logTraiementAsync(TypeObjet.ENQUETEBATIMENT, "Problème de batiment", "Le batiment précisée n'existe pas : ", mobileDataEnqueteBatiment.getId()); + return; + } + } + + EnqueteBatiment enqueteBatiment = new EnqueteBatiment(); + Optional optionalEnqueteBatiment= Optional.empty(); + optionalEnqueteBatiment = enqueteBatimentRepository.findByMobileDataId(mobileDataEnqueteBatiment.getId()); + if (optionalEnqueteBatiment.isPresent()) { + enqueteBatiment = optionalEnqueteBatiment.get(); + }else { + optionalEnqueteBatiment = enqueteBatimentRepository.findFirstByExternalKeyAndTerminal_Id(enqueteBatimentPayload.getExternalKey(),enqueteBatimentPayload.getTerminalId()); + if (optionalEnqueteBatiment.isPresent()) { + enqueteBatiment = optionalEnqueteBatiment.get(); + } + } + enqueteBatiment.setMobileDataId(mobileDataEnqueteBatiment.getId()); + enqueteBatiment = getEnqueteBatimentFromEnqueteBatimentPayLoad(enqueteBatiment, enqueteBatimentPayload); + enqueteBatimentRepository.save(enqueteBatiment); + mobileDataEnqueteBatiment.setTraiter(true); + mobileDataEnqueteBatimentRepository.save(mobileDataEnqueteBatiment); + } catch (Exception e) { + logService.logTraiementAsync(TypeObjet.ENQUETEBATIMENT, "Problème de inattendu", e.getMessage(), mobileDataEnqueteBatiment.getId()); + } + } + + + private EnqueteBatiment getEnqueteBatimentFromEnqueteBatimentPayLoad(EnqueteBatiment enqueteBatiment, EnqueteBatimentPayload enqueteBatimentPayload) { + enqueteBatiment.setSurfaceAuSol(enqueteBatimentPayload.getSurfaceAuSol()); + enqueteBatiment.setAutreMenuisierie(enqueteBatimentPayload.getAutreMenuisierie()); + enqueteBatiment.setAutreMur(enqueteBatimentPayload.getAutreMur()); + enqueteBatiment.setSbee(enqueteBatimentPayload.isSbee()); + enqueteBatiment.setNumCompteurSbee(enqueteBatimentPayload.getNumCompteurSbee()); + enqueteBatiment.setSoneb(enqueteBatimentPayload.isSoneb()); + enqueteBatiment.setNumCompteurSoneb(enqueteBatimentPayload.getNumCompteurSoneb()); + enqueteBatiment.setNbreLotUnite(enqueteBatimentPayload.getNbreLotUnite()); + enqueteBatiment.setNbreUniteLocation(enqueteBatimentPayload.getNbreUniteLocation()); + enqueteBatiment.setSurfaceLouee(enqueteBatimentPayload.getSurfaceLouee()); + enqueteBatiment.setNbreMenage(enqueteBatimentPayload.getNbreMenage()); + enqueteBatiment.setNbreHabitant(enqueteBatimentPayload.getNbreHabitant()); + enqueteBatiment.setValeurMensuelleLocation(enqueteBatimentPayload.getValeurMensuelleLocation()); + enqueteBatiment.setNbreMoisLocation(enqueteBatimentPayload.getNbreMoisLocation()); + enqueteBatiment.setAutreCaracteristiquePhysique(enqueteBatimentPayload.getAutreCaracteristiquePhysique()); + enqueteBatiment.setDateDebutExcemption(enqueteBatimentPayload.getDateDebutExcemption()); + enqueteBatiment.setDateFinExcemption(enqueteBatimentPayload.getDateFinExcemption()); + enqueteBatiment.setExternalKey(enqueteBatimentPayload.getExternalKey()); + enqueteBatiment.setEnqueteExternalKey(enqueteBatimentPayload.getEnqueteId()); + enqueteBatiment.setPersonneExternalKey(enqueteBatimentPayload.getPersonneId()); + enqueteBatiment.setBatimentExternalKey(enqueteBatimentPayload.getBatimentId()); + + if (enqueteBatimentPayload.getPersonneId() != null) { + Optional optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(enqueteBatimentPayload.getPersonneId(), enqueteBatimentPayload.getTerminalId()); + enqueteBatiment.setPersonne(optionalPersonne.orElse(null)); + } + + if (enqueteBatimentPayload.getBatimentId() != null) { + Optional optionalBatiment = batimentRepository.findFirstByExternalKeyAndTerminal_Id(enqueteBatimentPayload.getBatimentId(), enqueteBatimentPayload.getTerminalId()); + enqueteBatiment.setBatiment(optionalBatiment.orElse(null)); + } + + if (enqueteBatimentPayload.getEnqueteId() != null) { + Optional optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(enqueteBatimentPayload.getEnqueteId(), enqueteBatimentPayload.getTerminalId()); + enqueteBatiment.setEnquete(optionalEnquete.orElse(null)); + } + if (enqueteBatimentPayload.getTerminalId() != null) { + Optional optionalTpe = tpeRepository.findById(enqueteBatimentPayload.getTerminalId()); + enqueteBatiment.setTerminal(optionalTpe.orElse(null)); + } + + if (enqueteBatimentPayload.getUserId() != null) { + Optional optionalUser = userRepository.findById(enqueteBatimentPayload.getUserId()); + enqueteBatiment.setUser(optionalUser.orElse(null)); + } + + return enqueteBatiment; + } +} diff --git a/src/main/java/io/gmss/fiscad/service/worker/EnqueteUniteLogementAsyncWorker.java b/src/main/java/io/gmss/fiscad/service/worker/EnqueteUniteLogementAsyncWorker.java new file mode 100644 index 0000000..3aafbc0 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/service/worker/EnqueteUniteLogementAsyncWorker.java @@ -0,0 +1,151 @@ +package io.gmss.fiscad.service.worker; + +import io.gmss.fiscad.entities.infocad.metier.Enquete; +import io.gmss.fiscad.entities.infocad.metier.Parcelle; +import io.gmss.fiscad.entities.infocad.metier.Tpe; +import io.gmss.fiscad.entities.infocad.parametre.Bloc; +import io.gmss.fiscad.entities.infocad.parametre.Personne; +import io.gmss.fiscad.entities.metadata.MobileDataEnquete; +import io.gmss.fiscad.entities.metadata.MobileDataEnqueteUniteLogement; +import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement; +import io.gmss.fiscad.entities.rfu.metier.UniteLogement; +import io.gmss.fiscad.entities.rfu.parametre.ZoneRfu; +import io.gmss.fiscad.entities.user.User; +import io.gmss.fiscad.enums.TypeObjet; +import io.gmss.fiscad.paylaods.request.EnquetePayLoad; +import io.gmss.fiscad.paylaods.request.EnqueteUniteLogementPayload; +import io.gmss.fiscad.repositories.infocad.metier.*; +import io.gmss.fiscad.repositories.infocad.parametre.BlocRepository; +import io.gmss.fiscad.repositories.infocad.parametre.PersonneRepository; +import io.gmss.fiscad.repositories.metadata.MobileDataEnqueteRepository; +import io.gmss.fiscad.repositories.metadata.MobileDataEnqueteUniteLogementRepository; +import io.gmss.fiscad.repositories.rfu.metier.*; +import io.gmss.fiscad.repositories.rfu.parametre.ZoneRfuRepository; +import io.gmss.fiscad.repositories.user.UserRepository; +import io.gmss.fiscad.service.LogService; +import lombok.RequiredArgsConstructor; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.Optional; + +@Service +@RequiredArgsConstructor +public class EnqueteUniteLogementAsyncWorker { + private final TpeRepository tpeRepository; + private final MobileDataEnqueteUniteLogementRepository mobileDataEnqueteUniteLogementRepository; + private final EnqueteRepository enqueteRepository; + private final EnqueteUniteLogementRepository enqueteUniteLogementRepository; + private final PersonneRepository personneRepository; + private final UserRepository userRepository; + private final UniteLogementRepository uniteLogementRepository; + private final LogService logService; + //@Async("enqueteUniteLogementExecutor") + public void traitementAsyncEnqueteUniteLogement(MobileDataEnqueteUniteLogement mobileDataEnqueteUniteLogement) { + EnqueteUniteLogementPayload enqueteUniteLogementPayload = mobileDataEnqueteUniteLogement.getEnqueteUniteLogementPayload(); + + try { + if (enqueteUniteLogementPayload.getTerminalId() == null) { + logService.logTraiementAsync(TypeObjet.ENQUETEUNITELOGEMENT, "Problème de terminal", "terminal non fourni : ", mobileDataEnqueteUniteLogement.getId()); + return; + } else { + Optional optionalTpe = tpeRepository.findById(enqueteUniteLogementPayload.getTerminalId()); + if (optionalTpe.isEmpty()) { + logService.logTraiementAsync(TypeObjet.ENQUETEUNITELOGEMENT, "Problème de terminal", "terminal inexistant : ", mobileDataEnqueteUniteLogement.getId()); + return; + } + } + + if (enqueteUniteLogementPayload.getEnqueteId() == null) { + logService.logTraiementAsync(TypeObjet.ENQUETEUNITELOGEMENT, "Problème de enquete", "enquete non fourni : ", mobileDataEnqueteUniteLogement.getId()); + return; + } else { + Optional optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(enqueteUniteLogementPayload.getEnqueteId(), enqueteUniteLogementPayload.getTerminalId()); + if (optionalEnquete.isEmpty()) { + logService.logTraiementAsync(TypeObjet.ENQUETEUNITELOGEMENT, "Problème de batiment", "L'enquete précisée n'existe pas : ", mobileDataEnqueteUniteLogement.getId()); + return; + } + } + + + if (enqueteUniteLogementPayload.getUniteLogementId() == null) { + logService.logTraiementAsync(TypeObjet.ENQUETEUNITELOGEMENT, "Problème de Unite logement", "batiment non fourni : ", mobileDataEnqueteUniteLogement.getId()); + return; + } else { + Optional optionalUniteLogement = uniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(enqueteUniteLogementPayload.getUniteLogementId(), enqueteUniteLogementPayload.getTerminalId()); + if (optionalUniteLogement.isEmpty()) { + logService.logTraiementAsync(TypeObjet.ENQUETEUNITELOGEMENT, "Problème de Unite de logement", "Le batiment précisée n'existe pas : ", mobileDataEnqueteUniteLogement.getId()); + return; + } + } + + EnqueteUniteLogement enqueteUniteLogement = new EnqueteUniteLogement(); + Optional optionalEnqueteUniteLogement= Optional.empty(); + optionalEnqueteUniteLogement = enqueteUniteLogementRepository.findByMobileDataId(mobileDataEnqueteUniteLogement.getId()); + if (optionalEnqueteUniteLogement.isPresent()) { + enqueteUniteLogement = optionalEnqueteUniteLogement.get(); + }else { + optionalEnqueteUniteLogement = enqueteUniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(enqueteUniteLogementPayload.getUniteLogementId(),enqueteUniteLogementPayload.getTerminalId()); + if (optionalEnqueteUniteLogement.isPresent()) { + enqueteUniteLogement = optionalEnqueteUniteLogement.get(); + } + } + enqueteUniteLogement.setMobileDataId(mobileDataEnqueteUniteLogement.getId()); + enqueteUniteLogement = getEnqueteUniteLogementFromEnqueteUniteLogementPayLoad(enqueteUniteLogement, enqueteUniteLogementPayload); + enqueteUniteLogementRepository.save(enqueteUniteLogement); + mobileDataEnqueteUniteLogement.setTraiter(true); + mobileDataEnqueteUniteLogementRepository.save(mobileDataEnqueteUniteLogement); + } catch (Exception e) { + logService.logTraiementAsync(TypeObjet.ENQUETEUNITELOGEMENT, "Problème de inattendu", e.getMessage(), mobileDataEnqueteUniteLogement.getId()); + } + } + + + private EnqueteUniteLogement getEnqueteUniteLogementFromEnqueteUniteLogementPayLoad(EnqueteUniteLogement enqueteUniteLogement, EnqueteUniteLogementPayload enqueteUniteLogementPayload) { + + if (enqueteUniteLogementPayload.getPersonneId() != null) { + Optional optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(enqueteUniteLogementPayload.getPersonneId(), enqueteUniteLogementPayload.getTerminalId()); + enqueteUniteLogement.setPersonne(optionalPersonne.orElse(null)); + } + + if (enqueteUniteLogementPayload.getUniteLogementId() != null) { + Optional optionalUniteLogement = uniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(enqueteUniteLogementPayload.getUniteLogementId(), enqueteUniteLogementPayload.getTerminalId()); + enqueteUniteLogement.setUniteLogement(optionalUniteLogement.orElse(null)); + } + + if (enqueteUniteLogementPayload.getEnqueteId() != null) { + Optional optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(enqueteUniteLogementPayload.getEnqueteId(), enqueteUniteLogementPayload.getTerminalId()); + enqueteUniteLogement.setEnquete(optionalEnquete.orElse(null)); + } + if (enqueteUniteLogementPayload.getTerminalId() != null) { + Optional optionalTpe = tpeRepository.findById(enqueteUniteLogementPayload.getTerminalId()); + enqueteUniteLogement.setTerminal(optionalTpe.orElse(null)); + } + + if (enqueteUniteLogementPayload.getUserId() != null) { + Optional optionalUser = userRepository.findById(enqueteUniteLogementPayload.getUserId()); + enqueteUniteLogement.setUser(optionalUser.orElse(null)); + } + enqueteUniteLogement.setEnqueteExternalKey(enqueteUniteLogementPayload.getEnqueteId()); + enqueteUniteLogement.setSurface(enqueteUniteLogementPayload.getSurface()); + enqueteUniteLogement.setNbrePiece(enqueteUniteLogementPayload.getNbrePiece()); + enqueteUniteLogement.setNbreHabitant(enqueteUniteLogementPayload.getNbreHabitant()); + enqueteUniteLogement.setNbreMenage(enqueteUniteLogementPayload.getNbreMenage()); + enqueteUniteLogement.setEnLocation(enqueteUniteLogementPayload.isEnLocation()); + enqueteUniteLogement.setMontantMensuelLoyer(enqueteUniteLogementPayload.getMontantMensuelLoyer()); + enqueteUniteLogement.setNbreMoisEnLocation(enqueteUniteLogementPayload.getNbreMoisEnLocation()); + enqueteUniteLogement.setMontantLocatifAnnuelDeclare(enqueteUniteLogementPayload.getMontantLocatifAnnuelDeclare()); + enqueteUniteLogement.setSurfaceLouee(enqueteUniteLogementPayload.getSurfaceLouee()); + enqueteUniteLogement.setSbee(enqueteUniteLogementPayload.isSbee()); + enqueteUniteLogement.setSoneb(enqueteUniteLogementPayload.isSoneb()); + enqueteUniteLogement.setNumCompteurSbee(enqueteUniteLogementPayload.getNumCompteurSbee()); + enqueteUniteLogement.setNumCompteurSoneb(enqueteUniteLogementPayload.getNumCompteurSoneb()); + enqueteUniteLogement.setDateDebutExcemption(enqueteUniteLogementPayload.getDateDebutExcemption()); + enqueteUniteLogement.setDateFinExcemption(enqueteUniteLogementPayload.getDateFinExcemption()); + enqueteUniteLogement.setExternalKey(enqueteUniteLogementPayload.getExternalKey()); + enqueteUniteLogement.setPersonneExternalKey(enqueteUniteLogementPayload.getPersonneId()); + enqueteUniteLogement.setUniteLogementExternalKey(enqueteUniteLogementPayload.getUniteLogementId()); + + return enqueteUniteLogement; + } +} diff --git a/src/main/java/io/gmss/fiscad/service/worker/MembreGroupeAsyncWorker.java b/src/main/java/io/gmss/fiscad/service/worker/MembreGroupeAsyncWorker.java new file mode 100644 index 0000000..e7062cb --- /dev/null +++ b/src/main/java/io/gmss/fiscad/service/worker/MembreGroupeAsyncWorker.java @@ -0,0 +1,133 @@ +package io.gmss.fiscad.service.worker; + +import io.gmss.fiscad.entities.decoupage.Commune; +import io.gmss.fiscad.entities.decoupage.Nationalite; +import io.gmss.fiscad.entities.infocad.metier.Enquete; +import io.gmss.fiscad.entities.infocad.metier.MembreGroupe; +import io.gmss.fiscad.entities.infocad.metier.Tpe; +import io.gmss.fiscad.entities.infocad.parametre.*; +import io.gmss.fiscad.entities.metadata.MobileDataMembreGroupe; +import io.gmss.fiscad.entities.metadata.MobileDataPersonne; +import io.gmss.fiscad.enums.Categorie; +import io.gmss.fiscad.enums.TypeObjet; +import io.gmss.fiscad.paylaods.request.MembreGroupePayLoad; +import io.gmss.fiscad.paylaods.request.PersonnePayLoad; +import io.gmss.fiscad.repositories.decoupage.CommuneRepository; +import io.gmss.fiscad.repositories.decoupage.NationaliteRepository; +import io.gmss.fiscad.repositories.infocad.metier.*; +import io.gmss.fiscad.repositories.infocad.parametre.*; +import io.gmss.fiscad.repositories.metadata.MobileDataMembreGroupeRepository; +import io.gmss.fiscad.repositories.metadata.MobileDataPersonneRepository; +import io.gmss.fiscad.service.LogService; +import lombok.RequiredArgsConstructor; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.Optional; + +@Service +@RequiredArgsConstructor +public class MembreGroupeAsyncWorker { + private final TpeRepository tpeRepository; + private final PersonneRepository personneRepository; + private final EnqueteRepository enqueteRepository; + private final TypeRepresentationRepository typeRepresentationRepository; + private final MobileDataMembreGroupeRepository mobileDataMembreGroupeRepository; + private final MembreGroupeRepository membreGroupeRepository; + private final PositionRepresentationRepository positionRepresentationRepository; + private final LogService logService; + //@Async("membreGroupeExecutor") + public void traitementAsyncMembreGroupe(MobileDataMembreGroupe mobileDataMembreGroupe) { + MembreGroupePayLoad membreGroupePayLoad=mobileDataMembreGroupe.getMembreGroupePayLoad(); + try { + if (membreGroupePayLoad.getTerminalId() == null) { + logService.logTraiementAsync(TypeObjet.MEMBREGROUPE, "Problème de terminal", "terminal non fourni : ", mobileDataMembreGroupe.getId()); + return; + } else { + Optional optionalTpe = tpeRepository.findById(membreGroupePayLoad.getTerminalId()); + if (optionalTpe.isEmpty()) { + logService.logTraiementAsync(TypeObjet.MEMBREGROUPE, "Problème de terminal", "terminal inexistant : ", mobileDataMembreGroupe.getId()); + return; + } + } + if (membreGroupePayLoad.getPersonneRepresentanteId() == null) { + logService.logTraiementAsync(TypeObjet.MEMBREGROUPE, "Problème de Personne représentante", "La personne représentante n'est pas précisée : ", mobileDataMembreGroupe.getId()); + return; + } else { + Optional optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(membreGroupePayLoad.getPersonneRepresentanteId(), membreGroupePayLoad.getTerminalId()); + if (optionalPersonne.isEmpty()) { + logService.logTraiementAsync(TypeObjet.MEMBREGROUPE, "Problème de Personne représentante", "La personne représentante n'existe pas précisée : ", mobileDataMembreGroupe.getId()); + return; + } + } + if (membreGroupePayLoad.getPersonneRepresenteeId() == null) { + logService.logTraiementAsync(TypeObjet.MEMBREGROUPE, "Problème de Personne représentée", "La personne représentante n'est pas précisée : ", mobileDataMembreGroupe.getId()); + return; + } else { + Optional optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(membreGroupePayLoad.getPersonneRepresenteeId(), membreGroupePayLoad.getTerminalId()); + if (optionalPersonne.isEmpty()) { + logService.logTraiementAsync(TypeObjet.MEMBREGROUPE, "Problème de Personne représentante", "La personne représentante n'existe pas : ", mobileDataMembreGroupe.getId()); + return; + } + } + MembreGroupe membreGroupe = new MembreGroupe(); + Optional optionalMembreGroupe = membreGroupeRepository.findByMobileDataId(mobileDataMembreGroupe.getId()); + if (optionalMembreGroupe.isPresent()) { + membreGroupe = optionalMembreGroupe.get(); + }else { + optionalMembreGroupe = membreGroupeRepository.findFirstByExternalKeyAndTerminal_Id(membreGroupePayLoad.getExternalKey(),membreGroupePayLoad.getTerminalId()); + if (optionalMembreGroupe.isPresent()) { + membreGroupe=optionalMembreGroupe.get(); + } + } + membreGroupe.setMobileDataId(mobileDataMembreGroupe.getId()); + membreGroupe = getMembreGroupeFromMembreGroupePayLoad(membreGroupe, membreGroupePayLoad); + membreGroupeRepository.save(membreGroupe); + mobileDataMembreGroupe.setTraiter(true); + mobileDataMembreGroupeRepository.save(mobileDataMembreGroupe); + + } catch (Exception e) { + logService.logTraiementAsync(TypeObjet.MEMBREGROUPE, "Problème inattendu", e.getMessage(), mobileDataMembreGroupe.getId()); + + } + } + + + private MembreGroupe getMembreGroupeFromMembreGroupePayLoad(MembreGroupe membreGroupe, MembreGroupePayLoad membreGroupePayLoad) { + if (membreGroupePayLoad.getPersonneRepresentanteId() != null) { + Optional optionalRepresentant = personneRepository.findFirstByExternalKeyAndTerminal_Id(membreGroupePayLoad.getPersonneRepresentanteId(), membreGroupePayLoad.getTerminalId()); + membreGroupe.setPersonneRepresantante(optionalRepresentant.orElse(null)); + } + if (membreGroupePayLoad.getPersonneRepresenteeId() != null) { + Optional optionalRepresente = personneRepository.findFirstByExternalKeyAndTerminal_Id(membreGroupePayLoad.getPersonneRepresenteeId(), membreGroupePayLoad.getTerminalId()); + membreGroupe.setPersonneRepresantee(optionalRepresente.orElse(null)); + } + + if (membreGroupePayLoad.getPositionRepresentationId() != null) { + Optional optionalPositionRepresentation = positionRepresentationRepository.findById(membreGroupePayLoad.getPositionRepresentationId()); + membreGroupe.setPositionRepresentation(optionalPositionRepresentation.orElse(null)); + } + if (membreGroupePayLoad.getTerminalId() != null) { + Optional optionalTpe = tpeRepository.findById(membreGroupePayLoad.getTerminalId()); + membreGroupe.setTerminal(optionalTpe.orElse(null)); + } + + if (membreGroupePayLoad.getTypeRepresentationId() != null) { + Optional optionalTypeRepresentation = typeRepresentationRepository.findById(membreGroupePayLoad.getTypeRepresentationId()); + membreGroupe.setExternalKey(membreGroupePayLoad.getExternalKey()); + + } + + if (membreGroupePayLoad.getEnqueteId() != null) { + Optional optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(membreGroupePayLoad.getEnqueteId(), membreGroupePayLoad.getTerminalId()); + membreGroupe.setExternalKey(membreGroupePayLoad.getExternalKey()); + membreGroupe.setEnqueteId(optionalEnquete.get().getId()); + } + membreGroupe.setMax_numero_acteur_concerne_id(membreGroupePayLoad.getMax_numero_acteur_concerne_id()); + membreGroupe.setMax_numero_piece_id(membreGroupePayLoad.getMax_numero_piece_id()); + membreGroupe.setEnqueteExternalKey(membreGroupePayLoad.getEnqueteId()); + membreGroupe.setBlocId(membreGroupePayLoad.getBlocId()); + membreGroupe.setObservation(membreGroupePayLoad.getObservation()); + return membreGroupe; + } +} diff --git a/src/main/java/io/gmss/fiscad/service/worker/ParcelleAsyncWorker.java b/src/main/java/io/gmss/fiscad/service/worker/ParcelleAsyncWorker.java new file mode 100644 index 0000000..0a81485 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/service/worker/ParcelleAsyncWorker.java @@ -0,0 +1,109 @@ +package io.gmss.fiscad.service.worker; + +import io.gmss.fiscad.entities.decoupage.Quartier; +import io.gmss.fiscad.entities.infocad.metier.Enquete; +import io.gmss.fiscad.entities.infocad.metier.Parcelle; +import io.gmss.fiscad.entities.infocad.metier.Tpe; +import io.gmss.fiscad.entities.infocad.parametre.Bloc; +import io.gmss.fiscad.entities.infocad.parametre.NatureDomaine; +import io.gmss.fiscad.entities.metadata.MobileDataEnquete; +import io.gmss.fiscad.entities.metadata.MobileDataParcelle; +import io.gmss.fiscad.entities.rfu.parametre.ZoneRfu; +import io.gmss.fiscad.entities.user.User; +import io.gmss.fiscad.enums.TypeObjet; +import io.gmss.fiscad.paylaods.request.EnquetePayLoad; +import io.gmss.fiscad.paylaods.request.ParcellePayLoad; +import io.gmss.fiscad.repositories.decoupage.QuartierRepository; +import io.gmss.fiscad.repositories.infocad.metier.*; +import io.gmss.fiscad.repositories.infocad.parametre.BlocRepository; +import io.gmss.fiscad.repositories.infocad.parametre.NatureDomaineRepository; +import io.gmss.fiscad.repositories.metadata.MobileDataEnqueteRepository; +import io.gmss.fiscad.repositories.metadata.MobileDataParcelleRepository; +import io.gmss.fiscad.repositories.rfu.metier.*; +import io.gmss.fiscad.repositories.rfu.parametre.ZoneRfuRepository; +import io.gmss.fiscad.repositories.user.UserRepository; +import io.gmss.fiscad.service.LogService; +import lombok.RequiredArgsConstructor; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.Optional; + +@Service +@RequiredArgsConstructor +public class ParcelleAsyncWorker { + private final TpeRepository tpeRepository; + private final ParcelleRepository parcelleRepository; + private final MobileDataParcelleRepository mobileDataParcelleRepository; + private final NatureDomaineRepository natureDomaineRepository; + private final QuartierRepository quartierRepository; + private final LogService logService; + //@Async("parcelleExecutor") + public void traitementAsyncParcelle(MobileDataParcelle mobileDataParcelle) { + ParcellePayLoad parcellePayLoad = mobileDataParcelle.getParcellePayLoad(); + + try { + if (parcellePayLoad.getTerminalId() == null) { + logService.logTraiementAsync(TypeObjet.PARCELLE, "Problème de terminal", "terminal non fourni : ", mobileDataParcelle.getId()); + return; + } else { + Optional optionalTpe = tpeRepository.findById(parcellePayLoad.getTerminalId()); + if (optionalTpe.isEmpty()) { + logService.logTraiementAsync(TypeObjet.PARCELLE, "Problème de terminal", "terminal inexistant : ", mobileDataParcelle.getId()); + return; + } + } + + Parcelle parcelle = new Parcelle(); + Optional optionalParcelle=Optional.empty(); + optionalParcelle = parcelleRepository.findByMobileDataId(mobileDataParcelle.getId()); + if (optionalParcelle.isPresent()) { + parcelle = optionalParcelle.get(); + }else { + optionalParcelle = parcelleRepository.findFirstByExternalKeyAndTerminal_Id(parcellePayLoad.getExternalKey(),parcellePayLoad.getTerminalId()); + if (optionalParcelle.isPresent()) { + parcelle = optionalParcelle.get(); + } + } + parcelle.setMobileDataId(mobileDataParcelle.getId()); + parcelle = getParcelleFromParcellePayLoad(parcelle, parcellePayLoad); + parcelleRepository.save(parcelle); + mobileDataParcelle.setTraiter(true); + mobileDataParcelleRepository.save(mobileDataParcelle); + } catch (Exception e) { + logService.logTraiementAsync(TypeObjet.PARCELLE, "Problème de inattendu", e.getMessage(), mobileDataParcelle.getId()); + } + } + + + private Parcelle getParcelleFromParcellePayLoad(Parcelle parcelle, ParcellePayLoad parcellePayLoad) { + if (parcellePayLoad.getNatureDomaineId() != null) { + Optional optionalNatureDomaine = natureDomaineRepository.findById(parcellePayLoad.getNatureDomaineId()); + parcelle.setNatureDomaine(optionalNatureDomaine.orElse(null)); + } + if (parcellePayLoad.getQuartierId() != null) { + Optional optionalQuartier = quartierRepository.findById(parcellePayLoad.getQuartierId()); + parcelle.setQuartier(optionalQuartier.orElse(null)); + } + if (parcellePayLoad.getTerminalId() != null) { + Optional optionalTpe = tpeRepository.findById(parcellePayLoad.getTerminalId()); + parcelle.setTerminal(optionalTpe.orElse(null)); + } + parcelle.setExternalKey(parcellePayLoad.getExternalKey()); + parcelle.setNupProvisoire(parcellePayLoad.getNupProvisoire()); + parcelle.setQ(parcellePayLoad.getQ()); + parcelle.setI(parcellePayLoad.getI()); + parcelle.setP(parcellePayLoad.getP()); + parcelle.setNup(parcellePayLoad.getNup()); + parcelle.setLongitude(parcellePayLoad.getLongitude()); + parcelle.setLatitude(parcellePayLoad.getLatitude()); + parcelle.setNumTitreFoncier(parcellePayLoad.getNumTitreFoncier()); + parcelle.setTypeDomaineId(parcellePayLoad.getTypeDomaineId()); + parcelle.setNumeroProvisoire(parcellePayLoad.getNumeroProvisoire()); + parcelle.setBlocId(parcellePayLoad.getBlocId()); + parcelle.setObservation(parcellePayLoad.getObservation()); + parcelle.setSituationGeographique(parcellePayLoad.getSituationGeographique()); + parcelle.setAutreNumeroTitreFoncier(parcellePayLoad.getAutreNumeroTitreFoncier()); + return parcelle; + } +} diff --git a/src/main/java/io/gmss/fiscad/service/worker/PersonneAsyncWorker.java b/src/main/java/io/gmss/fiscad/service/worker/PersonneAsyncWorker.java new file mode 100644 index 0000000..35b48b3 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/service/worker/PersonneAsyncWorker.java @@ -0,0 +1,145 @@ +package io.gmss.fiscad.service.worker; + +import io.gmss.fiscad.entities.decoupage.Commune; +import io.gmss.fiscad.entities.decoupage.Nationalite; +import io.gmss.fiscad.entities.infocad.metier.ActeurConcerne; +import io.gmss.fiscad.entities.infocad.metier.Enquete; +import io.gmss.fiscad.entities.infocad.metier.Tpe; +import io.gmss.fiscad.entities.infocad.parametre.*; +import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne; +import io.gmss.fiscad.entities.metadata.MobileDataPersonne; +import io.gmss.fiscad.enums.Categorie; +import io.gmss.fiscad.enums.TypeObjet; +import io.gmss.fiscad.paylaods.request.ActeurConcernePayLoad; +import io.gmss.fiscad.paylaods.request.PersonnePayLoad; +import io.gmss.fiscad.repositories.decoupage.CommuneRepository; +import io.gmss.fiscad.repositories.decoupage.NationaliteRepository; +import io.gmss.fiscad.repositories.infocad.metier.*; +import io.gmss.fiscad.repositories.infocad.parametre.*; +import io.gmss.fiscad.repositories.metadata.MobileDataActeurConcerneRepository; +import io.gmss.fiscad.repositories.metadata.MobileDataPersonneRepository; +import io.gmss.fiscad.service.LogService; +import lombok.RequiredArgsConstructor; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.Optional; + +@Service +@RequiredArgsConstructor +public class PersonneAsyncWorker { + private final TpeRepository tpeRepository; + private final SituationMatrimonialeRepository situationMatrimonialeRepository; + private final NationaliteRepository nationaliteRepository; + private final PersonneRepository personneRepository; + private final ProfessionRepository professionRepository; + private final CommuneRepository communeRepository; + private final MobileDataPersonneRepository mobileDataPersonneRepository; + private final TypePersonneRepository typePersonneRepository; + private final UploadRepository uploadRepository; + private final MembreGroupeRepository membreGroupeRepository; + private final PieceRepository pieceRepository; + private final LogService logService; + //@Async("personneExecutor") + public void traitementAsyncPersonne(MobileDataPersonne mobileDataPersonne) { + PersonnePayLoad personnePayLoad = mobileDataPersonne.getPersonnePayLoad(); + try { + if (personnePayLoad.getTerminalId() == null) { + logService.logTraiementAsync(TypeObjet.PERSONNE, "Problème de terminal", "terminal non fourni : ", mobileDataPersonne.getId()); + return; + } else { + Optional optionalTpe = tpeRepository.findById(personnePayLoad.getTerminalId()); + if (optionalTpe.isEmpty()) { + logService.logTraiementAsync(TypeObjet.PERSONNE, "Problème de terminal", "terminal inexistant : ", mobileDataPersonne.getId()); + return; + } + } + Personne personne = new Personne(); + Optional optionalPersonne = personneRepository.findByMobileDataId(mobileDataPersonne.getId()); + if (optionalPersonne.isPresent()) { + personne = optionalPersonne.get(); + deleteFromPersonne(personne.getId()); + } else { + optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(personnePayLoad.getExternalKey(), personnePayLoad.getTerminalId()); + if (optionalPersonne.isPresent()) { + personne = optionalPersonne.get(); + deleteFromPersonne(personne.getId()); + } + } + personne.setMobileDataId(mobileDataPersonne.getId()); + personne = getPersonneFromPersonnePayLoad(personne, personnePayLoad); + personne = personneRepository.save(personne); + personnePayLoad.setIdBackend(personne.getId()); + mobileDataPersonne.setTraiter(true); + mobileDataPersonneRepository.save(mobileDataPersonne); + } catch (Exception e) { + logService.logTraiementAsync(TypeObjet.PERSONNE, "Problème de terminal", e.getMessage(), mobileDataPersonne.getId()); + } + } + + private Personne getPersonneFromPersonnePayLoad(Personne personne, PersonnePayLoad personnePayLoad) { + if (personnePayLoad.getCommuneId() != null) { + Optional optionalCommune = communeRepository.findById(personnePayLoad.getCommuneId()); + personne.setCommune(optionalCommune.orElse(null)); + } + if (personnePayLoad.getNationaliteId() != null) { + Optional optionalNationalite = nationaliteRepository.findById(personnePayLoad.getNationaliteId()); + personne.setNationalite(optionalNationalite.orElse(null)); + } + if (personnePayLoad.getProfessionId() != null) { + Optional optionalProfession = professionRepository.findById(personnePayLoad.getProfessionId()); + personne.setProfession(optionalProfession.orElse(null)); + } + if (personnePayLoad.getTypePersonneId() != null) { + Optional optionalTypePersonne = typePersonneRepository.findById(personnePayLoad.getTypePersonneId()); + personne.setTypePersonne(optionalTypePersonne.orElse(null)); + } else { + Optional optionalTypePersonne = typePersonneRepository.findFirstByCategorie(Categorie.PERSONNE_PHYSIQUE); + personne.setTypePersonne(optionalTypePersonne.orElse(null)); + + } + if (personnePayLoad.getSituationMatrimonialeId() != null) { + Optional optionalSituationMatrimoniale = situationMatrimonialeRepository.findById(personnePayLoad.getSituationMatrimonialeId()); + personne.setSituationMatrimoniale(optionalSituationMatrimoniale.orElse(null)); + } + if (personnePayLoad.getTerminalId() != null) { + Optional optionalTpe = tpeRepository.findById(personnePayLoad.getTerminalId()); + personne.setTerminal(optionalTpe.orElse(null)); + } + + personne.setCategorie(personnePayLoad.getCategorie()); + personne.setAdresse(personnePayLoad.getAdresse()); + personne.setIfu(personnePayLoad.getIfu()); + personne.setDateNaissanceOuConsti(personnePayLoad.getDateNaissanceOuConsti()); + personne.setLieuNaissance(personnePayLoad.getLieuNaissance()); + personne.setNomOuSigle(personnePayLoad.getNomOuSigle()); + personne.setNpi(personnePayLoad.getNpi()); + personne.setNumRavip(personnePayLoad.getNumRavip()); + personne.setPrenomOuRaisonSociale(personnePayLoad.getPrenomOuRaisonSociale()); + personne.setTel1(personnePayLoad.getTel1()); + personne.setTel2(personnePayLoad.getTel2()); + personne.setExternalKey(personnePayLoad.getExternalKey()); + + personne.setHaveRepresentant(personnePayLoad.getHaveRepresentant()); + personne.setRavipQuestion(personnePayLoad.getRavipQuestion()); + personne.setAge(personnePayLoad.getAge()); + personne.setNomJeuneFille(personnePayLoad.getNomJeuneFille()); + personne.setNomMere(personnePayLoad.getNomMere()); + personne.setPrenomMere(personnePayLoad.getPrenomMere()); + personne.setIndicatifTel1(personnePayLoad.getIndicatifTel1()); + personne.setIndicatifTel2(personnePayLoad.getIndicatifTel2()); + personne.setSexe(personnePayLoad.getSexe()); + personne.setMustHaveRepresentant(personnePayLoad.getMustHaveRepresentant()); + personne.setFilePath(personnePayLoad.getFilePath()); + personne.setObservation(personnePayLoad.getObservation()); + return personne; + } + private void deleteFromPersonne(Long idBackend) { + uploadRepository.deleteUploadByMembreGroupe_PersonneRepresantee_Id(idBackend); + uploadRepository.deleteUploadByPiece_Personne_Id(idBackend); + uploadRepository.deleteUploadByPersonne_Id(idBackend); + membreGroupeRepository.deleteMembreGroupeByPersonneRepresantante_Id(idBackend); + pieceRepository.deletePieceByPersonne_Id(idBackend); + } + +} diff --git a/src/main/java/io/gmss/fiscad/service/worker/PieceAsyncWorker.java b/src/main/java/io/gmss/fiscad/service/worker/PieceAsyncWorker.java new file mode 100644 index 0000000..c517a3c --- /dev/null +++ b/src/main/java/io/gmss/fiscad/service/worker/PieceAsyncWorker.java @@ -0,0 +1,136 @@ +package io.gmss.fiscad.service.worker; + +import io.gmss.fiscad.entities.decoupage.Commune; +import io.gmss.fiscad.entities.decoupage.Nationalite; +import io.gmss.fiscad.entities.infocad.metier.ActeurConcerne; +import io.gmss.fiscad.entities.infocad.metier.Enquete; +import io.gmss.fiscad.entities.infocad.metier.Piece; +import io.gmss.fiscad.entities.infocad.metier.Tpe; +import io.gmss.fiscad.entities.infocad.parametre.*; +import io.gmss.fiscad.entities.metadata.MobileDataPersonne; +import io.gmss.fiscad.entities.metadata.MobileDataPiece; +import io.gmss.fiscad.enums.Categorie; +import io.gmss.fiscad.enums.TypeObjet; +import io.gmss.fiscad.paylaods.request.PersonnePayLoad; +import io.gmss.fiscad.paylaods.request.PiecePayLoad; +import io.gmss.fiscad.repositories.decoupage.CommuneRepository; +import io.gmss.fiscad.repositories.decoupage.NationaliteRepository; +import io.gmss.fiscad.repositories.infocad.metier.*; +import io.gmss.fiscad.repositories.infocad.parametre.*; +import io.gmss.fiscad.repositories.metadata.MobileDataPersonneRepository; +import io.gmss.fiscad.repositories.metadata.MobileDataPieceRepository; +import io.gmss.fiscad.service.LogService; +import lombok.RequiredArgsConstructor; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.Optional; + +@Service +@RequiredArgsConstructor +public class PieceAsyncWorker { + private final TpeRepository tpeRepository; + private final PersonneRepository personneRepository; + private final EnqueteRepository enqueteRepository; + private final SourceDroitRepository sourceDroitRepository; + private final ModeAcquisitionRepository modeAcquisitionRepository; + private final ActeurConcerneRepository acteurConcerneRepository; + private final TypePieceRepository typePieceRepository; + private final MobileDataPieceRepository mobileDataPieceRepository; + private final PieceRepository pieceRepository; + private final LogService logService; + + //@Async("pieceExecutor") + public void traitementAsyncPiece(MobileDataPiece mobileDataPiece) { + PiecePayLoad piecePayLoad=mobileDataPiece.getPiecePayLoad(); + try { + if (piecePayLoad.getTerminalId() == null) { + logService.logTraiementAsync(TypeObjet.PIECE, "Problème de terminal", "terminal non fourni : ", mobileDataPiece.getId()); + return; + } else { + Optional optionalTpe = tpeRepository.findById(piecePayLoad.getTerminalId()); + if (optionalTpe.isEmpty()) { + logService.logTraiementAsync(TypeObjet.PIECE, "Problème de terminal", "terminal inexistant : ", mobileDataPiece.getId()); + return; + } + } + Piece piece = new Piece(); + Optional optionalPiece=Optional.empty(); + optionalPiece = pieceRepository.findByMobileDataId(mobileDataPiece.getId()); + if (optionalPiece.isPresent()) { + piece = optionalPiece.get(); + }else { + optionalPiece = pieceRepository.findFirstByExternalKeyAndTerminal_Id(piecePayLoad.getExternalKey(),piecePayLoad.getTerminalId()); + if (optionalPiece.isPresent()) { + piece=optionalPiece.get(); + } + } + piece.setMobileDataId(mobileDataPiece.getId()); + piece = getPieceFromPiecePayLoad(piece, piecePayLoad); + pieceRepository.save(piece); + mobileDataPiece.setTraiter(true); + mobileDataPieceRepository.save(mobileDataPiece); + } catch (Exception e) { + logService.logTraiementAsync(TypeObjet.PIECE, "Erreur inattendue", e.getMessage(), mobileDataPiece.getId()); + } + } + + + private Piece getPieceFromPiecePayLoad(Piece piece, PiecePayLoad piecePayLoad) { + if (piecePayLoad.getTypePieceId() != null) { + Optional optionalTypePiece = typePieceRepository.findById(piecePayLoad.getTypePieceId()); + piece.setTypePiece(optionalTypePiece.orElse(null)); + } else { + piece.setTypePiece(null); + } + if (piecePayLoad.getPersonneId() != null) { + Optional optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(piecePayLoad.getPersonneId(), piecePayLoad.getTerminalId()); + piece.setPersonne(optionalPersonne.orElse(null)); + } else { + piece.setPersonne(null); + } + if (piecePayLoad.getActeurConcerneId() != null) { + Optional optionalActeurConcerne = acteurConcerneRepository.findFirstByExternalKeyAndTerminal_Id(piecePayLoad.getActeurConcerneId(), piecePayLoad.getTerminalId()); + piece.setActeurConcerne(optionalActeurConcerne.orElse(null)); + } else { + piece.setActeurConcerne(null); + } + if (piecePayLoad.getModeAcquisitionId() != null) { + Optional optionalModeAcquisition = modeAcquisitionRepository.findById(piecePayLoad.getModeAcquisitionId()); + piece.setModeAcquisition(optionalModeAcquisition.orElse(null)); + } else { + piece.setModeAcquisition(null); + } + if (piecePayLoad.getSourceDroitId() != null) { + Optional optionalSourceDroit = sourceDroitRepository.findById(piecePayLoad.getSourceDroitId()); + piece.setSourceDroit(optionalSourceDroit.orElse(null)); + } else { + piece.setSourceDroit(null); + } + if (piecePayLoad.getTerminalId() != null) { + Optional optionalTpe = tpeRepository.findById(piecePayLoad.getTerminalId()); + piece.setTerminal(optionalTpe.orElse(null)); + } + + if (piecePayLoad.getTerminalId() != null && piecePayLoad.getEnqueteId() != null) { + Optional optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(piecePayLoad.getEnqueteId(), piecePayLoad.getTerminalId()); + if (optionalEnquete.isPresent()) { + piece.setEnqueteId(optionalEnquete.get().getId()); + } + } + + piece.setActeurConcerneExternalKey(piecePayLoad.getActeurConcerneId()); + piece.setPersonneExternalKey(piecePayLoad.getPersonneId()); + piece.setEnqueteExternalKey(piecePayLoad.getEnqueteId()); + piece.setNumeroPiece(piecePayLoad.getNumeroPiece()); + piece.setUrl(piecePayLoad.getUrl()); + piece.setExternalKey(piecePayLoad.getExternalKey()); + piece.setDateExpiration(piecePayLoad.getDateExpiration()); + piece.setMax_numero_piece_id(piecePayLoad.getMax_numero_piece_id()); + piece.setMax_numero_acteur_concerne_id(piecePayLoad.getMax_numero_acteur_concerne_id()); + piece.setEnqueteId(piecePayLoad.getEnqueteId()); + piece.setBlocId(piecePayLoad.getBlocId()); + piece.setEnqueteExternalKey(piecePayLoad.getEnqueteId()); + return piece; + } +} diff --git a/src/main/java/io/gmss/fiscad/service/worker/UniteLogementAsyncWorker.java b/src/main/java/io/gmss/fiscad/service/worker/UniteLogementAsyncWorker.java new file mode 100644 index 0000000..a3990cc --- /dev/null +++ b/src/main/java/io/gmss/fiscad/service/worker/UniteLogementAsyncWorker.java @@ -0,0 +1,125 @@ +package io.gmss.fiscad.service.worker; + +import io.gmss.fiscad.entities.infocad.metier.Enquete; +import io.gmss.fiscad.entities.infocad.metier.Parcelle; +import io.gmss.fiscad.entities.infocad.metier.Tpe; +import io.gmss.fiscad.entities.infocad.parametre.Bloc; +import io.gmss.fiscad.entities.metadata.MobileDataEnquete; +import io.gmss.fiscad.entities.metadata.MobileDataUniteLogement; +import io.gmss.fiscad.entities.rfu.metier.Batiment; +import io.gmss.fiscad.entities.rfu.metier.UniteLogement; +import io.gmss.fiscad.entities.rfu.parametre.ZoneRfu; +import io.gmss.fiscad.entities.user.User; +import io.gmss.fiscad.enums.TypeObjet; +import io.gmss.fiscad.paylaods.request.EnquetePayLoad; +import io.gmss.fiscad.paylaods.request.UniteLogementPaylaod; +import io.gmss.fiscad.repositories.infocad.metier.*; +import io.gmss.fiscad.repositories.infocad.parametre.BlocRepository; +import io.gmss.fiscad.repositories.metadata.MobileDataEnqueteRepository; +import io.gmss.fiscad.repositories.metadata.MobileDataUniteLogementRepository; +import io.gmss.fiscad.repositories.rfu.metier.*; +import io.gmss.fiscad.repositories.rfu.parametre.ZoneRfuRepository; +import io.gmss.fiscad.repositories.user.UserRepository; +import io.gmss.fiscad.service.LogService; +import lombok.RequiredArgsConstructor; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.Optional; + +@Service +@RequiredArgsConstructor +public class UniteLogementAsyncWorker { + private final TpeRepository tpeRepository; + private final MobileDataUniteLogementRepository mobileDataUniteLogementRepository; + private final EnqueteRepository enqueteRepository; + private final EnqueteUniteLogementRepository enqueteUniteLogementRepository; + private final EnqueteBatimentRepository enqueteBatimentRepository; + private final UserRepository userRepository; + private final ZoneRfuRepository zoneRfuRepository; + private final UploadRepository uploadRepository; + private final PieceRepository pieceRepository; + private final BlocRepository blocRepository; + private final MobileDataEnqueteRepository mobileDataEnqueteRepository; + private final ActeurConcerneRepository acteurConcerneRepository; + private final CaracteristiqueParcelleRepository caracteristiqueParcelleRepository; + private final CaracteristiqueBatimentRepository caracteristiqueBatimentRepository; + private final CaracteristiqueUniteLogementRepository caracteristiqueUniteLogementRepository; + private final UniteLogementRepository uniteLogementRepository; + private final BatimentRepository batimentRepository; + private final LogService logService; + //@Async("uniteLogementExecutor") + public void traitementAsyncUniteLogement(MobileDataUniteLogement mobileDataUniteLogement) { + UniteLogementPaylaod uniteLogementPaylaod = mobileDataUniteLogement.getUniteLogementPaylaod(); + + try { + if (uniteLogementPaylaod.getTerminalId() == null) { + logService.logTraiementAsync(TypeObjet.UNITELOGEMENT, "Problème de terminal", "terminal non fourni : ", mobileDataUniteLogement.getId()); + return; + } else { + Optional optionalTpe = tpeRepository.findById(uniteLogementPaylaod.getTerminalId()); + if (optionalTpe.isEmpty()) { + logService.logTraiementAsync(TypeObjet.UNITELOGEMENT, "Problème de terminal", "terminal inexistant : ", mobileDataUniteLogement.getId()); + return; + } + } + + if (uniteLogementPaylaod.getBatimentId() == null) { + logService.logTraiementAsync(TypeObjet.UNITELOGEMENT, "Problème de batiment", "batiment non fourni : ", mobileDataUniteLogement.getId()); + return; + } else { + Optional optionalBatiment = batimentRepository.findFirstByExternalKeyAndTerminal_Id(uniteLogementPaylaod.getBatimentId(), uniteLogementPaylaod.getTerminalId()); + if (optionalBatiment.isEmpty()) { + logService.logTraiementAsync(TypeObjet.UNITELOGEMENT, "Problème de batiment", "Le batiment précisée n'existe pas : ", mobileDataUniteLogement.getId()); + return; + } + } + + UniteLogement uniteLogement = new UniteLogement(); + Optional optionalUniteLogement= Optional.empty(); + optionalUniteLogement = uniteLogementRepository.findByMobileDataId(mobileDataUniteLogement.getId()); + if (optionalUniteLogement.isPresent()) { + uniteLogement = optionalUniteLogement.get(); + }else { + optionalUniteLogement = uniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(uniteLogementPaylaod.getExternalKey(),uniteLogementPaylaod.getTerminalId()); + if (optionalUniteLogement.isPresent()) { + uniteLogement = optionalUniteLogement.get(); + } + } + uniteLogement.setMobileDataId(mobileDataUniteLogement.getId()); + uniteLogement = getUniteLogementFromUniteLogementPayLoad(uniteLogement, uniteLogementPaylaod); + uniteLogementRepository.save(uniteLogement); + mobileDataUniteLogement.setTraiter(true); + mobileDataUniteLogementRepository.save(mobileDataUniteLogement); + } catch (Exception e) { + logService.logTraiementAsync(TypeObjet.UNITELOGEMENT, "Problème de inattendu", e.getMessage(), mobileDataUniteLogement.getId()); + } + } + + + private UniteLogement getUniteLogementFromUniteLogementPayLoad(UniteLogement uniteLogement, UniteLogementPaylaod uniteLogementPaylaod) { + + if (uniteLogementPaylaod.getBatimentId() != null) { + Optional optionalBatiment = batimentRepository.findFirstByExternalKeyAndTerminal_Id(uniteLogementPaylaod.getBatimentId(), uniteLogementPaylaod.getTerminalId()); + uniteLogement.setBatiment(optionalBatiment.orElse(null)); + } + + if (uniteLogementPaylaod.getTerminalId() != null) { + Optional optionalTpe = tpeRepository.findById(uniteLogementPaylaod.getTerminalId()); + uniteLogement.setTerminal(optionalTpe.orElse(null)); + } + if (uniteLogementPaylaod.getTerminalId() != null && uniteLogementPaylaod.getEnqueteId() != null) { + Optional optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(uniteLogementPaylaod.getEnqueteId(), uniteLogementPaylaod.getTerminalId()); + if (optionalEnquete.isPresent()) { + uniteLogement.setEnqueteId(optionalEnquete.get().getId()); + } + } + uniteLogement.setEnqueteExternalKey(uniteLogementPaylaod.getEnqueteId()); + uniteLogement.setNul(uniteLogementPaylaod.getNul()); + uniteLogement.setNumeroEtage(uniteLogementPaylaod.getNumeroEtage()); + uniteLogement.setCode(uniteLogementPaylaod.getCode()); + uniteLogement.setExternalKey(uniteLogementPaylaod.getExternalKey()); + uniteLogement.setBatimentExternalKey(uniteLogementPaylaod.getBatimentId()); + return uniteLogement; + } +} diff --git a/src/main/java/io/gmss/fiscad/service/worker/UploadAsyncWorker.java b/src/main/java/io/gmss/fiscad/service/worker/UploadAsyncWorker.java new file mode 100644 index 0000000..a064dbf --- /dev/null +++ b/src/main/java/io/gmss/fiscad/service/worker/UploadAsyncWorker.java @@ -0,0 +1,124 @@ +package io.gmss.fiscad.service.worker; + +import io.gmss.fiscad.entities.infocad.metier.*; +import io.gmss.fiscad.entities.infocad.parametre.ModeAcquisition; +import io.gmss.fiscad.entities.infocad.parametre.Personne; +import io.gmss.fiscad.entities.infocad.parametre.SourceDroit; +import io.gmss.fiscad.entities.infocad.parametre.TypePiece; +import io.gmss.fiscad.entities.metadata.MobileDataPiece; +import io.gmss.fiscad.entities.metadata.MobileDataUpload; +import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment; +import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement; +import io.gmss.fiscad.enums.TypeObjet; +import io.gmss.fiscad.paylaods.request.PiecePayLoad; +import io.gmss.fiscad.paylaods.request.UploadPayLoad; +import io.gmss.fiscad.repositories.infocad.metier.*; +import io.gmss.fiscad.repositories.infocad.parametre.ModeAcquisitionRepository; +import io.gmss.fiscad.repositories.infocad.parametre.PersonneRepository; +import io.gmss.fiscad.repositories.infocad.parametre.SourceDroitRepository; +import io.gmss.fiscad.repositories.infocad.parametre.TypePieceRepository; +import io.gmss.fiscad.repositories.metadata.MobileDataPieceRepository; +import io.gmss.fiscad.repositories.metadata.MobileDataUploadRepository; +import io.gmss.fiscad.repositories.rfu.metier.EnqueteBatimentRepository; +import io.gmss.fiscad.repositories.rfu.metier.EnqueteUniteLogementRepository; +import io.gmss.fiscad.service.LogService; +import lombok.RequiredArgsConstructor; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.Optional; + +@Service +@RequiredArgsConstructor +public class UploadAsyncWorker { + private final TpeRepository tpeRepository; + private final PersonneRepository personneRepository; + private final EnqueteRepository enqueteRepository; + private final EnqueteUniteLogementRepository enqueteUniteLogementRepository; + private final EnqueteBatimentRepository enqueteBatimentRepository; + private final MembreGroupeRepository membreGroupeRepository; + private final MobileDataUploadRepository mobileDataUploadRepository; + private final UploadRepository uploadRepository; + private final PieceRepository pieceRepository; + private final LogService logService; + //@Async("uploadExecutor") + public void traitementAsyncUpload(MobileDataUpload mobileDataUpload) { + UploadPayLoad uploadPayLoad = mobileDataUpload.getUploadPayLoad(); + try { + if (uploadPayLoad.getTerminalId() == null) { + logService.logTraiementAsync(TypeObjet.UPLOAD, "Problème de terminal", "terminal non fourni : ", mobileDataUpload.getId()); + return; + } else { + Optional optionalTpe = tpeRepository.findById(uploadPayLoad.getTerminalId()); + if (optionalTpe.isEmpty()) { + logService.logTraiementAsync(TypeObjet.UPLOAD, "Problème de terminal", "terminal inexistant : ", mobileDataUpload.getId()); + return; + } + } + Upload upload = new Upload(); + upload.setMobileDataId(mobileDataUpload.getId()); + upload = getUploadFromUplaodPayLoad(upload, mobileDataUpload); + uploadRepository.save(upload); + mobileDataUpload.setTraiter(true); + mobileDataUploadRepository.save(mobileDataUpload); + } catch (Exception e) { + logService.logTraiementAsync(TypeObjet.UPLOAD, "Problème de inattendu", e.getMessage(), mobileDataUpload.getId()); + } + } + + + public Upload getUploadFromUplaodPayLoad(Upload upload, MobileDataUpload mobileDataUpload) { + UploadPayLoad uploadPayLoad= mobileDataUpload.getUploadPayLoad(); + + if (uploadPayLoad.getTerminalId() != null) { + Optional optionalTpe = tpeRepository.findById(uploadPayLoad.getTerminalId()); + upload.setTerminal(optionalTpe.orElse(null)); + } + if (uploadPayLoad.getPieceId() != null) { + Optional optionalPiece = pieceRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getPieceId(), uploadPayLoad.getTerminalId()); + upload.setPiece(optionalPiece.orElse(null)); + } + if (uploadPayLoad.getMembreGroupeId() != null) { + Optional optionalMembreGroupe = membreGroupeRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getMembreGroupeId(), uploadPayLoad.getTerminalId()); + upload.setMembreGroupe(optionalMembreGroupe.orElse(null)); + } + if (uploadPayLoad.getPersonneId() != null) { + Optional optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getPersonneId(), uploadPayLoad.getTerminalId()); + upload.setPersonne(optionalPersonne.orElse(null)); + } + if (uploadPayLoad.getEnqueteBatimentId() != null) { + Optional optionalEnqueteBatiment = enqueteBatimentRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getEnqueteBatimentId(), uploadPayLoad.getTerminalId()); + upload.setEnqueteBatiment(optionalEnqueteBatiment.orElse(null)); + } + if (uploadPayLoad.getEnqueteUniteLogementId() != null) { + Optional optionalEnqueteUniteLogement = enqueteUniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getEnqueteUniteLogementId(), uploadPayLoad.getTerminalId()); + upload.setEnqueteUniteLogement(optionalEnqueteUniteLogement.orElse(null)); + } + + if (uploadPayLoad.getTerminalId() != null && uploadPayLoad.getEnqueteId() != null) { + Optional optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getEnqueteId(), uploadPayLoad.getTerminalId()); + if (optionalEnquete.isPresent()) { + upload.setEnqueteId(optionalEnquete.get().getId()); + } + } + // String fileName = fileStorageService.storeFile(uploadPayLoad.getFile()); + upload.setExternalKey(uploadPayLoad.getExternalKey()); + upload.setFileName(mobileDataUpload.getFileName()); + upload.setMimeType(mobileDataUpload.getMimeType()); + upload.setSize(mobileDataUpload.getSize()); + upload.setOriginalFileName(mobileDataUpload.getOriginalFileName()); + upload.setName(uploadPayLoad.getName()); + upload.setFilePath(mobileDataUpload.getFilePath()); + upload.setMax_numero_upload_id(uploadPayLoad.getMax_numero_upload_id()); + upload.setMax_numero_piece_id(uploadPayLoad.getMax_numero_piece_id()); + upload.setMax_numero_acteur_concerne_id(uploadPayLoad.getMax_numero_acteur_concerne_id()); + upload.setEnqueteExternalKey(uploadPayLoad.getEnqueteId()); + upload.setBlocId(uploadPayLoad.getBlocId()); + upload.setEnqueteBatimentExternalKey(uploadPayLoad.getEnqueteBatimentId()); + upload.setEnqueteUniteLogementExternalKey(uploadPayLoad.getEnqueteUniteLogementId()); + upload.setPieceExternalKey(uploadPayLoad.getPieceId()); + upload.setPersonneExternalKey(uploadPayLoad.getPersonneId()); + upload = uploadRepository.save(upload); + return upload; + } +} diff --git a/uploads/01767dc3e7814b6780142937a09da3f1.jpeg b/uploads/01767dc3e7814b6780142937a09da3f1.jpeg new file mode 100644 index 0000000..46b60b6 Binary files /dev/null and b/uploads/01767dc3e7814b6780142937a09da3f1.jpeg differ diff --git a/uploads/019d3a9715e647d380ecc27e968bdfce.pdf b/uploads/019d3a9715e647d380ecc27e968bdfce.pdf new file mode 100644 index 0000000..3b8aa9a Binary files /dev/null and b/uploads/019d3a9715e647d380ecc27e968bdfce.pdf differ diff --git a/uploads/023be0a9ab454a21a575588c8b997e29.pdf b/uploads/023be0a9ab454a21a575588c8b997e29.pdf new file mode 100644 index 0000000..d386e88 Binary files /dev/null and b/uploads/023be0a9ab454a21a575588c8b997e29.pdf differ diff --git a/uploads/034eda20627f4834a957ad091c88445f.jpeg b/uploads/034eda20627f4834a957ad091c88445f.jpeg new file mode 100644 index 0000000..72b9165 Binary files /dev/null and b/uploads/034eda20627f4834a957ad091c88445f.jpeg differ diff --git a/uploads/0390e109dc86435bb77439f8db465e20.jpeg b/uploads/0390e109dc86435bb77439f8db465e20.jpeg new file mode 100644 index 0000000..dca660c Binary files /dev/null and b/uploads/0390e109dc86435bb77439f8db465e20.jpeg differ diff --git a/uploads/074a286ec4194105be584ca5b797d894.pdf b/uploads/074a286ec4194105be584ca5b797d894.pdf new file mode 100644 index 0000000..94e9338 Binary files /dev/null and b/uploads/074a286ec4194105be584ca5b797d894.pdf differ diff --git a/uploads/08f6b7db48c44700a7f4cb2b8186badd.jpeg b/uploads/08f6b7db48c44700a7f4cb2b8186badd.jpeg new file mode 100644 index 0000000..dca660c Binary files /dev/null and b/uploads/08f6b7db48c44700a7f4cb2b8186badd.jpeg differ diff --git a/uploads/0ba57da22a614067a18333e4b843fa4c.jpeg b/uploads/0ba57da22a614067a18333e4b843fa4c.jpeg new file mode 100644 index 0000000..dca660c Binary files /dev/null and b/uploads/0ba57da22a614067a18333e4b843fa4c.jpeg differ diff --git a/uploads/0c41b6f04120461c9188577ca47daf43.pdf b/uploads/0c41b6f04120461c9188577ca47daf43.pdf new file mode 100644 index 0000000..901e595 Binary files /dev/null and b/uploads/0c41b6f04120461c9188577ca47daf43.pdf differ diff --git a/uploads/0efe7a4bd0bb4a1f8c93255146e314f8.jpeg b/uploads/0efe7a4bd0bb4a1f8c93255146e314f8.jpeg new file mode 100644 index 0000000..a2bd25c Binary files /dev/null and b/uploads/0efe7a4bd0bb4a1f8c93255146e314f8.jpeg differ diff --git a/uploads/112a93596e114e7c991c60639316c2c5.pdf b/uploads/112a93596e114e7c991c60639316c2c5.pdf new file mode 100644 index 0000000..b6609b7 Binary files /dev/null and b/uploads/112a93596e114e7c991c60639316c2c5.pdf differ diff --git a/uploads/1147148547fd4106a2a0f7c8b5bb3349.jpeg b/uploads/1147148547fd4106a2a0f7c8b5bb3349.jpeg new file mode 100644 index 0000000..2601ee8 Binary files /dev/null and b/uploads/1147148547fd4106a2a0f7c8b5bb3349.jpeg differ diff --git a/uploads/1158085f198d4aafa9f8fe1928c03c37.jpeg b/uploads/1158085f198d4aafa9f8fe1928c03c37.jpeg new file mode 100644 index 0000000..c4a9e95 Binary files /dev/null and b/uploads/1158085f198d4aafa9f8fe1928c03c37.jpeg differ diff --git a/uploads/139be6974b794701966b40903f4c0344.pdf b/uploads/139be6974b794701966b40903f4c0344.pdf new file mode 100644 index 0000000..3b8aa9a Binary files /dev/null and b/uploads/139be6974b794701966b40903f4c0344.pdf differ diff --git a/uploads/15e84c9f90624f42b521cb5125a63dcd.jpeg b/uploads/15e84c9f90624f42b521cb5125a63dcd.jpeg new file mode 100644 index 0000000..af3031d Binary files /dev/null and b/uploads/15e84c9f90624f42b521cb5125a63dcd.jpeg differ diff --git a/uploads/176bf625ee224a3fbaf2c2d41574e8e6.pdf b/uploads/176bf625ee224a3fbaf2c2d41574e8e6.pdf new file mode 100644 index 0000000..3b8aa9a Binary files /dev/null and b/uploads/176bf625ee224a3fbaf2c2d41574e8e6.pdf differ diff --git a/uploads/1979c495a5be479c90685d81e15048d1.jpeg b/uploads/1979c495a5be479c90685d81e15048d1.jpeg new file mode 100644 index 0000000..2601ee8 Binary files /dev/null and b/uploads/1979c495a5be479c90685d81e15048d1.jpeg differ diff --git a/uploads/1bf6e88810544c3eb18d7f4f9c3feb32.pdf b/uploads/1bf6e88810544c3eb18d7f4f9c3feb32.pdf new file mode 100644 index 0000000..40b78d7 Binary files /dev/null and b/uploads/1bf6e88810544c3eb18d7f4f9c3feb32.pdf differ diff --git a/uploads/1f719d4654eb424fa6f2f5f212233e8d.pdf b/uploads/1f719d4654eb424fa6f2f5f212233e8d.pdf new file mode 100644 index 0000000..d386e88 Binary files /dev/null and b/uploads/1f719d4654eb424fa6f2f5f212233e8d.pdf differ diff --git a/uploads/20bf0122eb354391bb7032a9c406245f.jpeg b/uploads/20bf0122eb354391bb7032a9c406245f.jpeg new file mode 100644 index 0000000..cd60126 Binary files /dev/null and b/uploads/20bf0122eb354391bb7032a9c406245f.jpeg differ diff --git a/uploads/32d2f8639c6d4563845f9ec651b3f94b.jpeg b/uploads/32d2f8639c6d4563845f9ec651b3f94b.jpeg new file mode 100644 index 0000000..7fd8133 Binary files /dev/null and b/uploads/32d2f8639c6d4563845f9ec651b3f94b.jpeg differ diff --git a/uploads/333c6ac7b5ed41338696dfcf12ceb537.pdf b/uploads/333c6ac7b5ed41338696dfcf12ceb537.pdf new file mode 100644 index 0000000..d386e88 Binary files /dev/null and b/uploads/333c6ac7b5ed41338696dfcf12ceb537.pdf differ diff --git a/uploads/351d5ac60c0544dea37fe71adba7f101.pdf b/uploads/351d5ac60c0544dea37fe71adba7f101.pdf new file mode 100644 index 0000000..2b07963 Binary files /dev/null and b/uploads/351d5ac60c0544dea37fe71adba7f101.pdf differ diff --git a/uploads/3960e7c6721c485890f633f5b910d0ab.pdf b/uploads/3960e7c6721c485890f633f5b910d0ab.pdf new file mode 100644 index 0000000..6065399 Binary files /dev/null and b/uploads/3960e7c6721c485890f633f5b910d0ab.pdf differ diff --git a/uploads/3b6a42b9bfc54ab3b1684cb601fdc4d5.jpeg b/uploads/3b6a42b9bfc54ab3b1684cb601fdc4d5.jpeg new file mode 100644 index 0000000..8731696 Binary files /dev/null and b/uploads/3b6a42b9bfc54ab3b1684cb601fdc4d5.jpeg differ diff --git a/uploads/3c07f14e0a454f0cb5fb2af64e1e3f73.jpeg b/uploads/3c07f14e0a454f0cb5fb2af64e1e3f73.jpeg new file mode 100644 index 0000000..8731696 Binary files /dev/null and b/uploads/3c07f14e0a454f0cb5fb2af64e1e3f73.jpeg differ diff --git a/uploads/3cf3b9cdabd5462082a18054f9aa96b1.jpeg b/uploads/3cf3b9cdabd5462082a18054f9aa96b1.jpeg new file mode 100644 index 0000000..2601ee8 Binary files /dev/null and b/uploads/3cf3b9cdabd5462082a18054f9aa96b1.jpeg differ diff --git a/uploads/3fee7a75a5934c1787bf3f2396e4ec34.pdf b/uploads/3fee7a75a5934c1787bf3f2396e4ec34.pdf new file mode 100644 index 0000000..d386e88 Binary files /dev/null and b/uploads/3fee7a75a5934c1787bf3f2396e4ec34.pdf differ diff --git a/uploads/40a1db6892264fc7b0fd4359924a3a9a.pdf b/uploads/40a1db6892264fc7b0fd4359924a3a9a.pdf new file mode 100644 index 0000000..40b78d7 Binary files /dev/null and b/uploads/40a1db6892264fc7b0fd4359924a3a9a.pdf differ diff --git a/uploads/42c2c345a8dc43c19068229ce0d25f14.jpeg b/uploads/42c2c345a8dc43c19068229ce0d25f14.jpeg new file mode 100644 index 0000000..46b60b6 Binary files /dev/null and b/uploads/42c2c345a8dc43c19068229ce0d25f14.jpeg differ diff --git a/uploads/46c1252ac6ae48d7b23a0472f8aed594.pdf b/uploads/46c1252ac6ae48d7b23a0472f8aed594.pdf new file mode 100644 index 0000000..3b8aa9a Binary files /dev/null and b/uploads/46c1252ac6ae48d7b23a0472f8aed594.pdf differ diff --git a/uploads/47942f7e3af74c79a84f2d6e9bd69d1a.jpeg b/uploads/47942f7e3af74c79a84f2d6e9bd69d1a.jpeg new file mode 100644 index 0000000..cd60126 Binary files /dev/null and b/uploads/47942f7e3af74c79a84f2d6e9bd69d1a.jpeg differ diff --git a/uploads/49392c83b5104b2f8074f0a649735738.jpeg b/uploads/49392c83b5104b2f8074f0a649735738.jpeg new file mode 100644 index 0000000..46b60b6 Binary files /dev/null and b/uploads/49392c83b5104b2f8074f0a649735738.jpeg differ diff --git a/uploads/4e3e6223d9624d3a8f203ec60015edcf.jpeg b/uploads/4e3e6223d9624d3a8f203ec60015edcf.jpeg new file mode 100644 index 0000000..72b9165 Binary files /dev/null and b/uploads/4e3e6223d9624d3a8f203ec60015edcf.jpeg differ diff --git a/uploads/4e46562f40fa43bbb83e67108f5e2b4c.pdf b/uploads/4e46562f40fa43bbb83e67108f5e2b4c.pdf new file mode 100644 index 0000000..b533fe1 Binary files /dev/null and b/uploads/4e46562f40fa43bbb83e67108f5e2b4c.pdf differ diff --git a/uploads/5168d3535ce6415c9647a68f63186afe.pdf b/uploads/5168d3535ce6415c9647a68f63186afe.pdf new file mode 100644 index 0000000..901e595 Binary files /dev/null and b/uploads/5168d3535ce6415c9647a68f63186afe.pdf differ diff --git a/uploads/546d05c424f3428281f68d403613a956.jpeg b/uploads/546d05c424f3428281f68d403613a956.jpeg new file mode 100644 index 0000000..7fd8133 Binary files /dev/null and b/uploads/546d05c424f3428281f68d403613a956.jpeg differ diff --git a/uploads/555287cc84b84d8893ba1aa5703e0f70.pdf b/uploads/555287cc84b84d8893ba1aa5703e0f70.pdf new file mode 100644 index 0000000..3b8aa9a Binary files /dev/null and b/uploads/555287cc84b84d8893ba1aa5703e0f70.pdf differ diff --git a/uploads/55d19f8c0b1746d389998d4666d700bb.jpeg b/uploads/55d19f8c0b1746d389998d4666d700bb.jpeg new file mode 100644 index 0000000..46b60b6 Binary files /dev/null and b/uploads/55d19f8c0b1746d389998d4666d700bb.jpeg differ diff --git a/uploads/5847a854b0aa4046ab2e8d1fe76ef16d.pdf b/uploads/5847a854b0aa4046ab2e8d1fe76ef16d.pdf new file mode 100644 index 0000000..d386e88 Binary files /dev/null and b/uploads/5847a854b0aa4046ab2e8d1fe76ef16d.pdf differ diff --git a/uploads/5cb7b226891d4b0fa6cb63e0e4806638.jpeg b/uploads/5cb7b226891d4b0fa6cb63e0e4806638.jpeg new file mode 100644 index 0000000..c047f92 Binary files /dev/null and b/uploads/5cb7b226891d4b0fa6cb63e0e4806638.jpeg differ diff --git a/uploads/5deea13f7d62476587b32e745c4b0b16.pdf b/uploads/5deea13f7d62476587b32e745c4b0b16.pdf new file mode 100644 index 0000000..94e9338 Binary files /dev/null and b/uploads/5deea13f7d62476587b32e745c4b0b16.pdf differ diff --git a/uploads/5f6dfd8e59eb49219b7a0dbc3e156a04.pdf b/uploads/5f6dfd8e59eb49219b7a0dbc3e156a04.pdf new file mode 100644 index 0000000..2b07963 Binary files /dev/null and b/uploads/5f6dfd8e59eb49219b7a0dbc3e156a04.pdf differ diff --git a/uploads/606ed7ecc9914b4399c0c6b47322a6c4.pdf b/uploads/606ed7ecc9914b4399c0c6b47322a6c4.pdf new file mode 100644 index 0000000..5f88709 Binary files /dev/null and b/uploads/606ed7ecc9914b4399c0c6b47322a6c4.pdf differ diff --git a/uploads/67761fe465454b96b641d66ebc683647.jpeg b/uploads/67761fe465454b96b641d66ebc683647.jpeg new file mode 100644 index 0000000..c4a9e95 Binary files /dev/null and b/uploads/67761fe465454b96b641d66ebc683647.jpeg differ diff --git a/uploads/6a582984101c4707b24a127e7bb54c11.pdf b/uploads/6a582984101c4707b24a127e7bb54c11.pdf new file mode 100644 index 0000000..6065399 Binary files /dev/null and b/uploads/6a582984101c4707b24a127e7bb54c11.pdf differ diff --git a/uploads/6ce5c4ab074741d0b3b7d9dbf95881b3.pdf b/uploads/6ce5c4ab074741d0b3b7d9dbf95881b3.pdf new file mode 100644 index 0000000..2b07963 Binary files /dev/null and b/uploads/6ce5c4ab074741d0b3b7d9dbf95881b3.pdf differ diff --git a/uploads/6d1493cd7bde4acca285b16652c8f390.pdf b/uploads/6d1493cd7bde4acca285b16652c8f390.pdf new file mode 100644 index 0000000..40b78d7 Binary files /dev/null and b/uploads/6d1493cd7bde4acca285b16652c8f390.pdf differ diff --git a/uploads/6dc7432bc24c4b2ebd4fc9f324451694.jpeg b/uploads/6dc7432bc24c4b2ebd4fc9f324451694.jpeg new file mode 100644 index 0000000..72b9165 Binary files /dev/null and b/uploads/6dc7432bc24c4b2ebd4fc9f324451694.jpeg differ diff --git a/uploads/6df1a4e239ca4904852852dc9ea995cf.pdf b/uploads/6df1a4e239ca4904852852dc9ea995cf.pdf new file mode 100644 index 0000000..b533fe1 Binary files /dev/null and b/uploads/6df1a4e239ca4904852852dc9ea995cf.pdf differ diff --git a/uploads/74011dad0b1d4686a3739311f322fb98.pdf b/uploads/74011dad0b1d4686a3739311f322fb98.pdf new file mode 100644 index 0000000..b533fe1 Binary files /dev/null and b/uploads/74011dad0b1d4686a3739311f322fb98.pdf differ diff --git a/uploads/7553414e3b5f4f9eb56f85e0b069aa22.pdf b/uploads/7553414e3b5f4f9eb56f85e0b069aa22.pdf new file mode 100644 index 0000000..3b8aa9a Binary files /dev/null and b/uploads/7553414e3b5f4f9eb56f85e0b069aa22.pdf differ diff --git a/uploads/75f010577b86493dbcfe45afce19ee29.pdf b/uploads/75f010577b86493dbcfe45afce19ee29.pdf new file mode 100644 index 0000000..5f88709 Binary files /dev/null and b/uploads/75f010577b86493dbcfe45afce19ee29.pdf differ diff --git a/uploads/7da0bdf7216d4d339cdda3167f6be8ea.pdf b/uploads/7da0bdf7216d4d339cdda3167f6be8ea.pdf new file mode 100644 index 0000000..901e595 Binary files /dev/null and b/uploads/7da0bdf7216d4d339cdda3167f6be8ea.pdf differ diff --git a/uploads/7dc6a371ccdc447bbe60ecc9a431cce0.pdf b/uploads/7dc6a371ccdc447bbe60ecc9a431cce0.pdf new file mode 100644 index 0000000..b6609b7 Binary files /dev/null and b/uploads/7dc6a371ccdc447bbe60ecc9a431cce0.pdf differ diff --git a/uploads/808c6f90c72d470b9821fe81c7bebb19.pdf b/uploads/808c6f90c72d470b9821fe81c7bebb19.pdf new file mode 100644 index 0000000..40b78d7 Binary files /dev/null and b/uploads/808c6f90c72d470b9821fe81c7bebb19.pdf differ diff --git a/uploads/80a724a844374ecab416bddb765c77bf.jpeg b/uploads/80a724a844374ecab416bddb765c77bf.jpeg new file mode 100644 index 0000000..c047f92 Binary files /dev/null and b/uploads/80a724a844374ecab416bddb765c77bf.jpeg differ diff --git a/uploads/815a86996e60406c98879f744e1650b3.jpeg b/uploads/815a86996e60406c98879f744e1650b3.jpeg new file mode 100644 index 0000000..2601ee8 Binary files /dev/null and b/uploads/815a86996e60406c98879f744e1650b3.jpeg differ diff --git a/uploads/8249eb6a695f42da948b57e5162a3b3c.jpeg b/uploads/8249eb6a695f42da948b57e5162a3b3c.jpeg new file mode 100644 index 0000000..8731696 Binary files /dev/null and b/uploads/8249eb6a695f42da948b57e5162a3b3c.jpeg differ diff --git a/uploads/82b316c751c2470180dc2c31707fdb69.jpeg b/uploads/82b316c751c2470180dc2c31707fdb69.jpeg new file mode 100644 index 0000000..c4a9e95 Binary files /dev/null and b/uploads/82b316c751c2470180dc2c31707fdb69.jpeg differ diff --git a/uploads/82c1862e159c4aef8f9d46e67fb0b1d9.pdf b/uploads/82c1862e159c4aef8f9d46e67fb0b1d9.pdf new file mode 100644 index 0000000..b6609b7 Binary files /dev/null and b/uploads/82c1862e159c4aef8f9d46e67fb0b1d9.pdf differ diff --git a/uploads/85338fc25cc94492bfa92e0d2d80cbdd.jpeg b/uploads/85338fc25cc94492bfa92e0d2d80cbdd.jpeg new file mode 100644 index 0000000..dca660c Binary files /dev/null and b/uploads/85338fc25cc94492bfa92e0d2d80cbdd.jpeg differ diff --git a/uploads/875a5a31191c4f62b51d859d38ff1d1d.jpeg b/uploads/875a5a31191c4f62b51d859d38ff1d1d.jpeg new file mode 100644 index 0000000..a2bd25c Binary files /dev/null and b/uploads/875a5a31191c4f62b51d859d38ff1d1d.jpeg differ diff --git a/uploads/88cb67c6edb3436db72836805d329db1.jpeg b/uploads/88cb67c6edb3436db72836805d329db1.jpeg new file mode 100644 index 0000000..72b9165 Binary files /dev/null and b/uploads/88cb67c6edb3436db72836805d329db1.jpeg differ diff --git a/uploads/8b42f46b7be441eb9bc748ded63cd94d.pdf b/uploads/8b42f46b7be441eb9bc748ded63cd94d.pdf new file mode 100644 index 0000000..5f88709 Binary files /dev/null and b/uploads/8b42f46b7be441eb9bc748ded63cd94d.pdf differ diff --git a/uploads/8c8666e5016f4710a4474cb53e476bed.jpeg b/uploads/8c8666e5016f4710a4474cb53e476bed.jpeg new file mode 100644 index 0000000..c047f92 Binary files /dev/null and b/uploads/8c8666e5016f4710a4474cb53e476bed.jpeg differ diff --git a/uploads/8f134229ef674d268c0609bc37300b9b.pdf b/uploads/8f134229ef674d268c0609bc37300b9b.pdf new file mode 100644 index 0000000..b6609b7 Binary files /dev/null and b/uploads/8f134229ef674d268c0609bc37300b9b.pdf differ diff --git a/uploads/93f1cc130de14e199d9c5d8295234824.jpeg b/uploads/93f1cc130de14e199d9c5d8295234824.jpeg new file mode 100644 index 0000000..af3031d Binary files /dev/null and b/uploads/93f1cc130de14e199d9c5d8295234824.jpeg differ diff --git a/uploads/9973dd08b74247c8ad4806c373c3c866.jpeg b/uploads/9973dd08b74247c8ad4806c373c3c866.jpeg new file mode 100644 index 0000000..a2bd25c Binary files /dev/null and b/uploads/9973dd08b74247c8ad4806c373c3c866.jpeg differ diff --git a/uploads/9ff88d059b714a4385e07fbcbc445940.pdf b/uploads/9ff88d059b714a4385e07fbcbc445940.pdf new file mode 100644 index 0000000..901e595 Binary files /dev/null and b/uploads/9ff88d059b714a4385e07fbcbc445940.pdf differ diff --git a/uploads/a7e0b48bc7954ab7bbd914521634fdaa.pdf b/uploads/a7e0b48bc7954ab7bbd914521634fdaa.pdf new file mode 100644 index 0000000..2b07963 Binary files /dev/null and b/uploads/a7e0b48bc7954ab7bbd914521634fdaa.pdf differ diff --git a/uploads/aa1962115ecf46c89527d7cecb38d094.jpeg b/uploads/aa1962115ecf46c89527d7cecb38d094.jpeg new file mode 100644 index 0000000..2601ee8 Binary files /dev/null and b/uploads/aa1962115ecf46c89527d7cecb38d094.jpeg differ diff --git a/uploads/abdba460dfb94c75951a893115b8f3ac.pdf b/uploads/abdba460dfb94c75951a893115b8f3ac.pdf new file mode 100644 index 0000000..b533fe1 Binary files /dev/null and b/uploads/abdba460dfb94c75951a893115b8f3ac.pdf differ diff --git a/uploads/ad7f3685908341139d5c7614fb6dde93.pdf b/uploads/ad7f3685908341139d5c7614fb6dde93.pdf new file mode 100644 index 0000000..5f88709 Binary files /dev/null and b/uploads/ad7f3685908341139d5c7614fb6dde93.pdf differ diff --git a/uploads/ae248b17a4ff4c5d9b3f2d52cf78d3a0.pdf b/uploads/ae248b17a4ff4c5d9b3f2d52cf78d3a0.pdf new file mode 100644 index 0000000..3b8aa9a Binary files /dev/null and b/uploads/ae248b17a4ff4c5d9b3f2d52cf78d3a0.pdf differ diff --git a/uploads/aeb4328d1af04ebba7ed31d2af4a595e.jpeg b/uploads/aeb4328d1af04ebba7ed31d2af4a595e.jpeg new file mode 100644 index 0000000..af3031d Binary files /dev/null and b/uploads/aeb4328d1af04ebba7ed31d2af4a595e.jpeg differ diff --git a/uploads/b19d080c51054169a32c92dd55150d61.jpeg b/uploads/b19d080c51054169a32c92dd55150d61.jpeg new file mode 100644 index 0000000..c4a9e95 Binary files /dev/null and b/uploads/b19d080c51054169a32c92dd55150d61.jpeg differ diff --git a/uploads/b4067f58d5e04fe0aa0842d38df2d071.pdf b/uploads/b4067f58d5e04fe0aa0842d38df2d071.pdf new file mode 100644 index 0000000..94e9338 Binary files /dev/null and b/uploads/b4067f58d5e04fe0aa0842d38df2d071.pdf differ diff --git a/uploads/b6d72bf3e505433faf2ec16607682cd8.pdf b/uploads/b6d72bf3e505433faf2ec16607682cd8.pdf new file mode 100644 index 0000000..94e9338 Binary files /dev/null and b/uploads/b6d72bf3e505433faf2ec16607682cd8.pdf differ diff --git a/uploads/bc152ba1ca81443da09b2986be2c42d9.pdf b/uploads/bc152ba1ca81443da09b2986be2c42d9.pdf new file mode 100644 index 0000000..b533fe1 Binary files /dev/null and b/uploads/bc152ba1ca81443da09b2986be2c42d9.pdf differ diff --git a/uploads/bc28b3c3d3f94709bf56efdd281999d7.jpeg b/uploads/bc28b3c3d3f94709bf56efdd281999d7.jpeg new file mode 100644 index 0000000..c047f92 Binary files /dev/null and b/uploads/bc28b3c3d3f94709bf56efdd281999d7.jpeg differ diff --git a/uploads/bc5aa01579be410fb86802109db6a9f0.jpeg b/uploads/bc5aa01579be410fb86802109db6a9f0.jpeg new file mode 100644 index 0000000..a2bd25c Binary files /dev/null and b/uploads/bc5aa01579be410fb86802109db6a9f0.jpeg differ diff --git a/uploads/bc7c04d889074838baefc71659eba8b6.jpeg b/uploads/bc7c04d889074838baefc71659eba8b6.jpeg new file mode 100644 index 0000000..46b60b6 Binary files /dev/null and b/uploads/bc7c04d889074838baefc71659eba8b6.jpeg differ diff --git a/uploads/bd1a22991a7e428a91078ed95c5aa841.pdf b/uploads/bd1a22991a7e428a91078ed95c5aa841.pdf new file mode 100644 index 0000000..3b8aa9a Binary files /dev/null and b/uploads/bd1a22991a7e428a91078ed95c5aa841.pdf differ diff --git a/uploads/c05f18042e9347cfb386a30bc0c04512.pdf b/uploads/c05f18042e9347cfb386a30bc0c04512.pdf new file mode 100644 index 0000000..3b8aa9a Binary files /dev/null and b/uploads/c05f18042e9347cfb386a30bc0c04512.pdf differ diff --git a/uploads/c115119275c04192b69d9f02c5b87924.jpeg b/uploads/c115119275c04192b69d9f02c5b87924.jpeg new file mode 100644 index 0000000..c4a9e95 Binary files /dev/null and b/uploads/c115119275c04192b69d9f02c5b87924.jpeg differ diff --git a/uploads/c6f2242c5293439e93fc115f45592c68.jpeg b/uploads/c6f2242c5293439e93fc115f45592c68.jpeg new file mode 100644 index 0000000..cd60126 Binary files /dev/null and b/uploads/c6f2242c5293439e93fc115f45592c68.jpeg differ diff --git a/uploads/ce5036c765f3433aa4731b0f453d37d9.pdf b/uploads/ce5036c765f3433aa4731b0f453d37d9.pdf new file mode 100644 index 0000000..6065399 Binary files /dev/null and b/uploads/ce5036c765f3433aa4731b0f453d37d9.pdf differ diff --git a/uploads/d1f6969383004318b8937fe85724d83f.pdf b/uploads/d1f6969383004318b8937fe85724d83f.pdf new file mode 100644 index 0000000..3b8aa9a Binary files /dev/null and b/uploads/d1f6969383004318b8937fe85724d83f.pdf differ diff --git a/uploads/d26303c467934659bed7ea639eb3994f.jpeg b/uploads/d26303c467934659bed7ea639eb3994f.jpeg new file mode 100644 index 0000000..af3031d Binary files /dev/null and b/uploads/d26303c467934659bed7ea639eb3994f.jpeg differ diff --git a/uploads/d881f1e357ef493e85175857b71d09f4.pdf b/uploads/d881f1e357ef493e85175857b71d09f4.pdf new file mode 100644 index 0000000..40b78d7 Binary files /dev/null and b/uploads/d881f1e357ef493e85175857b71d09f4.pdf differ diff --git a/uploads/da79a6da77184d248852a718ae0c8c29.jpeg b/uploads/da79a6da77184d248852a718ae0c8c29.jpeg new file mode 100644 index 0000000..72b9165 Binary files /dev/null and b/uploads/da79a6da77184d248852a718ae0c8c29.jpeg differ diff --git a/uploads/dc3ba0e957c741bca0ed11e2a05a5f45.pdf b/uploads/dc3ba0e957c741bca0ed11e2a05a5f45.pdf new file mode 100644 index 0000000..6065399 Binary files /dev/null and b/uploads/dc3ba0e957c741bca0ed11e2a05a5f45.pdf differ diff --git a/uploads/ddf1684346e14ee5a1af23a9f39187cc.jpeg b/uploads/ddf1684346e14ee5a1af23a9f39187cc.jpeg new file mode 100644 index 0000000..7fd8133 Binary files /dev/null and b/uploads/ddf1684346e14ee5a1af23a9f39187cc.jpeg differ diff --git a/uploads/e2d21ed12ca04ea3bb88aca9dce9e76c.pdf b/uploads/e2d21ed12ca04ea3bb88aca9dce9e76c.pdf new file mode 100644 index 0000000..94e9338 Binary files /dev/null and b/uploads/e2d21ed12ca04ea3bb88aca9dce9e76c.pdf differ diff --git a/uploads/e544b32ef7ef4250a4d9409a28ecc929.pdf b/uploads/e544b32ef7ef4250a4d9409a28ecc929.pdf new file mode 100644 index 0000000..5f88709 Binary files /dev/null and b/uploads/e544b32ef7ef4250a4d9409a28ecc929.pdf differ diff --git a/uploads/e6766ccdf5b94007a3fdd8fb9ad9f9a9.jpeg b/uploads/e6766ccdf5b94007a3fdd8fb9ad9f9a9.jpeg new file mode 100644 index 0000000..dca660c Binary files /dev/null and b/uploads/e6766ccdf5b94007a3fdd8fb9ad9f9a9.jpeg differ diff --git a/uploads/e6c437187b08404ba3a36cb48ade68b0.jpeg b/uploads/e6c437187b08404ba3a36cb48ade68b0.jpeg new file mode 100644 index 0000000..8731696 Binary files /dev/null and b/uploads/e6c437187b08404ba3a36cb48ade68b0.jpeg differ diff --git a/uploads/eb5779c6496a4927a843de2020bcdf43.pdf b/uploads/eb5779c6496a4927a843de2020bcdf43.pdf new file mode 100644 index 0000000..6065399 Binary files /dev/null and b/uploads/eb5779c6496a4927a843de2020bcdf43.pdf differ diff --git a/uploads/f159c664188540e5ac6ea9e1f05da08d.jpeg b/uploads/f159c664188540e5ac6ea9e1f05da08d.jpeg new file mode 100644 index 0000000..7fd8133 Binary files /dev/null and b/uploads/f159c664188540e5ac6ea9e1f05da08d.jpeg differ diff --git a/uploads/f1e1159ccb2645b28b369b88817f2c8d.jpeg b/uploads/f1e1159ccb2645b28b369b88817f2c8d.jpeg new file mode 100644 index 0000000..af3031d Binary files /dev/null and b/uploads/f1e1159ccb2645b28b369b88817f2c8d.jpeg differ diff --git a/uploads/f37f2a6e166f49538d0b0a5e2386893f.pdf b/uploads/f37f2a6e166f49538d0b0a5e2386893f.pdf new file mode 100644 index 0000000..b6609b7 Binary files /dev/null and b/uploads/f37f2a6e166f49538d0b0a5e2386893f.pdf differ diff --git a/uploads/f3cbd82c04654bf4b1b55178222eae47.jpeg b/uploads/f3cbd82c04654bf4b1b55178222eae47.jpeg new file mode 100644 index 0000000..7fd8133 Binary files /dev/null and b/uploads/f3cbd82c04654bf4b1b55178222eae47.jpeg differ diff --git a/uploads/f44b3677b5504d9fa46a9c6c9e0278ab.jpeg b/uploads/f44b3677b5504d9fa46a9c6c9e0278ab.jpeg new file mode 100644 index 0000000..a2bd25c Binary files /dev/null and b/uploads/f44b3677b5504d9fa46a9c6c9e0278ab.jpeg differ diff --git a/uploads/f4e7da77bd2649efa89d15e763ccb840.jpeg b/uploads/f4e7da77bd2649efa89d15e763ccb840.jpeg new file mode 100644 index 0000000..cd60126 Binary files /dev/null and b/uploads/f4e7da77bd2649efa89d15e763ccb840.jpeg differ diff --git a/uploads/f65afcc25b394a45bd51c7a5ba4775ac.pdf b/uploads/f65afcc25b394a45bd51c7a5ba4775ac.pdf new file mode 100644 index 0000000..2b07963 Binary files /dev/null and b/uploads/f65afcc25b394a45bd51c7a5ba4775ac.pdf differ diff --git a/uploads/f68bbe291bb8406c911213401ff6064d.jpeg b/uploads/f68bbe291bb8406c911213401ff6064d.jpeg new file mode 100644 index 0000000..c047f92 Binary files /dev/null and b/uploads/f68bbe291bb8406c911213401ff6064d.jpeg differ diff --git a/uploads/fb1754c984574633b9aebdbab7406a95.pdf b/uploads/fb1754c984574633b9aebdbab7406a95.pdf new file mode 100644 index 0000000..901e595 Binary files /dev/null and b/uploads/fb1754c984574633b9aebdbab7406a95.pdf differ diff --git a/uploads/fbe4c69650384f0e976570902afe10e2.jpeg b/uploads/fbe4c69650384f0e976570902afe10e2.jpeg new file mode 100644 index 0000000..cd60126 Binary files /dev/null and b/uploads/fbe4c69650384f0e976570902afe10e2.jpeg differ diff --git a/uploads/fe1e5881f78341f3846572dbf390397c.jpeg b/uploads/fe1e5881f78341f3846572dbf390397c.jpeg new file mode 100644 index 0000000..8731696 Binary files /dev/null and b/uploads/fe1e5881f78341f3846572dbf390397c.jpeg differ