changes typeofWater fetches

master^2
Bhaskar 2 weeks ago
parent 6be95bc55d
commit 80359981d0

@ -1467,7 +1467,7 @@ exports.masterConnectedSlaveList = async (req, reply) => {
{ hardwareId: connectedTo }, { hardwareId: connectedTo },
{ tankLocation: 1, typeOfWater: 1, height: 1, length: 1, width: 1 } { tankLocation: 1, typeOfWater: 1, height: 1, length: 1, width: 1 }
).lean(); ).lean();
console.log("tankDetails",tankDetails)
const masterTypeOfWater = tankDetails?.typeOfWater || null; const masterTypeOfWater = tankDetails?.typeOfWater || null;
// Step 3: Get slave devices // Step 3: Get slave devices
@ -1535,39 +1535,86 @@ exports.masterConnectedSlaveList = async (req, reply) => {
}; };
// Step 7: Process slaves // Step 7: Process slaves
const processedSlaves = await Promise.all(slaveTanks.map(async slave => { // const processedSlaves = await Promise.all(slaveTanks.map(async slave => {
const finalHardwareId = slave.tankhardwareId || slave.connected_to; // const finalHardwareId = slave.tankhardwareId || slave.connected_to;
let slaveTankMeta = await Tank.findOne( // let slaveTankMeta = await Tank.findOne(
{ tankhardwareId: slave.tankhardwareId, customerId }, // { tankhardwareId: slave.tankhardwareId, customerId },
{ height: 1, length: 1, width: 1 } // { height: 1, length: 1, width: 1,tankName:1 }
).lean(); // ).lean();
// console.log(slaveTankMeta,"slaveTankMeta")
if (!slaveTankMeta && slave.connected_to) { // if (!slaveTankMeta && slave.connected_to) {
slaveTankMeta = await Tank.findOne( // slaveTankMeta = await Tank.findOne(
{ hardwareId: slave.connected_to, customerId }, // { hardwareId: slave.connected_to, customerId },
{ height: 1, length: 1, width: 1 } // { height: 1, length: 1, width: 1 }
).lean(); // ).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 => if (!slaveTankMeta && slave.connected_to) {
t.tankHardwareId === finalHardwareId || t.connected_to === finalHardwareId // 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 { const matchingTankData = latestIotData?.tanks?.find(t =>
...slave, t.tankHardwareId === finalHardwareId || t.connected_to === finalHardwareId
isMaster: false, );
product_status: slave.product_status || 'pending',
tankHeight: matchingTankData?.tankHeight ?? null, // Use slaveTankMeta.typeOfWater if Insensors.typeOfWater is null
typeOfWater: masterTypeOfWater === 'bore' ? 'bore' : (slave.typeOfWater || null), const typeOfWater = slave.typeOfWater || slaveTankMeta?.typeOfWater || masterTypeOfWater;
height: slaveTankMeta?.height || null, console.log(matchingTankData)
length: slaveTankMeta?.length || null, return {
width: slaveTankMeta?.width || null, ...slave,
heightInCm: slaveTankMeta?.height ? feetToCm(slaveTankMeta.height) : null, isMaster: false,
lengthInCm: slaveTankMeta?.length ? feetToCm(slaveTankMeta.length) : null, product_status: slave.product_status || 'pending',
widthInCm: slaveTankMeta?.width ? feetToCm(slaveTankMeta.width) : null 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 // Step 8: Send response
return reply.send({ return reply.send({

Loading…
Cancel
Save