Commit 5cb65a4e authored by suryakant's avatar suryakant

Query/Code Update

parent ec94d16c
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -74,6 +74,7 @@ class CustomReportHandler: ...@@ -74,6 +74,7 @@ class CustomReportHandler:
temp_data_dict = dict() temp_data_dict = dict()
append_flag = False append_flag = False
data_list = []
# Iterating each query for each KPI # Iterating each query for each KPI
if input_json[each_blocks][CommonConstants.QUERY][each_kpi]: if input_json[each_blocks][CommonConstants.QUERY][each_kpi]:
...@@ -95,7 +96,8 @@ class CustomReportHandler: ...@@ -95,7 +96,8 @@ class CustomReportHandler:
CommonConstants.YEAR_END_DATE]) 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 and "addition" not in input_json[each_blocks]:
if len(response) <= 1: if len(response) <= 1:
temp_data_dict.update(dict(response[0])) temp_data_dict.update(dict(response[0]))
append_flag = True append_flag = True
...@@ -104,6 +106,12 @@ class CustomReportHandler: ...@@ -104,6 +106,12 @@ class CustomReportHandler:
input_json[each_blocks][CommonConstants.DATA]. \ input_json[each_blocks][CommonConstants.DATA]. \
append(dict(every_data)) append(dict(every_data))
elif response and "addition" in input_json[each_blocks] and \
"primary" in input_json[each_blocks]["addition"]:
for each_data in response:
data_list.append(dict(each_data))
append_flag = True
if not temp_data_dict and not append_flag: if not temp_data_dict and not append_flag:
# Creating null values if no data # Creating null values if no data
for each_columns in input_json[each_blocks][ for each_columns in input_json[each_blocks][
...@@ -111,9 +119,29 @@ class CustomReportHandler: ...@@ -111,9 +119,29 @@ class CustomReportHandler:
temp_data_dict.update({each_columns: None}) temp_data_dict.update({each_columns: None})
append_flag = True append_flag = True
if append_flag: if append_flag and temp_data_dict:
input_json[each_blocks][CommonConstants.DATA].append( input_json[each_blocks][CommonConstants.DATA].append(
temp_data_dict) temp_data_dict)
if data_list:
temp_json = {}
for item in data_list:
category = item[
input_json[each_blocks]["addition"]["primary"]]
if category not in temp_json:
temp_json[category] = {
input_json[each_blocks]["addition"][
"primary"]: category}
for key in item:
if key != input_json[each_blocks]["addition"][
"primary"]:
temp_json[category][key] = item[key]
for category, values in temp_json.items():
if values not in input_json[each_blocks][
CommonConstants.DATA]:
input_json[each_blocks][CommonConstants.DATA].append(
values)
else: else:
temp_data_dict = dict() temp_data_dict = dict()
for each_columns in input_json[each_blocks][ for each_columns in input_json[each_blocks][
...@@ -146,7 +174,7 @@ class CustomReportHandler: ...@@ -146,7 +174,7 @@ class CustomReportHandler:
logger.info("Iterating through each block to create a dataframe") logger.info("Iterating through each block to create a dataframe")
# Iterate through the categories and concatenate their data # Iterate through the categories and concatenate their data
print(input_json) # print(input_json)
for category, category_data in input_json.items(): for category, category_data in input_json.items():
data = category_data.get('data', []) data = category_data.get('data', [])
...@@ -172,7 +200,7 @@ class CustomReportHandler: ...@@ -172,7 +200,7 @@ class CustomReportHandler:
start_row, col_index, value, start_row, col_index, value,
workbook.add_format( workbook.add_format(
SterliteRefineryTemplate.COLUMN_HEADER_FORMAT) SterliteRefineryTemplate.COLUMN_HEADER_FORMAT)
) )
logger.info(f"Shape of current data frame is {result_df.shape}") logger.info(f"Shape of current data frame is {result_df.shape}")
return result_df.shape, worksheet return result_df.shape, worksheet
...@@ -255,7 +283,9 @@ class CustomReportHandler: ...@@ -255,7 +283,9 @@ class CustomReportHandler:
# Setting width to the column # Setting width to the column
worksheet.set_column(0, total_column, worksheet.set_column(0, total_column,
CommonConstants.OVERALL_COLUMN_WIDTH) CommonConstants.OVERALL_COLUMN_WIDTH)
worksheet.set_text_wrap()
# Center alignment of Excel data
workbook.formats[0].set_align('center')
logger.info(f"Report completed for: {each_date_range}") logger.info(f"Report completed for: {each_date_range}")
except GeneralException as err: except GeneralException as err:
......
...@@ -172,9 +172,7 @@ class SterliteRefineryTemplate: ...@@ -172,9 +172,7 @@ class SterliteRefineryTemplate:
"RM ANODE RECEIPT DETAILS", "RM ANODE RECEIPT DETAILS",
"ON DATE", "ON DATE",
"MTD", "MTD",
"YTD", "YTD"
"Material",
"OPENING STOCK",
], ],
"query": { "query": {
"AcpCcpcCcp": [ "AcpCcpcCcp": [
...@@ -183,7 +181,7 @@ class SterliteRefineryTemplate: ...@@ -183,7 +181,7 @@ class SterliteRefineryTemplate:
}, },
"data": [], "data": [],
"data_column": ["rm_anode_receipt_details", "on_date", "data_column": ["rm_anode_receipt_details", "on_date",
"mtd", "ytd", "material", "opening_stock"], "mtd", "ytd"],
}, },
}, },
{ {
...@@ -354,15 +352,27 @@ class SterliteRefineryTemplate: ...@@ -354,15 +352,27 @@ class SterliteRefineryTemplate:
"columns": [ "columns": [
"CATEGORY", "CATEGORY",
"ON DATE", "ON DATE",
"TILL DATE" "MTD",
"YTD"
], ],
"query": {}, "query": {
"DepositLossGainDetails": [
SterliteRefineryQuery.DepositLossGainDetails.QUERY_1,
SterliteRefineryQuery.DepositLossGainDetails.QUERY_2,
SterliteRefineryQuery.DepositLossGainDetails.QUERY_3,
]
},
"data": [], "data": [],
"data_column": [ "data_column": [
"category", "category",
"on_date", "on_date",
"till_date" "mtd",
"ytd"
], ],
"addition": {
"merge_header": "DEPOSIT LOSS (-) / GAIN (+) DETAILS",
"primary": "category"
}
} }
}, },
{ {
...@@ -464,60 +474,10 @@ class SterliteRefineryTemplate: ...@@ -464,60 +474,10 @@ class SterliteRefineryTemplate:
"YTD", "YTD",
], ],
"query": { "query": {
"SteamConsumptionForMachines": [ "SpecificEnergyConsumption": [
SterliteRefineryQuery.SteamConsumptionForMachines.QUERY_1, SterliteRefineryQuery.SpecificEnergyConsumption.QUERY_1,
SterliteRefineryQuery.SteamConsumptionForMachines.QUERY_2, SterliteRefineryQuery.SpecificEnergyConsumption.QUERY_2,
SterliteRefineryQuery.SteamConsumptionForMachines.QUERY_3, SterliteRefineryQuery.SpecificEnergyConsumption.QUERY_3,
],
"SteamConsumptionForCellHouse": [
SterliteRefineryQuery.SteamConsumptionForCellHouse.QUERY_1,
SterliteRefineryQuery.SteamConsumptionForCellHouse.QUERY_2,
SterliteRefineryQuery.SteamConsumptionForCellHouse.QUERY_3,
],
"SteamConsumptionTotal": [
SterliteRefineryQuery.SteamConsumptionTotal.QUERY_1,
SterliteRefineryQuery.SteamConsumptionTotal.QUERY_2,
SterliteRefineryQuery.SteamConsumptionTotal.QUERY_3,
],
"SteamCSPlant": [
SterliteRefineryQuery.SteamCSPlant.QUERY_1,
SterliteRefineryQuery.SteamCSPlant.QUERY_2,
SterliteRefineryQuery.SteamCSPlant.QUERY_3,
],
"SteamNSPlant": [
SterliteRefineryQuery.SteamNSPlant.QUERY_1,
SterliteRefineryQuery.SteamNSPlant.QUERY_2,
SterliteRefineryQuery.SteamNSPlant.QUERY_3,
],
"SteamMEEPlant": [
SterliteRefineryQuery.SteamMEEPlant.QUERY_1,
SterliteRefineryQuery.SteamMEEPlant.QUERY_2,
SterliteRefineryQuery.SteamMEEPlant.QUERY_3,
],
"AncillaryPowerConsumption": [
SterliteRefineryQuery.AncillaryPowerConsumption.QUERY_1,
SterliteRefineryQuery.AncillaryPowerConsumption.QUERY_2,
SterliteRefineryQuery.AncillaryPowerConsumption.QUERY_3,
],
"PurificationPowerConsumption": [
SterliteRefineryQuery.PurificationPowerConsumption.QUERY_1,
SterliteRefineryQuery.PurificationPowerConsumption.QUERY_2,
SterliteRefineryQuery.PurificationPowerConsumption.QUERY_3,
],
"RectifierPowerConsumption": [
SterliteRefineryQuery.RectifierPowerConsumption.QUERY_1,
SterliteRefineryQuery.RectifierPowerConsumption.QUERY_2,
SterliteRefineryQuery.RectifierPowerConsumption.QUERY_3,
],
"PowerConsumptionMEE": [
SterliteRefineryQuery.PowerConsumptionMEE.QUERY_1,
SterliteRefineryQuery.PowerConsumptionMEE.QUERY_2,
SterliteRefineryQuery.PowerConsumptionMEE.QUERY_3,
],
"PowerConsumptionCSNS": [
SterliteRefineryQuery.PowerConsumptionCSNS.QUERY_1,
SterliteRefineryQuery.PowerConsumptionCSNS.QUERY_2,
SterliteRefineryQuery.PowerConsumptionCSNS.QUERY_3,
] ]
}, },
"data": [], "data": [],
...@@ -529,49 +489,28 @@ class SterliteRefineryTemplate: ...@@ -529,49 +489,28 @@ class SterliteRefineryTemplate:
"mtd", "mtd",
"ytd", "ytd",
], ],
"addition": {
"merge_header": "SPECIFIC ENERGY CONSUMPTION",
"primary": "utilities_consumptions"
}
}, },
"SPECIFIC CONSUMPTION": { "SPECIFIC CONSUMPTION": {
"columns": ["CONSUMABLES", "UOM", "NORMS", "ON DATE", "MTD", "YTD"], "columns": ["CONSUMABLES", "UOM", "NORMS", "ON DATE", "MTD", "YTD"],
"query": { "query": {
"EdgeStripConsumption": [ "SpecificConsumption": [
SterliteRefineryQuery.EdgeStripConsumption.QUERY_1, SterliteRefineryQuery.SpecificConsumption.QUERY_1,
SterliteRefineryQuery.EdgeStripConsumption.QUERY_2, SterliteRefineryQuery.SpecificConsumption.QUERY_2,
SterliteRefineryQuery.EdgeStripConsumption.QUERY_3, SterliteRefineryQuery.SpecificConsumption.QUERY_3,
],
"PlateRepairing": [
SterliteRefineryQuery.PlateRepairing.QUERY_1,
SterliteRefineryQuery.PlateRepairing.QUERY_2,
SterliteRefineryQuery.PlateRepairing.QUERY_3,
],
"WaxConsumption": [
SterliteRefineryQuery.WaxConsumption.QUERY_1,
SterliteRefineryQuery.WaxConsumption.QUERY_2,
SterliteRefineryQuery.WaxConsumption.QUERY_3,
],
"GlueConsumption": [
SterliteRefineryQuery.GlueConsumption.QUERY_1,
SterliteRefineryQuery.GlueConsumption.QUERY_2,
SterliteRefineryQuery.GlueConsumption.QUERY_3,
],
"ThioureaConsumption": [
SterliteRefineryQuery.ThioureaConsumption.QUERY_1,
SterliteRefineryQuery.ThioureaConsumption.QUERY_2,
SterliteRefineryQuery.ThioureaConsumption.QUERY_3,
],
"HClAddition": [
SterliteRefineryQuery.HClAddition.QUERY_1,
SterliteRefineryQuery.HClAddition.QUERY_2,
SterliteRefineryQuery.HClAddition.QUERY_3,
],
"H2SO4Addition": [
SterliteRefineryQuery.H2SO4Addition.QUERY_1,
SterliteRefineryQuery.H2SO4Addition.QUERY_2,
SterliteRefineryQuery.H2SO4Addition.QUERY_3,
] ]
}, },
"data": [], "data": [],
"data_column": ["consumables", "uom", "norms", "on_date", "mtd", "data_column": [
"ytd"], "consumables", "uom", "norms", "on_date", "mtd", "ytd"
],
"addition": {
"merge_header": "SPECIFIC CONSUMPTION",
"primary": "consumables"
}
}, },
}, },
{ {
...@@ -627,19 +566,40 @@ class SterliteRefineryTemplate: ...@@ -627,19 +566,40 @@ class SterliteRefineryTemplate:
}, },
}, },
{ {
"BLEEDING SECTION": {
"columns": ["BLEEDING SECTION", "UOM", "ON DATE", "MTD", "YTD"],
"query": [],
"data": [],
"data_column": ["bleeding_section", "uom", "on_date", "mtd", "ytd"],
},
"BANK / CROP": { "BANK / CROP": {
"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"], "data_column": ["bank_crop", "time", "weight", "cells", "reading"],
}, },
}, },
{
"BLEEDING SECTION": {
"columns": [
"BLEEDING SECTION", "UOM",
"ON DATE (TARGET)", "ON DATE (ACTUAL)",
"MTD (TARGET)", "MTD (ACTUAL)",
"YTD (TARGET)", "YTD (ACTUAL)"
],
"query": {
"BleedingSection": [
SterliteRefineryQuery.BleedingSection.QUERY_1,
SterliteRefineryQuery.BleedingSection.QUERY_2,
SterliteRefineryQuery.BleedingSection.QUERY_3,
]
},
"data": [],
"data_column": [
"bleeding_section", "uom",
"on_date_target", "on_date_actual",
"mtd_target", "mtd_actual",
"ytd_target", "ytd_actual"
],
"addition": {
"primary": "bleeding_section"
}
},
},
{ {
"DEPARTMENT(M4)": { "DEPARTMENT(M4)": {
"columns": [ "columns": [
...@@ -647,7 +607,7 @@ class SterliteRefineryTemplate: ...@@ -647,7 +607,7 @@ class SterliteRefineryTemplate:
"EQUIPMENT LOCATION", "DURATION", "EQUIPMENT LOCATION", "DURATION",
"(MT) PRODUCTION", "CAUSE OF THE BREAK DOWN", "(MT) PRODUCTION", "CAUSE OF THE BREAK DOWN",
], ],
"query": [], "query": {},
"data": [], "data": [],
"data_column": [ "data_column": [
"department(m4)", "equipment_details", "department(m4)", "equipment_details",
...@@ -657,16 +617,27 @@ class SterliteRefineryTemplate: ...@@ -657,16 +617,27 @@ class SterliteRefineryTemplate:
"PM COMPLIANCE": { "PM COMPLIANCE": {
"columns": [ "columns": [
"PM COMPLIANCE", "PM COMPLIANCE",
"FTD", "ON DATE",
"MTD", "MTD",
"YTD"
], ],
"query": [], "query": {
"PmCompliance": [
SterliteRefineryQuery.PmCompliance.QUERY_1,
SterliteRefineryQuery.PmCompliance.QUERY_2,
SterliteRefineryQuery.PmCompliance.QUERY_3,
]
},
"data": [], "data": [],
"data_column": [ "data_column": [
"pm_compliance", "pm_compliance",
"ftd", "on_date",
"mtd" "mtd",
"ytd"
], ],
"addition": {
"primary": "pm_compliance"
}
} }
}, },
] ]
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