Commit 72c79200 authored by suryakant's avatar suryakant

Sterlite Custom Report Updates

parent f53f393e
...@@ -47,6 +47,10 @@ class CommonConstants: ...@@ -47,6 +47,10 @@ class CommonConstants:
YEAR_END_DATE = "year_end_date" YEAR_END_DATE = "year_end_date"
DATA_COLUMN = "data_column" DATA_COLUMN = "data_column"
DATA = "data" DATA = "data"
PROPERTY = "property"
START_DATE = "start_date"
END_DATE = "end_date"
FREQUENCY = 'D'
class ReportType: class ReportType:
......
...@@ -18,27 +18,26 @@ class CustomReportHandler: ...@@ -18,27 +18,26 @@ class CustomReportHandler:
:return: :return:
""" """
date_range_list = [] date_range_list = []
# Start date # Fetching Start date
start_date = datetime.strptime( start_date = datetime.strptime(
input_json["property"]["start_date"], CommonConstants.DATE_TIME_FORMAT input_json[CommonConstants.PROPERTY][CommonConstants.START_DATE],
CommonConstants.DATE_TIME_FORMAT
) )
# End date # Fetching End date
end_date = datetime.strptime( end_date = datetime.strptime(
input_json["property"]["end_date"], CommonConstants.DATE_TIME_FORMAT input_json[CommonConstants.PROPERTY][CommonConstants.END_DATE],
CommonConstants.DATE_TIME_FORMAT
) )
logger.info(f"Creating list of dates starting from {start_date} to {end_date}") logger.info(f"Creating list of dates starting from {start_date} to {end_date}")
date_list = pd.date_range(start_date, end_date, freq='D') # Generating a date range
date_list = pd.date_range(start_date, end_date, freq=CommonConstants.FREQUENCY)
# Iterating and creating where clause filters # Iterating and creating where clause filters
# Output - {'day_start_date': 'YYYY-MM-DD', 'day_end_date': 'YYYY-MM-DD',
# 'month_start_date': 'YYYY-MM-DD', 'month_end_date': 'YYYY-MM-DD',
# 'year_start_date': 'YYYY-MM-DD', 'year_end_date': 'YYYY-MM-DD'}
for each_dates in date_list.strftime( for each_dates in date_list.strftime(
CommonConstants.DATE_TIME_FORMAT).to_list(): CommonConstants.DATE_TIME_FORMAT).to_list():
# To get the financial year # To get the each_dates - financial year
financial_year = None financial_year = None
date_obj = datetime.strptime(each_dates, CommonConstants.DATE_TIME_FORMAT) date_obj = datetime.strptime(each_dates, CommonConstants.DATE_TIME_FORMAT)
if date_obj.month >= 4: if date_obj.month >= 4:
...@@ -66,7 +65,6 @@ class CustomReportHandler: ...@@ -66,7 +65,6 @@ class CustomReportHandler:
""" """
for each_blocks in input_json: for each_blocks in input_json:
# Iterating each blocks for fetching query # Iterating each blocks for fetching query
print(each_blocks)
if input_json[each_blocks][CommonConstants.QUERY]: if input_json[each_blocks][CommonConstants.QUERY]:
for each_kpi in input_json[each_blocks][CommonConstants.QUERY]: for each_kpi in input_json[each_blocks][CommonConstants.QUERY]:
...@@ -85,7 +83,7 @@ class CustomReportHandler: ...@@ -85,7 +83,7 @@ class CustomReportHandler:
year_start_date=date_filter[ year_start_date=date_filter[
CommonConstants.YEAR_START_DATE], CommonConstants.YEAR_START_DATE],
year_end_date=date_filter[CommonConstants.YEAR_END_DATE] year_end_date=date_filter[CommonConstants.YEAR_END_DATE]
) )
response = self.postgres_db_obj.fetch_data(query=query) response = self.postgres_db_obj.fetch_data(query=query)
if response: if response:
...@@ -93,17 +91,20 @@ class CustomReportHandler: ...@@ -93,17 +91,20 @@ class CustomReportHandler:
if not temp_data_dict: if not temp_data_dict:
# Creating null values if no data # Creating null values if no data
for each_columns in input_json[each_blocks]["data_column"]: for each_columns in input_json[each_blocks][
CommonConstants.DATA_COLUMN]:
temp_data_dict.update({each_columns: None}) temp_data_dict.update({each_columns: None})
input_json[each_blocks]["data"].append(temp_data_dict) input_json[each_blocks][CommonConstants.DATA].append(
temp_data_dict)
else: else:
temp_data_dict = dict() temp_data_dict = dict()
for each_columns in input_json[each_blocks]["data_column"]: for each_columns in input_json[each_blocks][
CommonConstants.DATA_COLUMN]:
temp_data_dict.update( temp_data_dict.update(
{each_columns: None} {each_columns: None}
) )
input_json[each_blocks]["data"].append(temp_data_dict) input_json[each_blocks][CommonConstants.DATA].append(temp_data_dict)
return input_json return input_json
def custom_report_handler(self, input_json): def custom_report_handler(self, input_json):
...@@ -113,7 +114,7 @@ class CustomReportHandler: ...@@ -113,7 +114,7 @@ class CustomReportHandler:
""" """
status = False status = False
message = "Error generating a message" message = "Error generating a message"
data = "Data" data = CommonConstants.DATA
try: try:
# if str(input_json.job_type).lower() == ReportType.REFINERY_REPORT: # if str(input_json.job_type).lower() == ReportType.REFINERY_REPORT:
if str(input_json["job_type"]).lower() == ReportType.REFINERY_REPORT: if str(input_json["job_type"]).lower() == ReportType.REFINERY_REPORT:
...@@ -127,7 +128,8 @@ class CustomReportHandler: ...@@ -127,7 +128,8 @@ class CustomReportHandler:
input_json=each_blocks, date_filter=each_date_range input_json=each_blocks, date_filter=each_date_range
) )
# print(each_blocks) # print(each_blocks)
print("=========================================") # print("=========================================")
print(SterliteRefineryTemplate.REPORT_TEMPLATE)
break break
except GeneralException as err: except GeneralException as err:
......
...@@ -44,14 +44,8 @@ class SterliteRefineryTemplate: ...@@ -44,14 +44,8 @@ class SterliteRefineryTemplate:
"columns": ["SAFETY REPORT", "UOM", "NORMS", "ON DATE", "MTD", "YTD"], "columns": ["SAFETY REPORT", "UOM", "NORMS", "ON DATE", "MTD", "YTD"],
"query": [], "query": [],
"data": [], "data": [],
"data_column": [ "data_column": ["safety_report", "uom", "norms",
"safety_report", "on_date", "mtd", "ytd"],
"uom",
"norms",
"on_date",
"mtd",
"ytd",
],
"additions": [], "additions": [],
"description": "", "description": "",
"format": "", "format": "",
...@@ -148,8 +142,7 @@ class SterliteRefineryTemplate: ...@@ -148,8 +142,7 @@ class SterliteRefineryTemplate:
"columns": ["FG INVENTORY", "ON DATE", "MTD", "YTD"], "columns": ["FG INVENTORY", "ON DATE", "MTD", "YTD"],
"query": [], "query": [],
"data": [], "data": [],
"data_column": ["fg_inventory", "on_date", "data_column": ["fg_inventory", "on_date", "mtd", "ytd"],
"mtd", "ytd"],
"additions": [], "additions": [],
"description": "", "description": "",
"format": "", "format": "",
...@@ -158,8 +151,7 @@ class SterliteRefineryTemplate: ...@@ -158,8 +151,7 @@ class SterliteRefineryTemplate:
"columns": ["PRODUCTION", "ON DATE", "MTD", "YTD"], "columns": ["PRODUCTION", "ON DATE", "MTD", "YTD"],
"query": [], "query": [],
"data": [], "data": [],
"data_column": ["production", "on_date", "data_column": ["production", "on_date", "mtd", "ytd"],
"mtd", "ytd"],
"additions": [], "additions": [],
"description": "", "description": "",
"format": "", "format": "",
...@@ -176,6 +168,8 @@ class SterliteRefineryTemplate: ...@@ -176,6 +168,8 @@ class SterliteRefineryTemplate:
], ],
"query": [], "query": [],
"data": [], "data": [],
"data_column": ["crop", "banks", "total_cells",
"cell_voltage", "t_shorts"],
"additions": [], "additions": [],
"description": "", "description": "",
"format": "", "format": "",
...@@ -189,10 +183,18 @@ class SterliteRefineryTemplate: ...@@ -189,10 +183,18 @@ class SterliteRefineryTemplate:
"1st CROP - Sttripping time", "1st CROP - Sttripping time",
"2nd CROP - Change over time", "2nd CROP - Change over time",
"3rd CROP", "3rd CROP",
"CSM Plate Rejection", "CSM Plate Rejection"
], ],
"query": [], "query": [],
"data": [], "data": [],
"data_column": [
"stripping_time",
"uom",
"1st_crop",
"2nd_crop",
"3rd_crop",
"csm_plate_rejection"
],
"additions": [], "additions": [],
"description": "", "description": "",
"format": "", "format": "",
...@@ -210,6 +212,10 @@ class SterliteRefineryTemplate: ...@@ -210,6 +212,10 @@ class SterliteRefineryTemplate:
], ],
"query": [], "query": [],
"data": [], "data": [],
"data_column": [
"filter_availability", "on_date", "mtd", "filtered_volume",
"total_volume_refinery", "on_date"
],
"additions": [], "additions": [],
"description": "", "description": "",
"format": "", "format": "",
...@@ -227,6 +233,14 @@ class SterliteRefineryTemplate: ...@@ -227,6 +233,14 @@ class SterliteRefineryTemplate:
], ],
"query": [], "query": [],
"data": [], "data": [],
"data_column": [
"utilities_consumptions",
"uom",
"norms",
"on_date",
"mtd",
"ytd",
],
"additions": [], "additions": [],
"description": "", "description": "",
"format": "", "format": "",
...@@ -235,6 +249,8 @@ class SterliteRefineryTemplate: ...@@ -235,6 +249,8 @@ class SterliteRefineryTemplate:
"columns": ["CONSUMABLES", "UOM", "NORMS", "ON DATE", "MTD", "YTD"], "columns": ["CONSUMABLES", "UOM", "NORMS", "ON DATE", "MTD", "YTD"],
"query": [], "query": [],
"data": [], "data": [],
"data_column": ["consumables", "uom", "norms", "on_date", "mtd",
"ytd"],
"additions": [], "additions": [],
"description": "", "description": "",
"format": "", "format": "",
...@@ -252,6 +268,14 @@ class SterliteRefineryTemplate: ...@@ -252,6 +268,14 @@ class SterliteRefineryTemplate:
], ],
"query": [], "query": [],
"data": [], "data": [],
"data_column": [
"electrolyte_composition",
"uom",
"norms",
"date",
"cir_1",
"cir_2",
],
"additions": [], "additions": [],
"description": "", "description": "",
"format": "", "format": "",
...@@ -260,6 +284,7 @@ class SterliteRefineryTemplate: ...@@ -260,6 +284,7 @@ class SterliteRefineryTemplate:
"columns": ["SUSPENDED SOLIDS"], "columns": ["SUSPENDED SOLIDS"],
"query": [], "query": [],
"data": [], "data": [],
"data_column": ["suspended_solids"],
"additions": [], "additions": [],
"description": "", "description": "",
"format": "", "format": "",
...@@ -270,6 +295,7 @@ class SterliteRefineryTemplate: ...@@ -270,6 +295,7 @@ class SterliteRefineryTemplate:
"columns": ["BLEEDING SECTION", "UOM", "ON DATE", "MTD", "YTD"], "columns": ["BLEEDING SECTION", "UOM", "ON DATE", "MTD", "YTD"],
"query": [], "query": [],
"data": [], "data": [],
"data_column": ["bleeding_section", "uom", "on_date", "mtd", "ytd"],
"additions": [], "additions": [],
"description": "", "description": "",
"format": "", "format": "",
...@@ -278,6 +304,7 @@ class SterliteRefineryTemplate: ...@@ -278,6 +304,7 @@ class SterliteRefineryTemplate:
"columns": ["BANK / CROP", "TIME", "WEIGHT (MT)", "CELLS", "READING"], "columns": ["BANK / CROP", "TIME", "WEIGHT (MT)", "CELLS", "READING"],
"query": [], "query": [],
"data": [], "data": [],
"data_column": ["bank_crop", "time", "weight", "cells", "reading"],
"additions": [], "additions": [],
"description": "", "description": "",
"format": "", "format": "",
...@@ -295,6 +322,14 @@ class SterliteRefineryTemplate: ...@@ -295,6 +322,14 @@ class SterliteRefineryTemplate:
], ],
"query": [], "query": [],
"data": [], "data": [],
"data_column": [
"department(m4)",
"equipment_details",
"equipment_location",
"duration",
"production",
"cause",
],
"additions": [], "additions": [],
"description": "", "description": "",
"format": "", "format": "",
......
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