Bhaskar 7 months ago
commit a6d72a7a6f

@ -3032,6 +3032,8 @@ exports.motorAction = async (req, reply) => {
"connections.inputConnections.$.manual_threshold_time": null,
"connections.inputConnections.$.manual_threshold_percentage": null,
"connections.inputConnections.$.stopTime": currentTime,
"connections.inputConnections.$.start_instance_id": null,
}
}
);
@ -3057,11 +3059,19 @@ exports.motorAction = async (req, reply) => {
console.log(motorData,"motorData")
if (motorData) {
console.log("got into if")
const receiverTank = await Tank.findOne({ customerId, tankName: motorData.receiverTank, tankLocation: motorData.receiver_type.toLowerCase() });
const receiverFinalWaterLevel = parseInt(receiverTank.waterlevel, 10);
console.log(receiverFinalWaterLevel,"receiverFinalWaterLevel")
const quantityDelivered = receiverFinalWaterLevel - parseInt(motorData.receiverInitialwaterlevel, 10);
console.log(quantityDelivered,"quantityDelivered")
const water_pumped_till_now = parseInt(receiverTank.total_water_added_from_midnight, 10);
const totalwaterpumped = quantityDelivered + water_pumped_till_now;
const start = moment(motorData.startTime, 'DD-MMM-YYYY - HH:mm');
const stop = moment(currentTime, 'DD-MMM-YYYY - HH:mm');
const duration = moment.duration(stop.diff(start));
const runtime = Math.floor(duration.asMinutes()); // runtime in minutes
await Tank.findOneAndUpdate(
{ customerId, tankName: motorData.receiverTank, tankLocation: motorData.receiver_type.toLowerCase() },
@ -3074,7 +3084,8 @@ exports.motorAction = async (req, reply) => {
$set: {
stopTime: currentTime,
receiverfinalwaterlevel: receiverFinalWaterLevel.toString(),
quantity_delivered: quantityDelivered.toString()
quantity_delivered: quantityDelivered.toString(),
runtime: runtime.toString()
}
}
);
@ -3130,7 +3141,7 @@ exports.motorAction = async (req, reply) => {
const supplier_threshold = supplier_waterLevel-desired_percentage
console.log(supplier_threshold,"supplier_threshold")
for await (const tank of Tank.find({ "connections.inputConnections.motor_id": motorId })) {
this.publishMotorStopStatus(motorId, motorStopStatus);
for await (const tank of Tank.find({ "connections.inputConnections.motor_id": motorId })) {
const index = tank.connections.inputConnections.findIndex(connection => connection.motor_id === motorId);
@ -3194,7 +3205,7 @@ exports.motorAction = async (req, reply) => {
}
}
}, 20000);
}
}
@ -3246,43 +3257,6 @@ async function stopMotor(motorId, customerId, start_instance_id) {
}
async function stopMotor(motorId, customerId, start_instance_id) {
const currentTime = moment().tz('Asia/Kolkata').format('DD-MMM-YYYY - HH:mm');
await Tank.updateOne(
{ customerId, "connections.inputConnections.motor_id": motorId },
{ $set: {
"connections.inputConnections.$.motor_stop_status": "1",
"connections.inputConnections.$.stopTime": currentTime,
"connections.inputConnections.$.threshold_type": null,
"connections.inputConnections.$.manual_threshold_time": null,
"connections.inputConnections.$.manual_threshold_percentage": null
}}
);
if (motorIntervals[motorId]) {
clearInterval(motorIntervals[motorId]);
delete motorIntervals[motorId];
}
// eventEmitter.emit("motorStop", customerId, [], "", "", currentTime, "Mobile APP", 0, "", motorId, "");
const motorData = await MotorData.findOne({ customerId, motor_id: motorId, start_instance_id });
if (motorData) {
const startTime = moment(motorData.startTime, 'DD-MMM-YYYY - HH:mm');
const runtime = moment.duration(moment(currentTime, 'DD-MMM-YYYY - HH:mm').diff(startTime)).asSeconds();
const receiverTank = await Tank.findOne({ customerId, tankName: motorData.receiverTank, tankLocation: motorData.receiver_type.toLowerCase() });
const receiverFinalWaterLevel = parseInt(receiverTank.waterlevel.replace(/,/g, ''), 10);
const quantityDelivered = receiverFinalWaterLevel - parseInt(motorData.receiverInitialwaterlevel.replace(/,/g, ''), 10);
await MotorData.updateOne(
{ customerId, motor_id: motorId, start_instance_id },
{ $set: { stopTime: currentTime, receiverfinalwaterlevel: receiverFinalWaterLevel.toString(), quantity_delivered: quantityDelivered.toString(), runtime: runtime } }
);
}
}
const monitorWaterLevels = async () => {
@ -6164,6 +6138,11 @@ async function processIotData(hw_Id, data) {
inputConnection.motor_stop_status = "1";
inputConnection.motor_on_type = "manual";
inputConnection.stopTime = currentTime;
if (motorIntervals[motorId]) {
clearInterval(motorIntervals[motorId]);
delete motorIntervals[motorId];
console.log("motor interval deleted")
}
}
await motorTank.save();

Loading…
Cancel
Save