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