apres mise en oeuvre de sychro avec bjson et tache asynch

This commit is contained in:
2025-09-22 16:33:29 +01:00
parent 79de3db90f
commit f29cdf51ae
193 changed files with 2793 additions and 2126 deletions

View File

@@ -147,6 +147,7 @@
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
</dependencies> </dependencies>
<dependencyManagement> <dependencyManagement>
<dependencies> <dependencies>

View File

@@ -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;
}
}

View File

@@ -31,6 +31,10 @@ import io.swagger.v3.oas.annotations.servers.Server;
description = "Local ENV", description = "Local ENV",
url = "http://localhost:8282" url = "http://localhost:8282"
), ),
@Server(
description = "TEST ENV (http)",
url = "http://novatic.vps.webdock.cloud:8282"
),
@Server( @Server(
description = "PROD ENV (https)", description = "PROD ENV (https)",
url = "https://backend.fiscad.org" url = "https://backend.fiscad.org"

View File

@@ -28,7 +28,7 @@ import java.util.List;
@SecurityRequirement(name = "bearer") @SecurityRequirement(name = "bearer")
@Tag(name = "Commentaire") @Tag(name = "Commentaire")
@CrossOrigin(origins = "*") @CrossOrigin(origins = "*")
@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')")
public class CommentaireController { public class CommentaireController {
private final CommentaireService commentaireService; private final CommentaireService commentaireService;
@@ -39,7 +39,7 @@ public class CommentaireController {
this.commentaireService = commentaireService; this.commentaireService = commentaireService;
} }
@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')")
@PostMapping("/create") @PostMapping("/create")
public ResponseEntity<?> createcommentaire(@RequestBody @Valid @Validated Commentaire commentaire) { public ResponseEntity<?> createcommentaire(@RequestBody @Valid @Validated Commentaire commentaire) {
try { 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); 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}") @PutMapping("/update/{id}")
public ResponseEntity<?> updatecommentaire(@PathVariable Long id, @RequestBody Commentaire commentaire) { public ResponseEntity<?> updatecommentaire(@PathVariable Long id, @RequestBody Commentaire commentaire) {
try { 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); 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}") @DeleteMapping("/delete/{id}")
public ResponseEntity<?> deletecommentaire(@PathVariable Long id) { public ResponseEntity<?> deletecommentaire(@PathVariable Long id) {
try { 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); 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") @GetMapping("/all")
public ResponseEntity<?> getAllcommentaireList() { public ResponseEntity<?> getAllcommentaireList() {
try { 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); 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}") @GetMapping("/id/{id}")
public ResponseEntity<?> getcommentaireById(@PathVariable Long id) { public ResponseEntity<?> getcommentaireById(@PathVariable Long id) {
try { 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); 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}") @GetMapping("/nup/{nup}")
public ResponseEntity<?> getcommentaireByNup(@PathVariable String nup) { public ResponseEntity<?> getcommentaireByNup(@PathVariable String nup) {
try { 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); 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") @PostMapping("/enquete")
public ResponseEntity<?> getcommentaireByEnquete(@RequestBody Commentaire commentaire) { public ResponseEntity<?> getcommentaireByEnquete(@RequestBody Commentaire commentaire) {
try { 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); 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") @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") //@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) { 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); 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") @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") //@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) { 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); 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") @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. ") //@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<SyncCommentaireRequest> syncCommentaireRequests) { public ResponseEntity<?> notifyDoneSynchronizedFromMobile(@RequestBody List<SyncCommentaireRequest> syncCommentaireRequests) {

View File

@@ -514,7 +514,7 @@ public class SynchronisationController {
@GetMapping("/traiter-non-synch-to-mobile/{terminalId}") @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) { public ResponseEntity<?> getEnqueteValideNonSynch(@PathVariable Long terminalId) {
try { try {
return new ResponseEntity<>( 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);
}
}
} }

View File

@@ -69,5 +69,6 @@ public class ActeurConcerne extends BaseEntity implements Serializable {
@ColumnDefault("0") @ColumnDefault("0")
private int haveDeclarant; private int haveDeclarant;
private Long max_numero_acteur_concerne_id; private Long max_numero_acteur_concerne_id;
private Long mobileDataId;
} }

View File

@@ -56,7 +56,7 @@ public class Enquete extends BaseEntity implements Serializable {
@JsonIgnore @JsonIgnore
@ManyToOne @ManyToOne
private User user; private User user;
private Long mobileDataId;
@JsonIgnore @JsonIgnore
@OneToMany(mappedBy = "enquete") @OneToMany(mappedBy = "enquete")
private List<ActeurConcerne> acteurConcernes; private List<ActeurConcerne> acteurConcernes;

View File

@@ -41,7 +41,7 @@ public class MembreGroupe extends BaseEntity implements Serializable {
@JsonIgnore @JsonIgnore
@ManyToOne @ManyToOne
private Tpe terminal; private Tpe terminal;
private Long mobileDataId;
private Long max_numero_piece_id; private Long max_numero_piece_id;
private Long max_numero_acteur_concerne_id; private Long max_numero_acteur_concerne_id;
private Long enqueteId; private Long enqueteId;

View File

@@ -59,6 +59,7 @@ public class Parcelle extends BaseEntity implements Serializable {
@ColumnDefault("false") @ColumnDefault("false")
private boolean synchronise; private boolean synchronise;
private Long idDerniereEnquete; private Long idDerniereEnquete;
private Long mobileDataId;
// @JsonIgnore // @JsonIgnore
// @OneToMany(mappedBy = "parcelle") // @OneToMany(mappedBy = "parcelle")
// private List<Batiment> batiments; // private List<Batiment> batiments;

View File

@@ -45,7 +45,7 @@ public class Piece extends BaseEntity implements Serializable {
private LocalDate dateExpiration; private LocalDate dateExpiration;
@ManyToOne @ManyToOne
private TypePiece typePiece; private TypePiece typePiece;
private Long mobileDataId;
@JsonIgnore @JsonIgnore
@ManyToOne(fetch = FetchType.LAZY) @ManyToOne(fetch = FetchType.LAZY)
private Personne personne; private Personne personne;

View File

@@ -38,7 +38,7 @@ public class Upload extends BaseEntity implements Serializable {
private Piece piece; private Piece piece;
private Long pieceExternalKey; private Long pieceExternalKey;
private Long mobileDataId;
@JsonIgnore @JsonIgnore
@ManyToOne(fetch = FetchType.LAZY) @ManyToOne(fetch = FetchType.LAZY)
private MembreGroupe membreGroupe; private MembreGroupe membreGroupe;

View File

@@ -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.Piece;
import io.gmss.fiscad.entities.infocad.metier.Tpe; import io.gmss.fiscad.entities.infocad.metier.Tpe;
import io.gmss.fiscad.entities.infocad.metier.Upload; import io.gmss.fiscad.entities.infocad.metier.Upload;
import io.gmss.fiscad.entities.metadata.MobileDataPersonne;
import io.gmss.fiscad.enums.Categorie; import io.gmss.fiscad.enums.Categorie;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@@ -83,6 +84,8 @@ public class Personne extends BaseEntity implements Serializable {
@OneToMany(mappedBy = "personne") @OneToMany(mappedBy = "personne")
private List<Piece> pieces; private List<Piece> pieces;
private Long mobileDataId;
public List<Upload> getUploads() { public List<Upload> getUploads() {
return uploads.stream().filter(upload -> upload.getPiece() == null && upload.getMembreGroupe() == null).toList(); return uploads.stream().filter(upload -> upload.getPiece() == null && upload.getMembreGroupe() == null).toList();
} }

View File

@@ -17,6 +17,8 @@ public class MobileDataActeurConcerne extends BaseEntity implements Serializable
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
private Long terminalId;
private Long externalKey;
@Type(JsonBinaryType.class) @Type(JsonBinaryType.class)
@Column(columnDefinition = "jsonb") @Column(columnDefinition = "jsonb")
private ActeurConcernePayLoad acteurConcernePayLoad ; private ActeurConcernePayLoad acteurConcernePayLoad ;

View File

@@ -17,6 +17,8 @@ public class MobileDataBatiment extends BaseEntity implements Serializable {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
private Long terminalId;
private Long externalKey;
@Type(JsonBinaryType.class) @Type(JsonBinaryType.class)
@Column(columnDefinition = "jsonb") @Column(columnDefinition = "jsonb")
private BatimentPaylaod batimentPaylaod ; private BatimentPaylaod batimentPaylaod ;

View File

@@ -17,6 +17,8 @@ public class MobileDataCaracteristiqueBatiment extends BaseEntity implements Ser
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
private Long terminalId;
private Long externalKey;
@Type(JsonBinaryType.class) @Type(JsonBinaryType.class)
@Column(columnDefinition = "jsonb") @Column(columnDefinition = "jsonb")
private CaracteristiqueBatimentPaylod caracteristiqueBatimentPaylod ; private CaracteristiqueBatimentPaylod caracteristiqueBatimentPaylod ;

View File

@@ -17,6 +17,8 @@ public class MobileDataCaracteristiqueParcelle extends BaseEntity implements Ser
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
private Long terminalId;
private Long externalKey;
@Type(JsonBinaryType.class) @Type(JsonBinaryType.class)
@Column(columnDefinition = "jsonb") @Column(columnDefinition = "jsonb")
private CaracteristiqueParcellePaylod caracteristiqueParcellePaylod ; private CaracteristiqueParcellePaylod caracteristiqueParcellePaylod ;

View File

@@ -17,6 +17,8 @@ public class MobileDataCaracteristiqueUniteLogement extends BaseEntity implement
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
private Long terminalId;
private Long externalKey;
@Type(JsonBinaryType.class) @Type(JsonBinaryType.class)
@Column(columnDefinition = "jsonb") @Column(columnDefinition = "jsonb")
private CaracteristiqueUniteLogementPaylod caracteristiqueUniteLogementPaylod ; private CaracteristiqueUniteLogementPaylod caracteristiqueUniteLogementPaylod ;

View File

@@ -17,6 +17,8 @@ public class MobileDataEnquete extends BaseEntity implements Serializable {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
private Long terminalId;
private Long externalKey;
@Type(JsonBinaryType.class) @Type(JsonBinaryType.class)
@Column(columnDefinition = "jsonb") @Column(columnDefinition = "jsonb")
private EnquetePayLoad enquetePayLoad ; private EnquetePayLoad enquetePayLoad ;

View File

@@ -17,6 +17,8 @@ public class MobileDataEnqueteBatiment extends BaseEntity implements Serializabl
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
private Long terminalId;
private Long externalKey;
@Type(JsonBinaryType.class) @Type(JsonBinaryType.class)
@Column(columnDefinition = "jsonb") @Column(columnDefinition = "jsonb")
private EnqueteBatimentPayload enqueteBatimentPayload ; private EnqueteBatimentPayload enqueteBatimentPayload ;

View File

@@ -17,6 +17,8 @@ public class MobileDataEnqueteUniteLogement extends BaseEntity implements Serial
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
private Long terminalId;
private Long externalKey;
@Type(JsonBinaryType.class) @Type(JsonBinaryType.class)
@Column(columnDefinition = "jsonb") @Column(columnDefinition = "jsonb")
private EnqueteUniteLogementPayload enqueteUniteLogementPayload ; private EnqueteUniteLogementPayload enqueteUniteLogementPayload ;

View File

@@ -17,6 +17,8 @@ public class MobileDataMembreGroupe extends BaseEntity implements Serializable {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
private Long terminalId;
private Long externalKey;
@Type(JsonBinaryType.class) @Type(JsonBinaryType.class)
@Column(columnDefinition = "jsonb") @Column(columnDefinition = "jsonb")
private MembreGroupePayLoad membreGroupePayLoad ; private MembreGroupePayLoad membreGroupePayLoad ;

View File

@@ -17,6 +17,8 @@ public class MobileDataParcelle extends BaseEntity implements Serializable {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
private Long terminalId;
private Long externalKey;
@Type(JsonBinaryType.class) @Type(JsonBinaryType.class)
@Column(columnDefinition = "jsonb") @Column(columnDefinition = "jsonb")
private ParcellePayLoad parcellePayLoad ; private ParcellePayLoad parcellePayLoad ;

View File

@@ -18,6 +18,8 @@ public class MobileDataPersonne extends BaseEntity implements Serializable {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
private Long terminalId;
private Long externalKey;
@Type(JsonBinaryType.class) @Type(JsonBinaryType.class)
@Column(columnDefinition = "jsonb") @Column(columnDefinition = "jsonb")
private PersonnePayLoad personnePayLoad ; private PersonnePayLoad personnePayLoad ;

View File

@@ -17,6 +17,8 @@ public class MobileDataPiece extends BaseEntity implements Serializable {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
private Long terminalId;
private Long externalKey;
@Type(JsonBinaryType.class) @Type(JsonBinaryType.class)
@Column(columnDefinition = "jsonb") @Column(columnDefinition = "jsonb")
private PiecePayLoad piecePayLoad ; private PiecePayLoad piecePayLoad ;

View File

@@ -18,6 +18,8 @@ public class MobileDataUniteLogement extends BaseEntity implements Serializable
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
private Long terminalId;
private Long externalKey;
@Type(JsonBinaryType.class) @Type(JsonBinaryType.class)
@Column(columnDefinition = "jsonb") @Column(columnDefinition = "jsonb")
private UniteLogementPaylaod uniteLogementPaylaod ; private UniteLogementPaylaod uniteLogementPaylaod ;

View File

@@ -17,6 +17,8 @@ public class MobileDataUpload extends BaseEntity implements Serializable {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
private Long terminalId;
private Long externalKey;
@Type(JsonBinaryType.class) @Type(JsonBinaryType.class)
@Column(columnDefinition = "jsonb") @Column(columnDefinition = "jsonb")
private UploadPayLoad uploadPayLoad ; private UploadPayLoad uploadPayLoad ;

View File

@@ -18,7 +18,8 @@ public class PieceMetaData extends BaseEntity implements Serializable {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
private Long terminalId;
private Long externalKey;
private Long pieceId; private Long pieceId;
@Type(JsonBinaryType.class) @Type(JsonBinaryType.class)

View File

@@ -26,7 +26,8 @@ public class UploadMetaData extends BaseEntity implements Serializable {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
private Long terminalId;
private Long externalKey;
private Long uploadId; private Long uploadId;
@Type(JsonBinaryType.class) @Type(JsonBinaryType.class)

View File

@@ -43,4 +43,5 @@ public class Batiment extends BaseEntity implements Serializable {
@ManyToOne @ManyToOne
private Tpe terminal; private Tpe terminal;
private Long enqueteId; private Long enqueteId;
private Long mobileDataId;
} }

View File

@@ -31,7 +31,7 @@ public class CaracteristiqueBatiment extends BaseEntity implements Serializable
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
private Long mobileDataId;
@ManyToOne(fetch = FetchType.LAZY) @ManyToOne(fetch = FetchType.LAZY)
@JsonBackReference ///pour couper la recurcivité @JsonBackReference ///pour couper la recurcivité
private EnqueteBatiment enqueteBatiment; private EnqueteBatiment enqueteBatiment;

View File

@@ -30,7 +30,7 @@ public class CaracteristiqueParcelle extends BaseEntity implements Serializable
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
private Long mobileDataId;
@JsonIgnore @JsonIgnore
@ManyToOne(fetch = FetchType.LAZY) @ManyToOne(fetch = FetchType.LAZY)
private Enquete enquete; private Enquete enquete;

View File

@@ -41,5 +41,5 @@ public class CaracteristiqueUniteLogement extends BaseEntity implements Serializ
@ManyToOne @ManyToOne
private Tpe terminal; private Tpe terminal;
private Long enqueteId; private Long enqueteId;
private Long mobileDataId;
} }

View File

@@ -84,7 +84,7 @@ public class EnqueteBatiment extends BaseEntity implements Serializable {
@JsonIgnore @JsonIgnore
@ManyToOne @ManyToOne
private User user; private User user;
private Long mobileDataId;
//@JsonIgnore //@JsonIgnore
@OneToMany(mappedBy = "enqueteBatiment") @OneToMany(mappedBy = "enqueteBatiment")
private List<Upload> uploads; private List<Upload> uploads;

View File

@@ -68,7 +68,7 @@ public class EnqueteUniteLogement extends BaseEntity implements Serializable {
@OneToOne @OneToOne
private Personne personne; private Personne personne;
private Long personneExternalKey; private Long personneExternalKey;
private Long mobileDataId;
@OneToMany(mappedBy = "enqueteUniteLogement") @OneToMany(mappedBy = "enqueteUniteLogement")
@JsonManagedReference @JsonManagedReference
private List<CaracteristiqueUniteLogement> caracteristiqueUniteLogements; private List<CaracteristiqueUniteLogement> caracteristiqueUniteLogements;

View File

@@ -38,4 +38,5 @@ public class UniteLogement extends BaseEntity implements Serializable {
@ManyToOne @ManyToOne
private Tpe terminal; private Tpe terminal;
private Long enqueteId; private Long enqueteId;
private Long mobileDataId;
} }

View File

@@ -2,6 +2,7 @@ package io.gmss.fiscad.enums;
public enum TypeObjet { public enum TypeObjet {
PARCELLE, PARCELLE,
ENQUETE,
PERSONNE, PERSONNE,
MEMBREGROUPE, MEMBREGROUPE,
ACTEURCONCERNER, ACTEURCONCERNER,

View File

@@ -1,6 +1,7 @@
package io.gmss.fiscad.interfaces.synchronisation; package io.gmss.fiscad.interfaces.synchronisation;
import io.gmss.fiscad.entities.infocad.metier.Upload; 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.request.*;
import io.gmss.fiscad.paylaods.response.ReferencesSyncResponses; import io.gmss.fiscad.paylaods.response.ReferencesSyncResponses;
import io.gmss.fiscad.paylaods.response.SyncEnqueteAllDataResponse; import io.gmss.fiscad.paylaods.response.SyncEnqueteAllDataResponse;
@@ -62,6 +63,6 @@ public interface SynchronisationService {
); );
public List<SyncResponse> syncEnqueteFromMobile(List<Long> idEnquete); public List<SyncResponse> syncEnqueteFromMobile(List<Long> idEnquete);
public void traitementTableRelationnelle(Long terminalId);
public Upload getUploadFromUplaodPayLoad(Upload upload, UploadPayLoad uploadPayLoad); // public Upload getUploadFromUplaodPayLoad(Upload upload, MobileDataUpload mobileDataUpload);
} }

View File

@@ -10,7 +10,7 @@ public class UploadPayLoad {
private Long pieceId; private Long pieceId;
private String Observation; private String Observation;
private boolean synchronise; private boolean synchronise;
private MultipartFile file; //private MultipartFile file;
private String fileBase64; private String fileBase64;
private Long membreGroupeId; private Long membreGroupeId;
private Long terminalId; private Long terminalId;

View File

@@ -1,6 +1,7 @@
package io.gmss.fiscad.repositories.infocad.metier; package io.gmss.fiscad.repositories.infocad.metier;
import io.gmss.fiscad.entities.infocad.metier.ActeurConcerne; 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 io.gmss.fiscad.paylaods.response.restoration.ActeurConcernePayLoad;
import jakarta.transaction.Transactional; import jakarta.transaction.Transactional;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
@@ -12,7 +13,7 @@ import java.util.Optional;
public interface ActeurConcerneRepository extends JpaRepository<ActeurConcerne, Long> { public interface ActeurConcerneRepository extends JpaRepository<ActeurConcerne, Long> {
Optional<ActeurConcerne> findFirstByExternalKey(Long externalKey); Optional<ActeurConcerne> findFirstByExternalKey(Long externalKey);
Optional<ActeurConcerne> findByMobileDataId(Long id);
List<ActeurConcerne> findActeurConcerneByEnquete_Id(Long EnqueteId); List<ActeurConcerne> findActeurConcerneByEnquete_Id(Long EnqueteId);
Optional<ActeurConcerne> findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long terminalId); Optional<ActeurConcerne> findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long terminalId);

View File

@@ -1,6 +1,7 @@
package io.gmss.fiscad.repositories.infocad.metier; package io.gmss.fiscad.repositories.infocad.metier;
import io.gmss.fiscad.entities.infocad.metier.Enquete; 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.*;
import io.gmss.fiscad.paylaods.response.report.EnqueteParBlocResponse; import io.gmss.fiscad.paylaods.response.report.EnqueteParBlocResponse;
import io.gmss.fiscad.paylaods.response.restoration.EnquetePayLoad; import io.gmss.fiscad.paylaods.response.restoration.EnquetePayLoad;
@@ -13,7 +14,7 @@ import java.util.Optional;
public interface EnqueteRepository extends JpaRepository<Enquete, Long> { public interface EnqueteRepository extends JpaRepository<Enquete, Long> {
Optional<Enquete> findFirstByCodeParcelle(String codeParcelle); Optional<Enquete> findFirstByCodeParcelle(String codeParcelle);
Optional<Enquete> findByMobileDataId(Long id);
@Query(value = "select distinct " + @Query(value = "select distinct " +
" e.id," + " e.id," +
" e.parcelle_id as parcelleId," + " e.parcelle_id as parcelleId," +

View File

@@ -1,6 +1,7 @@
package io.gmss.fiscad.repositories.infocad.metier; package io.gmss.fiscad.repositories.infocad.metier;
import io.gmss.fiscad.entities.infocad.metier.MembreGroupe; 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 io.gmss.fiscad.paylaods.response.restoration.MembreGroupePayLoad;
import jakarta.transaction.Transactional; import jakarta.transaction.Transactional;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
@@ -12,6 +13,7 @@ import java.util.Optional;
public interface MembreGroupeRepository extends JpaRepository<MembreGroupe, Long> { public interface MembreGroupeRepository extends JpaRepository<MembreGroupe, Long> {
Optional<MembreGroupe> findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long terminalId); Optional<MembreGroupe> findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long terminalId);
Optional<MembreGroupe> findByMobileDataId(Long id);
@Modifying @Modifying
@Transactional @Transactional
void deleteMembreGroupeByPersonneRepresantante_Id(Long personneRepresenteId); void deleteMembreGroupeByPersonneRepresantante_Id(Long personneRepresenteId);

View File

@@ -1,6 +1,7 @@
package io.gmss.fiscad.repositories.infocad.metier; package io.gmss.fiscad.repositories.infocad.metier;
import io.gmss.fiscad.entities.infocad.metier.Parcelle; 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 io.gmss.fiscad.paylaods.response.restoration.ParcellePayLoad;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
@@ -10,7 +11,7 @@ import java.util.Optional;
public interface ParcelleRepository extends JpaRepository<Parcelle, Long> { public interface ParcelleRepository extends JpaRepository<Parcelle, Long> {
Optional<Parcelle> findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long TerminalId); Optional<Parcelle> findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long TerminalId);
Optional<Parcelle> findByMobileDataId(Long id);
@Query(value = "Select " + @Query(value = "Select " +
" p.id as idBackend, " + " p.id as idBackend, " +
" p.external_key as externalKey, " + " p.external_key as externalKey, " +

View File

@@ -1,6 +1,7 @@
package io.gmss.fiscad.repositories.infocad.metier; package io.gmss.fiscad.repositories.infocad.metier;
import io.gmss.fiscad.entities.infocad.metier.Piece; 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 io.gmss.fiscad.paylaods.response.restoration.PiecePayLoad;
import jakarta.transaction.Transactional; import jakarta.transaction.Transactional;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
@@ -50,6 +51,7 @@ public interface PieceRepository extends JpaRepository<Piece, Long> {
, nativeQuery = true) , nativeQuery = true)
List<PiecePayLoad> getPiecesByTerminalId(Long terminalId); List<PiecePayLoad> getPiecesByTerminalId(Long terminalId);
List<Piece> findByPersonne_Id(Long id); List<Piece> findByPersonne_Id(Long id);
Optional<Piece> findByMobileDataId(Long id);
List<Piece> findByPersonne_IdAndActeurConcerneIsNull(Long id); List<Piece> findByPersonne_IdAndActeurConcerneIsNull(Long id);
} }

View File

@@ -1,6 +1,7 @@
package io.gmss.fiscad.repositories.infocad.metier; package io.gmss.fiscad.repositories.infocad.metier;
import io.gmss.fiscad.entities.infocad.metier.Upload; 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.EnqueteBatiment;
import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement; import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement;
import io.gmss.fiscad.paylaods.response.restoration.UploadPayLoad; import io.gmss.fiscad.paylaods.response.restoration.UploadPayLoad;
@@ -39,7 +40,7 @@ public interface UploadRepository extends JpaRepository<Upload, Long> {
@Modifying @Modifying
@Transactional @Transactional
void deleteUploadByPersonne_Id(Long personneId); void deleteUploadByPersonne_Id(Long personneId);
Optional<Upload> findByMobileDataId(Long id);
@Query(value = "Select " + @Query(value = "Select " +
" u.id as idBackend, " + " u.id as idBackend, " +
" u.external_key as externalKey, " + " u.external_key as externalKey, " +

View File

@@ -11,6 +11,7 @@ import java.util.Optional;
public interface PersonneRepository extends JpaRepository<Personne, Long> { public interface PersonneRepository extends JpaRepository<Personne, Long> {
Optional<Personne> findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long TerminalId); Optional<Personne> findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long TerminalId);
Optional<Personne> findByMobileDataId(Long id);
@Query(value = "Select " + @Query(value = "Select " +
" p.id as idBackend, " + " p.id as idBackend, " +
" p.ifu, " + " p.ifu, " +
@@ -49,4 +50,5 @@ public interface PersonneRepository extends JpaRepository<Personne, Long> {
" where p.terminal_id = ?1", nativeQuery = true) " where p.terminal_id = ?1", nativeQuery = true)
List<PersonnePayLoad> getPersonnesByTerminalId(Long terminalId); List<PersonnePayLoad> getPersonnesByTerminalId(Long terminalId);
} }

View File

@@ -1,11 +1,15 @@
package io.gmss.fiscad.repositories.metadata; package io.gmss.fiscad.repositories.metadata;
import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne; import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne;
import io.gmss.fiscad.entities.metadata.MobileDataPersonne;
import io.gmss.fiscad.entities.metadata.MobileDataUpload; import io.gmss.fiscad.entities.metadata.MobileDataUpload;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional; import java.util.Optional;
public interface MobileDataActeurConcerneRepository extends JpaRepository<MobileDataActeurConcerne, Long> { public interface MobileDataActeurConcerneRepository extends JpaRepository<MobileDataActeurConcerne, Long> {
Optional<MobileDataActeurConcerne> findByActeurConcernePayLoad_TerminalIdAndActeurConcernePayLoad_ExternalKey(Long terminalId,Long ExternalKey); //Optional<MobileDataActeurConcerne> findByActeurConcernePayLoad_TerminalIdAndActeurConcernePayLoad_ExternalKey(Long terminalId,Long ExternalKey);
Optional<MobileDataActeurConcerne> findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataActeurConcerne> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
} }

View File

@@ -1,10 +1,14 @@
package io.gmss.fiscad.repositories.metadata; package io.gmss.fiscad.repositories.metadata;
import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne;
import io.gmss.fiscad.entities.metadata.MobileDataBatiment; import io.gmss.fiscad.entities.metadata.MobileDataBatiment;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional; import java.util.Optional;
public interface MobileDataBatimentRepository extends JpaRepository<MobileDataBatiment, Long> { public interface MobileDataBatimentRepository extends JpaRepository<MobileDataBatiment, Long> {
Optional<MobileDataBatiment> findMobileDataBatimentByBatimentPaylaod_TerminalIdAndBatimentPaylaod_ExternalKey(Long terminalId, Long externalKey); //Optional<MobileDataBatiment> findMobileDataBatimentByBatimentPaylaod_TerminalIdAndBatimentPaylaod_ExternalKey(Long terminalId, Long externalKey);
Optional<MobileDataBatiment> findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataBatiment> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
} }

View File

@@ -1,11 +1,16 @@
package io.gmss.fiscad.repositories.metadata; 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.MobileDataCaracteristiqueBatiment;
import io.gmss.fiscad.entities.metadata.MobileDataUpload; import io.gmss.fiscad.entities.metadata.MobileDataUpload;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional; import java.util.Optional;
public interface MobileDataCaracteristiqueBatimentRepository extends JpaRepository<MobileDataCaracteristiqueBatiment, Long> { public interface MobileDataCaracteristiqueBatimentRepository extends JpaRepository<MobileDataCaracteristiqueBatiment, Long> {
Optional<MobileDataCaracteristiqueBatiment> findByCaracteristiqueBatimentPaylod_TerminalIdAndCaracteristiqueBatimentPaylod_ExternalKey(Long terminalId,Long externalKey); //Optional<MobileDataCaracteristiqueBatiment> findByCaracteristiqueBatimentPaylod_TerminalIdAndCaracteristiqueBatimentPaylod_ExternalKey(Long terminalId,Long externalKey);
Optional<MobileDataCaracteristiqueBatiment> findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataCaracteristiqueBatiment> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
} }

View File

@@ -1,11 +1,16 @@
package io.gmss.fiscad.repositories.metadata; 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.MobileDataCaracteristiqueParcelle;
import io.gmss.fiscad.entities.metadata.MobileDataUpload; import io.gmss.fiscad.entities.metadata.MobileDataUpload;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional; import java.util.Optional;
public interface MobileDataCaracteristiqueParcelleRepository extends JpaRepository<MobileDataCaracteristiqueParcelle, Long> { public interface MobileDataCaracteristiqueParcelleRepository extends JpaRepository<MobileDataCaracteristiqueParcelle, Long> {
Optional<MobileDataCaracteristiqueParcelle> findByCaracteristiqueParcellePaylod_TerminalIdAndCaracteristiqueParcellePaylod_ExternalKey(Long terminalId,Long externalKey); //Optional<MobileDataCaracteristiqueParcelle> findByCaracteristiqueParcellePaylod_TerminalIdAndCaracteristiqueParcellePaylod_ExternalKey(Long terminalId,Long externalKey);
Optional<MobileDataCaracteristiqueParcelle> findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataCaracteristiqueParcelle> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
} }

View File

@@ -1,11 +1,16 @@
package io.gmss.fiscad.repositories.metadata; 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.MobileDataCaracteristiqueUniteLogement;
import io.gmss.fiscad.entities.metadata.MobileDataUpload; import io.gmss.fiscad.entities.metadata.MobileDataUpload;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional; import java.util.Optional;
public interface MobileDataCaracteristiqueUniteLogementRepository extends JpaRepository<MobileDataCaracteristiqueUniteLogement, Long> { public interface MobileDataCaracteristiqueUniteLogementRepository extends JpaRepository<MobileDataCaracteristiqueUniteLogement, Long> {
Optional<MobileDataCaracteristiqueUniteLogement> findByCaracteristiqueUniteLogementPaylod_TerminalIdAndCaracteristiqueUniteLogementPaylod_ExternalKey(Long terminalId,Long externalKey); //Optional<MobileDataCaracteristiqueUniteLogement> findByCaracteristiqueUniteLogementPaylod_TerminalIdAndCaracteristiqueUniteLogementPaylod_ExternalKey(Long terminalId,Long externalKey);
Optional<MobileDataCaracteristiqueUniteLogement> findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataCaracteristiqueUniteLogement> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
} }

View File

@@ -1,11 +1,16 @@
package io.gmss.fiscad.repositories.metadata; package io.gmss.fiscad.repositories.metadata;
import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne; import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne;
import io.gmss.fiscad.entities.metadata.MobileDataCaracteristiqueUniteLogement;
import io.gmss.fiscad.entities.metadata.MobileDataEnqueteBatiment; import io.gmss.fiscad.entities.metadata.MobileDataEnqueteBatiment;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional; import java.util.Optional;
public interface MobileDataEnqueteBatimentRepository extends JpaRepository<MobileDataEnqueteBatiment, Long> { public interface MobileDataEnqueteBatimentRepository extends JpaRepository<MobileDataEnqueteBatiment, Long> {
Optional<MobileDataEnqueteBatiment> findByEnqueteBatimentPayload_TerminalIdAndEnqueteBatimentPayload_ExternalKey(Long terminalId,Long externalKey); //Optional<MobileDataEnqueteBatiment> findByEnqueteBatimentPayload_TerminalIdAndEnqueteBatimentPayload_ExternalKey(Long terminalId,Long externalKey);
Optional<MobileDataEnqueteBatiment> findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataEnqueteBatiment> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
} }

View File

@@ -1,11 +1,16 @@
package io.gmss.fiscad.repositories.metadata; package io.gmss.fiscad.repositories.metadata;
import io.gmss.fiscad.entities.metadata.MobileDataEnquete; import io.gmss.fiscad.entities.metadata.MobileDataEnquete;
import io.gmss.fiscad.entities.metadata.MobileDataEnqueteBatiment;
import io.gmss.fiscad.entities.metadata.MobileDataUpload; import io.gmss.fiscad.entities.metadata.MobileDataUpload;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional; import java.util.Optional;
public interface MobileDataEnqueteRepository extends JpaRepository<MobileDataEnquete, Long> { public interface MobileDataEnqueteRepository extends JpaRepository<MobileDataEnquete, Long> {
Optional<MobileDataEnquete> findByEnquetePayLoad_TerminalIdAndEnquetePayLoad_ExternalKey(Long terminalId,Long externalKey); //Optional<MobileDataEnquete> findByEnquetePayLoad_TerminalIdAndEnquetePayLoad_ExternalKey(Long terminalId,Long externalKey);
Optional<MobileDataEnquete> findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataEnquete> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
} }

View File

@@ -1,11 +1,16 @@
package io.gmss.fiscad.repositories.metadata; package io.gmss.fiscad.repositories.metadata;
import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne; import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne;
import io.gmss.fiscad.entities.metadata.MobileDataEnquete;
import io.gmss.fiscad.entities.metadata.MobileDataEnqueteUniteLogement; import io.gmss.fiscad.entities.metadata.MobileDataEnqueteUniteLogement;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional; import java.util.Optional;
public interface MobileDataEnqueteUniteLogementRepository extends JpaRepository<MobileDataEnqueteUniteLogement, Long> { public interface MobileDataEnqueteUniteLogementRepository extends JpaRepository<MobileDataEnqueteUniteLogement, Long> {
Optional<MobileDataEnqueteUniteLogement> findByEnqueteUniteLogementPayload_TerminalIdAndEnqueteUniteLogementPayload_ExternalKey(Long terminalId,Long externalKey); // Optional<MobileDataEnqueteUniteLogement> findByEnqueteUniteLogementPayload_TerminalIdAndEnqueteUniteLogementPayload_ExternalKey(Long terminalId,Long externalKey);
Optional<MobileDataEnqueteUniteLogement> findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataEnqueteUniteLogement> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
} }

View File

@@ -1,11 +1,16 @@
package io.gmss.fiscad.repositories.metadata; package io.gmss.fiscad.repositories.metadata;
import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne; import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne;
import io.gmss.fiscad.entities.metadata.MobileDataEnqueteUniteLogement;
import io.gmss.fiscad.entities.metadata.MobileDataMembreGroupe; import io.gmss.fiscad.entities.metadata.MobileDataMembreGroupe;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional; import java.util.Optional;
public interface MobileDataMembreGroupeRepository extends JpaRepository<MobileDataMembreGroupe, Long> { public interface MobileDataMembreGroupeRepository extends JpaRepository<MobileDataMembreGroupe, Long> {
Optional<MobileDataMembreGroupe> findByMembreGroupePayLoad_TerminalIdAndMembreGroupePayLoad_ExternalKey(Long terminalId,Long externalKey); //Optional<MobileDataMembreGroupe> findByMembreGroupePayLoad_TerminalIdAndMembreGroupePayLoad_ExternalKey(Long terminalId,Long externalKey);
Optional<MobileDataMembreGroupe> findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataMembreGroupe> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
} }

View File

@@ -1,12 +1,17 @@
package io.gmss.fiscad.repositories.metadata; 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.MobileDataParcelle;
import io.gmss.fiscad.entities.metadata.MobileDataUpload; import io.gmss.fiscad.entities.metadata.MobileDataUpload;
import org.modelmapper.internal.bytebuddy.dynamic.DynamicType; import org.modelmapper.internal.bytebuddy.dynamic.DynamicType;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional; import java.util.Optional;
public interface MobileDataParcelleRepository extends JpaRepository<MobileDataParcelle, Long> { public interface MobileDataParcelleRepository extends JpaRepository<MobileDataParcelle, Long> {
Optional<MobileDataParcelle> findByParcellePayLoad_TerminalIdAndParcellePayLoad_ExternalKey(Long terminalId,Long externalKey); //Optional<MobileDataParcelle> findByParcellePayLoad_TerminalIdAndParcellePayLoad_ExternalKey(Long terminalId,Long externalKey);
Optional<MobileDataParcelle> findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId,Long ExternalKey);
List<MobileDataParcelle> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
} }

View File

@@ -1,13 +1,17 @@
package io.gmss.fiscad.repositories.metadata; package io.gmss.fiscad.repositories.metadata;
import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne; 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.MobileDataPersonne;
import org.modelmapper.internal.bytebuddy.dynamic.DynamicType; import org.modelmapper.internal.bytebuddy.dynamic.DynamicType;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional; import java.util.Optional;
public interface MobileDataPersonneRepository extends JpaRepository<MobileDataPersonne, Long> { public interface MobileDataPersonneRepository extends JpaRepository<MobileDataPersonne, Long> {
Optional<MobileDataPersonne> findByPersonnePayLoad_TerminalIdAndPersonnePayLoad_ExternalKey(Long terminalId,Long externalKey); //Optional<MobileDataPersonne> findByPersonnePayLoad_TerminalIdAndPersonnePayLoad_ExternalKey(Long terminalId,Long externalKey);
List<MobileDataPersonne> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
Optional<MobileDataPersonne> findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId, Long ExternalKey);
} }

View File

@@ -1,11 +1,17 @@
package io.gmss.fiscad.repositories.metadata; package io.gmss.fiscad.repositories.metadata;
import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne; 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 io.gmss.fiscad.entities.metadata.MobileDataPiece;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional; import java.util.Optional;
public interface MobileDataPieceRepository extends JpaRepository<MobileDataPiece, Long> { public interface MobileDataPieceRepository extends JpaRepository<MobileDataPiece, Long> {
Optional<MobileDataPiece> findByPiecePayLoad_TerminalIdAndPiecePayLoad_ExternalKey(Long terminalId,Long externalKey); //Optional<MobileDataPiece> findByPiecePayLoad_TerminalIdAndPiecePayLoad_ExternalKey(Long terminalId,Long externalKey);
List<MobileDataPiece> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
Optional<MobileDataPiece> findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId, Long ExternalKey);
} }

View File

@@ -1,11 +1,16 @@
package io.gmss.fiscad.repositories.metadata; package io.gmss.fiscad.repositories.metadata;
import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne; import io.gmss.fiscad.entities.metadata.MobileDataActeurConcerne;
import io.gmss.fiscad.entities.metadata.MobileDataPiece;
import io.gmss.fiscad.entities.metadata.MobileDataUniteLogement; import io.gmss.fiscad.entities.metadata.MobileDataUniteLogement;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional; import java.util.Optional;
public interface MobileDataUniteLogementRepository extends JpaRepository<MobileDataUniteLogement, Long> { public interface MobileDataUniteLogementRepository extends JpaRepository<MobileDataUniteLogement, Long> {
Optional<MobileDataUniteLogement> findByUniteLogementPaylaod_TerminalIdAndUniteLogementPaylaod_ExternalKey(Long terminalId,Long externalKey); //Optional<MobileDataUniteLogement> findByUniteLogementPaylaod_TerminalIdAndUniteLogementPaylaod_ExternalKey(Long terminalId,Long externalKey);
List<MobileDataUniteLogement> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
Optional<MobileDataUniteLogement> findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId, Long ExternalKey);
} }

View File

@@ -1,10 +1,15 @@
package io.gmss.fiscad.repositories.metadata; package io.gmss.fiscad.repositories.metadata;
import io.gmss.fiscad.entities.metadata.MobileDataUniteLogement;
import io.gmss.fiscad.entities.metadata.MobileDataUpload; import io.gmss.fiscad.entities.metadata.MobileDataUpload;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional; import java.util.Optional;
public interface MobileDataUploadRepository extends JpaRepository<MobileDataUpload, Long> { public interface MobileDataUploadRepository extends JpaRepository<MobileDataUpload, Long> {
Optional<MobileDataUpload> findByUploadPayLoad_TerminalIdAndUploadPayLoad_ExternalKey(Long terminalId,Long externalKey); //Optional<MobileDataUpload> findByUploadPayLoad_TerminalIdAndUploadPayLoad_ExternalKey(Long terminalId,Long externalKey);
List<MobileDataUpload> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
Optional<MobileDataUpload> findFirstByTerminalIdAndEnqueteExternalKey(Long terminalId, Long ExternalKey);
} }

View File

@@ -1,5 +1,6 @@
package io.gmss.fiscad.repositories.rfu.metier; 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.entities.rfu.metier.Batiment;
import io.gmss.fiscad.paylaods.response.restoration.BatimentPayload; import io.gmss.fiscad.paylaods.response.restoration.BatimentPayload;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
@@ -10,7 +11,7 @@ import java.util.Optional;
public interface BatimentRepository extends JpaRepository<Batiment, Long> { public interface BatimentRepository extends JpaRepository<Batiment, Long> {
Optional<Batiment> findByMobileDataId(Long id);
Optional<Batiment> findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long TerminalId); Optional<Batiment> findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long TerminalId);
@Query(value = "SELECT " + @Query(value = "SELECT " +

View File

@@ -1,5 +1,6 @@
package io.gmss.fiscad.repositories.rfu.metier; 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.CaracteristiqueBatiment;
import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment; import io.gmss.fiscad.entities.rfu.metier.EnqueteBatiment;
import io.gmss.fiscad.paylaods.response.restoration.CaracateristiqueBatimentPayLoads; 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 org.springframework.data.repository.query.Param;
import java.util.List; import java.util.List;
import java.util.Optional;
public interface CaracteristiqueBatimentRepository extends JpaRepository<CaracteristiqueBatiment, Long> { public interface CaracteristiqueBatimentRepository extends JpaRepository<CaracteristiqueBatiment, Long> {
@Transactional @Transactional
@Modifying @Modifying
void deleteAllByEnqueteBatiment(EnqueteBatiment enqueteBatiment); void deleteAllByEnqueteBatiment(EnqueteBatiment enqueteBatiment);
Optional<CaracteristiqueBatiment> findByMobileDataId(Long id);
@Modifying @Modifying
@Transactional @Transactional
@Query(""" @Query("""

View File

@@ -1,6 +1,7 @@
package io.gmss.fiscad.repositories.rfu.metier; package io.gmss.fiscad.repositories.rfu.metier;
import io.gmss.fiscad.entities.infocad.metier.Enquete; 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.entities.rfu.metier.CaracteristiqueParcelle;
import io.gmss.fiscad.paylaods.response.restoration.CaracateristiqueParcellePayLoads; import io.gmss.fiscad.paylaods.response.restoration.CaracateristiqueParcellePayLoads;
import jakarta.transaction.Transactional; import jakarta.transaction.Transactional;
@@ -9,11 +10,13 @@ import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import java.util.List; import java.util.List;
import java.util.Optional;
public interface CaracteristiqueParcelleRepository extends JpaRepository<CaracteristiqueParcelle, Long> { public interface CaracteristiqueParcelleRepository extends JpaRepository<CaracteristiqueParcelle, Long> {
void deleteAllByEnquete(Enquete enquete); void deleteAllByEnquete(Enquete enquete);
Optional<CaracteristiqueParcelle> findByMobileDataId(Long id);
@Transactional @Transactional
@Modifying @Modifying
void deleteAllByEnquete_Id(Long enqueteId); void deleteAllByEnquete_Id(Long enqueteId);

View File

@@ -1,5 +1,6 @@
package io.gmss.fiscad.repositories.rfu.metier; 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.CaracteristiqueUniteLogement;
import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement; import io.gmss.fiscad.entities.rfu.metier.EnqueteUniteLogement;
import io.gmss.fiscad.paylaods.response.restoration.CaracteristiqueUniteLogementPayLoad; 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 org.springframework.data.repository.query.Param;
import java.util.List; import java.util.List;
import java.util.Optional;
public interface CaracteristiqueUniteLogementRepository extends JpaRepository<CaracteristiqueUniteLogement, Long> { public interface CaracteristiqueUniteLogementRepository extends JpaRepository<CaracteristiqueUniteLogement, Long> {
@Modifying @Modifying
@Transactional @Transactional
void deleteAllByEnqueteUniteLogement(EnqueteUniteLogement enqueteUniteLogement); void deleteAllByEnqueteUniteLogement(EnqueteUniteLogement enqueteUniteLogement);
Optional<CaracteristiqueUniteLogement> findByMobileDataId(Long id);
@Modifying @Modifying
@Transactional @Transactional
@Query(""" @Query("""

View File

@@ -1,5 +1,6 @@
package io.gmss.fiscad.repositories.rfu.metier; 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.entities.rfu.metier.DonneesImpositionTfu;
import io.gmss.fiscad.paylaods.response.DonneesImpositionTfuResponse; import io.gmss.fiscad.paylaods.response.DonneesImpositionTfuResponse;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
@@ -10,6 +11,7 @@ import java.util.Optional;
public interface DonneesImpositionTfuRepository extends JpaRepository<DonneesImpositionTfu, Long> { public interface DonneesImpositionTfuRepository extends JpaRepository<DonneesImpositionTfu, Long> {
@Query(value = """ @Query(value = """
select distinct select distinct

View File

@@ -1,5 +1,6 @@
package io.gmss.fiscad.repositories.rfu.metier; 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.entities.rfu.metier.EnqueteBatiment;
import io.gmss.fiscad.paylaods.response.restoration.EnqueteBatimentPayLoad; import io.gmss.fiscad.paylaods.response.restoration.EnqueteBatimentPayLoad;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
@@ -10,7 +11,7 @@ import java.util.Optional;
public interface EnqueteBatimentRepository extends JpaRepository<EnqueteBatiment, Long> { public interface EnqueteBatimentRepository extends JpaRepository<EnqueteBatiment, Long> {
Optional<EnqueteBatiment> findByMobileDataId(Long id);
Optional<EnqueteBatiment> findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long TerminalId); Optional<EnqueteBatiment> findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long TerminalId);
List<EnqueteBatiment> findAllByEnquete_Id(Long enqueteId); List<EnqueteBatiment> findAllByEnquete_Id(Long enqueteId);

View File

@@ -1,5 +1,6 @@
package io.gmss.fiscad.repositories.rfu.metier; 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.entities.rfu.metier.EnqueteUniteLogement;
import io.gmss.fiscad.paylaods.response.restoration.EnqueteUniteLogementPayLoad; import io.gmss.fiscad.paylaods.response.restoration.EnqueteUniteLogementPayLoad;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
@@ -11,6 +12,7 @@ import java.util.Optional;
public interface EnqueteUniteLogementRepository extends JpaRepository<EnqueteUniteLogement, Long> { public interface EnqueteUniteLogementRepository extends JpaRepository<EnqueteUniteLogement, Long> {
Optional<EnqueteUniteLogement> findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long TerminalId); Optional<EnqueteUniteLogement> findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long TerminalId);
Optional<EnqueteUniteLogement> findByMobileDataId(Long id);
List<EnqueteUniteLogement> findAllByEnquete_Id(Long id); List<EnqueteUniteLogement> findAllByEnquete_Id(Long id);

View File

@@ -1,5 +1,6 @@
package io.gmss.fiscad.repositories.rfu.metier; 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.entities.rfu.metier.UniteLogement;
import io.gmss.fiscad.paylaods.response.restoration.UniteLogementPayLoad; import io.gmss.fiscad.paylaods.response.restoration.UniteLogementPayLoad;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
@@ -11,7 +12,7 @@ import java.util.Optional;
public interface UniteLogementRepository extends JpaRepository<UniteLogement, Long> { public interface UniteLogementRepository extends JpaRepository<UniteLogement, Long> {
Optional<UniteLogement> findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long TerminalId); Optional<UniteLogement> findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long TerminalId);
Optional<UniteLogement> findByMobileDataId(Long id);
@Query( @Query(
nativeQuery = true, nativeQuery = true,
value = "select ul.id as idBackend, " + value = "select ul.id as idBackend, " +

View File

@@ -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);
}
}

View File

@@ -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<Tpe> 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<Personne> 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<Enquete> 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<ActeurConcerne> 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<Enquete> optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(acteurConcernePayLoad.getEnqueteId(), acteurConcernePayLoad.getTerminalId());
acteurConcerne.setEnquete(optionalEnquete.orElse(null));
}
if (acteurConcernePayLoad.getEnqueteId() != null) {
Optional<Personne> optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(acteurConcernePayLoad.getPersonneId(), acteurConcernePayLoad.getTerminalId());
acteurConcerne.setPersonne(optionalPersonne.orElse(null));
}
if (acteurConcernePayLoad.getPositionRepresentationId() != null) {
Optional<PositionRepresentation> optionalPositionRepresentation = positionRepresentationRepository.findById(acteurConcernePayLoad.getPositionRepresentationId());
acteurConcerne.setPositionRepresentation(optionalPositionRepresentation.orElse(null));
}
if (acteurConcernePayLoad.getTypeContestationId() != null) {
Optional<TypeContestation> optionalTypeContestation = typeContestationRepository.findById(acteurConcernePayLoad.getTypeContestationId());
acteurConcerne.setTypeContestation(optionalTypeContestation.orElse(null));
}
if (acteurConcernePayLoad.getTypeRepresentationId() != null) {
Optional<TypeRepresentation> optionalTypeRepresentation = typeRepresentationRepository.findById(acteurConcernePayLoad.getTypeRepresentationId());
acteurConcerne.setTypeRepresentation(optionalTypeRepresentation.orElse(null));
}
if (acteurConcernePayLoad.getTerminalId() != null) {
Optional<Tpe> 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;
}
}

View File

@@ -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<Tpe> 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<Parcelle> 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<Batiment> 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<Parcelle> optionalParcelle = parcelleRepository.findFirstByExternalKeyAndTerminal_Id(batimentPaylaod.getParcelleId(), batimentPaylaod.getTerminalId());
batiment.setParcelle(optionalParcelle.orElse(null));
}
if (batimentPaylaod.getTerminalId() != null) {
Optional<Tpe> optionalTpe = tpeRepository.findById(batimentPaylaod.getTerminalId());
batiment.setTerminal(optionalTpe.orElse(null));
}
if (batimentPaylaod.getTerminalId() != null && batimentPaylaod.getEnqueteId() != null) {
Optional<Enquete> 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;
}
}

View File

@@ -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<Tpe> 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<EnqueteBatiment> 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<EnqueteBatiment> optionalEnqueteBatiment = enqueteBatimentRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueBatimentPaylod.getEnqueteBatimentId(), caracteristiqueBatimentPaylod.getTerminalId());
caracteristiqueBatiment.setEnqueteBatiment(optionalEnqueteBatiment.orElse(null));
}
if (caracteristiqueBatimentPaylod.getCaracteristiqueId() != null) {
Optional<Caracteristique> optionalCaracteristique = caracteristiqueRepository.findById(caracteristiqueBatimentPaylod.getCaracteristiqueId());
caracteristiqueBatiment.setCaracteristique(optionalCaracteristique.orElse(null));
}
if (caracteristiqueBatimentPaylod.getTerminalId() != null) {
Optional<Tpe> optionalTpe = tpeRepository.findById(caracteristiqueBatimentPaylod.getTerminalId());
caracteristiqueBatiment.setTerminal(optionalTpe.orElse(null));
}
if (caracteristiqueBatimentPaylod.getTerminalId() != null && caracteristiqueBatimentPaylod.getEnqueteId() != null) {
Optional<Enquete> 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;
}
}

View File

@@ -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<Tpe> 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<Enquete> 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<Enquete> optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueParcellePaylod.getEnqueteId(), caracteristiqueParcellePaylod.getTerminalId());
caracteristiqueParcelle.setEnquete(optionalEnquete.orElse(null));
}
if (caracteristiqueParcellePaylod.getCaracteristiqueId() != null) {
Optional<Caracteristique> optionalCaracteristique = caracteristiqueRepository.findById(caracteristiqueParcellePaylod.getCaracteristiqueId());
caracteristiqueParcelle.setCaracteristique(optionalCaracteristique.orElse(null));
}
if (caracteristiqueParcellePaylod.getTerminalId() != null) {
Optional<Tpe> optionalTpe = tpeRepository.findById(caracteristiqueParcellePaylod.getTerminalId());
caracteristiqueParcelle.setTerminal(optionalTpe.orElse(null));
}
caracteristiqueParcelle.setEnqueteExternalKey(caracteristiqueParcellePaylod.getEnqueteId());
caracteristiqueParcelle.setValeur(caracteristiqueParcellePaylod.getValeur());
caracteristiqueParcelle.setExternalKey(caracteristiqueParcellePaylod.getExternalKey());
return caracteristiqueParcelle;
}
}

View File

@@ -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<Tpe> 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<EnqueteUniteLogement> 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<EnqueteUniteLogement> optionalEnqueteUniteLogement = enqueteUniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(caracteristiqueUniteLogementPaylod.getEnqueteUniteLogementId(), caracteristiqueUniteLogementPaylod.getTerminalId());
caracteristiqueUniteLogement.setEnqueteUniteLogement(optionalEnqueteUniteLogement.orElse(null));
}
if (caracteristiqueUniteLogementPaylod.getCaracteristiqueId() != null) {
Optional<Caracteristique> optionalCaracteristique = caracteristiqueRepository.findById(caracteristiqueUniteLogementPaylod.getCaracteristiqueId());
caracteristiqueUniteLogement.setCaracteristique(optionalCaracteristique.orElse(null));
}
if (caracteristiqueUniteLogementPaylod.getTerminalId() != null) {
Optional<Tpe> optionalTpe = tpeRepository.findById(caracteristiqueUniteLogementPaylod.getTerminalId());
caracteristiqueUniteLogement.setTerminal(optionalTpe.orElse(null));
}
if (caracteristiqueUniteLogementPaylod.getTerminalId() != null && caracteristiqueUniteLogementPaylod.getEnqueteId() != null) {
Optional<Enquete> 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;
}
}

View File

@@ -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<Tpe> 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<User> 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<ZoneRfu> 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<Parcelle> 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<Bloc> 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<Enquete> 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<User> optionalUser = userRepository.findById(enquetePayLoad.getUserId());
enquete.setUser(optionalUser.orElse(null));
}
if (enquetePayLoad.getZoneRfuId() != null) {
Optional<ZoneRfu> optionalZoneRfu = zoneRfuRepository.findById(enquetePayLoad.getZoneRfuId());
enquete.setZoneRfu(optionalZoneRfu.orElse(null));
}
if (enquetePayLoad.getParcelleId() != null) {
Optional<Parcelle> optionalParcelle = parcelleRepository.findFirstByNupProvisoire(enquetePayLoad.getCodeParcelle());
//Optional<Parcelle> optionalParcelle = parcelleRepository.findFirstByExternalKeyAndTerminal_Id(enquetePayLoad.getParcelleId(), enquetePayLoad.getTerminalId());
enquete.setParcelle(optionalParcelle.orElse(null));
}
if (enquetePayLoad.getBlocId() != null) {
Optional<Bloc> optionalBloc = blocRepository.findById(enquetePayLoad.getBlocId());
enquete.setBloc(optionalBloc.orElse(null));
}
if (enquetePayLoad.getTerminalId() != null) {
Optional<Tpe> 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<Enquete> 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) {
}
}
}
}

View File

@@ -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<Tpe> 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<Enquete> 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<Batiment> 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<EnqueteBatiment> 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<Personne> optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(enqueteBatimentPayload.getPersonneId(), enqueteBatimentPayload.getTerminalId());
enqueteBatiment.setPersonne(optionalPersonne.orElse(null));
}
if (enqueteBatimentPayload.getBatimentId() != null) {
Optional<Batiment> optionalBatiment = batimentRepository.findFirstByExternalKeyAndTerminal_Id(enqueteBatimentPayload.getBatimentId(), enqueteBatimentPayload.getTerminalId());
enqueteBatiment.setBatiment(optionalBatiment.orElse(null));
}
if (enqueteBatimentPayload.getEnqueteId() != null) {
Optional<Enquete> optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(enqueteBatimentPayload.getEnqueteId(), enqueteBatimentPayload.getTerminalId());
enqueteBatiment.setEnquete(optionalEnquete.orElse(null));
}
if (enqueteBatimentPayload.getTerminalId() != null) {
Optional<Tpe> optionalTpe = tpeRepository.findById(enqueteBatimentPayload.getTerminalId());
enqueteBatiment.setTerminal(optionalTpe.orElse(null));
}
if (enqueteBatimentPayload.getUserId() != null) {
Optional<User> optionalUser = userRepository.findById(enqueteBatimentPayload.getUserId());
enqueteBatiment.setUser(optionalUser.orElse(null));
}
return enqueteBatiment;
}
}

View File

@@ -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<Tpe> 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<Enquete> 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<UniteLogement> 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<EnqueteUniteLogement> 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<Personne> optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(enqueteUniteLogementPayload.getPersonneId(), enqueteUniteLogementPayload.getTerminalId());
enqueteUniteLogement.setPersonne(optionalPersonne.orElse(null));
}
if (enqueteUniteLogementPayload.getUniteLogementId() != null) {
Optional<UniteLogement> optionalUniteLogement = uniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(enqueteUniteLogementPayload.getUniteLogementId(), enqueteUniteLogementPayload.getTerminalId());
enqueteUniteLogement.setUniteLogement(optionalUniteLogement.orElse(null));
}
if (enqueteUniteLogementPayload.getEnqueteId() != null) {
Optional<Enquete> optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(enqueteUniteLogementPayload.getEnqueteId(), enqueteUniteLogementPayload.getTerminalId());
enqueteUniteLogement.setEnquete(optionalEnquete.orElse(null));
}
if (enqueteUniteLogementPayload.getTerminalId() != null) {
Optional<Tpe> optionalTpe = tpeRepository.findById(enqueteUniteLogementPayload.getTerminalId());
enqueteUniteLogement.setTerminal(optionalTpe.orElse(null));
}
if (enqueteUniteLogementPayload.getUserId() != null) {
Optional<User> 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;
}
}

View File

@@ -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<Tpe> 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<Personne> 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<Personne> 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<MembreGroupe> 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<Personne> optionalRepresentant = personneRepository.findFirstByExternalKeyAndTerminal_Id(membreGroupePayLoad.getPersonneRepresentanteId(), membreGroupePayLoad.getTerminalId());
membreGroupe.setPersonneRepresantante(optionalRepresentant.orElse(null));
}
if (membreGroupePayLoad.getPersonneRepresenteeId() != null) {
Optional<Personne> optionalRepresente = personneRepository.findFirstByExternalKeyAndTerminal_Id(membreGroupePayLoad.getPersonneRepresenteeId(), membreGroupePayLoad.getTerminalId());
membreGroupe.setPersonneRepresantee(optionalRepresente.orElse(null));
}
if (membreGroupePayLoad.getPositionRepresentationId() != null) {
Optional<PositionRepresentation> optionalPositionRepresentation = positionRepresentationRepository.findById(membreGroupePayLoad.getPositionRepresentationId());
membreGroupe.setPositionRepresentation(optionalPositionRepresentation.orElse(null));
}
if (membreGroupePayLoad.getTerminalId() != null) {
Optional<Tpe> optionalTpe = tpeRepository.findById(membreGroupePayLoad.getTerminalId());
membreGroupe.setTerminal(optionalTpe.orElse(null));
}
if (membreGroupePayLoad.getTypeRepresentationId() != null) {
Optional<TypeRepresentation> optionalTypeRepresentation = typeRepresentationRepository.findById(membreGroupePayLoad.getTypeRepresentationId());
membreGroupe.setExternalKey(membreGroupePayLoad.getExternalKey());
}
if (membreGroupePayLoad.getEnqueteId() != null) {
Optional<Enquete> 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;
}
}

View File

@@ -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<Tpe> 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<Parcelle> 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<NatureDomaine> optionalNatureDomaine = natureDomaineRepository.findById(parcellePayLoad.getNatureDomaineId());
parcelle.setNatureDomaine(optionalNatureDomaine.orElse(null));
}
if (parcellePayLoad.getQuartierId() != null) {
Optional<Quartier> optionalQuartier = quartierRepository.findById(parcellePayLoad.getQuartierId());
parcelle.setQuartier(optionalQuartier.orElse(null));
}
if (parcellePayLoad.getTerminalId() != null) {
Optional<Tpe> 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;
}
}

View File

@@ -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<Tpe> 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<Personne> 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<Commune> optionalCommune = communeRepository.findById(personnePayLoad.getCommuneId());
personne.setCommune(optionalCommune.orElse(null));
}
if (personnePayLoad.getNationaliteId() != null) {
Optional<Nationalite> optionalNationalite = nationaliteRepository.findById(personnePayLoad.getNationaliteId());
personne.setNationalite(optionalNationalite.orElse(null));
}
if (personnePayLoad.getProfessionId() != null) {
Optional<Profession> optionalProfession = professionRepository.findById(personnePayLoad.getProfessionId());
personne.setProfession(optionalProfession.orElse(null));
}
if (personnePayLoad.getTypePersonneId() != null) {
Optional<TypePersonne> optionalTypePersonne = typePersonneRepository.findById(personnePayLoad.getTypePersonneId());
personne.setTypePersonne(optionalTypePersonne.orElse(null));
} else {
Optional<TypePersonne> optionalTypePersonne = typePersonneRepository.findFirstByCategorie(Categorie.PERSONNE_PHYSIQUE);
personne.setTypePersonne(optionalTypePersonne.orElse(null));
}
if (personnePayLoad.getSituationMatrimonialeId() != null) {
Optional<SituationMatrimoniale> optionalSituationMatrimoniale = situationMatrimonialeRepository.findById(personnePayLoad.getSituationMatrimonialeId());
personne.setSituationMatrimoniale(optionalSituationMatrimoniale.orElse(null));
}
if (personnePayLoad.getTerminalId() != null) {
Optional<Tpe> 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);
}
}

View File

@@ -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<Tpe> 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<Piece> 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<TypePiece> optionalTypePiece = typePieceRepository.findById(piecePayLoad.getTypePieceId());
piece.setTypePiece(optionalTypePiece.orElse(null));
} else {
piece.setTypePiece(null);
}
if (piecePayLoad.getPersonneId() != null) {
Optional<Personne> optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(piecePayLoad.getPersonneId(), piecePayLoad.getTerminalId());
piece.setPersonne(optionalPersonne.orElse(null));
} else {
piece.setPersonne(null);
}
if (piecePayLoad.getActeurConcerneId() != null) {
Optional<ActeurConcerne> optionalActeurConcerne = acteurConcerneRepository.findFirstByExternalKeyAndTerminal_Id(piecePayLoad.getActeurConcerneId(), piecePayLoad.getTerminalId());
piece.setActeurConcerne(optionalActeurConcerne.orElse(null));
} else {
piece.setActeurConcerne(null);
}
if (piecePayLoad.getModeAcquisitionId() != null) {
Optional<ModeAcquisition> optionalModeAcquisition = modeAcquisitionRepository.findById(piecePayLoad.getModeAcquisitionId());
piece.setModeAcquisition(optionalModeAcquisition.orElse(null));
} else {
piece.setModeAcquisition(null);
}
if (piecePayLoad.getSourceDroitId() != null) {
Optional<SourceDroit> optionalSourceDroit = sourceDroitRepository.findById(piecePayLoad.getSourceDroitId());
piece.setSourceDroit(optionalSourceDroit.orElse(null));
} else {
piece.setSourceDroit(null);
}
if (piecePayLoad.getTerminalId() != null) {
Optional<Tpe> optionalTpe = tpeRepository.findById(piecePayLoad.getTerminalId());
piece.setTerminal(optionalTpe.orElse(null));
}
if (piecePayLoad.getTerminalId() != null && piecePayLoad.getEnqueteId() != null) {
Optional<Enquete> 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;
}
}

View File

@@ -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<Tpe> 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<Batiment> 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<UniteLogement> 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<Batiment> optionalBatiment = batimentRepository.findFirstByExternalKeyAndTerminal_Id(uniteLogementPaylaod.getBatimentId(), uniteLogementPaylaod.getTerminalId());
uniteLogement.setBatiment(optionalBatiment.orElse(null));
}
if (uniteLogementPaylaod.getTerminalId() != null) {
Optional<Tpe> optionalTpe = tpeRepository.findById(uniteLogementPaylaod.getTerminalId());
uniteLogement.setTerminal(optionalTpe.orElse(null));
}
if (uniteLogementPaylaod.getTerminalId() != null && uniteLogementPaylaod.getEnqueteId() != null) {
Optional<Enquete> 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;
}
}

View File

@@ -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<Tpe> 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<Tpe> optionalTpe = tpeRepository.findById(uploadPayLoad.getTerminalId());
upload.setTerminal(optionalTpe.orElse(null));
}
if (uploadPayLoad.getPieceId() != null) {
Optional<Piece> optionalPiece = pieceRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getPieceId(), uploadPayLoad.getTerminalId());
upload.setPiece(optionalPiece.orElse(null));
}
if (uploadPayLoad.getMembreGroupeId() != null) {
Optional<MembreGroupe> optionalMembreGroupe = membreGroupeRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getMembreGroupeId(), uploadPayLoad.getTerminalId());
upload.setMembreGroupe(optionalMembreGroupe.orElse(null));
}
if (uploadPayLoad.getPersonneId() != null) {
Optional<Personne> optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getPersonneId(), uploadPayLoad.getTerminalId());
upload.setPersonne(optionalPersonne.orElse(null));
}
if (uploadPayLoad.getEnqueteBatimentId() != null) {
Optional<EnqueteBatiment> optionalEnqueteBatiment = enqueteBatimentRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getEnqueteBatimentId(), uploadPayLoad.getTerminalId());
upload.setEnqueteBatiment(optionalEnqueteBatiment.orElse(null));
}
if (uploadPayLoad.getEnqueteUniteLogementId() != null) {
Optional<EnqueteUniteLogement> optionalEnqueteUniteLogement = enqueteUniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(uploadPayLoad.getEnqueteUniteLogementId(), uploadPayLoad.getTerminalId());
upload.setEnqueteUniteLogement(optionalEnqueteUniteLogement.orElse(null));
}
if (uploadPayLoad.getTerminalId() != null && uploadPayLoad.getEnqueteId() != null) {
Optional<Enquete> 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;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 KiB

Some files were not shown because too many files have changed in this diff Show More