|
|
@ -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,18 +1535,62 @@ 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;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 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;
|
|
|
|
const finalHardwareId = slave.tankhardwareId || slave.connected_to;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Fetch slave tank metadata from Tank schema using tankhardwareId or tankName + customerId
|
|
|
|
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, typeOfWater: 1, tankName: 1 }
|
|
|
|
).lean();
|
|
|
|
).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();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (!slaveTankMeta && slave.connected_to) {
|
|
|
|
if (!slaveTankMeta && slave.connected_to) {
|
|
|
|
|
|
|
|
// fallback: use connected_to as hardwareId
|
|
|
|
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, typeOfWater: 1, tankName: 1 }
|
|
|
|
).lean();
|
|
|
|
).lean();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -1554,12 +1598,15 @@ exports.masterConnectedSlaveList = async (req, reply) => {
|
|
|
|
t.tankHardwareId === finalHardwareId || t.connected_to === finalHardwareId
|
|
|
|
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 {
|
|
|
|
return {
|
|
|
|
...slave,
|
|
|
|
...slave,
|
|
|
|
isMaster: false,
|
|
|
|
isMaster: false,
|
|
|
|
product_status: slave.product_status || 'pending',
|
|
|
|
product_status: slave.product_status || 'pending',
|
|
|
|
tankHeight: matchingTankData?.tankHeight ?? null,
|
|
|
|
tankHeight: matchingTankData?.tankHeight ?? null,
|
|
|
|
typeOfWater: masterTypeOfWater === 'bore' ? 'bore' : (slave.typeOfWater || null),
|
|
|
|
typeOfWater: typeOfWater,
|
|
|
|
height: slaveTankMeta?.height || null,
|
|
|
|
height: slaveTankMeta?.height || null,
|
|
|
|
length: slaveTankMeta?.length || null,
|
|
|
|
length: slaveTankMeta?.length || null,
|
|
|
|
width: slaveTankMeta?.width || null,
|
|
|
|
width: slaveTankMeta?.width || null,
|
|
|
@ -1567,7 +1614,7 @@ exports.masterConnectedSlaveList = async (req, reply) => {
|
|
|
|
lengthInCm: slaveTankMeta?.length ? feetToCm(slaveTankMeta.length) : null,
|
|
|
|
lengthInCm: slaveTankMeta?.length ? feetToCm(slaveTankMeta.length) : null,
|
|
|
|
widthInCm: slaveTankMeta?.width ? feetToCm(slaveTankMeta.width) : null
|
|
|
|
widthInCm: slaveTankMeta?.width ? feetToCm(slaveTankMeta.width) : null
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}));
|
|
|
|
}));
|
|
|
|
|
|
|
|
|
|
|
|
// Step 8: Send response
|
|
|
|
// Step 8: Send response
|
|
|
|
return reply.send({
|
|
|
|
return reply.send({
|
|
|
|