Commit 723a857c authored by vaisakh.nair's avatar vaisakh.nair 🎯

returning file_path in create_excel_report method

parent 39ba800c
......@@ -12,6 +12,7 @@ class DailyReportGenerator:
db = client[os.environ["MONGO_DATABASE"]]
self.collection = db[os.environ["MONGO_COLLECTION"]]
def get_shift_name(self, timestamp):
hour = timestamp.hour
if 6 <= hour < 14:
......@@ -21,6 +22,7 @@ class DailyReportGenerator:
else:
return 'Shift C'
def map_packer_name(self, camera_name):
packer_mapping = {
'camera_41': 'Packer 1',
......@@ -32,8 +34,12 @@ class DailyReportGenerator:
}
return packer_mapping.get(camera_name, 'Unknown')
def get_count(self, camera_name):
query = {'cameraName': camera_name}
def get_count(self, start_time, end_time, camera_name):
query = {
'timestamp': {'$gte': start_time, '$lte': end_time},
'cameraName': camera_name
}
documents = self.collection.find(query).sort('timestamp', 1)
first_document = None
last_document = None
......@@ -46,12 +52,10 @@ class DailyReportGenerator:
if first_document is None or last_document is None:
return 0
start_time = last_document['timestamp']
end_time = first_document['timestamp']
count_difference = int(last_document['cement_bag_count']) - int(first_document['cement_bag_count'])
return count_difference
def create_excel_report(self):
data = []
current_time = datetime.now()
......@@ -61,7 +65,7 @@ class DailyReportGenerator:
for camera_name in ['camera_41', 'camera_42', 'camera_44', 'camera_45', 'camera_46', 'camera_47']:
shift_name = self.get_shift_name(start_time)
packer_name = self.map_packer_name(camera_name)
count = self.get_count(camera_name)
count = self.get_count(start_time, end_time, camera_name)
data.append({
'Date': start_time.date(),
......@@ -71,10 +75,14 @@ class DailyReportGenerator:
})
df = pd.DataFrame(data)
writer = pd.ExcelWriter('daily_report.xlsx', engine='openpyxl')
file_path = os.path.abspath('daily_report.xlsx')
writer = pd.ExcelWriter(file_path, engine='openpyxl')
df.to_excel(writer, index=False, sheet_name='Report')
writer.save()
return file_path
def schedule_report_generation(self):
schedule.every().day.at('08:00').do(self.create_excel_report)
......@@ -82,6 +90,7 @@ class DailyReportGenerator:
schedule.run_pending()
time.sleep(1)
# Create an instance of DailyReportGenerator and start scheduling report generation
report_generator = DailyReportGenerator()
report_generator.schedule_report_generation()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment