refactor: Suppression de 13 écrans redondants
Nettoyage des doublons pour éviter la redondance : Suppressions (liste.xhtml redondants avec écrans racine): - devis/liste.xhtml - employes/liste.xhtml - equipes/liste.xhtml - factures/liste.xhtml - maintenance/liste.xhtml - materiels/liste.xhtml - messages/liste.xhtml - notifications/liste.xhtml - planning/liste.xhtml - rapports/liste.xhtml - stock/liste.xhtml Suppressions (inconsistance nouveau/nouvelle): - equipes/nouvelle.xhtml - factures/nouvelle.xhtml Stratégie: - Un seul écran liste par module (racine) - Standardisation sur nouveau.xhtml Résultat: 163 écrans restants (vs 176 avant)
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
package dev.lions.btpxpress.view;
|
||||
|
||||
import dev.lions.btpxpress.service.ChantierService;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import jakarta.faces.view.ViewScoped;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.inject.Named;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
@@ -13,6 +15,7 @@ import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
@Named("chantiersView")
|
||||
@@ -20,9 +23,12 @@ import java.util.function.Predicate;
|
||||
@Getter
|
||||
@Setter
|
||||
public class ChantiersView extends BaseListView<ChantiersView.Chantier, Long> implements Serializable {
|
||||
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(ChantiersView.class);
|
||||
|
||||
@Inject
|
||||
ChantierService chantierService;
|
||||
|
||||
private String filtreNom;
|
||||
private String filtreClient;
|
||||
private String filtreStatut;
|
||||
@@ -48,23 +54,78 @@ public class ChantiersView extends BaseListView<ChantiersView.Chantier, Long> im
|
||||
loading = true;
|
||||
try {
|
||||
items = new ArrayList<>();
|
||||
for (int i = 1; i <= 20; i++) {
|
||||
|
||||
// Récupération depuis l'API backend
|
||||
List<Map<String, Object>> chantiersData = chantierService.getAllChantiers();
|
||||
|
||||
for (Map<String, Object> data : chantiersData) {
|
||||
Chantier c = new Chantier();
|
||||
c.setId((long) i);
|
||||
c.setNom("Chantier " + i);
|
||||
c.setClient("Client " + (i % 5 + 1));
|
||||
c.setAdresse("123 Rue Exemple " + i + ", 75001 Paris");
|
||||
c.setDateDebut(LocalDate.now().minusDays(i * 10));
|
||||
c.setDateFinPrevue(LocalDate.now().plusDays((20 - i) * 10));
|
||||
c.setStatut(i % 3 == 0 ? "TERMINE" : (i % 3 == 1 ? "EN_COURS" : "PLANIFIE"));
|
||||
c.setAvancement(i * 5);
|
||||
c.setBudget(i * 15000.0);
|
||||
c.setCoutReel(i * 12000.0);
|
||||
|
||||
// Mapping des données de l'API vers l'objet Chantier
|
||||
c.setId(data.get("id") != null ? Long.valueOf(data.get("id").toString().hashCode()) : null);
|
||||
c.setNom((String) data.get("nom"));
|
||||
|
||||
// Le client peut être un objet ou une chaîne
|
||||
Object clientObj = data.get("client");
|
||||
if (clientObj instanceof Map) {
|
||||
Map<String, Object> clientData = (Map<String, Object>) clientObj;
|
||||
c.setClient((String) clientData.get("raisonSociale"));
|
||||
} else if (clientObj instanceof String) {
|
||||
c.setClient((String) clientObj);
|
||||
} else {
|
||||
c.setClient("N/A");
|
||||
}
|
||||
|
||||
c.setAdresse((String) data.get("adresse"));
|
||||
|
||||
// Conversion des dates
|
||||
if (data.get("dateDebut") != null) {
|
||||
c.setDateDebut(LocalDate.parse(data.get("dateDebut").toString()));
|
||||
}
|
||||
if (data.get("dateFinPrevue") != null) {
|
||||
c.setDateFinPrevue(LocalDate.parse(data.get("dateFinPrevue").toString()));
|
||||
}
|
||||
|
||||
c.setStatut((String) data.get("statut"));
|
||||
|
||||
// Avancement en pourcentage
|
||||
Object avancementObj = data.get("avancement");
|
||||
if (avancementObj != null) {
|
||||
c.setAvancement(avancementObj instanceof Integer ?
|
||||
(Integer) avancementObj :
|
||||
Integer.parseInt(avancementObj.toString()));
|
||||
} else {
|
||||
c.setAvancement(0);
|
||||
}
|
||||
|
||||
// Budget et coût réel
|
||||
Object montantObj = data.get("montant");
|
||||
if (montantObj != null) {
|
||||
c.setBudget(montantObj instanceof Number ?
|
||||
((Number) montantObj).doubleValue() :
|
||||
Double.parseDouble(montantObj.toString()));
|
||||
} else {
|
||||
c.setBudget(0.0);
|
||||
}
|
||||
|
||||
Object coutReelObj = data.get("coutReel");
|
||||
if (coutReelObj != null) {
|
||||
c.setCoutReel(coutReelObj instanceof Number ?
|
||||
((Number) coutReelObj).doubleValue() :
|
||||
Double.parseDouble(coutReelObj.toString()));
|
||||
} else {
|
||||
c.setCoutReel(0.0);
|
||||
}
|
||||
|
||||
items.add(c);
|
||||
}
|
||||
|
||||
LOG.info("Chantiers chargés depuis l'API : {} élément(s)", items.size());
|
||||
applyFilters(items, buildFilters());
|
||||
} catch (Exception e) {
|
||||
LOG.error("Erreur chargement chantiers", e);
|
||||
LOG.error("Erreur chargement chantiers depuis l'API", e);
|
||||
// En cas d'erreur, on garde une liste vide
|
||||
items = new ArrayList<>();
|
||||
} finally {
|
||||
loading = false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user