diff --git a/src/controllers/tanksController.js b/src/controllers/tanksController.js index 75129b46..caac9c4c 100644 --- a/src/controllers/tanksController.js +++ b/src/controllers/tanksController.js @@ -272,34 +272,71 @@ exports.motorAction = async (req, reply) => { console.log(supplier_tank) await Tank.findOneAndUpdate({customerId, tankName: receiver_tank}, { $set: { motor_status: 1 } }); - if(supplier_tank_type==="sump" && receiver_type === "overhead"){ - const supplier_tank_info1 = await Tank.findOne({ customerId ,tankName:supplier_tank}); - console.log(supplier_tank_info1) - initial_update = parseInt(supplier_tank_info1.capacity.replace(/,/g, ''), 10)-200; + // if(supplier_tank_type==="sump" && receiver_type === "overhead"){ + // const supplier_tank_info1 = await Tank.findOne({ customerId ,tankName:supplier_tank}); + // console.log(supplier_tank_info1) + // initial_update = parseInt(supplier_tank_info1.capacity.replace(/,/g, ''), 10)-200; + // await Tank.findOneAndUpdate({customerId, tankName: supplier_tank}, { $set: { waterlevel: initial_update } }); + // const supplier_tank_info = await Tank.findOne({ customerId ,tankName:supplier_tank}); + + // // await changingfrom_tankwaterlevel(customerId,initial_update,supplier_tank_info); + // 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 () { + // // Calculate new water levels + // const newWaterLevel = receiver_waterlevel + 200//Math.floor(supplier_waterlevel * 0.1); + // const newSupplierWaterLevel = supplier_waterlevel - 200//Math.floor(supplier_waterlevel * 0.1); + // const supplier_capacity = parseInt(supplier_tank_info.capacity.replace(/,/g, ''), 10) + + // // Check if updating should stop + // if ((newSupplierWaterLevel/supplier_capacity)*100 <= 5 || (newWaterLevel/receiver_capacity)*100 >= 95 || (newWaterLevel/receiver_capacity)*100 >= desired_water_percentage) { + // clearInterval(intervalId) + // await Tank.findOneAndUpdate({customerId, tankName: receiver_tank}, { $set: { motor_status: 0 } }); + + // console.log("end"); + // } else { + // // Update water levels in database + // supplier_waterlevel = newSupplierWaterLevel; + // receiver_waterlevel = newWaterLevel; + // 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==="sump" && receiver_type === "overhead"){ + 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 changingfrom_tankwaterlevel(customerId,initial_update,supplier_tank_info); + 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 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 = supplier_waterlevel - 200//Math.floor(supplier_waterlevel * 0.1); - const supplier_capacity = parseInt(supplier_tank_info.capacity.replace(/,/g, ''), 10) - + const newSupplierWaterLevel = Math.min(supplier_capacity, supplier_waterlevel + 350);// Math.floor(supplier_waterlevel * 0.15)); + console.log(newWaterLevel) + console.log(newSupplierWaterLevel) + // Check if updating should stop - if ((newSupplierWaterLevel/supplier_capacity)*100 <= 5 || (newWaterLevel/receiver_capacity)*100 >= 95 || (newWaterLevel/receiver_capacity)*100 >= desired_water_percentage) { + if ( (newWaterLevel/receiver_capacity)*100 >= 95 || (newWaterLevel/receiver_capacity)*100 >= desired_water_percentage ) { clearInterval(intervalId) - await Tank.findOneAndUpdate({customerId, tankName: receiver_tank}, { $set: { motor_status: 0 } }); - console.log("end"); } else { // Update water levels in database supplier_waterlevel = newSupplierWaterLevel; receiver_waterlevel = newWaterLevel; - console.log((newSupplierWaterLevel/supplier_capacity)*100) - console.log((newWaterLevel/receiver_capacity)*100) + // 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 } }) @@ -307,6 +344,7 @@ exports.motorAction = async (req, reply) => { } }, 2000); + } if(supplier_tank_type==="bore" && receiver_type === "sump"){ @@ -344,6 +382,8 @@ exports.motorAction = async (req, reply) => { supplier_type: req.body.from_type, receiverTank: receiver_tank, receiver_type: req.body.to_type, + startTime: req.body.startTime, + stopTime: req.body.stopTime, @@ -359,6 +399,8 @@ exports.motorAction = async (req, reply) => { motorData.receiverTank = receiver_tank; motorData.supplier_type = req.body.from_type; motorData.receiver_type = req.body.to_type; + motorData.startTime = usertobeInserted.startTime; + motorData.stopTime = usertobeInserted.stopTime; } @@ -368,41 +410,7 @@ exports.motorAction = async (req, reply) => { - // if(supplier_tank_type==="bore" && receiver_type === "overhead"){ - // 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}); - - // 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 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)); - // console.log(newWaterLevel) - // console.log(newSupplierWaterLevel) - - // // Check if updating should stop - // if ( (newWaterLevel/receiver_capacity)*100 >= 95 || (newWaterLevel/receiver_capacity)*100 >= desired_water_percentage ) { - // clearInterval(intervalId) - // console.log("end"); - // } else { - // // Update water levels in database - // supplier_waterlevel = newSupplierWaterLevel; - // receiver_waterlevel = newWaterLevel; - // // 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); - - - // } + // reply.send({ status_code: 200, "start time": start_time}); //console.log(start_time) diff --git a/src/models/tanks.js b/src/models/tanks.js index 0214b63d..b1edeb69 100644 --- a/src/models/tanks.js +++ b/src/models/tanks.js @@ -23,7 +23,7 @@ const tanksSchema = new mongoose.Schema({ outputConnections: [{ outputConnections: String,output_type:String }] } - + }); @@ -31,8 +31,8 @@ const motordataSchema = new mongoose.Schema({ customerId: { type: String, default: null }, supplierTank: { type: String, default: null }, receiverTank: { type: String, default: null }, - date: { type: String, default: null }, - time: { type: String, default: null }, + startTime: { type: String, default: null }, + stopTime: { type: String, default: null }, supplier_type: { type: String, default: null }, receiver_type: { type: String, default: null }, diff --git a/src/routes/tanksRoute.js b/src/routes/tanksRoute.js index 11ca0a57..9d753174 100644 --- a/src/routes/tanksRoute.js +++ b/src/routes/tanksRoute.js @@ -232,7 +232,8 @@ module.exports = function (fastify, opts, next) { to_type: { type: "string" }, action: { type: "string" }, percentage: { type: "string" }, - + startTime:{ type: "string" }, + stopTime:{ type: "string" }, }, }, security: [