Si des doublons (au niveau du n° de badge) apparaissent dans la liste des tâches en attente d'un cylindre, la synchro est impossible. Pour rechercher et supprimer les doublons, 2 méthodes:


   1. Depuis l'app: lister les n° de badges en doublon dans les tâches en attente, et selon l'action voulue (suppression/création), le recréer ou le remettre en suppression. Ex: pour un badge en cours de suppression, le réactiver au niveau du pass ou du cylindre, puis le désactiver/supprimer à nouveau. Vérifier ensuite que le doublon a disparu


  2. Depuis la Base PostGres:


        Requête pour lister les tâches en doublons:

  

select t.id,
--t.userid,
--d.id as deviceId,
--d.properties->>'name' as deviceName,
--cmd.value->>'commandType' as cmdType,
--cmd.value->>'accessId' as accessId,
cmd.value->'params'->0->'index' as idx,
cmd.value->'params'->0->'value'->>'keyCardNumber' as keyCardNumber,
count(*)
from task t, jsonb_array_elements(t.properties->'payload'->'commands') as cmd, device d
where d.id = t.deviceid
and t.siteid = $1
and t.properties ->>'status' = 'pending'
group by t.id,cmd.value->'params'->0->'index',cmd.value->'params'->0->'value'->>'keyCardNumber'
having count(*) > 1
order by t.id


       Supprimer ensuite dans le "properties" chaque tâche les commandes en doublons.


      Requête pour les supprimer (à venir)