From 80359981d0aa1b4b378db7d470ddc47ac86acba7 Mon Sep 17 00:00:00 2001 From: Bhaskar Date: Tue, 23 Sep 2025 14:44:03 +0530 Subject: [PATCH] changes typeofWater fetches --- src/controllers/installationController.js | 111 +++++++++++++++------- 1 file changed, 79 insertions(+), 32 deletions(-) diff --git a/src/controllers/installationController.js b/src/controllers/installationController.js index 549d6081..24117629 100644 --- a/src/controllers/installationController.js +++ b/src/controllers/installationController.js @@ -1467,7 +1467,7 @@ exports.masterConnectedSlaveList = async (req, reply) => { { hardwareId: connectedTo }, { tankLocation: 1, typeOfWater: 1, height: 1, length: 1, width: 1 } ).lean(); - + console.log("tankDetails",tankDetails) const masterTypeOfWater = tankDetails?.typeOfWater || null; // Step 3: Get slave devices @@ -1535,39 +1535,86 @@ exports.masterConnectedSlaveList = async (req, reply) => { }; // Step 7: Process slaves - const processedSlaves = await Promise.all(slaveTanks.map(async slave => { - const finalHardwareId = slave.tankhardwareId || slave.connected_to; - - let slaveTankMeta = await Tank.findOne( - { tankhardwareId: slave.tankhardwareId, customerId }, - { height: 1, length: 1, width: 1 } - ).lean(); - - if (!slaveTankMeta && slave.connected_to) { - slaveTankMeta = await Tank.findOne( - { hardwareId: slave.connected_to, customerId }, - { height: 1, length: 1, width: 1 } - ).lean(); - } + // const processedSlaves = await Promise.all(slaveTanks.map(async slave => { + // const finalHardwareId = slave.tankhardwareId || slave.connected_to; + + // let slaveTankMeta = await Tank.findOne( + // { tankhardwareId: slave.tankhardwareId, customerId }, + // { height: 1, length: 1, width: 1,tankName:1 } + // ).lean(); + // console.log(slaveTankMeta,"slaveTankMeta") + // if (!slaveTankMeta && slave.connected_to) { + // slaveTankMeta = await Tank.findOne( + // { hardwareId: slave.connected_to, customerId }, + // { height: 1, length: 1, width: 1 } + // ).lean(); + // } + + // const matchingTankData = latestIotData?.tanks?.find(t => + // t.tankHardwareId === finalHardwareId || t.connected_to === finalHardwareId + // ); + + // return { + // ...slave, + // isMaster: false, + // product_status: slave.product_status || 'pending', + // tankHeight: matchingTankData?.tankHeight ?? null, + // typeOfWater: masterTypeOfWater === 'bore' ? 'bore' : (slave.typeOfWater || null), + // height: slaveTankMeta?.height || null, + // length: slaveTankMeta?.length || null, + // width: slaveTankMeta?.width || null, + // heightInCm: slaveTankMeta?.height ? feetToCm(slaveTankMeta.height) : null, + // lengthInCm: slaveTankMeta?.length ? feetToCm(slaveTankMeta.length) : null, + // widthInCm: slaveTankMeta?.width ? feetToCm(slaveTankMeta.width) : null + // }; + // })); +// Step 7: Process slaves +const processedSlaves = await Promise.all(slaveTanks.map(async (slave) => { + const finalHardwareId = slave.tankhardwareId || slave.connected_to; + + // Fetch slave tank metadata from Tank schema using tankhardwareId or tankName + customerId + let slaveTankMeta = await Tank.findOne( + { tankhardwareId: slave.tankhardwareId, customerId }, + { height: 1, length: 1, width: 1, typeOfWater: 1, tankName: 1 } + ).lean(); + + if (!slaveTankMeta && slave.tankName) { + // fallback: use tankName + customerId + slaveTankMeta = await Tank.findOne( + { tankName: slave.tankName, customerId }, + { height: 1, length: 1, width: 1, typeOfWater: 1, tankName: 1 } + ).lean(); + } - const matchingTankData = latestIotData?.tanks?.find(t => - t.tankHardwareId === finalHardwareId || t.connected_to === finalHardwareId - ); + if (!slaveTankMeta && slave.connected_to) { + // fallback: use connected_to as hardwareId + slaveTankMeta = await Tank.findOne( + { hardwareId: slave.connected_to, customerId }, + { height: 1, length: 1, width: 1, typeOfWater: 1, tankName: 1 } + ).lean(); + } - return { - ...slave, - isMaster: false, - product_status: slave.product_status || 'pending', - tankHeight: matchingTankData?.tankHeight ?? null, - typeOfWater: masterTypeOfWater === 'bore' ? 'bore' : (slave.typeOfWater || null), - height: slaveTankMeta?.height || null, - length: slaveTankMeta?.length || null, - width: slaveTankMeta?.width || null, - heightInCm: slaveTankMeta?.height ? feetToCm(slaveTankMeta.height) : null, - lengthInCm: slaveTankMeta?.length ? feetToCm(slaveTankMeta.length) : null, - widthInCm: slaveTankMeta?.width ? feetToCm(slaveTankMeta.width) : null - }; - })); + const matchingTankData = latestIotData?.tanks?.find(t => + t.tankHardwareId === finalHardwareId || t.connected_to === finalHardwareId + ); + + // Use slaveTankMeta.typeOfWater if Insensors.typeOfWater is null + const typeOfWater = slave.typeOfWater || slaveTankMeta?.typeOfWater || masterTypeOfWater; +console.log(matchingTankData) + return { + ...slave, + isMaster: false, + product_status: slave.product_status || 'pending', + tankHeight: matchingTankData?.tankHeight ?? null, + typeOfWater: typeOfWater, + height: slaveTankMeta?.height || null, + length: slaveTankMeta?.length || null, + width: slaveTankMeta?.width || null, + heightInCm: slaveTankMeta?.height ? feetToCm(slaveTankMeta.height) : null, + lengthInCm: slaveTankMeta?.length ? feetToCm(slaveTankMeta.length) : null, + widthInCm: slaveTankMeta?.width ? feetToCm(slaveTankMeta.width) : null + }; +})); // Step 8: Send response return reply.send({