Commit 72c79200 authored by suryakant's avatar suryakant

Sterlite Custom Report Updates

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