diff --git a/pom.xml b/pom.xml
index 18cfba0..d4a9ea4 100755
--- a/pom.xml
+++ b/pom.xml
@@ -97,35 +97,31 @@
2.3.0
-
+
+
+ org.hibernate
+ hibernate-spatial
+ ${hibernate.version}
+
+
+
+ org.n52.jackson
+ jackson-datatype-jts
+ 1.2.4
+
+
+ org.teiid
+ teiid-optional-geo
+ 16.0.0
+
diff --git a/src/main/java/io/gmss/fiscad/controllers/decoupage/SecteurController.java b/src/main/java/io/gmss/fiscad/controllers/decoupage/SecteurController.java
index 5b136b6..a4ab88f 100644
--- a/src/main/java/io/gmss/fiscad/controllers/decoupage/SecteurController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/decoupage/SecteurController.java
@@ -105,4 +105,13 @@ public class SecteurController {
}
+ @GetMapping("/by-structure-id/{structureId}")
+ public ResponseEntity> getSecteurByStructureId(@PathVariable Long structureId) {
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, secteurService.getSecteurById(structureId), "Secteur trouvée avec succès."),
+ HttpStatus.OK
+ );
+ }
+
+
}
\ No newline at end of file
diff --git a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/BlocController.java b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/BlocController.java
index 0bb75b7..d32ffb1 100644
--- a/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/BlocController.java
+++ b/src/main/java/io/gmss/fiscad/controllers/infocad/parametre/BlocController.java
@@ -21,7 +21,7 @@ import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping(value = "api/bloc", produces = MediaType.APPLICATION_JSON_VALUE)
-@SecurityRequirement(name = "bearer")
+//@SecurityRequirement(name = "bearer")
@Tag(name = "Bloc")
@CrossOrigin(origins = "*")
public class BlocController {
@@ -104,6 +104,15 @@ public class BlocController {
);
}
+ @GetMapping("/list-by-secteur")
+ @Tag(name = "Liste blocs",description = "Liste des blocs d'un secteur")
+ public ResponseEntity> getAllBlocListBySecteur(@RequestParam Long idSecteur) {
+ return new ResponseEntity<>(
+ new ApiResponse<>(true, blocService.getBlocsBySecteur(idSecteur), "Liste des blocs chargée avec succès."),
+ HttpStatus.OK
+ );
+ }
+
@GetMapping("/all-paged")
public ResponseEntity> getAllBlocPaged(@RequestParam int pageNo, @RequestParam int pageSize) {
Pageable pageable = PageRequest.of(pageNo, pageSize);
diff --git a/src/main/java/io/gmss/fiscad/entities/infocad/metier/ParcelleGeom.java b/src/main/java/io/gmss/fiscad/entities/infocad/metier/ParcelleGeom.java
new file mode 100644
index 0000000..8ccb0f1
--- /dev/null
+++ b/src/main/java/io/gmss/fiscad/entities/infocad/metier/ParcelleGeom.java
@@ -0,0 +1,65 @@
+package io.gmss.fiscad.entities.infocad.metier;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import io.gmss.fiscad.entities.BaseEntity;
+import io.gmss.fiscad.entities.decoupage.Quartier;
+import io.gmss.fiscad.entities.infocad.parametre.NatureDomaine;
+import io.gmss.fiscad.entities.rfu.metier.Batiment;
+import jakarta.persistence.*;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import org.hibernate.annotations.ColumnDefault;
+import org.hibernate.annotations.SQLDelete;
+import org.hibernate.annotations.Where;
+import org.locationtech.jts.geom.MultiPolygon;
+import org.locationtech.jts.geom.Point;
+import org.n52.jackson.datatype.jts.GeometryDeserializer;
+import org.n52.jackson.datatype.jts.GeometrySerializer;
+
+import java.io.Serializable;
+import java.util.List;
+
+@EqualsAndHashCode(callSuper = true)
+@Entity
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@SQLDelete(sql =
+ "UPDATE parcelle " +
+ "SET deleted = true " +
+ "WHERE id = ?")
+@Where(clause = " deleted = false")
+public class ParcelleGeom extends BaseEntity implements Serializable {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+ private String q;
+ private String ilot;
+ private String zone;
+ private String p;
+ @Column(unique = true,nullable = true)
+ private String nup;
+ @Column(unique = true,nullable = true)
+ private String nupProvisoire;
+ private String longitude;
+ private String latitude;
+ private String pointsPolygone;
+
+ @ColumnDefault("0")
+ private int geomSrid;
+
+ @JsonSerialize(using = GeometrySerializer.class)
+ @JsonDeserialize(contentUsing = GeometryDeserializer.class)
+ @Column(name = "geom",columnDefinition = "geometry(MultiPolygon,4326)")
+ private MultiPolygon geometry ;
+
+ @JsonSerialize(using = GeometrySerializer.class)
+ @JsonDeserialize(contentUsing = GeometryDeserializer.class)
+ @Column(name = "geom_32631",columnDefinition = "geometry(MultiPolygon,32631)")
+ private MultiPolygon geometry32631 ;
+}
diff --git a/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Bloc.java b/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Bloc.java
index 27d86bf..568d8d7 100644
--- a/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Bloc.java
+++ b/src/main/java/io/gmss/fiscad/entities/infocad/parametre/Bloc.java
@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import io.gmss.fiscad.entities.BaseEntity;
import io.gmss.fiscad.entities.decoupage.Arrondissement;
import io.gmss.fiscad.entities.decoupage.Quartier;
+import io.gmss.fiscad.entities.decoupage.Secteur;
import io.gmss.fiscad.entities.decoupage.SecteurDecoupage;
import io.gmss.fiscad.entities.infocad.metier.Enquete;
import jakarta.persistence.*;
@@ -62,9 +63,14 @@ public class Bloc extends BaseEntity implements Serializable {
@JsonIgnore
@OneToMany(mappedBy = "bloc")
private List enquetes;
+
@ManyToOne
private SecteurDecoupage secteurDecoupage;
+ @JsonIgnore
+ @ManyToOne
+ private Secteur secteur;
+
public String getNomArrondissement() {
return arrondissement.getNom();
}
diff --git a/src/main/java/io/gmss/fiscad/implementations/decoupage/SecteurServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/decoupage/SecteurServiceImpl.java
index 38f883e..d4c3f0f 100644
--- a/src/main/java/io/gmss/fiscad/implementations/decoupage/SecteurServiceImpl.java
+++ b/src/main/java/io/gmss/fiscad/implementations/decoupage/SecteurServiceImpl.java
@@ -2,6 +2,7 @@ package io.gmss.fiscad.implementations.decoupage;
import io.gmss.fiscad.entities.decoupage.Secteur;
import io.gmss.fiscad.entities.decoupage.SecteurDecoupage;
+import io.gmss.fiscad.entities.infocad.parametre.Structure;
import io.gmss.fiscad.entities.user.User;
import io.gmss.fiscad.exceptions.BadRequestException;
import io.gmss.fiscad.exceptions.NotFoundException;
@@ -11,6 +12,7 @@ import io.gmss.fiscad.paylaods.request.SecteurPayload;
import io.gmss.fiscad.repositories.decoupage.ArrondissementRepository;
import io.gmss.fiscad.repositories.decoupage.QuartierRepository;
import io.gmss.fiscad.repositories.decoupage.SecteurRepository;
+import io.gmss.fiscad.repositories.infocad.parametre.StructureRepository;
import io.gmss.fiscad.repositories.user.UserRepository;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
@@ -26,12 +28,14 @@ public class SecteurServiceImpl implements SecteurService {
private final UserRepository userRepository;
private final ArrondissementRepository arrondissementRepository;
private final QuartierRepository quartierRepository;
+ private final StructureRepository structureRepository;
- public SecteurServiceImpl(SecteurRepository secteurRepository, UserRepository userRepository, ArrondissementRepository arrondissementRepository, QuartierRepository quartierRepository) {
+ public SecteurServiceImpl(SecteurRepository secteurRepository, UserRepository userRepository, ArrondissementRepository arrondissementRepository, QuartierRepository quartierRepository, StructureRepository structureRepository) {
this.secteurRepository = secteurRepository;
this.userRepository = userRepository;
this.arrondissementRepository = arrondissementRepository;
this.quartierRepository = quartierRepository;
+ this.structureRepository = structureRepository;
}
@@ -53,6 +57,8 @@ public class SecteurServiceImpl implements SecteurService {
Secteur secteur=new Secteur();
Optional optionalUser=userRepository.findById(secteurPayload.getChefSecteurId());
secteur.setChefSecteur(optionalUser.orElse(null));
+ Optional optionalStructure=structureRepository.findById(secteurPayload.getStructureId());
+ secteur.setStructure(optionalStructure.orElse(null));
List secteurDecoupageList=new ArrayList<>();
for (SecteurDecoupagePayload sdp: secteurPayload.getSecteurDecoupages()){
@@ -117,6 +123,10 @@ public class SecteurServiceImpl implements SecteurService {
return secteurRepository.findAll();
}
+ @Override
+ public List getSecteurListUneStruture(Long structureId) {
+ return secteurRepository.findAllByStructure_Id(structureId);
+ }
@Override
diff --git a/src/main/java/io/gmss/fiscad/implementations/infocad/parametre/BlocServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/infocad/parametre/BlocServiceImpl.java
index d3776eb..f1b30b2 100644
--- a/src/main/java/io/gmss/fiscad/implementations/infocad/parametre/BlocServiceImpl.java
+++ b/src/main/java/io/gmss/fiscad/implementations/infocad/parametre/BlocServiceImpl.java
@@ -40,6 +40,7 @@ public class BlocServiceImpl implements BlocService {
}
String idBlocParArrondissement = getIdBlocParArrondissementValue(bloc);
bloc.setIdBlocParArrondissement(idBlocParArrondissement);
+
if(bloc.getStructure() == null){
bloc.setCote(getCoteValue(bloc, idBlocParArrondissement, null));
}else{
@@ -49,7 +50,9 @@ public class BlocServiceImpl implements BlocService {
if(bloc.getQuartier() != null){
bloc.setCoteq(getCoteQuartierByCoteBloc(bloc.getCote(), bloc.getQuartier()));
}
-
+ if(bloc.getSecteurDecoupage()!=null) {
+ bloc.setSecteur(bloc.getSecteurDecoupage().getSecteur());
+ }
return blocRepository.save(bloc);
}
@@ -130,6 +133,11 @@ public class BlocServiceImpl implements BlocService {
}
}
+ @Override
+ public List getBlocsBySecteur(Long idSecteur) {
+ return blocRepository.findAllBySecteur_Id(idSecteur);
+ }
+
@Override
public List getBlocList() {
return blocRepository.findAll();
diff --git a/src/main/java/io/gmss/fiscad/interfaces/decoupage/SecteurService.java b/src/main/java/io/gmss/fiscad/interfaces/decoupage/SecteurService.java
index d52c44d..35dd427 100644
--- a/src/main/java/io/gmss/fiscad/interfaces/decoupage/SecteurService.java
+++ b/src/main/java/io/gmss/fiscad/interfaces/decoupage/SecteurService.java
@@ -17,6 +17,7 @@ public interface SecteurService {
void deleteSecteur(Long id) throws NotFoundException;
Page getSecteurList(Pageable pageable);
List getSecteurList();
+ List getSecteurListUneStruture(Long structureId);
Optional getSecteurById(Long id);
}
\ No newline at end of file
diff --git a/src/main/java/io/gmss/fiscad/interfaces/infocad/parametre/BlocService.java b/src/main/java/io/gmss/fiscad/interfaces/infocad/parametre/BlocService.java
index 588c38b..3ec92fb 100755
--- a/src/main/java/io/gmss/fiscad/interfaces/infocad/parametre/BlocService.java
+++ b/src/main/java/io/gmss/fiscad/interfaces/infocad/parametre/BlocService.java
@@ -17,6 +17,7 @@ public interface BlocService {
Page getBlocList(Pageable pageable);
List getBlocsByArrondissement(Long idArrondissement);
List getBlocsByStructure(Long idStructure);
+ List getBlocsBySecteur(Long idSecteur);
List getBlocList();
Optional getBlocById(Long id);
diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/SecteurPayload.java b/src/main/java/io/gmss/fiscad/paylaods/request/SecteurPayload.java
index d0e0eb3..959b271 100644
--- a/src/main/java/io/gmss/fiscad/paylaods/request/SecteurPayload.java
+++ b/src/main/java/io/gmss/fiscad/paylaods/request/SecteurPayload.java
@@ -15,6 +15,6 @@ public class SecteurPayload implements Serializable {
private String code ;
private String nom ;
private Long chefSecteurId ;
- private Long structure_id ;
+ private Long structureId ;
private List secteurDecoupages ;
}
\ No newline at end of file
diff --git a/src/main/java/io/gmss/fiscad/repositories/decoupage/SecteurRepository.java b/src/main/java/io/gmss/fiscad/repositories/decoupage/SecteurRepository.java
index d190f9d..f95d722 100644
--- a/src/main/java/io/gmss/fiscad/repositories/decoupage/SecteurRepository.java
+++ b/src/main/java/io/gmss/fiscad/repositories/decoupage/SecteurRepository.java
@@ -3,5 +3,8 @@ package io.gmss.fiscad.repositories.decoupage;
import io.gmss.fiscad.entities.decoupage.Secteur;
import org.springframework.data.jpa.repository.JpaRepository;
+import java.util.List;
+
public interface SecteurRepository extends JpaRepository {
+ List findAllByStructure_Id(Long structureId);
}
\ No newline at end of file
diff --git a/src/main/java/io/gmss/fiscad/repositories/infocad/parametre/BlocRepository.java b/src/main/java/io/gmss/fiscad/repositories/infocad/parametre/BlocRepository.java
index 1a96562..9d1bd00 100755
--- a/src/main/java/io/gmss/fiscad/repositories/infocad/parametre/BlocRepository.java
+++ b/src/main/java/io/gmss/fiscad/repositories/infocad/parametre/BlocRepository.java
@@ -13,6 +13,7 @@ import java.util.List;
public interface BlocRepository extends JpaRepository {
List findAllByStructure_Id(Long structureId);
+ List findAllBySecteur_Id(Long secteurId);
@Query(value = "select b.id, b.cote, b.nom, b.arrondissement_id as arrondissementid, b.quartier_id as quartierid " +
" from bloc b" +
" where b.deleted is false and b.structure_id = ?1 ",nativeQuery = true)
diff --git a/src/main/java/io/gmss/fiscad/service/GeometryService.java b/src/main/java/io/gmss/fiscad/service/GeometryService.java
index be55bbd..876d7fc 100644
--- a/src/main/java/io/gmss/fiscad/service/GeometryService.java
+++ b/src/main/java/io/gmss/fiscad/service/GeometryService.java
@@ -1,24 +1,286 @@
package io.gmss.fiscad.service;
-
-//import org.locationtech.jts.geom.GeometryFactory;
-//import org.locationtech.jts.geom.Point;
-//import org.locationtech.jts.geom.PrecisionModel;
-//import org.locationtech.jts.io.ParseException;
-//import org.locationtech.jts.io.WKTReader;
-
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
+
+import org.locationtech.jts.geom.*;
+import org.locationtech.jts.io.ParseException;
+import org.locationtech.jts.io.WKTReader;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.teiid.CommandContext;
+import org.teiid.api.exception.query.FunctionExecutionException;
+import org.teiid.core.types.GeometryType;
+import org.teiid.geo.GeometryTransformUtils;
+import org.teiid.query.function.GeometryUtils;
+
+import java.sql.SQLException;
+import java.util.List;
+
+import static org.teiid.geo.GeometryTransformUtils.lookupProj4Text;
+//
@Service
-public class GeometryService {
-// public Point toGeometryPoint(String wkt, int srid) throws SQLException {
-// if(wkt == null) {
-// return null;
-// }
+public class GeometryService {
+ @Value("${infocad.geom.srid}")
+ private String defaultSrid;
+// @Autowired
+// private ParcelleService parcelleService;
+// @Autowired
+// private ParcelleGeomRepository parcelleGeomRepository;
+// @Autowired
+// private ParcelleRepository parcelleRepository;
+// @Autowired
+// private AppartenirRepository appartenirRepository;
+//
+//
+//
+//
+//// public Geometry transform(Geometry source) {
+//// try {
+//// MathTransform crsTransform = GeotoolsDataStoreUtils.makeCrsTransform("EPSG:27700");
+//// if (crsTransform.isTransforming()) {
+//// Geometry transformableArea = crsTransform.getTransformableGeometry();
+//// if (null != transformableArea && !transformableArea.covers(source)) {
+//// source = source.intersection(transformableArea);
+//// }
+//// return JTS.transform(source, crsTransform);
+//// } else {
+//// return source;
+//// }
+//// } catch (Exception e) { // NOSONAR typically TopologyException, TransformException or FactoryException
+//// logEnvelopeSuggestCrsTransformInfo(crsTransform.getId(), source, e);
+//// return createEmptyGeometryForClass(source.getClass());
+//// }
+//// }
+//
+//// public Geometry getShape(String wtk) throws FactoryException, TransformException {
+//// GeometryFactory geometryFactory = new GeometryFactory(new PrecisionModel(), Subject.SRID);
+//// WKTReader reader = new WKTReader(geometryFactory);
+//// MathTransform crsTransform = GeotoolsDataStoreUtils.makeCrsTransform("EPSG:27700");
+////
+//// try {
+//// LineString line = (LineString) reader.read(wtk);
+//// Geometry transformedGeom = JTS.transform(line, crsTransform);
+//// return transformedGeom;
+//// } catch (ParseException e) {
+//// e.printStackTrace();
+//// // log.error("Not a valid geometry");
+//// return null;
+//// }
+//// }
+//
+ public MultiPolygon toGeometry(String wkt, int srid) throws SQLException {
+ if(wkt == null) {
+ return null;
+ }
+ try {
+ WKTReader wktReaderSRID = new WKTReader(new GeometryFactory(new PrecisionModel(),srid));
+
+
+ MultiPolygon multiPolygon = (MultiPolygon) wktReaderSRID.read(String.format("MULTIPOLYGON( ((%s)) )",wkt));
+
+// GeometryTransformUtils.transform(multiPolygon,srid);
+ return multiPolygon;
+ } catch (ParseException ex) {
+ throw new SQLException(ex);
+ }
+ }
+//
+// public void saveParcelleGeom(Parcelle parcelle){
// try {
-// WKTReader wktReaderSRID = new WKTReader(new GeometryFactory(new PrecisionModel(),srid));
-// Point point = (Point) wktReaderSRID.read(String.format("POINT( ((%s)) )",wkt));
-// return point;
-// } catch (ParseException ex) {
-// throw new SQLException(ex);
+// MultiPolygon multiPolygon=null;
+// if (parcelle.getCoordonnees() != null){
+// multiPolygon = toGeometry(parcelle.getCoordonnees(), parcelle.getGeomSrid());//Integer.parseInt(defaultSrid));
+// }
+//
+// RechercheParcellePayLoad rechercheParcellePayLoad=new RechercheParcellePayLoad();
+// rechercheParcellePayLoad.setEp(parcelle.getEntrePorte());
+// rechercheParcellePayLoad.setI(parcelle.getCodeIlotParcellaire());
+// rechercheParcellePayLoad.setNumTF(parcelle.getNumTitreFonc());
+// rechercheParcellePayLoad.setP(parcelle.getCodeAdressageParcellaire());
+// rechercheParcellePayLoad.setQz(parcelle.getCodeQuartierZoneParcellaire());
+// rechercheParcellePayLoad.setR(parcelle.getRue().getNumero());
+// rechercheParcellePayLoad.setNup(parcelle.getNup());
+// ParcelleGeom parcelleGeom=rechercheParcelleGeom(rechercheParcellePayLoad);
+// parcelleGeom.setParcelle(parcelle);
+// if(parcelleGeom.getId()!=null){
+// if (parcelle.getCoordonnees() != null) {
+// parcelleGeom.setGeometry(multiPolygon);
+// }
+// }else{
+// if (parcelle.getCoordonnees() != null) {
+// parcelleGeom.setCodeQuartierZoneParcellaire(parcelle.getCodeQuartierZoneParcellaire());
+// parcelleGeom.setCodeAdressageParcellaire(parcelle.getCodeAdressageParcellaire());
+// parcelleGeom.setCodeIlotParcellaire(parcelle.getCodeIlotParcellaire());
+// parcelleGeom.setEntrePorte(parcelle.getEntrePorte());
+// parcelleGeom.setNumTitre(parcelle.getNumTitreFonc());
+// parcelleGeom.setNup(parcelle.getNup());
+// parcelleGeom.setGeometry(multiPolygon);
+// if(parcelle.getRue()!=null)
+// parcelleGeom.setNumRue(parcelle.getRue().getNumero());
+// parcelleGeom.setVillageQuartier(parcelle.getVillageQuartier());
+// if(parcelle.getVillageQuartier()!=null)
+// parcelleGeom.setCommune(parcelle.getVillageQuartier().getArrondissement().getCommune());
+// //TODO
+// //parcelleGeom.setLattitudeGeoCentrique(multiPolygon);
+// //parcelleGeom.setLongitudeGeoCentrique(multiPolygon);
+// }
+// }
+// ///////////MAJ PROPRIETAIRE COURANT//////////////////
+// try {
+// majProprietaireCourant(parcelle);
+// }catch (Exception e){
+//
+// }
+// ///////////////////////////////////////////////////////
+//
+// parcelleGeomRepository.save(parcelleGeom);
+// } catch (SQLException e) {
+// e.printStackTrace();
// }
// }
+//
+// public ParcelleGeom saveParcelleGeom(ParcelleGeomPayload parcelleGeomPayload){
+// try {
+// MultiPolygon multiPolygon=toGeometry(parcelleGeomPayload.getCoordonnees(),parcelleGeomPayload.getSrid());//Integer.parseInt(defaultSrid));
+//
+// RechercheParcellePayLoad rechercheParcellePayLoad=new RechercheParcellePayLoad();
+// rechercheParcellePayLoad.setEp(parcelleGeomPayload.getEntrePorte());
+// rechercheParcellePayLoad.setI(parcelleGeomPayload.getCodeIlotParcellaire());
+// rechercheParcellePayLoad.setNumTF(parcelleGeomPayload.getNumTitre());
+// rechercheParcellePayLoad.setP(parcelleGeomPayload.getCodeAdressageParcellaire());
+// rechercheParcellePayLoad.setQz(parcelleGeomPayload.getCodeQuartierZoneParcellaire());
+// rechercheParcellePayLoad.setR(parcelleGeomPayload.getNumRue());
+// rechercheParcellePayLoad.setNup(parcelleGeomPayload.getNup());
+//
+// ParcelleGeom parcelleGeom=rechercheParcelleGeom(rechercheParcellePayLoad);
+//
+// if(parcelleGeom.getId()!=null){
+// parcelleGeom.setGeometry(multiPolygon);
+// }else{
+// parcelleGeom.setCodeQuartierZoneParcellaire(parcelleGeomPayload.getCodeQuartierZoneParcellaire());
+// parcelleGeom.setCodeAdressageParcellaire(parcelleGeomPayload.getCodeAdressageParcellaire());
+// parcelleGeom.setCodeIlotParcellaire(parcelleGeomPayload.getCodeIlotParcellaire());
+// parcelleGeom.setEntrePorte(parcelleGeomPayload.getEntrePorte());
+// parcelleGeom.setNup(parcelleGeomPayload.getNup());
+// parcelleGeom.setNumTitre(parcelleGeomPayload.getNumTitre());
+// parcelleGeom.setNumRue(parcelleGeomPayload.getNumRue());
+// parcelleGeom.setArrondissement_nom(parcelleGeomPayload.getArrondissement_nom());
+// parcelleGeom.setGeometry(multiPolygon);
+//// if(parcelleGeomPayload.getRue()!=null)
+//// parcelleGeom.setNumRue(parcelleGeomPayload.getRue().getNumero());
+//// parcelleGeom.setVillageQuartier(parcelleGeomPayload.getVillageQuartier());
+//// if(parcelleGeomPayload.getVillageQuartier()!=null)
+//// parcelleGeom.setCommune(parcelleGeomPayload.getVillageQuartier().getArrondissement().getCommune());
+//
+// //TODO
+// //parcelleGeom.setLattitudeGeoCentrique(multiPolygon);
+// //parcelleGeom.setLongitudeGeoCentrique(multiPolygon);
+// }
+// System.out.println("COORDONNEES : "+multiPolygon.getCoordinates().toString());
+// System.out.println("COORDONNEES : "+multiPolygon.toText());
+//
+// return parcelleGeomRepository.save(parcelleGeom);
+//// parcelleGeomRepository.save(parcelleGeom);
+// } catch (SQLException e) {
+// e.printStackTrace();
+// return null;
+// }
+// }
+//
+// public ParcelleGeom rechercheParcelleGeom(RechercheParcellePayLoad rechercheParcellePayLoad){
+// ParcelleGeom parcelleGeom=new ParcelleGeom();
+// if(rechercheParcellePayLoad.getQz()!=null && rechercheParcellePayLoad.getI()!=null && rechercheParcellePayLoad.getP()!=null){
+// List parcelleGeoms= parcelleGeomRepository.findFirstByCodeQuartierZoneParcellaireAndCodeIlotParcellaireAndCodeAdressageParcellaire(rechercheParcellePayLoad.getQz(),rechercheParcellePayLoad.getI(),rechercheParcellePayLoad.getP());
+// if(!parcelleGeoms.isEmpty()){
+// parcelleGeom= parcelleGeoms.get(0);
+// }
+// }
+//
+// if(rechercheParcellePayLoad.getEp()!=null && rechercheParcellePayLoad.getR()!=null){
+// List parcelleGeoms= parcelleGeomRepository.findFirstByNumRueAndEntrePorte(rechercheParcellePayLoad.getEp(),rechercheParcellePayLoad.getR());
+// if(!parcelleGeoms.isEmpty()){
+// parcelleGeom= parcelleGeoms.get(0);
+// }
+// }
+//
+// if(rechercheParcellePayLoad.getNup()!=null){
+// List parcelleGeoms= parcelleGeomRepository.findFirstByNup(rechercheParcellePayLoad.getNup());
+// if(!parcelleGeoms.isEmpty()){
+// parcelleGeom= parcelleGeoms.get(0);
+// }
+// }
+// return parcelleGeom;
+// }
+//
+//
+// public ParcelleGeom rechercheParcelleGeomParParcelle(Parcelle parcelle){
+// ParcelleGeom parcelleGeom=new ParcelleGeom();
+// RechercheParcellePayLoad rechercheParcellePayLoad=new RechercheParcellePayLoad();
+// rechercheParcellePayLoad.setEp(parcelle.getEntrePorte());
+// rechercheParcellePayLoad.setI(parcelle.getCodeIlotParcellaire());
+// rechercheParcellePayLoad.setNumTF(parcelle.getNumTitreFonc());
+// rechercheParcellePayLoad.setP(parcelle.getCodeAdressageParcellaire());
+// rechercheParcellePayLoad.setQz(parcelle.getCodeQuartierZoneParcellaire());
+// rechercheParcellePayLoad.setR(parcelle.getRue().getNumero());
+// rechercheParcellePayLoad.setNup(parcelle.getNup());
+//
+// if(rechercheParcellePayLoad.getQz()!=null && rechercheParcellePayLoad.getI()!=null && rechercheParcellePayLoad.getP()!=null){
+// List parcelleGeoms= parcelleGeomRepository.findFirstByCodeQuartierZoneParcellaireAndCodeIlotParcellaireAndCodeAdressageParcellaire(rechercheParcellePayLoad.getQz(),rechercheParcellePayLoad.getI(),rechercheParcellePayLoad.getP());
+// if(!parcelleGeoms.isEmpty()){
+// parcelleGeom= parcelleGeoms.get(0);
+// }
+// }
+//
+// if(rechercheParcellePayLoad.getEp()!=null && rechercheParcellePayLoad.getR()!=null){
+// List parcelleGeoms= parcelleGeomRepository.findFirstByNumRueAndEntrePorte(rechercheParcellePayLoad.getEp(),rechercheParcellePayLoad.getR());
+// if(!parcelleGeoms.isEmpty()){
+// parcelleGeom= parcelleGeoms.get(0);
+// }
+// }
+//
+// if(rechercheParcellePayLoad.getNup()!=null){
+// List parcelleGeoms= parcelleGeomRepository.findFirstByNup(rechercheParcellePayLoad.getNup());
+// if(!parcelleGeoms.isEmpty()){
+// parcelleGeom= parcelleGeoms.get(0);
+// }
+// }
+// return parcelleGeom;
+// }
+//
+// public void majProprietaireCourant(Parcelle parcelle){
+// ///////////MAJ PROPRIETAIRE COURANT//////////////////
+// try {
+// Appartenir proprietaireCourant=appartenirRepository.getProprietaireCourant(parcelle.getId());
+// if(proprietaireCourant!=null){
+// parcelle.setProprietaireCourant(proprietaireCourant.getContribuable());
+// parcelleRepository.save(parcelle);
+// ParcelleGeom parcelleGeom=rechercheParcelleGeomParParcelle(proprietaireCourant.getParcelle());
+// if(parcelleGeom!=null){
+// parcelleGeom.setProprietaireCourant(proprietaireCourant.getContribuable());
+// parcelleGeomRepository.save(parcelleGeom);
+// }
+// }
+// }catch (Exception e){
+//
+// }
+// ///////////////////////////////////////////////////////
+// }
+//
+//// public String listCoordonneesToPolygonString(List coordonnees){
+//// StringBuilder wkt= new StringBuilder();
+//// if(coordonnees==null){
+//// return null;
+//// }
+//// wkt.append(coordonnees.get(0).getXY());
+//// coordonnees.forEach(coordonnees1 -> {
+//// wkt.append(",").append(coordonnees.get(0).getXY());
+//// });
+//// return String.format("MULTIPOLYGON( ((%s)) )",wkt.toString());
+//// }
+//
+//
+//
+//
+//
}