fix(backend): deduplicar vínculos de consultoria com mesmo ID
Dados do ATUACAPES podem conter registros duplicados de consultoria com mesmo ID. Mantém o registro ativo (sem fim) quando há duplicatas.
This commit is contained in:
@@ -141,6 +141,20 @@ class ConsultorRepositoryImpl(ConsultorRepository):
|
||||
if not consultorias:
|
||||
return None
|
||||
|
||||
visto_ids: Dict[int, Dict[str, Any]] = {}
|
||||
for c in consultorias:
|
||||
cid = c.get("id")
|
||||
if cid is None:
|
||||
continue
|
||||
if cid not in visto_ids:
|
||||
visto_ids[cid] = c
|
||||
else:
|
||||
existente_fim = visto_ids[cid].get("fim")
|
||||
novo_fim = c.get("fim")
|
||||
if existente_fim and not novo_fim:
|
||||
visto_ids[cid] = c
|
||||
consultorias = list(visto_ids.values()) if visto_ids else consultorias
|
||||
|
||||
periodos: List[Periodo] = []
|
||||
vinculos: List[VinculoConsultoria] = []
|
||||
situacoes: List[str] = []
|
||||
|
||||
Reference in New Issue
Block a user