connected slaves

master^2
Bhaskar 5 months ago
parent 41406d2090
commit 3498512d8d

@ -3969,13 +3969,13 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => {
const allIssues = supportRecord.issues || []; const allIssues = supportRecord.issues || [];
const hardwareSet = new Set(); const hardwareSet = new Set();
// Collect hardwareId and masterHardwareId
for (const issue of allIssues) { for (const issue of allIssues) {
if (issue.hardwareId) hardwareSet.add(issue.hardwareId); if (issue.hardwareId) hardwareSet.add(issue.hardwareId);
if (issue.masterHardwareId) hardwareSet.add(issue.masterHardwareId); if (issue.masterHardwareId) hardwareSet.add(issue.masterHardwareId);
} }
const hardwareIds = [...hardwareSet]; const hardwareIds = [...hardwareSet];
const sensors = await Insensors.find({ const sensors = await Insensors.find({
$or: [ $or: [
{ hardwareId: { $in: hardwareIds } }, { hardwareId: { $in: hardwareIds } },
@ -4011,7 +4011,6 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => {
const masterSensor = sensorMap[masterId]; const masterSensor = sensorMap[masterId];
if (!masterSensor || masterSensor.type !== "master") continue; if (!masterSensor || masterSensor.type !== "master") continue;
// If master not already added
if (!masterMap[masterSensor.hardwareId]) { if (!masterMap[masterSensor.hardwareId]) {
const enriched = orderMap[masterSensor.hardwareId] || {}; const enriched = orderMap[masterSensor.hardwareId] || {};
masterMap[masterSensor.hardwareId] = { masterMap[masterSensor.hardwareId] = {
@ -4036,17 +4035,20 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => {
} }
const master = masterMap[masterSensor.hardwareId]; const master = masterMap[masterSensor.hardwareId];
// ✅ Always fetch slaves using connected_to, even if currently connected
const connectedSlaves = await Insensors.find({ const connectedSlaves = await Insensors.find({
connected_to: masterSensor.hardwareId, connected_to: masterSensor.hardwareId,
type: "slave" type: "slave"
}).lean(); }).lean();
const slaveSet = new Set(master.connected_slaves.map(s => s.hardwareId));
for (const slave of connectedSlaves) { for (const slave of connectedSlaves) {
// ✅ Do not skip slaves based on current connection status const slaveHardwareId = slave.tankhardwareId || slave.hardwareId;
master.connected_slaves.push({ if (slaveSet.has(slaveHardwareId)) continue; // Skip duplicates
hardwareId: slave.tankhardwareId || slave.hardwareId, slaveSet.add(slaveHardwareId);
const slaveEnriched = {
hardwareId: slaveHardwareId,
tankName: slave.tankName || "", tankName: slave.tankName || "",
location: slave.location || "", location: slave.location || "",
connected_status: slave.connected_status, connected_status: slave.connected_status,
@ -4061,8 +4063,9 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => {
tankHeight: slave.tankHeight, tankHeight: slave.tankHeight,
support_lora_last_check_time: slave.support_lora_last_check_time, support_lora_last_check_time: slave.support_lora_last_check_time,
team_member_support_lora_last_check_time: slave.team_member_support_lora_last_check_time team_member_support_lora_last_check_time: slave.team_member_support_lora_last_check_time
}); };
master.connected_slaves.push(slaveEnriched);
master.connected_slave_count++; master.connected_slave_count++;
} }
} }
@ -4080,6 +4083,8 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => {
} }
}; };
exports.getDisconnectedCustomerDetails = async (req, reply) => { exports.getDisconnectedCustomerDetails = async (req, reply) => {
try { try {
const { supportId } = req.params; const { supportId } = req.params;

Loading…
Cancel
Save