Skip to main content

Ordinamento cavi

Il metodo orderCNOPTAggregations() ordina le aggregazioni di fibre logiche per i nodi A-Z basandosi sull'ordine dei cavi associati al CNO/SCP/PFS.CNO o al GC tattraverso i campi fk_cno e fk_gc.

  • calcFibSup (CalcFibLogicalSupport): Contiene la mappa delle aggregazioni di fibre e dei cavi.

  • List<AggregatedFibersLogicalByAZNodes>: Lista ordinata delle aggregazioni di fibre logiche.

Per ogni CNO/SCP/PFSCNO del progetto:

    • Ottiene la mappa dei cavi per il progetto.

    • Ordina i cavi basandosi sulla logica specifica.

    • Ordina le aggregazioni di fibre in base all'ordine dei cavi.


getCNOPTmapCablesRecupera recupera e organizza i cavi CNO-PT associati a un determinato CNO.

  • fkCno (Long): Identificativo del CNO.

  • calcFibSup (CalcFibLogicalSupport): Contiene le informazioni sui cavi e le aggregazioni.

Ritorna:
  • HashMap<Long, List<PcabSection>>: Mappa dei cavi e le relative sezioni che portano al primo GC/PCP/PFP.GC.

Logica:
  • Recupera i cavi associati al CNO.

  • Verifica la presenza dell'aggregazione di fibre nel cavo e determina la routing corretta, prelevandoloprelevandola dal db se mancante.

  • Popola la mappa con i cavi e le loro sezioni.


orderAggregations ordina le aggregazioni delle fibre logiche in base all'ordine dei cavi.

  • mapAggregFibers (HashMap<Long, List<AggregatedFibersLogicalByAZNodes>>): Mappa delle aggregazioni di fibre.

  • listPkCableCno (List<Long>): Lista ordinata degli identificativi dei cavi.

Ritorno:
  • List<AggregatedFibersLogicalByAZNodes>: Lista ordinata delle aggregazioni di fibre logiche.

Logica:
  • Ordina le aggregazioni in base all'ordine dei cavi.

  • Separa le aggregazioni di tipo SPARE_ROE e INTEGRATIVO_GRE, che vengono aggiunte alla fine, perché vanno occupate sempre per ultime.


topologicalSortCables esegue un ordinamento topologico dei cavi basandosi sulla lorodipendenza dipendenza.tra di loro.

  • drawing (Long): drawing di riferimento.

  • mapCables (HashMap<Long, List<PcabSection>>): Mappa dei cavi e delle loro sezioni.

  • fkNode (Long): Nodo di riferimento.

Ritorno:
  • List<Long>: Lista ordinata di identificativi dei cavi.

Logica:
  • Identifica i cavi senza dipendenze e li ordina.

  • Se un cavo ha dipendenze non ancora risolte, viene messo in uno stack per essere processato successivamente.

  • Se non è possibile ordinare alcuni cavi a causa di dipendenze cicliche, viene sollevata un'eccezione.


handleCableNotDepenceStack gestisce i cavi senza dipendenze, ordinandoli correttamente.

  • mapCables (HashMap<Long, List<PcabSection>>): Mappa dei cavi.

  • listOrdered (List<Long>): Lista ordinata dei cavi.

  • stackCablesToOrder (List<Long>): Stack dei cavi in attesa di essere ordinati.

  • cablesNotDepence (List<Long>): Lista dei cavi senza dipendenze.

Logica:
  • Aggiunge i cavi senza dipendenze alla lista ordinata.

  • Se non ci sono cavi disponibili, ne preleva uno dallo stack.


findCableParentNodeOrderAndLength trova il nodo padre di un cavo e la sua lunghezza totale.

  • pkCable (Long): Identificativo del cavo.

  • listPcabSection (List<PcabSection>): Lista delle sezioni del cavo.

  • mapperCavi (MapperCavi): Mapper per queries dedicate ai cavi.

  • lengthTotal (int): Lunghezza totale del cavo.

Ritorno:
  • int[]: Array contenente l'ordine del nodo e la lunghezza del cavo.

Logica:
  • Identifica la sezione del cavo che contiene il nodo padre.

  • Recupera l'ordine del nodo e la lunghezza di riferimento.

  • Se non trova dati validi, restituisce un array con valori predefiniti.


Metodo di segnalazione cavi non ordinati in caso di errore

getNotOrderedCables restituisce una stringa contenente gli identificativi dei cavi che non sono stati ancora ordinati.

  • mapCables (HashMap<Long, List<PcabSection>>): Mappa dei cavi.

  • listOrdered (List<Long>): Lista dei cavi già ordinati.

Ritorno:
  • String: Identificativi dei cavi non ordinati separati da virgole.

Logica:
  • Filtra i cavi non ancora ordinati dalla mappa.

  • Concatena gli identificativi in una stringa separati da virgole.