|
|
|
@ -316,11 +316,57 @@ exports.getTanklevels = async (req, reply) => {
|
|
|
|
|
console.log("updated_data", updated_data);
|
|
|
|
|
|
|
|
|
|
updated_data.forEach((tank) => {
|
|
|
|
|
const waterlevel = parseInt(tank.waterlevel.replace(/,/g, ''), 10);
|
|
|
|
|
const capacity = parseInt(tank.capacity.replace(/,/g, ''), 10);
|
|
|
|
|
const waterlevel = parseInt(tank.waterlevel ? tank.waterlevel.replace(/,/g, '') : '0', 10);
|
|
|
|
|
const capacity = parseInt(tank.capacity ? tank.capacity.replace(/,/g, '') : '0', 10);
|
|
|
|
|
const waterlevelPercentage = ((waterlevel / capacity) * 100).toFixed(2);
|
|
|
|
|
tank.waterlevelPercentage = waterlevelPercentage; // Add water level percentage to each tank object
|
|
|
|
|
console.log(`Processing tank: ${tank.tankName}`);
|
|
|
|
|
console.log(`Type of Water: ${tank.typeOfWater}, Location: ${tank.tankLocation}, Waterlevel: ${waterlevel}, Capacity: ${capacity}`);
|
|
|
|
|
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
|
|
|
|
|
if (tank.connections.inputConnections) {
|
|
|
|
|
tank.connections.inputConnections.forEach(inputConnection => {
|
|
|
|
|
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);
|
|
|
|
|
totalInputPercentage += parseFloat(inputConnection.waterlevelPercentage);
|
|
|
|
|
inputCount++;
|
|
|
|
|
} 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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Calculate and add water level percentages for outputConnections
|
|
|
|
|
if (tank.connections.outputConnections) {
|
|
|
|
|
tank.connections.outputConnections.forEach(outputConnection => {
|
|
|
|
|
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);
|
|
|
|
|
totalOutputPercentage += parseFloat(outputConnection.waterlevelPercentage);
|
|
|
|
|
outputCount++;
|
|
|
|
|
} 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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Summing up the total water levels and capacities
|
|
|
|
|
if (tank.tankLocation === 'sump' && tank.typeOfWater === 'Drinking Water') {
|
|
|
|
|
sumSumpDrinkingWater += waterlevel;
|
|
|
|
|
sumSumpDrinkingWaterCapacity += capacity;
|
|
|
|
@ -369,7 +415,6 @@ exports.getTanklevels = async (req, reply) => {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const intervals = {};
|
|
|
|
|
let sump_water_levels=[];
|
|
|
|
|
let supplier_tanks = [];
|
|
|
|
|