From 79de3db90f09dbd335982861cabb349c95f700c7 Mon Sep 17 00:00:00 2001 From: Aurince AKAKPO Date: Sat, 16 Aug 2025 14:49:23 +0100 Subject: [PATCH] apres definition de la fonction enregistrement mobile data --- .../fiscad/entities/infocad/metier/Piece.java | 3 +- .../entities/infocad/parametre/Personne.java | 12 + .../metadata/MobileDataActeurConcerne.java | 2 + .../entities/metadata/MobileDataBatiment.java | 2 + .../MobileDataCaracteristiqueBatiment.java | 2 + .../MobileDataCaracteristiqueParcelle.java | 2 + ...obileDataCaracteristiqueUniteLogement.java | 2 + .../entities/metadata/MobileDataEnquete.java | 2 + .../metadata/MobileDataEnqueteBatiment.java | 2 + .../MobileDataEnqueteUniteLogement.java | 2 + .../metadata/MobileDataMembreGroupe.java | 2 + .../entities/metadata/MobileDataParcelle.java | 3 + .../entities/metadata/MobileDataPersonne.java | 3 + .../entities/metadata/MobileDataPiece.java | 2 + .../metadata/MobileDataUniteLogement.java | 2 + .../entities/metadata/MobileDataUpload.java | 11 + .../entities/metadata/PieceMetaData.java | 1 + .../infocad/metier/PersonneServiceImpl.java | 2 +- .../SynchronisationServiceImpl.java | 500 +++++++++++++++++- .../infocad/metier/PieceRepository.java | 1 + .../MobileDataBatimentRepository.java | 1 - .../MobileDataPersonneRepository.java | 1 + 22 files changed, 541 insertions(+), 19 deletions(-) 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 cdf95df..b3f166d 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,8 +45,9 @@ public class Piece extends BaseEntity implements Serializable { private LocalDate dateExpiration; @ManyToOne private TypePiece typePiece; + @JsonIgnore - @ManyToOne + @ManyToOne(fetch = FetchType.LAZY) private Personne personne; private Long personneExternalKey; @JsonIgnore 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 caffe40..6b7ebb5 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 @@ -7,6 +7,7 @@ import io.gmss.fiscad.entities.decoupage.Nationalite; 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.enums.Categorie; import jakarta.persistence.*; import lombok.AllArgsConstructor; @@ -77,5 +78,16 @@ public class Personne extends BaseEntity implements Serializable { @ColumnDefault("false") private boolean synchronise; + @OneToMany(mappedBy = "personne") + private List uploads; + @OneToMany(mappedBy = "personne") + private List pieces; + public List getUploads() { + return uploads.stream().filter(upload -> upload.getPiece() == null && upload.getMembreGroupe() == null).toList(); + } + + public List getPieces() { + return pieces.stream().filter(piece -> piece.getActeurConcerne() == 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 74379ec..9c7d9a1 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataActeurConcerne.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataActeurConcerne.java @@ -20,4 +20,6 @@ public class MobileDataActeurConcerne extends BaseEntity implements Serializable @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private ActeurConcernePayLoad acteurConcernePayLoad ; + @Column(columnDefinition = "boolean default false") + private boolean traiter; } \ No newline at end of file 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 63e415d..50a5bdc 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataBatiment.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataBatiment.java @@ -20,4 +20,6 @@ public class MobileDataBatiment extends BaseEntity implements Serializable { @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private BatimentPaylaod batimentPaylaod ; + @Column(columnDefinition = "boolean default false") + private boolean traiter; } \ No newline at end of file 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 b0ab54a..7da51b2 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataCaracteristiqueBatiment.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataCaracteristiqueBatiment.java @@ -20,4 +20,6 @@ public class MobileDataCaracteristiqueBatiment extends BaseEntity implements Ser @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private CaracteristiqueBatimentPaylod caracteristiqueBatimentPaylod ; + @Column(columnDefinition = "boolean default false") + private boolean traiter; } \ No newline at end of file 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 f2e7554..df025a5 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataCaracteristiqueParcelle.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataCaracteristiqueParcelle.java @@ -20,4 +20,6 @@ public class MobileDataCaracteristiqueParcelle extends BaseEntity implements Ser @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private CaracteristiqueParcellePaylod caracteristiqueParcellePaylod ; + @Column(columnDefinition = "boolean default false") + private boolean traiter; } \ No newline at end of file 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 8ff64b0..64802fb 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataCaracteristiqueUniteLogement.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataCaracteristiqueUniteLogement.java @@ -20,4 +20,6 @@ public class MobileDataCaracteristiqueUniteLogement extends BaseEntity implement @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private CaracteristiqueUniteLogementPaylod caracteristiqueUniteLogementPaylod ; + @Column(columnDefinition = "boolean default false") + private boolean traiter; } \ No newline at end of file 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 a4b2eca..5b10494 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataEnquete.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataEnquete.java @@ -20,4 +20,6 @@ public class MobileDataEnquete extends BaseEntity implements Serializable { @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private EnquetePayLoad enquetePayLoad ; + @Column(columnDefinition = "boolean default false") + private boolean traiter; } \ No newline at end of file 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 e413eab..8baafdd 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataEnqueteBatiment.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataEnqueteBatiment.java @@ -20,4 +20,6 @@ public class MobileDataEnqueteBatiment extends BaseEntity implements Serializabl @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private EnqueteBatimentPayload enqueteBatimentPayload ; + @Column(columnDefinition = "boolean default false") + private boolean traiter; } \ No newline at end of file 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 bdde0d1..755a463 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataEnqueteUniteLogement.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataEnqueteUniteLogement.java @@ -20,4 +20,6 @@ public class MobileDataEnqueteUniteLogement extends BaseEntity implements Serial @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private EnqueteUniteLogementPayload enqueteUniteLogementPayload ; + @Column(columnDefinition = "boolean default false") + private boolean traiter; } \ No newline at end of file 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 85b0602..14e8fe4 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataMembreGroupe.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataMembreGroupe.java @@ -20,4 +20,6 @@ public class MobileDataMembreGroupe extends BaseEntity implements Serializable { @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private MembreGroupePayLoad membreGroupePayLoad ; + @Column(columnDefinition = "boolean default false") + private boolean traiter; } \ No newline at end of file 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 f2df9a5..b2820c6 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataParcelle.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataParcelle.java @@ -20,4 +20,7 @@ public class MobileDataParcelle extends BaseEntity implements Serializable { @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private ParcellePayLoad parcellePayLoad ; + @Column(columnDefinition = "boolean default false") + private boolean traiter; + } \ No newline at end of file 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 8748bd7..c7a733a 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataPersonne.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataPersonne.java @@ -7,6 +7,7 @@ import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; import org.hibernate.annotations.Type; +import org.springframework.boot.context.properties.bind.DefaultValue; import java.io.Serializable; @@ -20,4 +21,6 @@ public class MobileDataPersonne extends BaseEntity implements Serializable { @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private PersonnePayLoad personnePayLoad ; + @Column(columnDefinition = "boolean default false") + private boolean traiter; } \ No newline at end of file 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 933bd54..48edb0f 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataPiece.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataPiece.java @@ -20,4 +20,6 @@ public class MobileDataPiece extends BaseEntity implements Serializable { @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private PiecePayLoad piecePayLoad ; + @Column(columnDefinition = "boolean default false") + private boolean traiter; } \ No newline at end of file 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 e112d24..e23dac5 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataUniteLogement.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataUniteLogement.java @@ -21,4 +21,6 @@ public class MobileDataUniteLogement extends BaseEntity implements Serializable @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private UniteLogementPaylaod uniteLogementPaylaod ; + @Column(columnDefinition = "boolean default false") + private boolean traiter; } \ No newline at end of file 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 f81b9ce..6a82de3 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataUpload.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/MobileDataUpload.java @@ -20,4 +20,15 @@ public class MobileDataUpload extends BaseEntity implements Serializable { @Type(JsonBinaryType.class) @Column(columnDefinition = "jsonb") private UploadPayLoad uploadPayLoad ; + @Column(columnDefinition = "boolean default false") + private boolean traiter; + private String fileName; + private String originalFileName; + @Transient + private String URIFile; + private String checkSum; + private long size; + private String mimeType; + private String name; + private String filePath; } \ No newline at end of file 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 8224f9f..78cf1f6 100644 --- a/src/main/java/io/gmss/fiscad/entities/metadata/PieceMetaData.java +++ b/src/main/java/io/gmss/fiscad/entities/metadata/PieceMetaData.java @@ -25,4 +25,5 @@ public class PieceMetaData extends BaseEntity implements Serializable { @Column(columnDefinition = "jsonb") private Piece pieceJson; + } \ No newline at end of file diff --git a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/PersonneServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/PersonneServiceImpl.java index 4afedb5..75549ba 100644 --- a/src/main/java/io/gmss/fiscad/implementations/infocad/metier/PersonneServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/infocad/metier/PersonneServiceImpl.java @@ -73,7 +73,7 @@ public class PersonneServiceImpl implements PersonneService { .toList(); System.out.println(uploadsDirects.size()); // 3. Pièces et leurs Uploads - List pieces = pieceRepository.findByPersonne_Id(id) + List pieces = pieceRepository.findByPersonne_IdAndActeurConcerneIsNull(id) .stream().map(piece -> { List uploads = piece.getUploads().stream() .map(u -> new UploadDTO(u.getId(), u.getExternalKey(), u.getObservation(), u.isSynchronise(), u.getFileName(), u.getOriginalFileName(), u.getURIFile(), u.getCheckSum(), u.getSize(), u.getMimeType())) 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 9ba7390..9c978b5 100644 --- a/src/main/java/io/gmss/fiscad/implementations/synchronisation/SynchronisationServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/synchronisation/SynchronisationServiceImpl.java @@ -40,6 +40,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Optional; +import java.util.function.ToDoubleBiFunction; @Service @RequiredArgsConstructor @@ -97,6 +98,7 @@ public class SynchronisationServiceImpl implements SynchronisationService { private final MobileDataPersonneRepository mobileDataPersonneRepository; private final MobileDataMembreGroupeRepository mobileDataMembreGroupeRepository; private final MobileDataPieceRepository mobileDataPieceRepository; + private final MobileDataBatimentRepository mobileDataBatimentRepository; private final MobileDataUploadRepository mobileDataUploadRepository; private final MobileDataEnqueteRepository mobileDataEnqueteRepository; private final MobileDataCaracteristiqueParcelleRepository mobileDataCaracteristiqueParcelleRepository; @@ -263,7 +265,6 @@ public class SynchronisationServiceImpl implements SynchronisationService { Optional optionalPersonne = personneRepository.findById(personnePayLoad.getIdBackend()); if (optionalPersonne.isPresent()) { personne = optionalPersonne.get(); - System.out.println("SUPRESSION FROM PERSONNE "+personne.getId()); deleteFromPersonne(personne.getId()); }else{ personnePayLoad.setIdBackend(null); @@ -291,7 +292,6 @@ public class SynchronisationServiceImpl implements SynchronisationService { syncResponse.setExternalKey(personnePayLoad.getExternalKey()); syncResponse.setSynchronise(personnePayLoad.isSynchronise()); syncResponse.setIdBackend(personnePayLoad.getIdBackend()); - System.out.println(syncResponse); syncResponses.add(syncResponse); } catch (Exception e) { e.printStackTrace(); @@ -304,64 +304,533 @@ public class SynchronisationServiceImpl implements SynchronisationService { return syncResponses; } - private void saveMobileData(List payloads, TypeObjet typeObjet) { + private List saveMobileData(List payloads, TypeObjet typeObjet) { + List syncResponses = new ArrayList<>(); + switch (typeObjet){ case PERSONNE -> { payloads.forEach(payLoad -> { - PersonnePayLoad p= (PersonnePayLoad) payLoad ; - MobileDataPersonne mobileDataPersonne=new MobileDataPersonne(); - mobileDataPersonne.setPersonnePayLoad(p); + PersonnePayLoad personnePayLoad = (PersonnePayLoad) payLoad; + try { + MobileDataPersonne mobileDataPersonne = new MobileDataPersonne(); - Optional optionalMobileDataPersonne= - mobileDataPersonneRepository.findByPersonnePayLoad_TerminalIdAndPersonnePayLoad_ExternalKey(p.getTerminalId(),p.getExternalKey()); - if(optionalMobileDataPersonne.isPresent()){ - mobileDataPersonne=optionalMobileDataPersonne.get(); + Optional optionalMobileDataPersonne = Optional.empty(); + + if (personnePayLoad.getIdBackend() != null) { + optionalMobileDataPersonne = mobileDataPersonneRepository.findById(personnePayLoad.getIdBackend()); + if (optionalMobileDataPersonne.isPresent()) { + mobileDataPersonne = optionalMobileDataPersonne.get(); + } + } else { + optionalMobileDataPersonne = mobileDataPersonneRepository.findByPersonnePayLoad_TerminalIdAndPersonnePayLoad_ExternalKey(personnePayLoad.getTerminalId(), personnePayLoad.getExternalKey()); + if (optionalMobileDataPersonne.isPresent()) { + mobileDataPersonne = optionalMobileDataPersonne.get(); + } + } + + mobileDataPersonne.setTraiter(false); + mobileDataPersonne.setPersonnePayLoad(personnePayLoad); + mobileDataPersonne = mobileDataPersonneRepository.save(mobileDataPersonne); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation effectuée avec succès pour " + TypeObjet.PERSONNE.toString()); + syncResponse.setExternalKey(personnePayLoad.getExternalKey()); + syncResponse.setSynchronise(true); + syncResponse.setIdBackend(mobileDataPersonne.getId()); + syncResponses.add(syncResponse); + }catch (Exception e){ + e.printStackTrace(); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.PERSONNE.toString()); + syncResponse.setExternalKey(personnePayLoad.getExternalKey()); + syncResponse.setSynchronise(false); + syncResponse.setIdBackend(personnePayLoad.getIdBackend()); + syncResponses.add(syncResponse); } - }); } case MEMBREGROUPE -> { + payloads.forEach(payLoad -> { + MembreGroupePayLoad membreGroupePayLoad = (MembreGroupePayLoad) payLoad; + try { + MobileDataMembreGroupe mobileDataMembreGroupe = new MobileDataMembreGroupe(); + Optional optionalMobileDataMembreGroupe = Optional.empty(); + + if (membreGroupePayLoad.getIdBackend() != null) { + optionalMobileDataMembreGroupe = mobileDataMembreGroupeRepository.findById(membreGroupePayLoad.getIdBackend()); + if (optionalMobileDataMembreGroupe.isPresent()) { + mobileDataMembreGroupe = optionalMobileDataMembreGroupe.get(); + } + } else { + optionalMobileDataMembreGroupe = mobileDataMembreGroupeRepository.findByMembreGroupePayLoad_TerminalIdAndMembreGroupePayLoad_ExternalKey(membreGroupePayLoad.getTerminalId(), membreGroupePayLoad.getExternalKey()); + if (optionalMobileDataMembreGroupe.isPresent()) { + mobileDataMembreGroupe = optionalMobileDataMembreGroupe.get(); + } + } + + mobileDataMembreGroupe.setTraiter(false); + mobileDataMembreGroupe.setMembreGroupePayLoad(membreGroupePayLoad); + mobileDataMembreGroupe = mobileDataMembreGroupeRepository.save(mobileDataMembreGroupe); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation effectuée avec succès pour " + TypeObjet.MEMBREGROUPE.toString()); + syncResponse.setExternalKey(membreGroupePayLoad.getExternalKey()); + syncResponse.setSynchronise(true); + syncResponse.setIdBackend(mobileDataMembreGroupe.getId()); + syncResponses.add(syncResponse); + }catch (Exception e){ + e.printStackTrace(); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.MEMBREGROUPE.toString()); + syncResponse.setExternalKey(membreGroupePayLoad.getExternalKey()); + syncResponse.setSynchronise(false); + syncResponse.setIdBackend(membreGroupePayLoad.getIdBackend()); + syncResponses.add(syncResponse); + } + }); } case ACTEURCONCERNER -> { + payloads.forEach(payLoad -> { + ActeurConcernePayLoad acteurConcernePayLoad = (ActeurConcernePayLoad) payLoad; + try { + MobileDataActeurConcerne mobileDataActeurConcerne = new MobileDataActeurConcerne(); + Optional optionalMobileDataActeurConcerne = Optional.empty(); + + if (acteurConcernePayLoad.getIdBackend() != null) { + optionalMobileDataActeurConcerne = mobileDataActeurConcerneRepository.findById(acteurConcernePayLoad.getIdBackend()); + if (optionalMobileDataActeurConcerne.isPresent()) { + mobileDataActeurConcerne = optionalMobileDataActeurConcerne.get(); + } + } else { + optionalMobileDataActeurConcerne = mobileDataActeurConcerneRepository.findByActeurConcernePayLoad_TerminalIdAndActeurConcernePayLoad_ExternalKey(acteurConcernePayLoad.getTerminalId(), acteurConcernePayLoad.getExternalKey()); + if (optionalMobileDataActeurConcerne.isPresent()) { + mobileDataActeurConcerne = optionalMobileDataActeurConcerne.get(); + } + } + + mobileDataActeurConcerne.setTraiter(false); + mobileDataActeurConcerne.setActeurConcernePayLoad(acteurConcernePayLoad); + mobileDataActeurConcerne = mobileDataActeurConcerneRepository.save(mobileDataActeurConcerne); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation effectuée avec succès pour " + TypeObjet.ACTEURCONCERNER.toString()); + syncResponse.setExternalKey(acteurConcernePayLoad.getExternalKey()); + syncResponse.setSynchronise(true); + syncResponse.setIdBackend(mobileDataActeurConcerne.getId()); + syncResponses.add(syncResponse); + }catch (Exception e){ + e.printStackTrace(); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.ACTEURCONCERNER.toString()); + syncResponse.setExternalKey(acteurConcernePayLoad.getExternalKey()); + syncResponse.setSynchronise(false); + syncResponse.setIdBackend(acteurConcernePayLoad.getIdBackend()); + syncResponses.add(syncResponse); + } + }); } case PIECE -> { + payloads.forEach(payLoad -> { + PiecePayLoad piecePayLoad = (PiecePayLoad) payLoad; + try { + MobileDataPiece mobileDataPiece = new MobileDataPiece(); + Optional optionalMobileDataPiece = Optional.empty(); + + if (piecePayLoad.getIdBackend() != null) { + optionalMobileDataPiece = mobileDataPieceRepository.findById(piecePayLoad.getIdBackend()); + if (optionalMobileDataPiece.isPresent()) { + mobileDataPiece = optionalMobileDataPiece.get(); + } + } else { + optionalMobileDataPiece = mobileDataPieceRepository.findByPiecePayLoad_TerminalIdAndPiecePayLoad_ExternalKey(piecePayLoad.getTerminalId(), piecePayLoad.getExternalKey()); + if (optionalMobileDataPiece.isPresent()) { + mobileDataPiece = optionalMobileDataPiece.get(); + } + } + mobileDataPiece.setTraiter(false); + mobileDataPiece.setPiecePayLoad(piecePayLoad); + mobileDataPiece = mobileDataPieceRepository.save(mobileDataPiece); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation effectuée avec succès pour " + TypeObjet.PIECE.toString()); + syncResponse.setExternalKey(piecePayLoad.getExternalKey()); + syncResponse.setSynchronise(true); + syncResponse.setIdBackend(mobileDataPiece.getId()); + syncResponses.add(syncResponse); + }catch (Exception e){ + e.printStackTrace(); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.PIECE.toString()); + syncResponse.setExternalKey(piecePayLoad.getExternalKey()); + syncResponse.setSynchronise(false); + syncResponse.setIdBackend(piecePayLoad.getIdBackend()); + syncResponses.add(syncResponse); + } + }); } case UPLOAD -> { + payloads.forEach(payLoad -> { + UploadPayLoad uploadPayLoad = (UploadPayLoad) payLoad; + try { + MobileDataUpload mobileDataUpload = new MobileDataUpload(); + Optional optionalMobileDataUpload = Optional.empty(); + + if (uploadPayLoad.getIdBackend() != null) { + optionalMobileDataUpload = mobileDataUploadRepository.findById(uploadPayLoad.getIdBackend()); + if (optionalMobileDataUpload.isPresent()) { + mobileDataUpload = optionalMobileDataUpload.get(); + } + } else { + optionalMobileDataUpload = mobileDataUploadRepository.findByUploadPayLoad_TerminalIdAndUploadPayLoad_ExternalKey(uploadPayLoad.getTerminalId(), uploadPayLoad.getExternalKey()); + if (optionalMobileDataUpload.isPresent()) { + mobileDataUpload = optionalMobileDataUpload.get(); + } + } + mobileDataUpload.setTraiter(false); + mobileDataUpload.setUploadPayLoad(uploadPayLoad); + String fileName = fileStorageService.storeFile(uploadPayLoad.getFile()); + mobileDataUpload.setFileName(fileName); + mobileDataUpload.setMimeType(uploadPayLoad.getFile().getContentType()); + mobileDataUpload.setSize(uploadPayLoad.getFile().getSize()); + mobileDataUpload.setOriginalFileName(uploadPayLoad.getFile().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()); + syncResponse.setExternalKey(uploadPayLoad.getExternalKey()); + syncResponse.setSynchronise(true); + syncResponse.setIdBackend(mobileDataUpload.getId()); + syncResponses.add(syncResponse); + }catch (Exception e){ + e.printStackTrace(); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.UPLOAD.toString()); + syncResponse.setExternalKey(uploadPayLoad.getExternalKey()); + syncResponse.setSynchronise(false); + syncResponse.setIdBackend(uploadPayLoad.getIdBackend()); + syncResponses.add(syncResponse); + } + }); } case BATIMENT -> { + payloads.forEach(payLoad -> { + BatimentPaylaod batimentPaylaod = (BatimentPaylaod) payLoad; + try { + MobileDataBatiment mobileDataBatiment = new MobileDataBatiment(); + Optional optionalMobileDataBatiment = Optional.empty(); + + if (batimentPaylaod.getIdBackend() != null) { + optionalMobileDataBatiment = mobileDataBatimentRepository.findById(batimentPaylaod.getIdBackend()); + if (optionalMobileDataBatiment.isPresent()) { + mobileDataBatiment = optionalMobileDataBatiment.get(); + } + } else { + optionalMobileDataBatiment = mobileDataBatimentRepository.findMobileDataBatimentByBatimentPaylaod_TerminalIdAndBatimentPaylaod_ExternalKey(batimentPaylaod.getTerminalId(), batimentPaylaod.getExternalKey()); + if (optionalMobileDataBatiment.isPresent()) { + mobileDataBatiment = optionalMobileDataBatiment.get(); + } + } + mobileDataBatiment.setTraiter(false); + mobileDataBatiment.setBatimentPaylaod(batimentPaylaod); + mobileDataBatiment = mobileDataBatimentRepository.save(mobileDataBatiment); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation effectuée avec succès pour " + TypeObjet.BATIMENT.toString()); + syncResponse.setExternalKey(batimentPaylaod.getExternalKey()); + syncResponse.setSynchronise(true); + syncResponse.setIdBackend(mobileDataBatiment.getId()); + syncResponses.add(syncResponse); + }catch (Exception e){ + e.printStackTrace(); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.PIECE.toString()); + syncResponse.setExternalKey(batimentPaylaod.getExternalKey()); + syncResponse.setSynchronise(false); + syncResponse.setIdBackend(batimentPaylaod.getIdBackend()); + syncResponses.add(syncResponse); + } + }); } case UNITELOGEMENT -> { + payloads.forEach(payLoad -> { + UniteLogementPaylaod uniteLogementPaylaod = (UniteLogementPaylaod) payLoad; + try { + MobileDataUniteLogement mobileDataUniteLogement = new MobileDataUniteLogement(); + Optional optionalMobileDataUniteLogement = Optional.empty(); + + if (uniteLogementPaylaod.getIdBackend() != null) { + optionalMobileDataUniteLogement = mobileDataUniteLogementRepository.findById(uniteLogementPaylaod.getIdBackend()); + if (optionalMobileDataUniteLogement.isPresent()) { + mobileDataUniteLogement = optionalMobileDataUniteLogement.get(); + } + } else { + optionalMobileDataUniteLogement = mobileDataUniteLogementRepository.findByUniteLogementPaylaod_TerminalIdAndUniteLogementPaylaod_ExternalKey(uniteLogementPaylaod.getTerminalId(), uniteLogementPaylaod.getExternalKey()); + if (optionalMobileDataUniteLogement.isPresent()) { + mobileDataUniteLogement = optionalMobileDataUniteLogement.get(); + } + } + mobileDataUniteLogement.setTraiter(false); + mobileDataUniteLogement.setUniteLogementPaylaod(uniteLogementPaylaod); + mobileDataUniteLogement = mobileDataUniteLogementRepository.save(mobileDataUniteLogement); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation effectuée avec succès pour " + TypeObjet.UNITELOGEMENT.toString()); + syncResponse.setExternalKey(uniteLogementPaylaod.getExternalKey()); + syncResponse.setSynchronise(true); + syncResponse.setIdBackend(mobileDataUniteLogement.getId()); + syncResponses.add(syncResponse); + }catch (Exception e){ + e.printStackTrace(); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.PIECE.toString()); + syncResponse.setExternalKey(uniteLogementPaylaod.getExternalKey()); + syncResponse.setSynchronise(false); + syncResponse.setIdBackend(uniteLogementPaylaod.getIdBackend()); + syncResponses.add(syncResponse); + } + }); } case ENQUETEBATIMENT -> { + payloads.forEach(payLoad -> { + EnqueteBatimentPayload enqueteBatimentPayload = (EnqueteBatimentPayload) payLoad; + try { + MobileDataEnqueteBatiment mobileDataEnqueteBatiment = new MobileDataEnqueteBatiment(); + Optional optionalMobileDataEnqueteBatiment = Optional.empty(); + + if (enqueteBatimentPayload.getIdBackend() != null) { + optionalMobileDataEnqueteBatiment = mobileDataEnqueteBatimentRepository.findById(enqueteBatimentPayload.getIdBackend()); + if (optionalMobileDataEnqueteBatiment.isPresent()) { + mobileDataEnqueteBatiment = optionalMobileDataEnqueteBatiment.get(); + } + } else { + optionalMobileDataEnqueteBatiment = mobileDataEnqueteBatimentRepository.findByEnqueteBatimentPayload_TerminalIdAndEnqueteBatimentPayload_ExternalKey(enqueteBatimentPayload.getTerminalId(), enqueteBatimentPayload.getExternalKey()); + if (optionalMobileDataEnqueteBatiment.isPresent()) { + mobileDataEnqueteBatiment = optionalMobileDataEnqueteBatiment.get(); + } + } + mobileDataEnqueteBatiment.setTraiter(false); + mobileDataEnqueteBatiment.setEnqueteBatimentPayload(enqueteBatimentPayload); + mobileDataEnqueteBatiment = mobileDataEnqueteBatimentRepository.save(mobileDataEnqueteBatiment); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation effectuée avec succès pour " + TypeObjet.UNITELOGEMENT.toString()); + syncResponse.setExternalKey(enqueteBatimentPayload.getExternalKey()); + syncResponse.setSynchronise(true); + syncResponse.setIdBackend(mobileDataEnqueteBatiment.getId()); + syncResponses.add(syncResponse); + }catch (Exception e){ + e.printStackTrace(); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.ENQUETEBATIMENT.toString()); + syncResponse.setExternalKey(enqueteBatimentPayload.getExternalKey()); + syncResponse.setSynchronise(false); + syncResponse.setIdBackend(enqueteBatimentPayload.getIdBackend()); + syncResponses.add(syncResponse); + } + }); } case ENQUETEUNITELOGEMENT -> { + payloads.forEach(payLoad -> { + EnqueteUniteLogementPayload enqueteUniteLogementPayload = (EnqueteUniteLogementPayload) payLoad; + try { + MobileDataEnqueteUniteLogement mobileDataEnqueteUniteLogement = new MobileDataEnqueteUniteLogement(); + Optional optionalMobileDataEnqueteUniteLogement = Optional.empty(); + + if (enqueteUniteLogementPayload.getIdBackend() != null) { + optionalMobileDataEnqueteUniteLogement = mobileDataEnqueteUniteLogementRepository.findById(enqueteUniteLogementPayload.getIdBackend()); + if (optionalMobileDataEnqueteUniteLogement.isPresent()) { + mobileDataEnqueteUniteLogement = optionalMobileDataEnqueteUniteLogement.get(); + } + } else { + optionalMobileDataEnqueteUniteLogement = mobileDataEnqueteUniteLogementRepository.findByEnqueteUniteLogementPayload_TerminalIdAndEnqueteUniteLogementPayload_ExternalKey(enqueteUniteLogementPayload.getTerminalId(), enqueteUniteLogementPayload.getExternalKey()); + if (optionalMobileDataEnqueteUniteLogement.isPresent()) { + mobileDataEnqueteUniteLogement = optionalMobileDataEnqueteUniteLogement.get(); + } + } + mobileDataEnqueteUniteLogement.setTraiter(false); + mobileDataEnqueteUniteLogement.setEnqueteUniteLogementPayload(enqueteUniteLogementPayload); + mobileDataEnqueteUniteLogement = mobileDataEnqueteUniteLogementRepository.save(mobileDataEnqueteUniteLogement); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation effectuée avec succès pour " + TypeObjet.ENQUETEUNITELOGEMENT.toString()); + syncResponse.setExternalKey(enqueteUniteLogementPayload.getExternalKey()); + syncResponse.setSynchronise(true); + syncResponse.setIdBackend(mobileDataEnqueteUniteLogement.getId()); + syncResponses.add(syncResponse); + }catch (Exception e){ + e.printStackTrace(); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.ENQUETEUNITELOGEMENT.toString()); + syncResponse.setExternalKey(enqueteUniteLogementPayload.getExternalKey()); + syncResponse.setSynchronise(false); + syncResponse.setIdBackend(enqueteUniteLogementPayload.getIdBackend()); + syncResponses.add(syncResponse); + } + }); } case CARACTERISTIQUEPARCELLE -> { + payloads.forEach(payLoad -> { + CaracteristiqueParcellePaylod caracteristiqueParcellePaylod = (CaracteristiqueParcellePaylod) payLoad; + try { + MobileDataCaracteristiqueParcelle mobileDataCaracteristiqueParcelle = new MobileDataCaracteristiqueParcelle(); + Optional optionalMobileDataCaracteristiqueParcelle = Optional.empty(); + + if (caracteristiqueParcellePaylod.getIdBackend() != null) { + optionalMobileDataCaracteristiqueParcelle = mobileDataCaracteristiqueParcelleRepository.findById(caracteristiqueParcellePaylod.getIdBackend()); + if (optionalMobileDataCaracteristiqueParcelle.isPresent()) { + mobileDataCaracteristiqueParcelle = optionalMobileDataCaracteristiqueParcelle.get(); + } + } else { + optionalMobileDataCaracteristiqueParcelle = mobileDataCaracteristiqueParcelleRepository.findByCaracteristiqueParcellePaylod_TerminalIdAndCaracteristiqueParcellePaylod_ExternalKey(caracteristiqueParcellePaylod.getTerminalId(), caracteristiqueParcellePaylod.getExternalKey()); + if (optionalMobileDataCaracteristiqueParcelle.isPresent()) { + mobileDataCaracteristiqueParcelle = optionalMobileDataCaracteristiqueParcelle.get(); + } + } + mobileDataCaracteristiqueParcelle.setTraiter(false); + mobileDataCaracteristiqueParcelle.setCaracteristiqueParcellePaylod(caracteristiqueParcellePaylod); + mobileDataCaracteristiqueParcelle = mobileDataCaracteristiqueParcelleRepository.save(mobileDataCaracteristiqueParcelle); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation effectuée avec succès pour " + TypeObjet.CARACTERISTIQUEPARCELLE.toString()); + syncResponse.setExternalKey(caracteristiqueParcellePaylod.getExternalKey()); + syncResponse.setSynchronise(true); + syncResponse.setIdBackend(mobileDataCaracteristiqueParcelle.getId()); + syncResponses.add(syncResponse); + }catch (Exception e){ + e.printStackTrace(); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.CARACTERISTIQUEPARCELLE.toString()); + syncResponse.setExternalKey(caracteristiqueParcellePaylod.getExternalKey()); + syncResponse.setSynchronise(false); + syncResponse.setIdBackend(caracteristiqueParcellePaylod.getIdBackend()); + syncResponses.add(syncResponse); + } + }); } case CARACTERISTIQUEBATIMENT -> { + payloads.forEach(payLoad -> { + CaracteristiqueBatimentPaylod caracteristiqueBatimentPaylod = (CaracteristiqueBatimentPaylod) payLoad; + try { + MobileDataCaracteristiqueBatiment mobileDataCaracteristiqueBatiment = new MobileDataCaracteristiqueBatiment(); + Optional optionalMobileDataCaracteristiqueBatiment = Optional.empty(); + + if (caracteristiqueBatimentPaylod.getIdBackend() != null) { + optionalMobileDataCaracteristiqueBatiment = mobileDataCaracteristiqueBatimentRepository.findById(caracteristiqueBatimentPaylod.getIdBackend()); + if (optionalMobileDataCaracteristiqueBatiment.isPresent()) { + mobileDataCaracteristiqueBatiment = optionalMobileDataCaracteristiqueBatiment.get(); + } + } else { + optionalMobileDataCaracteristiqueBatiment = mobileDataCaracteristiqueBatimentRepository.findByCaracteristiqueBatimentPaylod_TerminalIdAndCaracteristiqueBatimentPaylod_ExternalKey(caracteristiqueBatimentPaylod.getTerminalId(), caracteristiqueBatimentPaylod.getExternalKey()); + if (optionalMobileDataCaracteristiqueBatiment.isPresent()) { + mobileDataCaracteristiqueBatiment = optionalMobileDataCaracteristiqueBatiment.get(); + } + } + mobileDataCaracteristiqueBatiment.setTraiter(false); + mobileDataCaracteristiqueBatiment.setCaracteristiqueBatimentPaylod(caracteristiqueBatimentPaylod); + mobileDataCaracteristiqueBatiment = mobileDataCaracteristiqueBatimentRepository.save(mobileDataCaracteristiqueBatiment); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation effectuée avec succès pour " + TypeObjet.CARACTERISTIQUEBATIMENT.toString()); + syncResponse.setExternalKey(caracteristiqueBatimentPaylod.getExternalKey()); + syncResponse.setSynchronise(true); + syncResponse.setIdBackend(mobileDataCaracteristiqueBatiment.getId()); + syncResponses.add(syncResponse); + }catch (Exception e){ + e.printStackTrace(); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.CARACTERISTIQUEBATIMENT.toString()); + syncResponse.setExternalKey(caracteristiqueBatimentPaylod.getExternalKey()); + syncResponse.setSynchronise(false); + syncResponse.setIdBackend(caracteristiqueBatimentPaylod.getIdBackend()); + syncResponses.add(syncResponse); + } + }); } case CARACTERISTIQUEUNITELOGEMENT -> { + payloads.forEach(payLoad -> { + CaracteristiqueUniteLogementPaylod caracteristiqueUniteLogementPaylod = (CaracteristiqueUniteLogementPaylod) payLoad; + try { + MobileDataCaracteristiqueUniteLogement mobileDataCaracteristiqueUniteLogement = new MobileDataCaracteristiqueUniteLogement(); + Optional optionalMobileDataCaracteristiqueUniteLogement = Optional.empty(); + + if (caracteristiqueUniteLogementPaylod.getIdBackend() != null) { + optionalMobileDataCaracteristiqueUniteLogement = mobileDataCaracteristiqueUniteLogementRepository.findById(caracteristiqueUniteLogementPaylod.getIdBackend()); + if (optionalMobileDataCaracteristiqueUniteLogement.isPresent()) { + mobileDataCaracteristiqueUniteLogement = optionalMobileDataCaracteristiqueUniteLogement.get(); + } + } else { + optionalMobileDataCaracteristiqueUniteLogement = mobileDataCaracteristiqueUniteLogementRepository.findByCaracteristiqueUniteLogementPaylod_TerminalIdAndCaracteristiqueUniteLogementPaylod_ExternalKey(caracteristiqueUniteLogementPaylod.getTerminalId(), caracteristiqueUniteLogementPaylod.getExternalKey()); + if (optionalMobileDataCaracteristiqueUniteLogement.isPresent()) { + mobileDataCaracteristiqueUniteLogement = optionalMobileDataCaracteristiqueUniteLogement.get(); + } + } + mobileDataCaracteristiqueUniteLogement.setTraiter(false); + mobileDataCaracteristiqueUniteLogement.setCaracteristiqueUniteLogementPaylod(caracteristiqueUniteLogementPaylod); + mobileDataCaracteristiqueUniteLogement = mobileDataCaracteristiqueUniteLogementRepository.save(mobileDataCaracteristiqueUniteLogement); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation effectuée avec succès pour " + TypeObjet.CARACTERISTIQUEUNITELOGEMENT.toString()); + syncResponse.setExternalKey(caracteristiqueUniteLogementPaylod.getExternalKey()); + syncResponse.setSynchronise(true); + syncResponse.setIdBackend(mobileDataCaracteristiqueUniteLogement.getId()); + syncResponses.add(syncResponse); + }catch (Exception e){ + e.printStackTrace(); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.CARACTERISTIQUEUNITELOGEMENT.toString()); + syncResponse.setExternalKey(caracteristiqueUniteLogementPaylod.getExternalKey()); + syncResponse.setSynchronise(false); + syncResponse.setIdBackend(caracteristiqueUniteLogementPaylod.getIdBackend()); + syncResponses.add(syncResponse); + } + }); } case PARCELLE -> { + payloads.forEach(payLoad -> { + ParcellePayLoad parcellePayLoad = (ParcellePayLoad) payLoad; + try { + MobileDataParcelle mobileDataParcelle = new MobileDataParcelle(); + Optional optionalMobileDataParcelle = Optional.empty(); + + if (parcellePayLoad.getIdBackend() != null) { + optionalMobileDataParcelle = mobileDataParcelleRepository.findById(parcellePayLoad.getIdBackend()); + if (optionalMobileDataParcelle.isPresent()) { + mobileDataParcelle = optionalMobileDataParcelle.get(); + } + } else { + optionalMobileDataParcelle = mobileDataParcelleRepository.findByParcellePayLoad_TerminalIdAndParcellePayLoad_ExternalKey(parcellePayLoad.getTerminalId(), parcellePayLoad.getExternalKey()); + if (optionalMobileDataParcelle.isPresent()) { + mobileDataParcelle = optionalMobileDataParcelle.get(); + } + } + mobileDataParcelle.setTraiter(false); + mobileDataParcelle.setParcellePayLoad(parcellePayLoad); + mobileDataParcelle = mobileDataParcelleRepository.save(mobileDataParcelle); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation effectuée avec succès pour " + TypeObjet.CARACTERISTIQUEUNITELOGEMENT.toString()); + syncResponse.setExternalKey(parcellePayLoad.getExternalKey()); + syncResponse.setSynchronise(true); + syncResponse.setIdBackend(mobileDataParcelle.getId()); + syncResponses.add(syncResponse); + }catch (Exception e){ + e.printStackTrace(); + SyncResponse syncResponse = new SyncResponse(); + syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.CARACTERISTIQUEUNITELOGEMENT.toString()); + syncResponse.setExternalKey(parcellePayLoad.getExternalKey()); + syncResponse.setSynchronise(false); + syncResponse.setIdBackend(parcellePayLoad.getIdBackend()); + syncResponses.add(syncResponse); + } + }); } } - + return syncResponses; } - private void deleteFromPersonne(Long idBackend) { uploadRepository.deleteUploadByMembreGroupe_PersonneRepresantee_Id(idBackend); uploadRepository.deleteUploadByPiece_Personne_Id(idBackend); @@ -1410,8 +1879,7 @@ public class SynchronisationServiceImpl implements SynchronisationService { uploadPayLoad.setEnqueteBatimentId(enqueteBatimentId); uploadPayLoad.setEnqueteUniteLogementId(enqueteUniteLogementId); uploadPayLoad.setPersonneId(personneId); - System.out.println("ZZZ"); - System.out.println(uploadPayLoad); + //System.out.println(uploadPayLoad); try { Upload upload = new Upload(); SyncResponse syncResponse = new SyncResponse(); @@ -1541,7 +2009,7 @@ public class SynchronisationServiceImpl implements SynchronisationService { } public Upload getUploadFromUplaodPayLoad(Upload upload, UploadPayLoad uploadPayLoad) { - System.out.println("YYY"); + if (uploadPayLoad.getTerminalId() != null) { Optional optionalTpe = tpeRepository.findById(uploadPayLoad.getTerminalId()); upload.setTerminal(optionalTpe.orElse(null)); 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 14b6b46..7928639 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 @@ -50,6 +50,7 @@ public interface PieceRepository extends JpaRepository { , nativeQuery = true) List getPiecesByTerminalId(Long terminalId); List findByPersonne_Id(Long id); + List findByPersonne_IdAndActeurConcerneIsNull(Long id); } 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 39cc7f8..64c3aa0 100755 --- a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataBatimentRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataBatimentRepository.java @@ -1,6 +1,5 @@ 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; 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 f46e9a0..8409636 100755 --- a/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataPersonneRepository.java +++ b/src/main/java/io/gmss/fiscad/repositories/metadata/MobileDataPersonneRepository.java @@ -9,4 +9,5 @@ import java.util.Optional; public interface MobileDataPersonneRepository extends JpaRepository { Optional findByPersonnePayLoad_TerminalIdAndPersonnePayLoad_ExternalKey(Long terminalId,Long externalKey); + }