From 0a20be186afa26fce387e696dceba0fb49f8167e Mon Sep 17 00:00:00 2001 From: Tykayn Date: Mon, 30 Jun 2025 16:02:53 +0200 Subject: [PATCH] simplification des followup --- src/Service/FollowUpService.php | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/Service/FollowUpService.php b/src/Service/FollowUpService.php index 817c049c..4928a5ef 100644 --- a/src/Service/FollowUpService.php +++ b/src/Service/FollowUpService.php @@ -215,6 +215,39 @@ class FollowUpService } $em->flush(); $em->clear(); + + // Suppression des mesures redondantes (même valeur consécutive, sauf la dernière) + $repo = $em->getRepository(CityFollowUp::class); + foreach (array_keys(self::getFollowUpThemes()) as $type) { + foreach (['_count', '_completion'] as $suffix) { + $name = $type . $suffix; + $followups = $repo->createQueryBuilder('f') + ->where('f.stats = :stats') + ->andWhere('f.name = :name') + ->setParameter('stats', $stats) + ->setParameter('name', $name) + ->orderBy('f.date', 'ASC') + ->getQuery()->getResult(); + $toDelete = []; + $prev = null; + $n = count($followups); + foreach ($followups as $i => $fu) { + // Si seulement 2 mesures, ne rien supprimer + if ($n == 2) { + break; + } + if ($prev && $fu->getMeasure() === $prev->getMeasure() && $i < $n - 1) { + $toDelete[] = $prev; + } + $prev = $fu; + } + foreach ($toDelete as $del) { + $em->remove($del); + } + } + } + $em->flush(); + $em->clear(); } public function generateGlobalFollowUps(EntityManagerInterface $em): void