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)