From f6fba07b1306850af3709aa979b2de0e24d6aa77 Mon Sep 17 00:00:00 2001 From: Bhaskar Date: Thu, 22 May 2025 12:42:46 +0530 Subject: [PATCH] master and type of water add in all disconnected issues --- src/controllers/installationController.js | 65 ++++++++++++++++++++--- 1 file changed, 57 insertions(+), 8 deletions(-) diff --git a/src/controllers/installationController.js b/src/controllers/installationController.js index cdedeab5..96da9a3b 100644 --- a/src/controllers/installationController.js +++ b/src/controllers/installationController.js @@ -3989,9 +3989,18 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => { if (sensor.tankhardwareId) sensorMap[sensor.tankhardwareId] = sensor; } - const customerId = supportRecord.customerId; + // const customerId = supportRecord.customerId; + let customerId = supportRecord.customerId; + if (!customerId) { + const firstSensor = sensors.find(sensor => sensor.customerId); + if (firstSensor) { + customerId = firstSensor.customerId; + } else { + return reply.code(404).send({ message: "Unable to determine customerId from support or sensors." }); + } + } const orders = await Order.find({ customerId }).lean(); - + //console.log("orders",orders) const orderMap = {}; for (const order of orders) { (order.master_connections || []).forEach(conn => { @@ -4010,9 +4019,11 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => { const masterId = issue.masterHardwareId || issue.hardwareId; const masterSensor = sensorMap[masterId]; if (!masterSensor || masterSensor.type !== "master") continue; + //console.log("masterSensor",masterSensor) if (!masterMap[masterSensor.hardwareId]) { const enriched = orderMap[masterSensor.hardwareId] || {}; + // console.log("enriched",enriched) masterMap[masterSensor.hardwareId] = { hardwareId: masterSensor.hardwareId, masterName: enriched.masterName || masterSensor.masterName || "", @@ -4041,16 +4052,53 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => { }).lean(); const slaveSet = new Set(master.connected_slaves.map(s => s.hardwareId)); - + console.log("slaveSet",slaveSet) + + // for (const slave of connectedSlaves) { + // 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, + // connected_lora_time: slave.connected_lora_time, + // connected_lora_date: slave.connected_lora_date, + // lora_last_check_time: slave.lora_last_check_time, + // lora_last_disconnect_time: slave.lora_last_disconnect_time, + // connected_to: slave.connected_to, + // masterName: master.masterName, + // type: "slave", + // typeOfWater: slave.typeOfWater || "", + // 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++; + // } for (const slave of connectedSlaves) { const slaveHardwareId = slave.tankhardwareId || slave.hardwareId; - if (slaveSet.has(slaveHardwareId)) continue; // Skip duplicates + if (slaveSet.has(slaveHardwareId)) continue; slaveSet.add(slaveHardwareId); + + // Fetch tank data to fill missing location/typeOfWater + const tankInfo = await Tank.findOne({ + $or: [ + { hardwareId: slaveHardwareId }, + { tankhardwareId: slaveHardwareId } + ] + }).lean(); + console.log("tankInfo",tankInfo) + const slaveEnriched = { hardwareId: slaveHardwareId, - tankName: slave.tankName || "", - location: slave.location || "", + tankName: slave.tankName || (tankInfo?.tankName ?? ""), + location: slave.location || (tankInfo?.location ?? ""), connected_status: slave.connected_status, connected_lora_time: slave.connected_lora_time, connected_lora_date: slave.connected_lora_date, @@ -4059,15 +4107,16 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => { connected_to: slave.connected_to, masterName: master.masterName, type: "slave", - typeOfWater: slave.typeOfWater || "", + typeOfWater: slave.typeOfWater || (tankInfo?.typeOfWater ?? ""), 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++; } + } return reply.send({