commit avant gitea
This commit is contained in:
@@ -208,7 +208,6 @@ public class SynchronisationController {
|
|||||||
public ResponseEntity<?> syncActeurConcerne(@RequestBody List<ActeurConcernePayLoad> piecePayLoads) {
|
public ResponseEntity<?> syncActeurConcerne(@RequestBody List<ActeurConcernePayLoad> piecePayLoads) {
|
||||||
try {
|
try {
|
||||||
return new ResponseEntity<>(
|
return new ResponseEntity<>(
|
||||||
//new ApiResponse<>(true, null, "Liste des acteurs concernes synchronisée avec succès."),
|
|
||||||
new ApiResponse<>(true, synchronisationService.syncActeurConcerne(piecePayLoads), "Liste des acteurs concernes synchronisée avec succès."),
|
new ApiResponse<>(true, synchronisationService.syncActeurConcerne(piecePayLoads), "Liste des acteurs concernes synchronisée avec succès."),
|
||||||
HttpStatus.OK
|
HttpStatus.OK
|
||||||
);
|
);
|
||||||
@@ -228,6 +227,57 @@ public class SynchronisationController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping("/enquete-activite")
|
||||||
|
@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')")
|
||||||
|
public ResponseEntity<?> syncEnqueteActivite(@RequestBody List<EnqueteActivitePayload> enqueteActivitePayloads) {
|
||||||
|
try {
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
//new ApiResponse<>(true, null, "Liste des pièces synchronisée avec succès."),
|
||||||
|
new ApiResponse<>(true, synchronisationService.syncEnqueteActivite(enqueteActivitePayloads), "Liste des activités synchronisé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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/declaraction-nc")
|
||||||
|
@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')")
|
||||||
|
public ResponseEntity<?> syncDeclarationNc(@RequestBody List<DeclarationNcPayload> declarationNcPayloads) {
|
||||||
|
try {
|
||||||
|
return new ResponseEntity<>(
|
||||||
|
new ApiResponse<>(true, synchronisationService.syncDeclarationNc(declarationNcPayloads), "Liste des activités synchronisé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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//@PostMapping("/files")
|
//@PostMapping("/files")
|
||||||
// @PostMapping(path = "/files")
|
// @PostMapping(path = "/files")
|
||||||
// @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')")
|
// @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')")
|
||||||
@@ -365,11 +415,6 @@ public class SynchronisationController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Liste des API pour la synchronisation des données liées à FISCAD
|
|
||||||
* Fait le mercredi 15 janvier 2025 à 09h21
|
|
||||||
* MERCI DE NE PAS TOUCHER A CE BLOC DE CODE
|
|
||||||
*/
|
|
||||||
|
|
||||||
@PostMapping(path = "/batiment")
|
@PostMapping(path = "/batiment")
|
||||||
@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')")
|
@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')")
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import io.gmss.fiscad.entities.BaseEntity;
|
|||||||
import io.gmss.fiscad.entities.decoupage.Arrondissement;
|
import io.gmss.fiscad.entities.decoupage.Arrondissement;
|
||||||
import io.gmss.fiscad.entities.infocad.parametre.Bloc;
|
import io.gmss.fiscad.entities.infocad.parametre.Bloc;
|
||||||
import io.gmss.fiscad.entities.infocad.parametre.NatureDomaine;
|
import io.gmss.fiscad.entities.infocad.parametre.NatureDomaine;
|
||||||
|
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.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;
|
||||||
@@ -18,6 +19,7 @@ import io.gmss.fiscad.entities.rfu.parametre.ZoneRfu;
|
|||||||
import io.gmss.fiscad.entities.user.User;
|
import io.gmss.fiscad.entities.user.User;
|
||||||
import io.gmss.fiscad.enums.StatusEnquete;
|
import io.gmss.fiscad.enums.StatusEnquete;
|
||||||
import io.gmss.fiscad.enums.StatutEnregistrement;
|
import io.gmss.fiscad.enums.StatutEnregistrement;
|
||||||
|
import io.gmss.fiscad.repositories.infocad.parametre.PersonneRepository;
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -76,6 +78,10 @@ public class Enquete extends BaseEntity implements Serializable {
|
|||||||
@ManyToOne
|
@ManyToOne
|
||||||
private Equipe equipe;
|
private Equipe equipe;
|
||||||
|
|
||||||
|
@JsonIgnore
|
||||||
|
@ManyToOne
|
||||||
|
private Personne personne ;
|
||||||
|
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
private ZoneRfu zoneRfu;
|
private ZoneRfu zoneRfu;
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package io.gmss.fiscad.entities.metadata;
|
||||||
|
|
||||||
|
import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
|
||||||
|
import io.gmss.fiscad.entities.BaseEntity;
|
||||||
|
import io.gmss.fiscad.paylaods.request.DeclarationNcPayload;
|
||||||
|
import jakarta.persistence.*;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import org.hibernate.annotations.Type;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Table(
|
||||||
|
indexes = {
|
||||||
|
@Index(name = "idx_terminal_external_bat", columnList = "terminalId, externalKey")
|
||||||
|
}
|
||||||
|
)
|
||||||
|
public class MobileDataDeclarationNc extends BaseEntity implements Serializable {
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private Long id;
|
||||||
|
private Long terminalId;
|
||||||
|
private Long externalKey;
|
||||||
|
@Type(JsonBinaryType.class)
|
||||||
|
@Column(columnDefinition = "jsonb")
|
||||||
|
private DeclarationNcPayload declarationNcPayload ;
|
||||||
|
@Column(columnDefinition = "boolean default false")
|
||||||
|
private boolean traiter;
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package io.gmss.fiscad.entities.metadata;
|
||||||
|
|
||||||
|
import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
|
||||||
|
import io.gmss.fiscad.entities.BaseEntity;
|
||||||
|
import io.gmss.fiscad.paylaods.request.BatimentPaylaod;
|
||||||
|
import io.gmss.fiscad.paylaods.request.EnqueteActivitePayload;
|
||||||
|
import jakarta.persistence.*;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import org.hibernate.annotations.Type;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Table(
|
||||||
|
indexes = {
|
||||||
|
@Index(name = "idx_terminal_external_bat", columnList = "terminalId, externalKey")
|
||||||
|
}
|
||||||
|
)
|
||||||
|
public class MobileDataEnqueteActivite extends BaseEntity implements Serializable {
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
private Long id;
|
||||||
|
private Long terminalId;
|
||||||
|
private Long externalKey;
|
||||||
|
@Type(JsonBinaryType.class)
|
||||||
|
@Column(columnDefinition = "jsonb")
|
||||||
|
private EnqueteActivitePayload enqueteActivitePayload ;
|
||||||
|
@Column(columnDefinition = "boolean default false")
|
||||||
|
private boolean traiter;
|
||||||
|
}
|
||||||
@@ -44,6 +44,12 @@ public class DeclarationNc extends BaseEntity implements Serializable {
|
|||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
private Enquete enquete;
|
private Enquete enquete;
|
||||||
|
private Long enqueteExternalKey;
|
||||||
|
|
||||||
|
@JsonIgnore
|
||||||
|
@ManyToOne
|
||||||
|
private Personne personne ;
|
||||||
|
private Long personneExternalKey;
|
||||||
|
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
|
|||||||
@@ -51,9 +51,9 @@ public class EnqueteActivite extends BaseEntity implements Serializable {
|
|||||||
|
|
||||||
@Column(columnDefinition = "false")
|
@Column(columnDefinition = "false")
|
||||||
private boolean estDeclarer;
|
private boolean estDeclarer;
|
||||||
|
|
||||||
private String nc;
|
private String nc;
|
||||||
|
private Long ChiffreAffaire;
|
||||||
|
private String NumeroRccm;
|
||||||
@OneToOne
|
@OneToOne
|
||||||
private Personne personne;
|
private Personne personne;
|
||||||
private Long personneExternalKey;
|
private Long personneExternalKey;
|
||||||
@@ -92,8 +92,6 @@ public class EnqueteActivite extends BaseEntity implements Serializable {
|
|||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
private StatutEnregistrement statutEnregistrement;
|
private StatutEnregistrement statutEnregistrement;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//@JsonManagedReference ///pour couper la récurcivité
|
//@JsonManagedReference ///pour couper la récurcivité
|
||||||
//@OneToMany(mappedBy = "enqueteBatiment")
|
//@OneToMany(mappedBy = "enqueteBatiment")
|
||||||
//private List<CaracteristiqueBatiment> caracteristiqueBatiments;
|
//private List<CaracteristiqueBatiment> caracteristiqueBatiments;
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ public enum TypeObjet {
|
|||||||
ENQUETEUNITELOGEMENT,
|
ENQUETEUNITELOGEMENT,
|
||||||
CARACTERISTIQUEPARCELLE,
|
CARACTERISTIQUEPARCELLE,
|
||||||
CARACTERISTIQUEBATIMENT,
|
CARACTERISTIQUEBATIMENT,
|
||||||
CARACTERISTIQUEUNITELOGEMENT
|
CARACTERISTIQUEUNITELOGEMENT,
|
||||||
|
ENQUETEACTIVITE,
|
||||||
|
DECLARATIONNC
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -101,6 +101,8 @@ public class SynchronisationServiceImpl implements SynchronisationService {
|
|||||||
private final ParcelleAsyncWorker parcelleAsyncWorker;
|
private final ParcelleAsyncWorker parcelleAsyncWorker;
|
||||||
private final PieceAsyncWorker pieceAsyncWorker;
|
private final PieceAsyncWorker pieceAsyncWorker;
|
||||||
private final UniteLogementAsyncWorker uniteLogementAsyncWorker;
|
private final UniteLogementAsyncWorker uniteLogementAsyncWorker;
|
||||||
|
private final MobileDataEnqueteActiviteRepository mobileDataEnqueteActiviteRepository;
|
||||||
|
private final MobileDataDeclarationNcRepository mobileDataDeclarationNcRepository;
|
||||||
private final UploadAsyncWorker uploadAsyncWorker;
|
private final UploadAsyncWorker uploadAsyncWorker;
|
||||||
@Value("${io.gmss.fiscad.profile}")
|
@Value("${io.gmss.fiscad.profile}")
|
||||||
private String profile;
|
private String profile;
|
||||||
@@ -311,6 +313,35 @@ public class SynchronisationServiceImpl implements SynchronisationService {
|
|||||||
|
|
||||||
return syncResponses;
|
return syncResponses;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SyncResponse> syncEnqueteActivite(List<EnqueteActivitePayload> enqueteActivitePayloads) {
|
||||||
|
List<SyncResponse> syncResponses = new ArrayList<>();
|
||||||
|
if (enqueteActivitePayloads == null) {
|
||||||
|
SyncResponse syncResponse = new SyncResponse(null,
|
||||||
|
null, false, "Aucune activité à synchroniser");
|
||||||
|
syncResponses.add(syncResponse);
|
||||||
|
return syncResponses;
|
||||||
|
}
|
||||||
|
syncResponses = saveMobileData(enqueteActivitePayloads, TypeObjet.ENQUETEACTIVITE);
|
||||||
|
|
||||||
|
return syncResponses;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SyncResponse> syncDeclarationNc(List<DeclarationNcPayload> declarationNcPayloads) {
|
||||||
|
List<SyncResponse> syncResponses = new ArrayList<>();
|
||||||
|
if (declarationNcPayloads == null) {
|
||||||
|
SyncResponse syncResponse = new SyncResponse(null,
|
||||||
|
null, false, "Aucun acteur concerné à synchroniser");
|
||||||
|
syncResponses.add(syncResponse);
|
||||||
|
return syncResponses;
|
||||||
|
}
|
||||||
|
syncResponses = saveMobileData(declarationNcPayloads, TypeObjet.DECLARATIONNC);
|
||||||
|
|
||||||
|
return syncResponses;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SyncResponse syncFiles(MultipartFile file,
|
public SyncResponse syncFiles(MultipartFile file,
|
||||||
Long idBackend,
|
Long idBackend,
|
||||||
@@ -465,16 +496,14 @@ public class SynchronisationServiceImpl implements SynchronisationService {
|
|||||||
|
|
||||||
private <T> List<SyncResponse> saveMobileData(List<T> payloads, TypeObjet typeObjet, MultipartFile file) {
|
private <T> List<SyncResponse> saveMobileData(List<T> payloads, TypeObjet typeObjet, MultipartFile file) {
|
||||||
List<SyncResponse> syncResponses = new ArrayList<>();
|
List<SyncResponse> syncResponses = new ArrayList<>();
|
||||||
System.out.println("==SYNCHRONISATION== : "+typeObjet.toString());
|
System.out.println(" ==SYNCHRONISATION== : " + typeObjet.toString());
|
||||||
switch (typeObjet) {
|
switch (typeObjet) {
|
||||||
case PERSONNE -> {
|
case PERSONNE -> {
|
||||||
payloads.forEach(payLoad -> {
|
payloads.forEach(payLoad -> {
|
||||||
PersonnePayLoad personnePayLoad = (PersonnePayLoad) payLoad;
|
PersonnePayLoad personnePayLoad = (PersonnePayLoad) payLoad;
|
||||||
try {
|
try {
|
||||||
MobileDataPersonne mobileDataPersonne = new MobileDataPersonne();
|
MobileDataPersonne mobileDataPersonne = new MobileDataPersonne();
|
||||||
|
|
||||||
Optional<MobileDataPersonne> optionalMobileDataPersonne = Optional.empty();
|
Optional<MobileDataPersonne> optionalMobileDataPersonne = Optional.empty();
|
||||||
// personnePayLoad.setIdBackend(null);
|
|
||||||
if (personnePayLoad.getIdBackend() != null) {
|
if (personnePayLoad.getIdBackend() != null) {
|
||||||
optionalMobileDataPersonne = mobileDataPersonneRepository.findById(personnePayLoad.getIdBackend());
|
optionalMobileDataPersonne = mobileDataPersonneRepository.findById(personnePayLoad.getIdBackend());
|
||||||
if (optionalMobileDataPersonne.isPresent()) {
|
if (optionalMobileDataPersonne.isPresent()) {
|
||||||
@@ -1079,6 +1108,90 @@ public class SynchronisationServiceImpl implements SynchronisationService {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case ENQUETEACTIVITE -> {
|
||||||
|
payloads.forEach(payLoad -> {
|
||||||
|
EnqueteActivitePayload enqueteActivitePayload = (EnqueteActivitePayload) payLoad;
|
||||||
|
try {
|
||||||
|
MobileDataEnqueteActivite mobileDataEnqueteActivite = new MobileDataEnqueteActivite();
|
||||||
|
|
||||||
|
Optional<MobileDataEnqueteActivite> optionalMobileDataEnqueteActivite = Optional.empty();
|
||||||
|
|
||||||
|
if (enqueteActivitePayload.getIdBackend() != null) {
|
||||||
|
optionalMobileDataEnqueteActivite = mobileDataEnqueteActiviteRepository.findById(enqueteActivitePayload.getIdBackend());
|
||||||
|
if (optionalMobileDataEnqueteActivite.isPresent()) {
|
||||||
|
mobileDataEnqueteActivite = optionalMobileDataEnqueteActivite.get();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
optionalMobileDataEnqueteActivite = mobileDataEnqueteActiviteRepository.findFirstByTerminalIdAndExternalKey(enqueteActivitePayload.getTerminalId(), enqueteActivitePayload.getExternalKey());
|
||||||
|
if (optionalMobileDataEnqueteActivite.isPresent()) {
|
||||||
|
mobileDataEnqueteActivite = optionalMobileDataEnqueteActivite.get();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mobileDataEnqueteActivite.setTerminalId(enqueteActivitePayload.getTerminalId());
|
||||||
|
mobileDataEnqueteActivite.setExternalKey(enqueteActivitePayload.getExternalKey());
|
||||||
|
mobileDataEnqueteActivite.setTraiter(false);
|
||||||
|
mobileDataEnqueteActivite.setEnqueteActivitePayload(enqueteActivitePayload);
|
||||||
|
mobileDataEnqueteActivite = mobileDataEnqueteActiviteRepository.save(mobileDataEnqueteActivite);
|
||||||
|
SyncResponse syncResponse = new SyncResponse();
|
||||||
|
syncResponse.setObservation("Synchronisation effectuée avec succès pour " + TypeObjet.ENQUETEACTIVITE.toString());
|
||||||
|
syncResponse.setExternalKey(enqueteActivitePayload.getExternalKey());
|
||||||
|
syncResponse.setSynchronise(true);
|
||||||
|
syncResponse.setIdBackend(mobileDataEnqueteActivite.getId());
|
||||||
|
syncResponses.add(syncResponse);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
SyncResponse syncResponse = new SyncResponse();
|
||||||
|
syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.ENQUETEACTIVITE.toString());
|
||||||
|
syncResponse.setExternalKey(enqueteActivitePayload.getExternalKey());
|
||||||
|
syncResponse.setSynchronise(false);
|
||||||
|
syncResponse.setIdBackend(enqueteActivitePayload.getIdBackend());
|
||||||
|
syncResponses.add(syncResponse);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
case DECLARATIONNC -> {
|
||||||
|
payloads.forEach(payLoad -> {
|
||||||
|
DeclarationNcPayload declarationNcPayload = (DeclarationNcPayload) payLoad;
|
||||||
|
try {
|
||||||
|
MobileDataDeclarationNc mobileDataDeclarationNc = new MobileDataDeclarationNc();
|
||||||
|
|
||||||
|
Optional<MobileDataDeclarationNc> optionalMobileDataDeclarationNc = Optional.empty();
|
||||||
|
|
||||||
|
if (declarationNcPayload.getIdBackend() != null) {
|
||||||
|
optionalMobileDataDeclarationNc = mobileDataDeclarationNcRepository.findById(declarationNcPayload.getIdBackend());
|
||||||
|
if (optionalMobileDataDeclarationNc.isPresent()) {
|
||||||
|
mobileDataDeclarationNc = optionalMobileDataDeclarationNc.get();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
optionalMobileDataDeclarationNc = mobileDataDeclarationNcRepository.findFirstByTerminalIdAndExternalKey(declarationNcPayload.getTerminalId(), declarationNcPayload.getExternalKey());
|
||||||
|
if (optionalMobileDataDeclarationNc.isPresent()) {
|
||||||
|
mobileDataDeclarationNc = optionalMobileDataDeclarationNc.get();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mobileDataDeclarationNc.setTerminalId(declarationNcPayload.getTerminalId());
|
||||||
|
mobileDataDeclarationNc.setExternalKey(declarationNcPayload.getExternalKey());
|
||||||
|
mobileDataDeclarationNc.setTraiter(false);
|
||||||
|
mobileDataDeclarationNc.setDeclarationNcPayload(declarationNcPayload);
|
||||||
|
mobileDataDeclarationNc = mobileDataDeclarationNcRepository.save(mobileDataDeclarationNc);
|
||||||
|
SyncResponse syncResponse = new SyncResponse();
|
||||||
|
syncResponse.setObservation("Synchronisation effectuée avec succès pour " + TypeObjet.DECLARATIONNC.toString());
|
||||||
|
syncResponse.setExternalKey(declarationNcPayload.getExternalKey());
|
||||||
|
syncResponse.setSynchronise(true);
|
||||||
|
syncResponse.setIdBackend(mobileDataDeclarationNc.getId());
|
||||||
|
syncResponses.add(syncResponse);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
SyncResponse syncResponse = new SyncResponse();
|
||||||
|
syncResponse.setObservation("Synchronisation échouée pour " + TypeObjet.DECLARATIONNC.toString());
|
||||||
|
syncResponse.setExternalKey(declarationNcPayload.getExternalKey());
|
||||||
|
syncResponse.setSynchronise(false);
|
||||||
|
syncResponse.setIdBackend(declarationNcPayload.getIdBackend());
|
||||||
|
syncResponses.add(syncResponse);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return syncResponses;
|
return syncResponses;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,6 +44,8 @@ public interface SynchronisationService {
|
|||||||
public List<SyncResponse> syncPiece(List<PiecePayLoad> piecePayLoads);
|
public List<SyncResponse> syncPiece(List<PiecePayLoad> piecePayLoads);
|
||||||
|
|
||||||
public List<SyncResponse> syncActeurConcerne(List<ActeurConcernePayLoad> acteurConcernePayLoads);
|
public List<SyncResponse> syncActeurConcerne(List<ActeurConcernePayLoad> acteurConcernePayLoads);
|
||||||
|
public List<SyncResponse> syncEnqueteActivite(List<EnqueteActivitePayload> enqueteActivitePayloads);
|
||||||
|
public List<SyncResponse> syncDeclarationNc(List<DeclarationNcPayload> declarationNcPayloads);
|
||||||
|
|
||||||
public SyncResponse syncFiles(MultipartFile file,
|
public SyncResponse syncFiles(MultipartFile file,
|
||||||
Long idBackend,
|
Long idBackend,
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package io.gmss.fiscad.paylaods.request;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||||
|
import io.gmss.fiscad.deserializer.LocalDateDeserializer;
|
||||||
|
import io.gmss.fiscad.entities.infocad.metier.Enquete;
|
||||||
|
import io.gmss.fiscad.entities.infocad.metier.Tpe;
|
||||||
|
import io.gmss.fiscad.entities.infocad.parametre.Structure;
|
||||||
|
import io.gmss.fiscad.enums.StatutEnregistrement;
|
||||||
|
import jakarta.persistence.*;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class DeclarationNcPayload {
|
||||||
|
private Long idBackend;
|
||||||
|
private Long externalKey;
|
||||||
|
private Long terminalId;
|
||||||
|
private boolean synchronise;
|
||||||
|
private String observation;
|
||||||
|
private LocalDate dateDerniereDeclaration;
|
||||||
|
private String nc;
|
||||||
|
private Long structureId;
|
||||||
|
private Long enqueteId;
|
||||||
|
private Long personneId;
|
||||||
|
private Long userId;
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
package io.gmss.fiscad.paylaods.request;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||||
|
import io.gmss.fiscad.deserializer.LocalDateDeserializer;
|
||||||
|
import io.gmss.fiscad.entities.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.Personne;
|
||||||
|
import io.gmss.fiscad.entities.infocad.parametre.Profession;
|
||||||
|
import io.gmss.fiscad.entities.infocad.parametre.Structure;
|
||||||
|
import io.gmss.fiscad.entities.rfu.metier.Batiment;
|
||||||
|
import io.gmss.fiscad.entities.rfu.metier.UniteLogement;
|
||||||
|
import jakarta.persistence.Column;
|
||||||
|
import jakarta.persistence.ManyToOne;
|
||||||
|
import jakarta.persistence.OneToOne;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class EnqueteActivitePayload {
|
||||||
|
private Long idBackend;
|
||||||
|
private Long externalKey;
|
||||||
|
private Long terminalId;
|
||||||
|
private Long ChiffreAffaire;
|
||||||
|
private String NumeroRccm;
|
||||||
|
private boolean synchronise;
|
||||||
|
private String observation;
|
||||||
|
private LocalDate dateDemarrage;
|
||||||
|
private LocalDate dateFin;
|
||||||
|
private LocalDate dateEnquete;
|
||||||
|
private boolean estDeclarer;
|
||||||
|
private String nc;
|
||||||
|
private Long enqueteId;
|
||||||
|
private Long structureId;
|
||||||
|
private Long personneId;
|
||||||
|
private Long batimentId;
|
||||||
|
private Long parcelleId;
|
||||||
|
private Long uniteLogementId;
|
||||||
|
private Long professionId;
|
||||||
|
private Long userId;
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package io.gmss.fiscad.paylaods.request;
|
package io.gmss.fiscad.paylaods.request;
|
||||||
|
|
||||||
|
import io.gmss.fiscad.entities.infocad.parametre.Personne;
|
||||||
import io.gmss.fiscad.enums.Categorie;
|
import io.gmss.fiscad.enums.Categorie;
|
||||||
import jakarta.persistence.EnumType;
|
import jakarta.persistence.EnumType;
|
||||||
import jakarta.persistence.Enumerated;
|
import jakarta.persistence.Enumerated;
|
||||||
@@ -31,6 +32,7 @@ public class PersonnePayLoad {
|
|||||||
private String observation;
|
private String observation;
|
||||||
private boolean synchronise;
|
private boolean synchronise;
|
||||||
private Long terminalId;
|
private Long terminalId;
|
||||||
|
private Long personneId;
|
||||||
|
|
||||||
/////////////////////////////
|
/////////////////////////////
|
||||||
@ColumnDefault("0")
|
@ColumnDefault("0")
|
||||||
@@ -50,7 +52,7 @@ public class PersonnePayLoad {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "PersonnePayLoad{" +
|
return "PersonnePayLoad{ " +
|
||||||
"idBackend=" + idBackend +
|
"idBackend=" + idBackend +
|
||||||
", ifu='" + ifu + '\'' +
|
", ifu='" + ifu + '\'' +
|
||||||
", externalKey=" + externalKey +
|
", externalKey=" + externalKey +
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package io.gmss.fiscad.repositories.metadata;
|
||||||
|
|
||||||
|
import io.gmss.fiscad.entities.metadata.MobileDataDeclarationNc;
|
||||||
|
import io.gmss.fiscad.entities.rfu.metier.DeclarationNc;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
public interface MobileDataDeclarationNcRepository extends JpaRepository<MobileDataDeclarationNc, Long> {
|
||||||
|
//Optional<MobileDataEnquete> findByEnquetePayLoad_TerminalIdAndEnquetePayLoad_ExternalKey(Long terminalId,Long externalKey);
|
||||||
|
Optional<MobileDataDeclarationNc> findFirstByTerminalIdAndExternalKey(Long terminalId,Long ExternalKey);
|
||||||
|
|
||||||
|
List<MobileDataDeclarationNc> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package io.gmss.fiscad.repositories.metadata;
|
||||||
|
|
||||||
|
import io.gmss.fiscad.entities.metadata.MobileDataEnqueteActivite;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
public interface MobileDataEnqueteActiviteRepository extends JpaRepository<MobileDataEnqueteActivite, Long> {
|
||||||
|
Optional<MobileDataEnqueteActivite> findFirstByTerminalIdAndExternalKey(Long terminalId,Long ExternalKey);
|
||||||
|
List<MobileDataEnqueteActivite> findAllByTraiterIsFalseAndTerminalId(Long TerminalId);
|
||||||
|
}
|
||||||
@@ -11,10 +11,10 @@ import java.util.Optional;
|
|||||||
|
|
||||||
|
|
||||||
public interface EnqueteActiviteRepository extends JpaRepository<EnqueteActivite, Long> {
|
public interface EnqueteActiviteRepository extends JpaRepository<EnqueteActivite, Long> {
|
||||||
Optional<EnqueteBatiment> findByMobileDataId(Long id);
|
Optional<EnqueteActivite> findByMobileDataId(Long id);
|
||||||
Optional<EnqueteBatiment> findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long TerminalId);
|
Optional<EnqueteActivite> findFirstByExternalKeyAndTerminal_Id(Long externalKey, Long TerminalId);
|
||||||
|
|
||||||
List<EnqueteBatiment> findAllByEnquete_Id(Long enqueteId);
|
List<EnqueteActivite> findAllByEnquete_Id(Long enqueteId);
|
||||||
|
|
||||||
void deleteAllByEnquete_Id(Long idEnquete);
|
void deleteAllByEnquete_Id(Long idEnquete);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,142 @@
|
|||||||
|
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.infocad.parametre.Personne;
|
||||||
|
import io.gmss.fiscad.entities.infocad.parametre.Structure;
|
||||||
|
import io.gmss.fiscad.entities.metadata.MobileDataDeclarationNc;
|
||||||
|
import io.gmss.fiscad.entities.rfu.metier.Batiment;
|
||||||
|
import io.gmss.fiscad.entities.rfu.metier.DeclarationNc;
|
||||||
|
import io.gmss.fiscad.entities.user.User;
|
||||||
|
import io.gmss.fiscad.enums.TypeObjet;
|
||||||
|
import io.gmss.fiscad.paylaods.request.DeclarationNcPayload;
|
||||||
|
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.StructureRepository;
|
||||||
|
import io.gmss.fiscad.repositories.metadata.MobileDataDeclarationNcRepository;
|
||||||
|
import io.gmss.fiscad.repositories.rfu.metier.BatimentRepository;
|
||||||
|
import io.gmss.fiscad.repositories.rfu.metier.DeclarationNcRepository;
|
||||||
|
import io.gmss.fiscad.repositories.user.UserRepository;
|
||||||
|
import io.gmss.fiscad.service.LogService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class DeclarationNcAsyncWorker {
|
||||||
|
private final TpeRepository tpeRepository;
|
||||||
|
private final MobileDataDeclarationNcRepository mobileDataDeclarationNcRepository;
|
||||||
|
private final EnqueteRepository enqueteRepository;
|
||||||
|
private final DeclarationNcRepository declarationNcRepository;
|
||||||
|
private final UserRepository userRepository;
|
||||||
|
private final PersonneRepository personneRepository;
|
||||||
|
private final BatimentRepository batimentRepository;
|
||||||
|
private final StructureRepository structureRepository;
|
||||||
|
private final LogService logService;
|
||||||
|
//@Async("declarationNcExecutor")
|
||||||
|
public void traitementAsyncDeclarationNc(MobileDataDeclarationNc mobileDataDeclarationNc) {
|
||||||
|
DeclarationNcPayload declarationNcPayload = mobileDataDeclarationNc.getDeclarationNcPayload();
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (declarationNcPayload.getTerminalId() == null) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.DECLARATIONNC, "Problème de terminal", "terminal non fourni : ", mobileDataDeclarationNc.getId());
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
Optional<Tpe> optionalTpe = tpeRepository.findById(declarationNcPayload.getTerminalId());
|
||||||
|
if (optionalTpe.isEmpty()) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.DECLARATIONNC, "Problème de terminal", "terminal inexistant : ", mobileDataDeclarationNc.getId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (declarationNcPayload.getEnqueteId() == null) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.DECLARATIONNC, "Problème de enquete", "enquete non fourni : ", mobileDataDeclarationNc.getId());
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
Optional<Enquete> optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(declarationNcPayload.getEnqueteId(), declarationNcPayload.getTerminalId());
|
||||||
|
if (optionalEnquete.isEmpty()) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.DECLARATIONNC, "Problème de enquete", "L'enquete précisée n'existe pas : ", mobileDataDeclarationNc.getId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (declarationNcPayload.getPersonneId() == null) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.DECLARATIONNC, "Problème de contribuable", "Contribuable non fourni : ", mobileDataDeclarationNc.getId());
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
Optional<Personne> optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(declarationNcPayload.getPersonneId(), declarationNcPayload.getTerminalId());
|
||||||
|
if (optionalPersonne.isEmpty()) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.DECLARATIONNC, "Problème de contribuable", "Le contribuable précisé n'existe pas : ", mobileDataDeclarationNc.getId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (declarationNcPayload.getStructureId() == null) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.ENQUETEACTIVITE, "Problème de centre d'impôts", "centre d'impôt non fourni : ", mobileDataDeclarationNc.getId());
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
Optional<Structure> optionalStructure = structureRepository.findById(declarationNcPayload.getStructureId());
|
||||||
|
if (optionalStructure.isEmpty()) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.ENQUETEACTIVITE, "Problème de centre d'impôts", "Le centre d'impôt précisé n'existe pas : ", mobileDataDeclarationNc.getId());
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DeclarationNc declarationNc = new DeclarationNc();
|
||||||
|
Optional<DeclarationNc> optionalDeclarationNc= Optional.empty();
|
||||||
|
optionalDeclarationNc = declarationNcRepository.findByMobileDataId(mobileDataDeclarationNc.getId());
|
||||||
|
if (optionalDeclarationNc.isPresent()) {
|
||||||
|
declarationNc = optionalDeclarationNc.get();
|
||||||
|
}else {
|
||||||
|
optionalDeclarationNc = declarationNcRepository.findFirstByExternalKeyAndTerminal_Id(declarationNcPayload.getExternalKey(),declarationNcPayload.getTerminalId());
|
||||||
|
if (optionalDeclarationNc.isPresent()) {
|
||||||
|
declarationNc = optionalDeclarationNc.get();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
declarationNc.setMobileDataId(mobileDataDeclarationNc.getId());
|
||||||
|
declarationNc = getDeclarationNcFromDeclarationNcPayLoad(declarationNc, declarationNcPayload);
|
||||||
|
declarationNcRepository.save(declarationNc);
|
||||||
|
mobileDataDeclarationNc.setTraiter(true);
|
||||||
|
mobileDataDeclarationNcRepository.save(mobileDataDeclarationNc);
|
||||||
|
} catch (Exception e) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.DECLARATIONNC, "Problème de inattendu", e.getMessage(), mobileDataDeclarationNc.getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private DeclarationNc getDeclarationNcFromDeclarationNcPayLoad(DeclarationNc declarationNc, DeclarationNcPayload declarationNcPayload) {
|
||||||
|
declarationNc.setDateDerniereDeclaration(declarationNcPayload.getDateDerniereDeclaration());
|
||||||
|
declarationNc.setNc(declarationNcPayload.getNc());
|
||||||
|
declarationNc.setExternalKey(declarationNcPayload.getExternalKey());
|
||||||
|
declarationNc.setEnqueteExternalKey(declarationNcPayload.getEnqueteId());
|
||||||
|
declarationNc.setPersonneExternalKey(declarationNcPayload.getPersonneId());
|
||||||
|
declarationNc.setEnqueteExternalKey(declarationNcPayload.getEnqueteId());
|
||||||
|
|
||||||
|
if (declarationNcPayload.getPersonneId() != null) {
|
||||||
|
Optional<Personne> optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(declarationNcPayload.getPersonneId(), declarationNcPayload.getTerminalId());
|
||||||
|
declarationNc.setPersonne(optionalPersonne.orElse(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (declarationNcPayload.getEnqueteId() != null) {
|
||||||
|
Optional<Enquete> optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(declarationNcPayload.getEnqueteId(), declarationNcPayload.getTerminalId());
|
||||||
|
declarationNc.setEnquete(optionalEnquete.orElse(null));
|
||||||
|
}
|
||||||
|
if (declarationNcPayload.getTerminalId() != null) {
|
||||||
|
Optional<Tpe> optionalTpe = tpeRepository.findById(declarationNcPayload.getTerminalId());
|
||||||
|
declarationNc.setTerminal(optionalTpe.orElse(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (declarationNcPayload.getStructureId()!= null) {
|
||||||
|
Optional<Structure> optionalStructure = structureRepository.findById(declarationNcPayload.getStructureId());
|
||||||
|
declarationNc.setStructure(optionalStructure.orElse(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
return declarationNc;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,216 @@
|
|||||||
|
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.Personne;
|
||||||
|
import io.gmss.fiscad.entities.infocad.parametre.Profession;
|
||||||
|
import io.gmss.fiscad.entities.infocad.parametre.Profession;
|
||||||
|
import io.gmss.fiscad.entities.infocad.parametre.Structure;
|
||||||
|
import io.gmss.fiscad.entities.metadata.MobileDataEnqueteActivite;
|
||||||
|
import io.gmss.fiscad.entities.rfu.metier.Batiment;
|
||||||
|
import io.gmss.fiscad.entities.rfu.metier.EnqueteActivite;
|
||||||
|
import io.gmss.fiscad.entities.rfu.metier.UniteLogement;
|
||||||
|
import io.gmss.fiscad.entities.user.User;
|
||||||
|
import io.gmss.fiscad.enums.TypeObjet;
|
||||||
|
import io.gmss.fiscad.paylaods.request.EnqueteActivitePayload;
|
||||||
|
import io.gmss.fiscad.repositories.infocad.metier.EnqueteRepository;
|
||||||
|
import io.gmss.fiscad.repositories.infocad.metier.ParcelleRepository;
|
||||||
|
import io.gmss.fiscad.repositories.infocad.metier.TpeRepository;
|
||||||
|
import io.gmss.fiscad.repositories.infocad.parametre.PersonneRepository;
|
||||||
|
import io.gmss.fiscad.repositories.infocad.parametre.ProfessionRepository;
|
||||||
|
import io.gmss.fiscad.repositories.infocad.parametre.StructureRepository;
|
||||||
|
import io.gmss.fiscad.repositories.metadata.MobileDataEnqueteActiviteRepository;
|
||||||
|
import io.gmss.fiscad.repositories.rfu.metier.BatimentRepository;
|
||||||
|
import io.gmss.fiscad.repositories.rfu.metier.EnqueteActiviteRepository;
|
||||||
|
import io.gmss.fiscad.repositories.rfu.metier.UniteLogementRepository;
|
||||||
|
import io.gmss.fiscad.repositories.user.UserRepository;
|
||||||
|
import io.gmss.fiscad.service.LogService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class EnqueteActiviteAsyncWorker {
|
||||||
|
private final TpeRepository tpeRepository;
|
||||||
|
private final MobileDataEnqueteActiviteRepository mobileDataEnqueteActiviteRepository;
|
||||||
|
private final EnqueteRepository enqueteRepository;
|
||||||
|
private final EnqueteActiviteRepository enqueteActiviteRepository;
|
||||||
|
private final UserRepository userRepository;
|
||||||
|
private final ProfessionRepository professionRepository;
|
||||||
|
private final StructureRepository structureRepository;
|
||||||
|
private final ParcelleRepository parcelleRepository;
|
||||||
|
private final BatimentRepository batimentRepository;
|
||||||
|
private final UniteLogementRepository uniteLogementRepository;
|
||||||
|
private final PersonneRepository personneRepository;
|
||||||
|
private final LogService logService;
|
||||||
|
//@Async("enqueteActiviteExecutor")
|
||||||
|
public void traitementAsyncEnqueteActivite(MobileDataEnqueteActivite mobileDataEnqueteActivite) {
|
||||||
|
EnqueteActivitePayload enqueteActivitePayload = mobileDataEnqueteActivite.getEnqueteActivitePayload();
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (enqueteActivitePayload.getTerminalId() == null) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.ENQUETEACTIVITE, "Problème de terminal", "terminal non fourni : ", mobileDataEnqueteActivite.getId());
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
Optional<Tpe> optionalTpe = tpeRepository.findById(enqueteActivitePayload.getTerminalId());
|
||||||
|
if (optionalTpe.isEmpty()) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.ENQUETEACTIVITE, "Problème de terminal", "terminal inexistant : ", mobileDataEnqueteActivite.getId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (enqueteActivitePayload.getEnqueteId() == null) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.ENQUETEACTIVITE, "Problème de enquete", "enquete non fourni : ", mobileDataEnqueteActivite.getId());
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
Optional<Enquete> optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(enqueteActivitePayload.getEnqueteId(), enqueteActivitePayload.getTerminalId());
|
||||||
|
if (optionalEnquete.isEmpty()) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.ENQUETEACTIVITE, "Problème de profession", "L'enquete précisée n'existe pas : ", mobileDataEnqueteActivite.getId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (enqueteActivitePayload.getProfessionId() == null) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.ENQUETEACTIVITE, "Problème de profession", "profession non fourni : ", mobileDataEnqueteActivite.getId());
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
Optional<Profession> optionalProfession = professionRepository.findById(enqueteActivitePayload.getProfessionId());
|
||||||
|
if (optionalProfession.isEmpty()) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.ENQUETEACTIVITE, "Problème de profession", "Le profession précisée n'existe pas : ", mobileDataEnqueteActivite.getId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (enqueteActivitePayload.getStructureId() == null) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.ENQUETEACTIVITE, "Problème de centre d'impôts", "centre d'impôt non fourni : ", mobileDataEnqueteActivite.getId());
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
Optional<Structure> optionalStructure = structureRepository.findById(enqueteActivitePayload.getStructureId());
|
||||||
|
if (optionalStructure.isEmpty()) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.ENQUETEACTIVITE, "Problème de centre d'impôts", "Le centre d'impôt précisé n'existe pas : ", mobileDataEnqueteActivite.getId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (enqueteActivitePayload.getParcelleId() == null) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.ENQUETEACTIVITE, "Problème de Parcelle", "parcelle non fournie : ", mobileDataEnqueteActivite.getId());
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
Optional<Parcelle> optionalParcelle = parcelleRepository.findById(enqueteActivitePayload.getParcelleId());
|
||||||
|
if (optionalParcelle.isEmpty()) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.ENQUETEACTIVITE, "Problème de Parcelle", "La parcelle précisée n'existe pas : ", mobileDataEnqueteActivite.getId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (enqueteActivitePayload.getPersonneId() == null) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.ENQUETEACTIVITE, "Problème de Parcelle", "parcelle non fournie : ", mobileDataEnqueteActivite.getId());
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
Optional<Personne> optionalPersonne = personneRepository.findById(enqueteActivitePayload.getPersonneId());
|
||||||
|
if (optionalPersonne.isEmpty()) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.ENQUETEACTIVITE, "Problème de Constribuable", "La contribuable précisé n'existe pas : ", mobileDataEnqueteActivite.getId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (enqueteActivitePayload.getBatimentId() != null) {
|
||||||
|
Optional<Batiment> optionalBatiment = batimentRepository.findById(enqueteActivitePayload.getBatimentId());
|
||||||
|
if (optionalBatiment.isEmpty()) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.ENQUETEACTIVITE, "Problème de Contribuable", "Le contribuable précisé n'existe pas : ", mobileDataEnqueteActivite.getId());
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (enqueteActivitePayload.getUniteLogementId() != null) {
|
||||||
|
Optional<UniteLogement> optionalUniteLogement = uniteLogementRepository.findById(enqueteActivitePayload.getUniteLogementId());
|
||||||
|
if (optionalUniteLogement.isEmpty()) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.ENQUETEACTIVITE, "Problème de Unité de logement", "L'unité de logement précisée n'existe pas : ", mobileDataEnqueteActivite.getId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
EnqueteActivite enqueteActivite = new EnqueteActivite();
|
||||||
|
Optional<EnqueteActivite> optionalEnqueteActivite= Optional.empty();
|
||||||
|
optionalEnqueteActivite = enqueteActiviteRepository.findByMobileDataId(mobileDataEnqueteActivite.getId());
|
||||||
|
if (optionalEnqueteActivite.isPresent()) {
|
||||||
|
enqueteActivite = optionalEnqueteActivite.get();
|
||||||
|
}else {
|
||||||
|
optionalEnqueteActivite = enqueteActiviteRepository.findFirstByExternalKeyAndTerminal_Id(enqueteActivitePayload.getExternalKey(),enqueteActivitePayload.getTerminalId());
|
||||||
|
if (optionalEnqueteActivite.isPresent()) {
|
||||||
|
enqueteActivite = optionalEnqueteActivite.get();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
enqueteActivite.setMobileDataId(mobileDataEnqueteActivite.getId());
|
||||||
|
enqueteActivite = getEnqueteActiviteFromEnqueteActivitePayLoad(enqueteActivite, enqueteActivitePayload);
|
||||||
|
enqueteActiviteRepository.save(enqueteActivite);
|
||||||
|
mobileDataEnqueteActivite.setTraiter(true);
|
||||||
|
mobileDataEnqueteActiviteRepository.save(mobileDataEnqueteActivite);
|
||||||
|
} catch (Exception e) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.ENQUETEACTIVITE, "Problème de inattendu", e.getMessage(), mobileDataEnqueteActivite.getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private EnqueteActivite getEnqueteActiviteFromEnqueteActivitePayLoad(EnqueteActivite enqueteActivite, EnqueteActivitePayload enqueteActivitePayload) {
|
||||||
|
enqueteActivite.setDateEnquete(enqueteActivitePayload.getDateEnquete());
|
||||||
|
enqueteActivite.setNc(enqueteActivitePayload.getNc());
|
||||||
|
enqueteActivite.setExternalKey(enqueteActivitePayload.getExternalKey());
|
||||||
|
enqueteActivite.setEnqueteExternalKey(enqueteActivitePayload.getEnqueteId());
|
||||||
|
enqueteActivite.setChiffreAffaire(enqueteActivitePayload.getChiffreAffaire());
|
||||||
|
enqueteActivite.setDateDemarrage(enqueteActivitePayload.getDateDemarrage());
|
||||||
|
enqueteActivite.setDateFin(enqueteActivitePayload.getDateFin());
|
||||||
|
enqueteActivite.setNumeroRccm(enqueteActivitePayload.getNumeroRccm());
|
||||||
|
enqueteActivite.setEstDeclarer(enqueteActivitePayload.isEstDeclarer());
|
||||||
|
enqueteActivite.setPersonneExternalKey(enqueteActivitePayload.getPersonneId());
|
||||||
|
enqueteActivite.setParcelleExternalKey(enqueteActivitePayload.getParcelleId());
|
||||||
|
enqueteActivite.setBatimentExternalKey(enqueteActivitePayload.getBatimentId());
|
||||||
|
enqueteActivite.setUniteLogementExternalKey(enqueteActivitePayload.getUniteLogementId());
|
||||||
|
|
||||||
|
if (enqueteActivitePayload.getProfessionId() != null) {
|
||||||
|
Optional<Profession> optionalProfession = professionRepository.findById(enqueteActivitePayload.getProfessionId());
|
||||||
|
enqueteActivite.setProfession(optionalProfession.orElse(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (enqueteActivitePayload.getStructureId() != null) {
|
||||||
|
Optional<Structure> optionalStructure = structureRepository.findById(enqueteActivitePayload.getStructureId());
|
||||||
|
enqueteActivite.setStructure(optionalStructure.orElse(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (enqueteActivitePayload.getEnqueteId() != null) {
|
||||||
|
Optional<Enquete> optionalEnquete = enqueteRepository.findFirstByExternalKeyAndTerminal_Id(enqueteActivitePayload.getEnqueteId(), enqueteActivitePayload.getTerminalId());
|
||||||
|
enqueteActivite.setEnquete(optionalEnquete.orElse(null));
|
||||||
|
}
|
||||||
|
if (enqueteActivitePayload.getTerminalId() != null) {
|
||||||
|
Optional<Tpe> optionalTpe = tpeRepository.findById(enqueteActivitePayload.getTerminalId());
|
||||||
|
enqueteActivite.setTerminal(optionalTpe.orElse(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (enqueteActivitePayload.getPersonneId() != null) {
|
||||||
|
Optional<Personne> optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(enqueteActivitePayload.getPersonneId(), enqueteActivitePayload.getTerminalId());
|
||||||
|
enqueteActivite.setPersonne(optionalPersonne.orElse(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (enqueteActivitePayload.getParcelleId() != null) {
|
||||||
|
Optional<Parcelle> optionalParcelle = parcelleRepository.findFirstByExternalKeyAndTerminal_Id(enqueteActivitePayload.getParcelleId(), enqueteActivitePayload.getTerminalId());
|
||||||
|
enqueteActivite.setParcelle(optionalParcelle.orElse(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (enqueteActivitePayload.getBatimentId() != null) {
|
||||||
|
Optional<Batiment> optionalBatiment = batimentRepository.findFirstByExternalKeyAndTerminal_Id(enqueteActivitePayload.getBatimentId(), enqueteActivitePayload.getTerminalId());
|
||||||
|
enqueteActivite.setBatiment(optionalBatiment.orElse(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (enqueteActivitePayload.getUniteLogementId() != null) {
|
||||||
|
Optional<UniteLogement> optionalUniteLogement = uniteLogementRepository.findFirstByExternalKeyAndTerminal_Id(enqueteActivitePayload.getUniteLogementId(), enqueteActivitePayload.getTerminalId());
|
||||||
|
enqueteActivite.setUniteLogement(optionalUniteLogement.orElse(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
return enqueteActivite;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -47,6 +47,7 @@ public class EnqueteAsyncWorker {
|
|||||||
private final CaracteristiqueUniteLogementRepository caracteristiqueUniteLogementRepository;
|
private final CaracteristiqueUniteLogementRepository caracteristiqueUniteLogementRepository;
|
||||||
private final UniteLogementRepository uniteLogementRepository;
|
private final UniteLogementRepository uniteLogementRepository;
|
||||||
private final BatimentRepository batimentRepository;
|
private final BatimentRepository batimentRepository;
|
||||||
|
private final PersonneRepository personneRepository;
|
||||||
private final LogService logService;
|
private final LogService logService;
|
||||||
//@Async("enqueteExecutor")
|
//@Async("enqueteExecutor")
|
||||||
public void traitementAsyncEnquete(MobileDataEnquete mobileDataEnquete) {
|
public void traitementAsyncEnquete(MobileDataEnquete mobileDataEnquete) {
|
||||||
@@ -62,6 +63,7 @@ public class EnqueteAsyncWorker {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
deleteFromCodeParcelle(enquetePayLoad.getCodeParcelle());
|
deleteFromCodeParcelle(enquetePayLoad.getCodeParcelle());
|
||||||
|
|
||||||
if (enquetePayLoad.getUserId() == null) {
|
if (enquetePayLoad.getUserId() == null) {
|
||||||
@@ -75,6 +77,18 @@ public class EnqueteAsyncWorker {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (enquetePayLoad.getPersonneId() == null) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.ENQUETE, "Problème de contribuable", "Le contribuable n'est pas précisée: ", mobileDataEnquete.getId());
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
Optional<Personne> optionalPersonne = personneRepository.findById(enquetePayLoad.getPersonneId());
|
||||||
|
if (optionalPersonne.isEmpty()) {
|
||||||
|
logService.logTraiementAsync(TypeObjet.ENQUETE, "Problème de contribuable", "Le contribuable précisé n'existe pas : ", mobileDataEnquete.getId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (enquetePayLoad.getZoneRfuId() != null) {
|
if (enquetePayLoad.getZoneRfuId() != null) {
|
||||||
Optional<ZoneRfu> optionalZoneRfu = zoneRfuRepository.findById(enquetePayLoad.getZoneRfuId());
|
Optional<ZoneRfu> optionalZoneRfu = zoneRfuRepository.findById(enquetePayLoad.getZoneRfuId());
|
||||||
if (optionalZoneRfu.isEmpty()) {
|
if (optionalZoneRfu.isEmpty()) {
|
||||||
@@ -125,7 +139,6 @@ public class EnqueteAsyncWorker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Enquete getEnqueteFromEnquetePayLoad(Enquete enquete, EnquetePayLoad enquetePayLoad) {
|
private Enquete getEnqueteFromEnquetePayLoad(Enquete enquete, EnquetePayLoad enquetePayLoad) {
|
||||||
|
|
||||||
if (enquetePayLoad.getUserId() != null) {
|
if (enquetePayLoad.getUserId() != null) {
|
||||||
Optional<User> optionalUser = userRepository.findById(enquetePayLoad.getUserId());
|
Optional<User> optionalUser = userRepository.findById(enquetePayLoad.getUserId());
|
||||||
enquete.setUser(optionalUser.orElse(null));
|
enquete.setUser(optionalUser.orElse(null));
|
||||||
@@ -135,16 +148,22 @@ public class EnqueteAsyncWorker {
|
|||||||
enquete.setZoneRfu(optionalZoneRfu.orElse(null));
|
enquete.setZoneRfu(optionalZoneRfu.orElse(null));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO recherche de parcelle à revoir
|
||||||
if (enquetePayLoad.getParcelleId() != null) {
|
if (enquetePayLoad.getParcelleId() != null) {
|
||||||
Optional<Parcelle> optionalParcelle = parcelleRepository.findFirstByNupProvisoire(enquetePayLoad.getCodeParcelle());
|
Optional<Parcelle> optionalParcelle = parcelleRepository.findFirstByNupProvisoire(enquetePayLoad.getCodeParcelle());
|
||||||
//Optional<Parcelle> optionalParcelle = parcelleRepository.findFirstByExternalKeyAndTerminal_Id(enquetePayLoad.getParcelleId(), enquetePayLoad.getTerminalId());
|
|
||||||
enquete.setParcelle(optionalParcelle.orElse(null));
|
enquete.setParcelle(optionalParcelle.orElse(null));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (enquetePayLoad.getBlocId() != null) {
|
if (enquetePayLoad.getBlocId() != null) {
|
||||||
Optional<Bloc> optionalBloc = blocRepository.findById(enquetePayLoad.getBlocId());
|
Optional<Bloc> optionalBloc = blocRepository.findById(enquetePayLoad.getBlocId());
|
||||||
enquete.setBloc(optionalBloc.orElse(null));
|
enquete.setBloc(optionalBloc.orElse(null));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (enquetePayLoad.getPersonneId() != null) {
|
||||||
|
Optional<Personne> optionalPersonne = personneRepository.findFirstByExternalKeyAndTerminal_Id(enquetePayLoad.getPersonneId(),enquetePayLoad.getTerminalId());
|
||||||
|
enquete.setPersonne(optionalPersonne.orElse(null));
|
||||||
|
}
|
||||||
|
|
||||||
if (enquetePayLoad.getTerminalId() != null) {
|
if (enquetePayLoad.getTerminalId() != null) {
|
||||||
Optional<Tpe> optionalTpe = tpeRepository.findById(enquetePayLoad.getTerminalId());
|
Optional<Tpe> optionalTpe = tpeRepository.findById(enquetePayLoad.getTerminalId());
|
||||||
enquete.setTerminal(optionalTpe.orElse(null));
|
enquete.setTerminal(optionalTpe.orElse(null));
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
server.port=8282
|
server.port=8282
|
||||||
io.gmss.fiscad.profile=DGI
|
#io.gmss.fiscad.profile=${IO_GMSS_FISCAD_PROFILE}
|
||||||
|
io.gmss.fiscad.profile=dgi
|
||||||
# TEST ENV
|
# TEST ENV
|
||||||
#spring.datasource.url=jdbc:postgresql://vmi792116.contaboserver.net:5599/dgi_db
|
#spring.datasource.url=jdbc:postgresql://vmi792116.contaboserver.net:5599/dgi_db
|
||||||
#spring.datasource.username=infocad_user
|
#spring.datasource.username=infocad_user
|
||||||
@@ -8,3 +9,8 @@ io.gmss.fiscad.profile=DGI
|
|||||||
spring.datasource.url=jdbc:postgresql://localhost:5432/fiscad_dgi
|
spring.datasource.url=jdbc:postgresql://localhost:5432/fiscad_dgi
|
||||||
spring.datasource.username=infocad_user
|
spring.datasource.username=infocad_user
|
||||||
spring.datasource.password=W5fwD({9*q53
|
spring.datasource.password=W5fwD({9*q53
|
||||||
|
|
||||||
|
# PROD ENV
|
||||||
|
#spring.datasource.url=${SPRING_DATASOURCE_URL}
|
||||||
|
#spring.datasource.username=${SPRING_DATASOURCE_USERNAME}
|
||||||
|
#spring.datasource.password=${SPRING_DATASOURCE_PASSWORD}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
spring.profiles.active=${SPRING_PROFILES_ACTIVE}
|
#spring.profiles.active=${SPRING_PROFILES_ACTIVE}
|
||||||
#spring.profiles.active=abomey
|
#spring.profiles.active=abomey
|
||||||
|
spring.profiles.active=dgi
|
||||||
spring.jpa.properties.hibernate.id.new_generator_mappings=false
|
spring.jpa.properties.hibernate.id.new_generator_mappings=false
|
||||||
spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
|
spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
|
||||||
spring.jpa.open-in-view=false
|
spring.jpa.open-in-view=false
|
||||||
|
|||||||
Reference in New Issue
Block a user