datacom: faz verificação de existencia da ONU ao adicionar_FIX
Signed-off-by: Rodrigo Bertoldo de Sousa Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
1 parent
235e0c0d43
commit
c4caa1c063
1 file changed
+25
-2
+25
-2
@@ -3327,6 +3327,7 @@ Digite /help para ver todos os comandos disponíveis!
|
|||||||
onuData: {
|
onuData: {
|
||||||
tipo: 'datacom',
|
tipo: 'datacom',
|
||||||
location: tsLocation,
|
location: tsLocation,
|
||||||
|
oltId,
|
||||||
oltHost: oltEquipment ? oltEquipment.host : '',
|
oltHost: oltEquipment ? oltEquipment.host : '',
|
||||||
serial: serialNumber,
|
serial: serialNumber,
|
||||||
portaAlias: slot
|
portaAlias: slot
|
||||||
@@ -6106,11 +6107,33 @@ Digite /help para ver todos os comandos disponíveis!
|
|||||||
|
|
||||||
const olts = oltsResult.data?.dados?.dados || oltsResult.data?.dados || [];
|
const olts = oltsResult.data?.dados?.dados || oltsResult.data?.dados || [];
|
||||||
|
|
||||||
// Encontrar OLT pelo SSID (IP de gerência)
|
// 1. Tentar por SSID (IP de gerência)
|
||||||
let oltEncontrada = olts.find(o => o.ssid === onuData.oltHost);
|
let oltEncontrada = olts.find(o => o.ssid === onuData.oltHost);
|
||||||
|
|
||||||
|
// 2. Para Datacom: buscar por keyword do oltId no nome da OLT
|
||||||
|
if (!oltEncontrada && onuData.oltId) {
|
||||||
|
const keyword = onuData.oltId.replace(/^olt_/, '').replace(/_/g, ' ').toLowerCase();
|
||||||
|
const keywords = keyword.split(' ').filter(k => k.length > 2);
|
||||||
|
oltEncontrada = olts.find(o => {
|
||||||
|
const nome = (o.nome || '').toLowerCase();
|
||||||
|
return keywords.every(k => nome.includes(k));
|
||||||
|
});
|
||||||
|
// Se não encontrou com todos, tenta com qualquer um
|
||||||
|
if (!oltEncontrada) {
|
||||||
|
oltEncontrada = olts.find(o => {
|
||||||
|
const nome = (o.nome || '').toLowerCase();
|
||||||
|
return keywords.some(k => nome.includes(k));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (oltEncontrada) {
|
||||||
|
console.log(`✅ OLT encontrada por nome: "${oltEncontrada.nome}" (keyword: "${keyword}")`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3. Fallback: primeira OLT disponível
|
||||||
if (!oltEncontrada && olts.length > 0) {
|
if (!oltEncontrada && olts.length > 0) {
|
||||||
oltEncontrada = olts[0];
|
oltEncontrada = olts[0];
|
||||||
console.log(`⚠️ OLT não encontrada por SSID "${onuData.oltHost}", usando a primeira: ${oltEncontrada.nome}`);
|
console.log(`⚠️ OLT não identificada — usando a primeira disponível: ${oltEncontrada.nome}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!oltEncontrada) {
|
if (!oltEncontrada) {
|
||||||
|
|||||||
Reference in new issue
Block a user