ashok 3 months ago
commit 75ba759487

@ -1541,33 +1541,126 @@ exports.masterConnectedSlaveList = async (req, reply) => {
};
// Step 7: Process each slave
// const processedSlaves = await Promise.all(slaveTanks.map(async slave => {
// const originalHardwareId = slave.connected_to;
// const tankHardwareId = slave.tankhardwareId;
// console.log("originalHardwareId",originalHardwareId)
// console.log("tankHardwareId",tankHardwareId)
// const finalHardwareId = tankHardwareId || originalHardwareId;
// const matchingTankData = latestIotData?.tanks?.find(t =>
// t.tankhardwareId === finalHardwareId || t.hardwareId === finalHardwareId
// );
// // Fetch slave's tank metadata
// const slaveTankMeta = await Tank.findOne(
// // { hardwareId: slave.connected_to },
// {
// $or: [
// { hardwareId: slave.connected_to },
// { hardwareId: slave.tankhardwareId } // assuming tankhardwareId is saved as hardwareId in Tank collection
// ]
// },
// { height: 1, length: 1, width: 1 }
// ).lean();
// console.log("slaveTankMeta",slaveTankMeta)
// return {
// ...slave,
// isMaster: false,
// hardwareId: finalHardwareId,
// tankHeight: matchingTankData?.tankHeight ?? null,
// typeOfWater: masterTypeOfWater === 'bore' ? 'bore' : (slave.typeOfWater || null),
// height: slaveTankMeta?.height || null,
// length: slaveTankMeta?.length || null,
// width: slaveTankMeta?.width || null
// };
// }));
const processedSlaves = await Promise.all(slaveTanks.map(async slave => {
const originalHardwareId = slave.hardwareId;
const tankHardwareId = slave.tankhardwareId;
// const finalHardwareId = slave.tankhardwareId || slave.connected_to;
// console.log("finalHardwareId",finalHardwareId)
// // Find matching tank meta by hardwareId in Tank collection
// const slaveTankMeta = await Tank.findOne(
// { hardwareId: finalHardwareId },
// { height: 1, length: 1, width: 1 }
// ).lean();
// const finalHardwareId = slave.tankhardwareId || slave.connected_to;
// // Try match by tankhardwareId first
// let slaveTankMeta = await Tank.findOne(
// { tankhardwareId: slave.tankhardwareId },
// { height: 1, length: 1, width: 1 }
// ).lean();
// // If not found, fallback to match by hardwareId
// if (!slaveTankMeta && slave.connected_to) {
// slaveTankMeta = await Tank.findOne(
// { hardwareId: slave.connected_to },
// { height: 1, length: 1, width: 1 }
// ).lean();
// }
const finalHardwareId = tankHardwareId || originalHardwareId;
// console.log("slaveTankMeta",slaveTankMeta)
const matchingTankData = latestIotData?.tanks?.find(t =>
t.tankhardwareId === finalHardwareId || t.hardwareId === finalHardwareId
);
// // Find matching IoT tank data (for tankHeight)
// const matchingTankData = latestIotData?.tanks?.find(t =>
// t.tankhardwareId === finalHardwareId || t.connected_to === finalHardwareId
// );
// console.log("matchingTankData",matchingTankData)
// return {
// ...slave,
// isMaster: false,
// hardwareId: finalHardwareId,
// tankHeight: matchingTankData?.tankHeight ?? null,
// typeOfWater: masterTypeOfWater === 'bore' ? 'bore' : (slave.typeOfWater || null),
// height: slaveTankMeta?.height || null,
// length: slaveTankMeta?.length || null,
// width: slaveTankMeta?.width || null
// };
const finalHardwareId = slave.tankhardwareId || slave.connected_to;
// Fetch slave's tank metadata
const slaveTankMeta = await Tank.findOne(
{ hardwareId: slave.hardwareId },
{ height: 1, length: 1, width: 1 }
).lean();
// Try match by tankhardwareId first, filtered by customerId
let slaveTankMeta = await Tank.findOne(
{
tankhardwareId: slave.tankhardwareId,
customerId: customerId
},
{ height: 1, length: 1, width: 1 }
).lean();
// If not found, fallback to match by hardwareId + customerId
if (!slaveTankMeta && slave.connected_to) {
slaveTankMeta = await Tank.findOne(
{
hardwareId: slave.connected_to,
customerId: customerId
},
{ height: 1, length: 1, width: 1 }
).lean();
}
console.log("slaveTankMeta", slaveTankMeta);
// Find matching IoT tank data (for tankHeight)
const matchingTankData = latestIotData?.tanks?.find(t =>
t.tankhardwareId === finalHardwareId || t.connected_to === finalHardwareId
);
return {
...slave,
isMaster: false,
hardwareId: finalHardwareId,
tankHeight: matchingTankData?.tankHeight ?? null,
typeOfWater: masterTypeOfWater === 'bore' ? 'bore' : (slave.typeOfWater || null),
height: slaveTankMeta?.height || null,
length: slaveTankMeta?.length || null,
width: slaveTankMeta?.width || null
};
}));
return {
...slave,
isMaster: false,
hardwareId: finalHardwareId,
tankHeight: matchingTankData?.tankHeight ?? null,
typeOfWater: masterTypeOfWater === 'bore' ? 'bore' : (slave.typeOfWater || null),
height: slaveTankMeta?.height || null,
length: slaveTankMeta?.length || null,
width: slaveTankMeta?.width || null
};
}));
// Step 8: Combine into one array
const combinedData = [masterResponse, ...processedSlaves];

Loading…
Cancel
Save