From 0a0720f787e67ca8d14a46430067106ca8cd973c Mon Sep 17 00:00:00 2001 From: varun Date: Thu, 18 May 2023 05:26:16 -0400 Subject: [PATCH] added sump to sump connection --- src/controllers/tanksController.js | 89 ++++++++++++++++++++++++++---- 1 file changed, 77 insertions(+), 12 deletions(-) diff --git a/src/controllers/tanksController.js b/src/controllers/tanksController.js index b5713a7b..4025e6a8 100644 --- a/src/controllers/tanksController.js +++ b/src/controllers/tanksController.js @@ -318,40 +318,43 @@ exports.motorAction = async (req, reply) => { - // if(supplier_tank_type==="sump" && receiver_type === "overhead"){ - // await Tank.findOneAndUpdate({customerId, tankName: receiver_tank}, { $set: { motor_status: 1 } }); + // if(supplier_tank_type==="sump" && receiver_type === "sump"){ + // await Tank.findOneAndUpdate({customerId, tankName: receiver_tank,tankLocation:receiver_type}, { $set: { motor_status: 1 } }); // // console.log(rcvr_info.motor_status) - // const supplier_tank_info1 = await Tank.findOne({ customerId ,tankName:supplier_tank}); - // initial_update = parseInt(supplier_tank_info1.capacity.replace(/,/g, ''), 10)/2; + // // const supplier_tank_info1 = await Tank.findOne({ customerId ,tankName:supplier_tank}); + // // initial_update = parseInt(supplier_tank_info1.capacity.replace(/,/g, ''), 10)/2; - // await Tank.findOneAndUpdate({customerId, tankName: supplier_tank}, { $set: { waterlevel: initial_update } }); - // const supplier_tank_info = await Tank.findOne({ customerId ,tankName:supplier_tank}); + // // await Tank.findOneAndUpdate({customerId, tankName: supplier_tank}, { $set: { waterlevel: initial_update } }); + // const supplier_tank_info = await Tank.findOne({ customerId ,tankName:supplier_tank,tankLocation:supplier_tank_type}); // let supplier_waterlevel = parseInt(supplier_tank_info.waterlevel.replace(/,/g, ''), 10) // let receiver_waterlevel = parseInt(receiver_tank_info.waterlevel.replace(/,/g, ''), 10) - // intervalId = setInterval(async function () { - // const rcvr_info = await Tank.findOne({ customerId ,tankName:receiver_tank}); + // intervals[interval_variable] = setInterval(async function () { + // const rcvr_info = await Tank.findOne({ customerId ,tankName:receiver_tank,tankLocation:receiver_type}); // const supplier_capacity = parseInt(supplier_tank_info.capacity.replace(/,/g, ''), 10) // // Calculate new water levels // const newWaterLevel = receiver_waterlevel + 200//Math.floor(supplier_waterlevel * 0.1); - // const newSupplierWaterLevel = Math.min(supplier_capacity, supplier_waterlevel + 350);// Math.floor(supplier_waterlevel * 0.15)); + // const newSupplierWaterLevel = Math.min(supplier_capacity, supplier_waterlevel - 200);// Math.floor(supplier_waterlevel * 0.15)); // // console.log(newWaterLevel) // // console.log(newSupplierWaterLevel) // // console.log(rcvr_info.motor_status) // // console.log(rcvr_info.tankName) // // Check if updating should stop - // if ( (newWaterLevel/receiver_capacity)*100 >= 95 || (newWaterLevel/receiver_capacity)*100 >= desired_water_percentage || rcvr_info.motor_status === 0) { + // if ( (newWaterLevel/receiver_capacity)*100 >= 95 || (newWaterLevel/receiver_capacity)*100 >= desired_water_percentage || rcvr_info.motor_status === 0 || (newSupplierWaterLevel/supplier_capacity)*100 <= 5) { - // clearInterval(intervalId) - // await Tank.findOneAndUpdate({customerId, tankName: receiver_tank}, { $set: { motor_status: 0 } }); + // clearInterval(interval_variable) + // delete intervals[interval_variable]; + // await Tank.findOneAndUpdate({customerId, tankName: receiver_tank,tankLocation:receiver_type}, { $set: { motor_status: 0 } }); // console.log("end"); // } else { // // Update water levels in database // supplier_waterlevel = newSupplierWaterLevel; // receiver_waterlevel = newWaterLevel; + // console.log(supplier_waterlevel,"0") + // console.log(receiver_waterlevel,"1") // // console.log((newSupplierWaterLevel/supplier_capacity)*100) // // console.log((newWaterLevel/receiver_capacity)*100) // await Promise.all([ @@ -364,6 +367,62 @@ exports.motorAction = async (req, reply) => { // } + + + + if(supplier_tank_type==="sump" && receiver_type === "sump"){ + const receiver_capacity = parseInt(receiver_tank_info.capacity.replace(/,/g, ''), 10) + // console.log(receiver_capacity,"0",receiver_tank_info.tankName) + await Tank.findOneAndUpdate({customerId, tankName: receiver_tank,tankLocation:receiver_type}, { $set: { motor_status: "1" } }); + const supplier_tank_info = await Tank.findOne({ customerId ,tankName:supplier_tank,tankLocation:supplier_tank_type}); + + let supplier_waterlevel = parseInt(supplier_tank_info.waterlevel.replace(/,/g, ''), 10) + let receiver_waterlevel = parseInt(receiver_tank_info.waterlevel.replace(/,/g, ''), 10) + // console.log(receiver_waterlevel,"1") + intervals[interval_variable] = setInterval(async function () { + // Calculate new water levels + const rcvr_info = await Tank.findOne({ customerId ,tankName:receiver_tank,tankLocation:receiver_type}); + const supplier_capacity = parseInt(supplier_tank_info.capacity.replace(/,/g, ''), 10) + // Calculate new water levels + const newWaterLevel = receiver_waterlevel + 300//Math.floor(supplier_waterlevel * 0.1); + const newSupplierWaterLevel = Math.min(supplier_capacity, supplier_waterlevel - 300);// Math.floor(supplier_waterlevel * 0.15)); + // Check if updating should stop + if ((newWaterLevel/receiver_capacity)*100 >= 97 || (newWaterLevel/receiver_capacity)*100 >= desired_water_percentage || rcvr_info.motor_status === "0" || (newSupplierWaterLevel/supplier_capacity)*100 <= 5 ) { + + clearInterval(intervals[interval_variable]); // Clear the interval for this tank + delete intervals[interval_variable]; + + + await Tank.findOneAndUpdate({customerId, tankName: receiver_tank,tankLocation:receiver_type}, { $set: { motor_status: "0" } }); + + + + console.log("end for" + receiver_tank); + } else { + // Update water levels in database + + supplier_waterlevel = newSupplierWaterLevel; + receiver_waterlevel = newWaterLevel; + console.log(supplier_waterlevel,"0") + console.log(receiver_waterlevel,"1") + // console.log((newSupplierWaterLevel/supplier_capacity)*100) + // console.log((newWaterLevel/receiver_capacity)*100) + await Promise.all([ + Tank.findOneAndUpdate({customerId, tankName: receiver_tank}, { $set: { waterlevel: newWaterLevel } }), + Tank.findOneAndUpdate({customerId, tankName: supplier_tank}, { $set: { waterlevel: newSupplierWaterLevel } }) + ]); + } + }, 2000); + + } + + + + + + + + if(supplier_tank_type==="bore" && receiver_type === "sump"){ const receiver_capacity = parseInt(receiver_tank_info.capacity.replace(/,/g, ''), 10) @@ -466,6 +525,12 @@ exports.motorAction = async (req, reply) => { const stop_time = new Date().toLocaleString('en-US', {timeZone: 'Asia/Kolkata'}) clearInterval(intervals[interval_variable]); // Clear the interval for this tank delete intervals[interval_variable]; + if (supplier_tank_type === "sump" && receiver_type ==="sump"){ + + await Tank.findOneAndUpdate({customerId, tankName: receiver_tank,tankLocation:receiver_type}, { $set: { motor_status: "0" } }); + + + } if (supplier_tank_type === "sump"){ sum_oh_count--; if (sum_oh_count===0){