package openassemblee.domain;
-import java.io.Serializable;
-import java.time.LocalDate;
-import java.util.Objects;
-import javax.persistence.*;
-
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import openassemblee.domain.jackson.JacksonEluIdSerializer;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import org.springframework.data.elasticsearch.annotations.Document;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import javax.persistence.*;
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.util.Objects;
/**
* A AppartenanceCommissionPermanente.
@Column(name = "motif_fin")
private String motifFin;
+ @Column(name = "import_uid")
+ private String importUid;
+
@ManyToOne
@JoinColumn(name = "elu_id")
@JsonSerialize(using = JacksonEluIdSerializer.class)
this.motifFin = motifFin;
}
+ public String getImportUid() {
+ return importUid;
+ }
+
+ public void setImportUid(String importUid) {
+ this.importUid = importUid;
+ }
+
public Elu getElu() {
return elu;
}
package openassemblee.domain;
-import java.io.Serializable;
-import java.time.LocalDate;
-import java.util.Objects;
-import javax.persistence.*;
-
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import openassemblee.domain.jackson.JacksonEluIdSerializer;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import org.springframework.data.elasticsearch.annotations.Document;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import javax.persistence.*;
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.util.Objects;
/**
* A FonctionCommissionPermanente.
@Column(name = "motif_fin")
private String motifFin;
+ @Column(name = "import_uid")
+ private String importUid;
+
@ManyToOne
@JoinColumn(name = "elu_id")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
this.motifFin = motifFin;
}
+ public String getImportUid() {
+ return importUid;
+ }
+
+ public void setImportUid(String importUid) {
+ this.importUid = importUid;
+ }
+
public Elu getElu() {
return elu;
}
package openassemblee.domain;
-import java.io.Serializable;
-import java.time.LocalDate;
-import java.util.Objects;
-import javax.persistence.*;
-
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import openassemblee.domain.jackson.JacksonCommissionThematiqueIdSerializer;
import openassemblee.domain.jackson.JacksonEluIdSerializer;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import org.springframework.data.elasticsearch.annotations.Document;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import javax.persistence.*;
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.util.Objects;
/**
* A FonctionCommissionThematique.
@Column(name = "motif_fin")
private String motifFin;
+ @Column(name = "import_uid")
+ private String importUid;
+
@ManyToOne
@JoinColumn(name = "elu_id")
@JsonSerialize(using = JacksonEluIdSerializer.class)
this.motifFin = motifFin;
}
+ public String getImportUid() {
+ return importUid;
+ }
+
+ public void setImportUid(String importUid) {
+ this.importUid = importUid;
+ }
+
public Elu getElu() {
return elu;
}
package openassemblee.domain;
-import java.io.Serializable;
-import java.time.LocalDate;
-import java.util.Objects;
-import javax.persistence.*;
-
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import openassemblee.domain.jackson.JacksonEluIdSerializer;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import org.springframework.data.elasticsearch.annotations.Document;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import javax.persistence.*;
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.util.Objects;
/**
* A FonctionExecutive.
@Column(name = "motif_fin")
private String motifFin;
+ @Column(name = "import_uid")
+ private String importUid;
+
@ManyToOne
@JoinColumn(name = "elu_id")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
this.motifFin = motifFin;
}
+ public String getImportUid() {
+ return importUid;
+ }
+
+ public void setImportUid(String importUid) {
+ this.importUid = importUid;
+ }
+
public Elu getElu() {
return elu;
}
package openassemblee.domain;
-import java.io.Serializable;
-import java.time.LocalDate;
-import java.util.Objects;
-import javax.persistence.*;
-
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import openassemblee.domain.jackson.JacksonEluIdSerializer;
+import openassemblee.domain.jackson.JacksonGroupePolitiqueIdSerializer;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import org.springframework.data.elasticsearch.annotations.Document;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-
-import openassemblee.domain.jackson.JacksonGroupePolitiqueIdSerializer;
+import javax.persistence.*;
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.util.Objects;
/**
* A FonctionGroupePolitique.
@Column(name = "motif_fin")
private String motifFin;
+ @Column(name = "import_uid")
+ private String importUid;
+
@ManyToOne
@JoinColumn(name = "elu_id")
@JsonSerialize(using = JacksonEluIdSerializer.class)
this.motifFin = motifFin;
}
+ public String getImportUid() {
+ return importUid;
+ }
+
+ public void setImportUid(String importUid) {
+ this.importUid = importUid;
+ }
+
public Elu getElu() {
return elu;
}
@Document(indexName = "organisme")
public class Organisme implements Serializable {
+ public static class UniqueRneOrganisme {
+ public Organisme organisme;
+
+ public UniqueRneOrganisme(Organisme organisme) {
+ this.organisme = organisme;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ return organisme.getCodeRNE().equals(((UniqueRneOrganisme) o).organisme.getCodeRNE());
+ }
+
+ @Override
+ public int hashCode() {
+ return organisme.getCodeRNE().hashCode();
+ }
+ }
+
+ public static class UniqueNomOrganisme {
+ public Organisme organisme;
+
+ public UniqueNomOrganisme(Organisme organisme) {
+ this.organisme = organisme;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ return organisme.getNom().equals(((UniqueNomOrganisme) o).organisme.getNom());
+ }
+
+ @Override
+ public int hashCode() {
+ return organisme.getNom().hashCode();
+ }
+ }
+
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.format.SignStyle;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
private AppartenanceOrganismeRepository appartenanceOrganismeRepository;
@Autowired
private IdentiteInternetRepository identiteInternetRepository;
+ @Autowired
+ private AppartenanceCommissionPermanenteRepository appartenanceCommissionPermanenteRepository;
+ @Autowired
+ private FonctionExecutiveRepository fonctionExecutiveRepository;
+ @Autowired
+ private FonctionCommissionPermanenteRepository fonctionCommissionPermanenteRepository;
+ @Autowired
+ private FonctionGroupePolitiqueRepository fonctionGroupePolitiqueRepository;
+ @Autowired
+ private FonctionCommissionThematiqueRepository fonctionCommissionThematiqueRepository;
@RequestMapping(value = "/data", method = RequestMethod.GET)
public String ping() {
appartenanceOrganismeRepository.deleteAll();
appartenanceCommissionThematiqueRepository.deleteAll();
appartenanceGroupePolitiqueRepository.deleteAll();
+ appartenanceCommissionPermanenteRepository.deleteAll();
+ fonctionCommissionPermanenteRepository.deleteAll();
+ fonctionExecutiveRepository.deleteAll();
groupePolitiqueRepository.deleteAll();
eluRepository.deleteAll();
adressePostaleRepository.deleteAll();
numeroTelephoneRepository.deleteAll();
numeroFaxRepository.deleteAll();
eluRepository.deleteAll();
+ fonctionGroupePolitiqueRepository.deleteAll();
+ fonctionGroupePolitiqueRepository.deleteAll();
Map<String, Elu> elus = data.getConseillers().stream()
.map(this::buildElu)
logger.info(organismes.size() + " organismes");
// appartenances commission permanente
-// String CP = data.getEnsembles().stream()
-// .filter(e -> e.getType().equals("commission"))
-// .filter(e -> e.getTypeCommission().equals("Permanente"))
-// .findAny().get().getUidEnsemble();
-//
-// // appartenances executif
+ String cp = data.getEnsembles().stream()
+ .filter(e -> e.getType().equals("commission"))
+ .filter(e -> e.getTypeCommission().equals("Permanente"))
+ .findAny().get().getUidEnsemble();
+
+ // appartenances executif
// String executif = data.getEnsembles().stream()
// .filter(e -> e.getType().equals("commission"))
// .filter(e -> e.getTypeCommission().equals("Exécutif"))
// .findAny().get().getUidEnsemble();
-//
-// String deleguesSpeciaux = data.getEnsembles().stream()
-// .filter(e -> e.getType().equals("commission"))
-// .filter(e -> e.getTypeCommission().equals("Délégués spéciaux"))
-// .findAny().get().getUidEnsemble();
+
+ String deleguesSpeciaux = data.getEnsembles().stream()
+ .filter(e -> e.getType().equals("commission"))
+ .filter(e -> e.getTypeCommission().equals("Délégués spéciaux"))
+ .findAny().get().getUidEnsemble();
+
+ List<String> uidsTraites = new ArrayList<>();
+ // appartenances commission permanent
+ List<MembreDto> m1 = data.getMembres().stream()
+ .filter(m -> m.getType().equals("Commissions"))
+ .filter(m -> m.getUidEnsemble().equals(cp))
+ .collect(Collectors.toList());
+ uidsTraites.addAll(m1.stream().map(MembreDto::getUidMembre).collect(Collectors.toList()));
+ long nbCp = m1.stream()
+ .map(m -> buildAppartenanceCommissionPermanente(m, elus))
+ .count();
+ System.out.println("Commission permanente membres : " + nbCp);
+
+ // fonctions executives
+ List<MembreDto> m2 = data.getMembres().stream()
+ .filter(m -> m.getType().equals("Exécutif"))
+ .collect(Collectors.toList());
+ uidsTraites.addAll(m2.stream().map(MembreDto::getUidMembre).collect(Collectors.toList()));
+ long nbE = m2.stream()
+ .map(m -> buildFonctionExecutive(m, elus))
+ .count();
+ System.out.println("Exécutif : " + nbE);
+
+ // fonctions CP
+ List<MembreDto> m3 = data.getMembres().stream()
+ .filter(m -> m.getType().equals("Commissions"))
+ .filter(m -> m.getUidEnsemble().equals(deleguesSpeciaux))
+ .collect(Collectors.toList());
+ uidsTraites.addAll(m3.stream().map(MembreDto::getUidMembre).collect(Collectors.toList()));
+ long nbFcp = m3.stream()
+ .map(m -> buildFonctionCommissionPermanente(m, elus))
+ .count();
+ System.out.println("Fonctions CP : " + nbFcp);
// appartenances groupe politique
- data.getMembres().stream()
- .filter(m -> m.getType().equals("groupe politique"))
- .forEach(m -> buildAppartenanceGroupePolitique(m, elus, gps));
+ List<MembreDto> m4 = data.getMembres().stream()
+ .filter(m -> m.getType().equals("Groupe politique"))
+ .collect(Collectors.toList());
+ uidsTraites.addAll(m4.stream().map(MembreDto::getUidMembre).collect(Collectors.toList()));
+ long nbAgp = m4.stream()
+ .map(m -> buildAppartenanceGroupePolitique(m, elus, gps))
+ .count();
+ System.out.println("Appartenances GP : " + nbAgp);
// appartenances commission thématique
- data.getMembres().stream()
- .filter(m -> m.getType().equals("commission"))
- .filter(m -> gps.containsKey(m.getUidEnsemble()))
- .forEach(m -> buildAppartenanceCommissionThematique(m, elus, cts));
+ List<MembreDto> m5 = data.getMembres().stream()
+ .filter(m -> m.getType().equals("Commissions"))
+ .filter(m -> cts.containsKey(m.getUidEnsemble()))
+ .collect(Collectors.toList());
+ uidsTraites.addAll(m5.stream().map(MembreDto::getUidMembre).collect(Collectors.toList()));
+ long nbAct = m5.stream()
+ .map(m -> buildAppartenanceCommissionThematique(m, elus, cts))
+ .count();
+ System.out.println("Appartenances CT : " + nbAct);
// appartenances organismes
- data.getMembres().stream()
- .filter(m -> m.getType().equals("organisme"))
- .filter(m -> gps.containsKey(m.getUidEnsemble()))
- .forEach(m -> buildAppartenanceOrganisme(m, elus, organismes));
+ List<MembreDto> m6 = data.getMembres().stream()
+ .filter(m -> m.getType().equals("Organisme"))
+ .collect(Collectors.toList());
+ uidsTraites.addAll(m6.stream().map(MembreDto::getUidMembre).collect(Collectors.toList()));
+ long nbAo = m6.stream()
+ .map(m -> buildAppartenanceOrganisme(m, elus, organismes))
+ .count();
+ System.out.println("Appartenances organismes : " + nbAo);
+
+ List<String> manquants = data.getMembres().stream()
+ .map(MembreDto::getUidMembre)
+ .filter(id -> !uidsTraites.contains(id))
+ .collect(Collectors.toList());
+
+ System.out.println("Membres : " + data.getMembres().size());
+// System.out.println("Membres reconstitués : " + uidsTraites.size());
+// System.out.println(manquants);
}
@RequestMapping(value = "/image", method = RequestMethod.POST)
return ct;
}
- private void buildAppartenanceGroupePolitique(MembreDto m, Map<String, Elu> elus, Map<String, GroupePolitique> gps) {
+ private AppartenanceCommissionPermanente buildAppartenanceCommissionPermanente(MembreDto m, Map<String, Elu> elus) {
+ AppartenanceCommissionPermanente acp = new AppartenanceCommissionPermanente();
+ acp.setElu(elus.get(m.getUidConseiller()));
+ acp.setDateDebut(parseDate(m.getDateDebut()));
+ acp.setDateFin(parseDate(m.getDateFin()));
+ acp.setMotifFin(trimOrNull(m.getMotifFin()));
+ acp.setImportUid(m.getUidMembre());
+ return appartenanceCommissionPermanenteRepository.save(acp);
+ }
+
+ private FonctionExecutive buildFonctionExecutive(MembreDto m, Map<String, Elu> elus) {
+ FonctionExecutive fe = new FonctionExecutive();
+ fe.setElu(elus.get(m.getUidConseiller()));
+ fe.setDateDebut(parseDate(m.getDateDebut()));
+ fe.setDateFin(parseDate(m.getDateFin()));
+ fe.setMotifFin(trimOrNull(m.getMotifFin()));
+ fe.setImportUid(m.getUidMembre());
+ return fonctionExecutiveRepository.save(fe);
+ }
+
+ private FonctionCommissionPermanente buildFonctionCommissionPermanente(MembreDto m, Map<String, Elu> elus) {
+ FonctionCommissionPermanente fcp = new FonctionCommissionPermanente();
+ fcp.setElu(elus.get(m.getUidConseiller()));
+ fcp.setDateDebut(parseDate(m.getDateDebut()));
+ fcp.setDateFin(parseDate(m.getDateFin()));
+ fcp.setMotifFin(trimOrNull(m.getMotifFin()));
+ fcp.setImportUid(m.getUidMembre());
+ return fonctionCommissionPermanenteRepository.save(fcp);
+ }
+
+ private AppartenanceGroupePolitique buildAppartenanceGroupePolitique(MembreDto m, Map<String, Elu> elus, Map<String, GroupePolitique> gps) {
AppartenanceGroupePolitique agp = new AppartenanceGroupePolitique();
agp.setElu(elus.get(m.getUidConseiller()));
agp.setGroupePolitique(gps.get(m.getUidEnsemble()));
agp.setDateFin(parseDate(m.getDateFin()));
agp.setMotifFin(trimOrNull(m.getMotifFin()));
agp.setImportUid(m.getUidMembre());
- appartenanceGroupePolitiqueRepository.save(agp);
+ return appartenanceGroupePolitiqueRepository.save(agp);
}
- private void buildAppartenanceCommissionThematique(MembreDto m, Map<String, Elu> elus, Map<String, CommissionThematique> cts) {
+ private AppartenanceCommissionThematique buildAppartenanceCommissionThematique(MembreDto m, Map<String, Elu> elus, Map<String, CommissionThematique> cts) {
AppartenanceCommissionThematique act = new AppartenanceCommissionThematique();
act.setElu(elus.get(m.getUidConseiller()));
act.setCommissionThematique(cts.get(m.getUidEnsemble()));
act.setDateFin(parseDate(m.getDateFin()));
act.setMotifFin(trimOrNull(m.getMotifFin()));
act.setImportUid(m.getUidMembre());
- appartenanceCommissionThematiqueRepository.save(act);
+ return appartenanceCommissionThematiqueRepository.save(act);
}
- private void buildAppartenanceOrganisme(MembreDto m, Map<String, Elu> elus, Map<String, Organisme> organismes) {
+ private AppartenanceOrganisme buildAppartenanceOrganisme(MembreDto m, Map<String, Elu> elus, Map<String, Organisme> organismes) {
Organisme o = organismes.get(m.getUidEnsemble());
AppartenanceOrganisme ao = new AppartenanceOrganisme();
ao.setElu(elus.get(m.getUidConseiller()));
ao.setDateFin(parseDate(m.getDateFin()));
ao.setMotifFin(trimOrNull(m.getMotifFin()));
ao.setImportUid(m.getUidMembre());
- appartenanceOrganismeRepository.save(ao);
+ return appartenanceOrganismeRepository.save(ao);
}
private String trimOrNull(String label) {
import openassemblee.publicdata.MembreDto;
import openassemblee.repository.*;
import org.elasticsearch.common.base.Strings;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestMapping;
import java.time.LocalDate;
import java.util.*;
+import java.util.function.Function;
import java.util.stream.Collectors;
import static openassemblee.domain.enumeration.NiveauConfidentialite.PUBLIABLE;
@RequestMapping("/api/publicdata/v1")
public class PublicDataWebservice {
+ private final Logger logger = LoggerFactory.getLogger(this.getClass());
+
private static final String NON_RENSEIGNE = "- non renseigné -";
private static final String MANDATURE = "18";
+ public static final String COMMISSION_PERMANENTE = "COM002";
+ public static final String EXECUTIF = "COM003";
+ public static final String DELEGUES_SPECIAUX = "COM004";
@Autowired
private EluRepository eluRepository;
.filter(e -> Strings.isNullOrEmpty(e.getMotifDemission()) && e.getDateDemission() == null)
.collect(Collectors.toList());
List<GroupePolitique> groupesPolitiques = groupePolitiqueRepository.findAll();
-// .stream()
-// .filter(gp -> Strings.isNullOrEmpty(gp.getMotifFin()) && gp.getDateFin() == null)
-// .collect(Collectors.toList());
List<Organisme> organismes = organismeRepository.findAll();
-// .stream()
-// .filter(o -> Strings.isNullOrEmpty(o.getMotifFin()) && o.getDateFin() == null)
-// .collect(Collectors.toList());
List<CommissionThematique> commissionsThematiques = commissionThematiqueRepository.findAll();
-// .stream()
-// .filter(o -> Strings.isNullOrEmpty(o.getMotifFin()) && o.getDateFin() == null)
-// .collect(Collectors.toList());
Map<String, Object> result = new HashMap<>();
result.put("conseillers", getConseillers(elus));
ensembles.addAll(getEnsemblesOrganismes(organismes));
result.put("ensembles", ensembles);
- result.put("membres", getMembres(elus));
+ result.put("membres", getMembres(elus, organismes));
return result;
}
EnsembleDto cp = new EnsembleDto();
// TODO Solveig
cp.setMandature(MANDATURE);
- cp.setUidEnsemble("COM002");
+ cp.setUidEnsemble(COMMISSION_PERMANENTE);
cp.setLibCourt("CP");
cp.setDateCreation("18/12/2015");
cp.setType("commission");
EnsembleDto exec = new EnsembleDto();
// TODO Solveig
exec.setMandature(MANDATURE);
- exec.setUidEnsemble("COM003");
+ exec.setUidEnsemble(EXECUTIF);
exec.setLibCourt("VP");
exec.setDateCreation("18/12/2015");
exec.setType("commission");
EnsembleDto deleg = new EnsembleDto();
// TODO Solveig
deleg.setMandature(MANDATURE);
- deleg.setUidEnsemble("COM004");
+ deleg.setUidEnsemble(DELEGUES_SPECIAUX);
deleg.setLibCourt("Délégués spéciaux");
deleg.setDateCreation("22/12/2015");
deleg.setType("commission");
e.setTelephone(gp.getPhone());
e.setDescription(NON_RENSEIGNE);
- if(e.getLibLong().equals("Non Inscrits")) {
+ if (e.getLibLong().equals("Non Inscrits")) {
e.setDescription(stringOrSpace(null));
}
e.setCodeRne(stringOrSpace(null));
e.setSt(0F);
e.setDateFin(formatDate(o.getDateFin()));
e.setDescription(stringOrSpace(o.getDescription()));
+ // TODO fou => pas besoin de trimer ??
+ // checker qu'effectivement c'est bon putain
e.setCodeRne(stringOrSpace(o.getCodeRNE()));
// TODO Solveig
e.setSecteur(stringOrSpace(o.getSecteur()));
e.setVille(stringOrSpace(null));
e.setMail(stringOrSpace(null));
e.setPhonetique(stringOrSpace(null));
- if(ct.getDateFin() != null) {
+ if (ct.getDateFin() != null) {
e.setStatus("F");
} else {
e.setStatus(" ");
// TODO Solveig pour info, dans l'export actuel, tous les liens entre un elu et un organismes sont par code rne
// select data_membre.uid_membre from data_membre, data_ensemble where data_membre.uid_ensemble = data_ensemble.uid_ensemble and data_ensemble.code_rne is null;
- private List<MembreDto> getMembres(List<Elu> elus) {
- return elus.stream().flatMap(e -> e.getAppartenancesGroupePolitique().stream().map(agp -> {
+ private List<MembreDto> getMembres(List<Elu> elus, List<Organisme> organismes) {
+ List<MembreDto> m1 = elus.stream().flatMap(e -> e.getAppartenancesCommissionPermanente().stream().map(acp -> {
MembreDto m = new MembreDto();
- m.setUidMembre(agp.getImportUid());
+ m.setUidMembre(acp.getImportUid());
+ m.setUidEnsemble(COMMISSION_PERMANENTE);
+ m.setUidConseiller(e.getImportUid());
+
+ m.setMandature("");
+ m.setType("Commissions");
+ m.setDateDebut(formatDate(acp.getDateDebut()));
+ m.setDateFin(formatDate(acp.getDateFin()));
+ m.setNumeroNomination("");
+ m.setStatus("");
+ m.setNomination("");
+ m.setSt(0f);
+ m.setFonction("");
+ m.setBureau('A');
+ m.setMotifFin(stringOrSpace(acp.getMotifFin()));
+ m.setDateNomination("");
+ m.setDescription("");
+ return m;
+ })).collect(Collectors.toList());
+ List<MembreDto> m2 = elus.stream().flatMap(e -> e.getFonctionsExecutives().stream().map(fe -> {
+ MembreDto m = new MembreDto();
+ m.setUidMembre(fe.getImportUid());
+ m.setUidEnsemble(EXECUTIF);
+ m.setUidConseiller(e.getImportUid());
+
+ m.setMandature("");
+ m.setType("Commissions");
+ m.setDateDebut(formatDate(fe.getDateDebut()));
+ m.setDateFin(formatDate(fe.getDateFin()));
+ m.setNumeroNomination("");
+ m.setStatus("");
+ m.setNomination("");
+ m.setSt(0f);
+ m.setFonction("");
+ m.setBureau('A');
+ m.setMotifFin(stringOrSpace(fe.getMotifFin()));
+ m.setDateNomination("");
+ m.setDescription("");
+ return m;
+ })).collect(Collectors.toList());
+ List<MembreDto> m3 = elus.stream().flatMap(e -> e.getFonctionsCommissionPermanente().stream().map(fcp -> {
+ MembreDto m = new MembreDto();
+ m.setUidMembre(fcp.getImportUid());
+ m.setUidEnsemble(DELEGUES_SPECIAUX);
+ m.setUidConseiller(e.getImportUid());
+
+ m.setMandature("");
+ m.setType("Commissions");
+ m.setDateDebut(formatDate(fcp.getDateDebut()));
+ m.setDateFin(formatDate(fcp.getDateFin()));
+ m.setNumeroNomination("");
+ m.setStatus("");
+ m.setNomination("");
+ m.setSt(0f);
+ m.setFonction("");
+ m.setBureau('A');
+ m.setMotifFin(stringOrSpace(fcp.getMotifFin()));
+ m.setDateNomination("");
+ m.setDescription("");
+ return m;
+ })).collect(Collectors.toList());
+ List<MembreDto> m4 = elus.stream().flatMap(e -> e.getAppartenancesCommissionsThematiques().stream().map(act -> {
+ MembreDto m = new MembreDto();
+ m.setUidMembre(act.getImportUid());
+ m.setUidEnsemble(act.getCommissionThematique().getImportUid());
+ m.setUidConseiller(e.getImportUid());
+
+ m.setMandature("");
+ m.setType("Commissions");
+ m.setDateDebut(formatDate(act.getDateDebut()));
+ m.setDateFin(formatDate(act.getDateFin()));
+ m.setNumeroNomination("");
+ m.setStatus("");
+ m.setNomination("");
+ m.setSt(0f);
+ m.setFonction("");
+ m.setBureau('A');
+ m.setMotifFin(stringOrSpace(act.getMotifFin()));
+ m.setDateNomination("");
+ m.setDescription("");
+ return m;
+ })).collect(Collectors.toList());
+ List<MembreDto> m5 = elus.stream().flatMap(e -> e.getFonctionsCommissionsThematiques().stream().map(fct -> {
+ MembreDto m = new MembreDto();
+ m.setUidMembre(fct.getImportUid());
+ m.setUidEnsemble(fct.getCommissionThematique().getImportUid());
+ m.setUidConseiller(e.getImportUid());
+
m.setMandature("");
+ m.setType("Commissions");
+ m.setDateDebut(formatDate(fct.getDateDebut()));
+ m.setDateFin(formatDate(fct.getDateFin()));
+ m.setNumeroNomination("");
+ m.setStatus("");
+ m.setNomination("");
+ m.setSt(0f);
+ m.setFonction("");
+ m.setBureau('A');
+ m.setMotifFin(stringOrSpace(fct.getMotifFin()));
+ m.setDateNomination("");
+ m.setDescription("");
+ return m;
+ })).collect(Collectors.toList());
+ List<MembreDto> m6 = elus.stream().flatMap(e -> e.getAppartenancesGroupePolitique().stream().map(agp -> {
+ MembreDto m = new MembreDto();
+ m.setUidMembre(agp.getImportUid());
+ m.setUidEnsemble(agp.getGroupePolitique().getImportUid());
m.setUidConseiller(e.getImportUid());
+
+ m.setMandature("");
if (agp.getGroupePolitique() != null) {
m.setUidEnsemble(agp.getGroupePolitique().getImportUid());
}
m.setSt(0f);
m.setFonction("");
m.setBureau('A');
- m.setMotifFin(agp.getMotifFin().trim());
+ m.setMotifFin(stringOrSpace(agp.getMotifFin()));
m.setDateNomination("");
m.setDescription("");
return m;
})).collect(Collectors.toList());
+ List<MembreDto> m7 = elus.stream().flatMap(e -> e.getFonctionsGroupePolitique().stream().map(fgp -> {
+ MembreDto m = new MembreDto();
+ m.setUidMembre(fgp.getImportUid());
+ m.setUidEnsemble(fgp.getGroupePolitique().getImportUid());
+ m.setUidConseiller(e.getImportUid());
+
+ m.setMandature("");
+ m.setType("Commissions");
+ m.setDateDebut(formatDate(fgp.getDateDebut()));
+ m.setDateFin(formatDate(fgp.getDateFin()));
+ m.setNumeroNomination("");
+ m.setStatus("");
+ m.setNomination("");
+ m.setSt(0f);
+ m.setFonction("");
+ m.setBureau('A');
+ m.setMotifFin(stringOrSpace(fgp.getMotifFin()));
+ m.setDateNomination("");
+ m.setDescription("");
+ return m;
+ })).collect(Collectors.toList());
+ // TODO code rne en double : "0750708M", "0751451V "...
+// List<String> doublons = Arrays.asList("0750708M", "0751451V", "0754471C", "0754476H", "0754679D", "0754718W",
+// "0754811X", "0754815B", "0754816C", "0754850P", "0771654E", "0772241T", "0772447S", "0772468P", "0782058N",
+// "0782059P", "0783430E", "0922451P", "0932217E", "0932305A", "0951848T", "0951963T");
+ Map<String, Organisme> organismeMapRNE = organismes.stream()
+ .filter(o -> o.getCodeRNE() != null)
+ .map(Organisme.UniqueRneOrganisme::new)
+// .filter(o -> !o.getNom().equals("Greta des métiers de l'hôtellerie - lycée jean drouant"))
+// .filter(o -> !o.getNom().equals("Cfa quincaillerie-vente de produits pour l'habitat (vth)"))
+ .distinct()
+ .map(o -> o.organisme)
+ .collect(Collectors.toMap(Organisme::getCodeRNE, Function.identity()));
+ Map<String, Organisme> organismeMapNom = organismes.stream()
+ .filter(o -> o.getNom() != null)
+ .map(Organisme.UniqueNomOrganisme::new)
+ .distinct()
+ .map(o -> o.organisme)
+ .collect(Collectors.toMap(Organisme::getNom, Function.identity()));
+ List<MembreDto> m8 = elus.stream().flatMap(e -> e.getAppartenancesOrganismes().stream().map(ao -> {
+ MembreDto m = new MembreDto();
+ m.setUidMembre(ao.getImportUid());
+ if (ao.getCodeRNE() != null) {
+ m.setUidEnsemble(organismeMapRNE.get(ao.getCodeRNE()).getImportUid());
+ } else {
+ Organisme o = organismeMapNom.get(ao.getOrganisme());
+ if (o != null) {
+ m.setUidEnsemble(o.getImportUid());
+ } else {
+ logger.info("Unknown organisme " + ao.getOrganisme());
+ }
+ }
+ m.setUidConseiller(e.getImportUid());
+
+ m.setMandature("");
+ m.setType("Organisme");
+ m.setDateDebut(formatDate(ao.getDateDebut()));
+ m.setDateFin(formatDate(ao.getDateFin()));
+ m.setNumeroNomination("");
+ m.setStatus("");
+ m.setNomination("");
+ m.setSt(0f);
+ m.setFonction("");
+ m.setBureau('A');
+ m.setMotifFin(stringOrSpace(ao.getMotifFin()));
+ m.setDateNomination("");
+ m.setDescription("");
+ return m;
+ })).collect(Collectors.toList());
+
+ m1.addAll(m2);
+ m1.addAll(m3);
+ m1.addAll(m4);
+ m1.addAll(m5);
+ m1.addAll(m6);
+ m1.addAll(m7);
+ m1.addAll(m8);
+ return m1;
}
// TODO penser à nettoyer le Publishable apres usage