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:
|
if not consultorias:
|
||||||
return None
|
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] = []
|
periodos: List[Periodo] = []
|
||||||
vinculos: List[VinculoConsultoria] = []
|
vinculos: List[VinculoConsultoria] = []
|
||||||
situacoes: List[str] = []
|
situacoes: List[str] = []
|
||||||
|
|||||||
Reference in New Issue
Block a user