changes in get tank levels

master^2
Varun 9 months ago
parent 70dff1063f
commit 56ee1db55b

@ -509,8 +509,9 @@ exports.getTanklevels = async (req, reply) => {
let sumSumpBoreWaterCapacity = 0; let sumSumpBoreWaterCapacity = 0;
let sumOverheadBoreWaterCapacity = 0; let sumOverheadBoreWaterCapacity = 0;
const updated_data = await Tank.find({ customerId: customerId }); // Fetch only active tanks
console.log("updated_data", updated_data); const updated_data = await Tank.find({ customerId: customerId, status: "active" });
console.log("Active Tanks Data:", updated_data);
updated_data.forEach((tank) => { updated_data.forEach((tank) => {
const waterlevel = parseInt(tank.waterlevel ? tank.waterlevel.replace(/,/g, '') : '0', 10); const waterlevel = parseInt(tank.waterlevel ? tank.waterlevel.replace(/,/g, '') : '0', 10);
@ -518,52 +519,53 @@ exports.getTanklevels = async (req, reply) => {
const waterlevelPercentage = ((waterlevel / capacity) * 100).toFixed(2); const waterlevelPercentage = ((waterlevel / capacity) * 100).toFixed(2);
tank.waterlevelPercentage = waterlevelPercentage; // Add water level percentage to each tank object tank.waterlevelPercentage = waterlevelPercentage; // Add water level percentage to each tank object
console.log(`Processing tank: ${tank.tankName}`); console.log(`Processing tank: ${tank.tankName}`);
console.log(`Type of Water: ${tank.typeOfWater}, Location: ${tank.tankLocation}, Waterlevel: ${waterlevel}, Capacity: ${capacity}, Waterlevel Percentage: ${waterlevelPercentage}%`);
let totalInputPercentage = 0; let totalInputPercentage = 0;
let inputCount = 0; let inputCount = 0;
let totalOutputPercentage = 0; let totalOutputPercentage = 0;
let outputCount = 0; let outputCount = 0;
// Calculate and add water level percentages for inputConnections // Process input connections
if (tank.connections.inputConnections) { if (tank.connections.inputConnections) {
tank.connections.inputConnections.forEach(inputConnection => { tank.connections.inputConnections.forEach(inputConnection => {
const inputWaterLevel = inputConnection.water_level ? parseInt(inputConnection.water_level.replace(/,/g, ''), 10) : 0; if (inputConnection.status === "active") { // Process only active connections
const inputCapacity = inputConnection.capacity ? parseInt(inputConnection.capacity.replace(/,/g, ''), 10) : 0; const inputWaterLevel = inputConnection.water_level ? parseInt(inputConnection.water_level.replace(/,/g, ''), 10) : 0;
const inputCapacity = inputConnection.capacity ? parseInt(inputConnection.capacity.replace(/,/g, ''), 10) : 0;
if (inputCapacity > 0) {
inputConnection.waterlevelPercentage = ((inputWaterLevel / inputCapacity) * 100).toFixed(2); if (inputCapacity > 0) {
totalInputPercentage += parseFloat(inputConnection.waterlevelPercentage); inputConnection.waterlevelPercentage = ((inputWaterLevel / inputCapacity) * 100).toFixed(2);
inputCount++; totalInputPercentage += parseFloat(inputConnection.waterlevelPercentage);
} else { inputCount++;
inputConnection.waterlevelPercentage = null; } else {
inputConnection.waterlevelPercentage = null;
}
} }
}); });
// Add the average input water level percentage to the tank's connections object
tank.connections.inputWaterlevelPercentage = inputCount > 0 ? (totalInputPercentage / inputCount).toFixed(2) : null; tank.connections.inputWaterlevelPercentage = inputCount > 0 ? (totalInputPercentage / inputCount).toFixed(2) : null;
} }
// Calculate and add water level percentages for outputConnections // Process output connections
if (tank.connections.outputConnections) { if (tank.connections.outputConnections) {
tank.connections.outputConnections.forEach(outputConnection => { tank.connections.outputConnections.forEach(outputConnection => {
const outputWaterLevel = outputConnection.water_level ? parseInt(outputConnection.water_level.replace(/,/g, ''), 10) : 0; if (outputConnection.status === "active") { // Process only active connections
const outputCapacity = outputConnection.capacity ? parseInt(outputConnection.capacity.replace(/,/g, ''), 10) : 0; const outputWaterLevel = outputConnection.water_level ? parseInt(outputConnection.water_level.replace(/,/g, ''), 10) : 0;
const outputCapacity = outputConnection.capacity ? parseInt(outputConnection.capacity.replace(/,/g, ''), 10) : 0;
if (outputCapacity > 0) {
outputConnection.waterlevelPercentage = ((outputWaterLevel / outputCapacity) * 100).toFixed(2); if (outputCapacity > 0) {
totalOutputPercentage += parseFloat(outputConnection.waterlevelPercentage); outputConnection.waterlevelPercentage = ((outputWaterLevel / outputCapacity) * 100).toFixed(2);
outputCount++; totalOutputPercentage += parseFloat(outputConnection.waterlevelPercentage);
} else { outputCount++;
outputConnection.waterlevelPercentage = null; } else {
outputConnection.waterlevelPercentage = null;
}
} }
}); });
// Add the average output water level percentage to the tank's connections object
tank.connections.outputWaterlevelPercentage = outputCount > 0 ? (totalOutputPercentage / outputCount).toFixed(2) : null; tank.connections.outputWaterlevelPercentage = outputCount > 0 ? (totalOutputPercentage / outputCount).toFixed(2) : null;
} }
// Summing up the total water levels and capacities // Summing up the total water levels and capacities for active tanks only
if (tank.tankLocation === 'sump' && tank.typeOfWater === 'drinking') { if (tank.tankLocation === 'sump' && tank.typeOfWater === 'drinking') {
sumSumpDrinkingWater += waterlevel; sumSumpDrinkingWater += waterlevel;
sumSumpDrinkingWaterCapacity += capacity; sumSumpDrinkingWaterCapacity += capacity;
@ -581,8 +583,6 @@ exports.getTanklevels = async (req, reply) => {
totalavailableDrinkingwater += waterlevel; totalavailableDrinkingwater += waterlevel;
totalDrinkingcapacity += capacity; totalDrinkingcapacity += capacity;
} }
else if ( tank.typeOfWater === 'bore') { else if ( tank.typeOfWater === 'bore') {
totalavailableBorewater += waterlevel; totalavailableBorewater += waterlevel;
totalBorewatercapacity += capacity; totalBorewatercapacity += capacity;

Loading…
Cancel
Save