Skip to content

Commit f86dd1e

Browse files
committed
Admin dashboard final version
Admin Dashboard ok ✅ Meme s'il reste un seul client en cours de traitement, la file n'est plus marquee comme terminee !
1 parent aba3f3c commit f86dd1e

File tree

4 files changed

+50
-30
lines changed

4 files changed

+50
-30
lines changed

src/main/java/sn/sdley/queueManagementSystem/dto/QueueInfo.java

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,17 @@ public class QueueInfo {
44
private String serviceNom;
55
private String localisation;
66
private int clientsEnAttente;
7+
private String numeroTicketEnCours;
78
private String numeroProchainTicket;
8-
private String ticketEnCours; // Ajout du ticket en cours
99

1010
public QueueInfo(String serviceNom, String localisation, int clientsEnAttente,
11-
String ticketEnCours, String numeroProchainTicket) {
11+
String numeroTicketEnCours, String numeroProchainTicket) {
1212
this.serviceNom = serviceNom;
1313
this.localisation = localisation;
1414
this.clientsEnAttente = clientsEnAttente;
15-
this.ticketEnCours = ticketEnCours;
16-
this.numeroProchainTicket = numeroProchainTicket;
15+
this.numeroTicketEnCours = formatTicketEnCours(numeroTicketEnCours, clientsEnAttente);
16+
this.numeroProchainTicket = formatProchainTicket(numeroProchainTicket, clientsEnAttente,
17+
numeroTicketEnCours);
1718
}
1819

1920
public String getServiceNom() {
@@ -28,11 +29,39 @@ public int getClientsEnAttente() {
2829
return clientsEnAttente;
2930
}
3031

32+
public String getNumeroTicketEnCours() {
33+
return numeroTicketEnCours;
34+
}
35+
3136
public String getNumeroProchainTicket() {
3237
return numeroProchainTicket;
3338
}
3439

35-
public String getTicketEnCours() {
36-
return ticketEnCours;
40+
41+
// Méthode mise à jour pour formater Ticket en Cours
42+
private String formatTicketEnCours(String ticketEnCours, int clientsEnAttente) {
43+
if (ticketEnCours != null) {
44+
// Si un client est en cours de traitement, afficher son numéro
45+
return ticketEnCours;
46+
} else if (clientsEnAttente == 0) {
47+
// Aucun client en attente et aucun ticket en cours => File terminée
48+
return "<span style='color:green; font-weight:bold;'>File attente Terminée</span>";
49+
} else {
50+
// Aucun ticket en cours, clients en attente => Service Non Démarré
51+
return "<span style='color:red; font-weight:bold;'>Service Non Démarré</span>";
52+
}
53+
}
54+
55+
56+
// Méthode pour formater Prochain Ticket (avec Néant en vert)
57+
private String formatProchainTicket(String prochainTicket, int clientsEnAttente,
58+
String numeroTicketEnCours) {
59+
if (clientsEnAttente == 0 && numeroTicketEnCours != null) {
60+
return "<span style='color:green; font-weight:bold;'>Néant</span>";
61+
} else if (clientsEnAttente == 0 && numeroTicketEnCours == null) {
62+
return "<span style='color:green; font-weight:bold;'>File attente Terminée</span>";
63+
64+
}
65+
return prochainTicket;
3766
}
3867
}

src/main/java/sn/sdley/queueManagementSystem/repositories/TicketRepository.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,13 @@ Page<Ticket> findByServiceNomAndLocalisationAndStatusAndAgentIdAndIsPrevClientOr
7979
*/
8080
@Query("SELECT t.service.nom, t.localisation, " +
8181
"COUNT(CASE WHEN t.status = 'En Attente' THEN 1 ELSE NULL END), " +
82-
"(SELECT t2.numero FROM Ticket t2 WHERE t2.status = 'En Cours' AND t2.service.nom = t.service.nom " +
82+
"(SELECT t2.numero FROM Ticket t2 WHERE t2.status = 'En Cours' " +
83+
"AND t2.service.nom = t.service.nom " +
8384
"AND t2.localisation = t.localisation ORDER BY t2.id ASC LIMIT 1), " +
84-
"(SELECT t3.numero FROM Ticket t3 WHERE t3.status = 'En Attente' AND t3.service.nom = t.service.nom " +
85-
"AND t3.localisation = t.localisation ORDER BY t3.id ASC LIMIT 1) " +
85+
"(SELECT t3.numero FROM Ticket t3 WHERE t3.status = 'En Attente' " +
86+
"AND t3.service.nom = t.service.nom " +
87+
"AND t3.localisation = t.localisation ORDER BY t3.id ASC LIMIT 1), " +
88+
"COUNT(CASE WHEN t.status = 'En Cours' THEN 1 ELSE NULL END) " + // Nouvelle colonne
8689
"FROM Ticket t " +
8790
"GROUP BY t.service.nom, t.localisation")
8891
List<Object[]> getQueueSummary();

src/main/java/sn/sdley/queueManagementSystem/service/TicketService.java

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -141,26 +141,13 @@ public Ticket getTicketByServiceAndLocationAndStatusAndAgentIdAndIsPrevClient(
141141
public List<QueueInfo> getQueuesOverview() {
142142
List<Object[]> results = ticketRepository.getQueueSummary();
143143

144-
return results.stream().map(result -> {
145-
String serviceNom = (String) result[0];
146-
String localisation = (String) result[1];
147-
int clientsEnAttente = ((Number) result[2]).intValue();
148-
149-
// Ticket en cours
150-
String ticketEnCours = (result[3] != null) ? (String) result[3]
151-
: "<span class='service-non-demarre'>Service Non Démarré</span>";
152-
153-
// Prochain Ticket
154-
String numeroProchainTicket = (result[4] != null) ? (String) result[4] : "Néant";
155-
156-
// Si la file est terminée (Clients en Attente == 0), mise à jour des valeurs
157-
if (clientsEnAttente == 0) {
158-
ticketEnCours = "<span style='color: green; font-weight: bold;'>File attente Terminée</span>";
159-
numeroProchainTicket = "Néant";
160-
}
161-
162-
return new QueueInfo(serviceNom, localisation, clientsEnAttente, ticketEnCours, numeroProchainTicket);
163-
}).collect(Collectors.toList());
144+
return results.stream().map(result -> new QueueInfo(
145+
(String) result[0], // Service Nom
146+
(String) result[1], // Localisation
147+
((Number) result[2]).intValue(), // Nombre de clients en attente
148+
(result[3] != null) ? (String) result[3] : null, // Numéro du ticket en cours
149+
(result[4] != null) ? (String) result[4] : null // Numéro du prochain ticket
150+
)).collect(Collectors.toList());
164151
}
165152

166153
}

src/main/webapp/WEB-INF/jsp/admin-dashboard.jsp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,11 @@
5353
<td>${queue.serviceNom}</td>
5454
<td>${queue.localisation}</td>
5555
<td>${queue.clientsEnAttente}</td>
56-
<td><c:out value="${queue.ticketEnCours}" escapeXml="false"/></td>
56+
<td>${queue.numeroTicketEnCours}</td>
5757
<td>${queue.numeroProchainTicket}</td>
5858
</tr>
5959
</c:forEach>
60+
6061
</tbody>
6162
</table>
6263

0 commit comments

Comments
 (0)