waterlevel percentage

master
Bhaskar 1 year ago
parent a7051491c2
commit 5092a6ae55

@ -311,29 +311,30 @@ exports.getTanklevels = async (req, reply) => {
let sumOverheadDrinkingWaterCapacity = 0; let sumOverheadDrinkingWaterCapacity = 0;
let sumSumpBoreWaterCapacity = 0; let sumSumpBoreWaterCapacity = 0;
let sumOverheadBoreWaterCapacity = 0; let sumOverheadBoreWaterCapacity = 0;
let totalInputPercentage = 0;
let inputCount = 0;
let totalOutputPercentage = 0;
let outputCount = 0;
const updated_data = await Tank.find({ customerId: customerId }); const updated_data = await Tank.find({ customerId: customerId });
console.log("updated_data", updated_data); console.log("updated_data", updated_data);
updated_data.forEach((tank) => { updated_data.forEach((tank) => {
const waterlevel = parseInt(tank.waterlevel.replace(/,/g, ''), 10); const waterlevel = parseInt(tank.waterlevel ? tank.waterlevel.replace(/,/g, '') : '0', 10);
const capacity = parseInt(tank.capacity.replace(/,/g, ''), 10); const capacity = parseInt(tank.capacity ? tank.capacity.replace(/,/g, '') : '0', 10);
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}%`); console.log(`Type of Water: ${tank.typeOfWater}, Location: ${tank.tankLocation}, Waterlevel: ${waterlevel}, Capacity: ${capacity}, Waterlevel Percentage: ${waterlevelPercentage}%`);
let totalInputPercentage = 0;
let inputCount = 0;
let totalOutputPercentage = 0;
let outputCount = 0;
// Calculate and add water level percentages for inputConnections // Calculate and add water level percentages for inputConnections
if (tank.connections.inputConnections) { if (tank.connections.inputConnections) {
tank.connections.inputConnections.forEach(inputConnection => { tank.connections.inputConnections.forEach(inputConnection => {
if (inputConnection.water_level && inputConnection.capacity) { const inputWaterLevel = inputConnection.water_level ? parseInt(inputConnection.water_level.replace(/,/g, ''), 10) : 0;
const inputWaterLevel = parseInt(inputConnection.water_level.replace(/,/g, ''), 10); const inputCapacity = inputConnection.capacity ? parseInt(inputConnection.capacity.replace(/,/g, ''), 10) : 0;
const inputCapacity = parseInt(inputConnection.capacity.replace(/,/g, ''), 10);
if (inputCapacity > 0) {
inputConnection.waterlevelPercentage = ((inputWaterLevel / inputCapacity) * 100).toFixed(2); inputConnection.waterlevelPercentage = ((inputWaterLevel / inputCapacity) * 100).toFixed(2);
totalInputPercentage += parseFloat(inputConnection.waterlevelPercentage); totalInputPercentage += parseFloat(inputConnection.waterlevelPercentage);
inputCount++; inputCount++;
@ -341,14 +342,18 @@ exports.getTanklevels = async (req, reply) => {
inputConnection.waterlevelPercentage = null; 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;
} }
// Calculate and add water level percentages for outputConnections // Calculate and add water level percentages for outputConnections
if (tank.connections.outputConnections) { if (tank.connections.outputConnections) {
tank.connections.outputConnections.forEach(outputConnection => { tank.connections.outputConnections.forEach(outputConnection => {
if (outputConnection.water_level && outputConnection.capacity) { const outputWaterLevel = outputConnection.water_level ? parseInt(outputConnection.water_level.replace(/,/g, ''), 10) : 0;
const outputWaterLevel = parseInt(outputConnection.water_level.replace(/,/g, ''), 10); const outputCapacity = outputConnection.capacity ? parseInt(outputConnection.capacity.replace(/,/g, ''), 10) : 0;
const outputCapacity = parseInt(outputConnection.capacity.replace(/,/g, ''), 10);
if (outputCapacity > 0) {
outputConnection.waterlevelPercentage = ((outputWaterLevel / outputCapacity) * 100).toFixed(2); outputConnection.waterlevelPercentage = ((outputWaterLevel / outputCapacity) * 100).toFixed(2);
totalOutputPercentage += parseFloat(outputConnection.waterlevelPercentage); totalOutputPercentage += parseFloat(outputConnection.waterlevelPercentage);
outputCount++; outputCount++;
@ -356,6 +361,9 @@ exports.getTanklevels = async (req, reply) => {
outputConnection.waterlevelPercentage = null; 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;
} }
// Summing up the total water levels and capacities // Summing up the total water levels and capacities
@ -378,15 +386,9 @@ exports.getTanklevels = async (req, reply) => {
const buildingName = user ? user.buildingName : null; const buildingName = user ? user.buildingName : null;
const address1 = user ? user.profile.address1 : null; const address1 = user ? user.profile.address1 : null;
// Calculate average percentages
const inputWaterlevelPercentage = inputCount > 0 ? (totalInputPercentage / inputCount).toFixed(2) : null;
const outputWaterlevelPercentage = outputCount > 0 ? (totalOutputPercentage / outputCount).toFixed(2) : null;
const responseData = { const responseData = {
status_code: 200, status_code: 200,
data: updated_data, data: updated_data,
inputWaterlevelPercentage: inputWaterlevelPercentage,
outputWaterlevelPercentage: outputWaterlevelPercentage,
totalDrinkingWaterInSump: sumSumpDrinkingWater, totalDrinkingWaterInSump: sumSumpDrinkingWater,
totalDrinkingWaterInOverhead: sumOverheadDrinkingWater, totalDrinkingWaterInOverhead: sumOverheadDrinkingWater,
totalBoreWaterInSump: sumSumpBoreWater, totalBoreWaterInSump: sumSumpBoreWater,

@ -51,7 +51,6 @@ const tanksSchema = new mongoose.Schema({
auto_min_percentage: { type: String, default: "20" }, auto_min_percentage: { type: String, default: "20" },
reserved_percentage: { type: String, default: "20" }, reserved_percentage: { type: String, default: "20" },
auto_max_percentage: { type: String, default: "80" }, auto_max_percentage: { type: String, default: "80" },
connections: { connections: {
source: { type: String }, source: { type: String },
inputConnections: [ inputConnections: [
@ -72,7 +71,7 @@ const tanksSchema = new mongoose.Schema({
startTime: { type: String, default: null }, startTime: { type: String, default: null },
start_instance_id: { type: String, default: null }, start_instance_id: { type: String, default: null },
stopTime: { type: String, default: null }, stopTime: { type: String, default: null },
waterlevelPercentage: { type: String, default: null } // Added field waterlevelPercentage: { type: String, default: null }
} }
], ],
outputConnections: [ outputConnections: [
@ -88,13 +87,14 @@ const tanksSchema = new mongoose.Schema({
manual_threshold_percentage: { type: String, default: "90" }, manual_threshold_percentage: { type: String, default: "90" },
manual_threshold_time: { type: String, default: null }, manual_threshold_time: { type: String, default: null },
threshold_type: { type: String, default: "percentage" }, threshold_type: { type: String, default: "percentage" },
waterlevelPercentage: { type: String, default: null } // Added field waterlevelPercentage: { type: String, default: null }
} }
] ],
inputWaterlevelPercentage: { type: String, default: null },
outputWaterlevelPercentage: { type: String, default: null }
} }
}); });
const motordataSchema = new mongoose.Schema({ const motordataSchema = new mongoose.Schema({

Loading…
Cancel
Save