Commit 975dc483 authored by suryakant's avatar suryakant

ACP Custom Report Changes

parent 2b09445e
...@@ -60,6 +60,7 @@ class PostgresDetails(BaseSettings): ...@@ -60,6 +60,7 @@ class PostgresDetails(BaseSettings):
port: str port: str
username: str username: str
password: str password: str
database: str = ""
class Config: class Config:
env_prefix = "POSTGRES_" env_prefix = "POSTGRES_"
......
...@@ -53,7 +53,8 @@ class CommonConstants: ...@@ -53,7 +53,8 @@ class CommonConstants:
FREQUENCY = 'D' FREQUENCY = 'D'
START_COLUMN = 0 START_COLUMN = 0
START_ROW = 2 START_ROW = 2
OVERALL_COLUMN_WIDTH = 27 REFINERY_COLUMN_WIDTH = 27
ACP_COLUMN_WIDTH = 24
class ReportType: class ReportType:
...@@ -64,8 +65,9 @@ class ReportType: ...@@ -64,8 +65,9 @@ class ReportType:
REFINERY_REPORT = "refinery_report" REFINERY_REPORT = "refinery_report"
ACP_REPORT = "acp_report" ACP_REPORT = "acp_report"
REFINERY_WORKSHEET_NAME = "REFINERY DAILY PERFORMANCE REPORT" REFINERY_WORKSHEET_NAME = "REFINERY DAILY PERFORMANCE REPORT"
ACP_WORKSHEET_NAME = "VEDANTA LIMITED \n ANODE CASTING PLANT (ACP) - " \ ACP_WORKSHEET_NAME_1 = "VEDANTA LIMITED"
"SHIFT INCHARGE LOG SHEET" ACP_WORKSHEET_NAME_2 = "ANODE CASTING PLANT (ACP) - SHIFT INCHARGE LOG SHEET"
DATE = "DATE"
class PostgresConstant: class PostgresConstant:
......
...@@ -3835,10 +3835,10 @@ class ACPQuery: ...@@ -3835,10 +3835,10 @@ class ACPQuery:
""" Persons on duty """ """ Persons on duty """
QUERY_1 = """ QUERY_1 = """
SELECT SELECT
PERSONS_ON_DUTY, PERSONS_ON_DUTY AS persons_on_duty,
A_SHIFT, A_SHIFT as a,
B_SHIFT, B_SHIFT as b,
C_SHIFT C_SHIFT as c
FROM SEMANTIC_PROD.SHIFT_MANPOWER_ACP FROM SEMANTIC_PROD.SHIFT_MANPOWER_ACP
WHERE DATE='{day_start_date}' WHERE DATE='{day_start_date}'
""" """
...@@ -3990,8 +3990,14 @@ class ACPQuery: ...@@ -3990,8 +3990,14 @@ class ACPQuery:
class MeltTemperature: class MeltTemperature:
""" PARAMETERS """ """ PARAMETERS """
QUERY_1 = """ QUERY_1 = """
SELECT
'MELT TEMPERATURE' AS parameters,
'1120-1140 DEG C' AS range,
SUM(COALESCE(MELT_TEMP, 0)) AS value
AND DATE(date) = '{day_start_date}' FROM SEMANTIC_PROD.FURNACE_1_CTP
WHERE DATE = '{day_start_date}'
GROUP BY 1;
""" """
class MouldTemperature: class MouldTemperature:
...@@ -4118,3 +4124,45 @@ class ACPQuery: ...@@ -4118,3 +4124,45 @@ class ACPQuery:
WHERE LOWER(SUBSTRING(ANODE_SHIFT_SELECTION,1,1)) = 'c' WHERE LOWER(SUBSTRING(ANODE_SHIFT_SELECTION,1,1)) = 'c'
AND DATE(date) = '{day_start_date}' AND DATE(date) = '{day_start_date}'
""" """
class FurnaceShiftA:
""" FURNACE SHIFT A """
QUERY_1 = """
SELECT
SHIFTA_FURNACE AS furnace,
BURNER_1 as burner_1,
BURNER_2 as burner_2,
BURNER_3 as burner_3
FROM SEMANTIC_PROD.ACP_BURNER_CLEANING
WHERE LOWER(SHIFT) = 'shift a'
AND DATE(date) = '{day_start_date}'
"""
class FurnaceShiftB:
""" FURNACE SHIFT B """
QUERY_1 = """
SELECT
SHIFTB_FURNACE AS furnace,
BURNER1_B AS burner_1,
BURNER2_B AS burner_2,
BURNER3_B AS burner_3
FROM SEMANTIC_PROD.ACP_BURNER_CLEANING
WHERE LOWER(SHIFT) = 'shift b'
AND DATE(date) = '{day_start_date}'
"""
class FurnaceShiftC:
""" FURNACE SHIFT C """
QUERY_1 = """
SELECT
SHIFTC_FURNACE AS furnace,
BURNER1_C AS burner_1,
BURNER2_C AS burner_2,
BURNER3_C AS burner_3
FROM SEMANTIC_PROD.ACP_BURNER_CLEANING
WHERE LOWER(SHIFT) = 'shift c'
AND DATE(date) = '{day_start_date}'
"""
...@@ -20,7 +20,13 @@ class CustomReportHandler: ...@@ -20,7 +20,13 @@ class CustomReportHandler:
:param input_json: :param input_json:
:return: :return:
""" """
flag = False
date_range_list = [] date_range_list = []
if CommonConstants.PROPERTY in input_json and CommonConstants.START_DATE \
in input_json[CommonConstants.PROPERTY] and CommonConstants.END_DATE \
in input_json[CommonConstants.PROPERTY]:
# Fetching Start date # Fetching Start date
start_date = datetime.strptime( start_date = datetime.strptime(
input_json[CommonConstants.PROPERTY][CommonConstants.START_DATE], input_json[CommonConstants.PROPERTY][CommonConstants.START_DATE],
...@@ -32,9 +38,12 @@ class CustomReportHandler: ...@@ -32,9 +38,12 @@ class CustomReportHandler:
CommonConstants.DATE_TIME_FORMAT 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} "
f"to {end_date}")
# Generating a date range # Generating a date range
date_list = pd.date_range(start_date, end_date, freq=CommonConstants.FREQUENCY) date_list = pd.date_range(start=start_date,
end=end_date,
freq=CommonConstants.FREQUENCY)
# Iterating and creating where clause filters # Iterating and creating where clause filters
for each_dates in date_list.strftime( for each_dates in date_list.strftime(
...@@ -42,7 +51,8 @@ class CustomReportHandler: ...@@ -42,7 +51,8 @@ class CustomReportHandler:
# To get the each_dates - 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:
financial_year = str(date_obj.year) financial_year = str(date_obj.year)
elif date_obj.month < 4: elif date_obj.month < 4:
...@@ -58,7 +68,9 @@ class CustomReportHandler: ...@@ -58,7 +68,9 @@ class CustomReportHandler:
year_end_date=each_dates, year_end_date=each_dates,
) )
) )
return date_range_list flag = True
return flag, date_range_list
def get_queries_from_db(self, input_json, date_filter): def get_queries_from_db(self, input_json, date_filter):
""" """
...@@ -251,19 +263,24 @@ class CustomReportHandler: ...@@ -251,19 +263,24 @@ class CustomReportHandler:
:param input_json: :param input_json:
:return: :return:
""" """
status = False response_json = dict(
message = "Error generating a message" job_id=input_json['job_id'],
data = input_json["file_name"] file_path="",
file_name=input_json["file_name"],
is_schedule="",
project_id=input_json["project_id"]
)
try: try:
logger.info(f"Report: {str(input_json['job_type']).lower()}") logger.info(f"Report: {str(input_json['job_type']).lower()}")
# 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:
logger.info("Generating custom date filter with in the range")
logger.info("Generating custom date filter with in the range")
# Getting custom date range using start date and end date # Getting custom date range using start date and end date
date_filter = self.create_custom_date_filter(input_json=input_json) date_flag, date_filter = self.create_custom_date_filter(
input_json=input_json)
if date_flag:
with pd.ExcelWriter( with pd.ExcelWriter(
input_json["file_name"], input_json["file_name"],
engine="xlsxwriter") as writer: engine="xlsxwriter") as writer:
...@@ -314,34 +331,41 @@ class CustomReportHandler: ...@@ -314,34 +331,41 @@ class CustomReportHandler:
if header_flag: if header_flag:
start_row += 1 start_row += 1
# Add a header format.
main_header_format = workbook.add_format(
SterliteRefineryTemplate.WORKSHEET_HEADER_FORMAT)
logger.info("Creating Header for each sheet") logger.info("Creating Header for each sheet")
self.merge_worksheet(
# (Merge Rows, Start Column, '', Total Column, Title, Format) start_row=1, start_col=0, end_row=0,
worksheet.merge_range(1, 0, 0, 0, sheet_name, end_col=0, title=sheet_name,
main_header_format) style=SterliteRefineryTemplate.WORKSHEET_HEADER_FORMAT,
worksheet.merge_range(1, 1, 0, total_column - 1, worksheet=worksheet, workbook=workbook,
ReportType.REFINERY_WORKSHEET_NAME, )
main_header_format) self.merge_worksheet(
start_row=1, start_col=1, end_row=0,
end_col=total_column - 1,
title=ReportType.REFINERY_WORKSHEET_NAME,
style=SterliteRefineryTemplate.WORKSHEET_HEADER_FORMAT,
worksheet=worksheet, workbook=workbook,
)
# 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.REFINERY_COLUMN_WIDTH)
# Center alignment of Excel data # Center alignment of Excel data
workbook.formats[0].set_align('center') workbook.formats[0].set_align('center')
logger.info(f"Report completed for: {each_date_range}") logger.info(f"Report completed for: {each_date_range}")
else:
logger.error("Missing: Start Date or End Date")
if str(input_json["job_type"]).lower() == ReportType.ACP_REPORT: if str(input_json["job_type"]).lower() == ReportType.ACP_REPORT:
logger.info("Generating custom date filter with in the range") logger.info("Generating custom date filter with in the range")
# Getting custom date range using start date and end date # Getting custom date range using start date and end date
date_filter = self.create_custom_date_filter(input_json=input_json) date_flag, date_filter = self.create_custom_date_filter(
input_json=input_json
)
if date_flag:
with pd.ExcelWriter( with pd.ExcelWriter(
input_json["file_name"], input_json["file_name"],
engine="xlsxwriter") as writer: engine="xlsxwriter") as writer:
...@@ -374,12 +398,9 @@ class CustomReportHandler: ...@@ -374,12 +398,9 @@ class CustomReportHandler:
shape, worksheet, header_flag = \ shape, worksheet, header_flag = \
self.write_dataframe_to_excel( self.write_dataframe_to_excel(
input_json=each_blocks, input_json=each_blocks, writer=writer,
writer=writer, workbook=workbook, sheet_name=sheet_name,
workbook=workbook, start_col=start_col, start_row=start_row,
sheet_name=sheet_name,
start_col=start_col,
start_row=start_row,
header_merge_format=ACPReportTemplate.COLUMN_HEADER_FORMAT, header_merge_format=ACPReportTemplate.COLUMN_HEADER_FORMAT,
column_merge_format=ACPReportTemplate.COLUMN_HEADER_FORMAT, column_merge_format=ACPReportTemplate.COLUMN_HEADER_FORMAT,
blank_merge_format=ACPReportTemplate.BLANK_COLUMN_HEADER_FORMAT blank_merge_format=ACPReportTemplate.BLANK_COLUMN_HEADER_FORMAT
...@@ -391,28 +412,82 @@ class CustomReportHandler: ...@@ -391,28 +412,82 @@ class CustomReportHandler:
if header_flag: if header_flag:
start_row += 1 start_row += 1
logger.info("Creating Header for each sheet")
# Add a header format. # -------- Image Section --------
main_header_format = workbook.add_format( logger.info("Adding Image in header")
ACPReportTemplate.WORKSHEET_HEADER_FORMAT) self.merge_worksheet(
start_row=0, start_col=0, end_row=2, end_col=2,
title="",
style=ACPReportTemplate.WORKSHEET_IMAGE_HEADER_FORMAT,
worksheet=worksheet, workbook=workbook,
)
worksheet.insert_image('A1', 'logo.png')
# -------- Heading Section --------
logger.info("Adding Heading in Header")
self.merge_worksheet(
start_row=0, start_col=3, end_row=1,
end_col=total_column - 1,
title=ReportType.ACP_WORKSHEET_NAME_1,
style=ACPReportTemplate.WORKSHEET_HEADER_FORMAT,
worksheet=worksheet, workbook=workbook,
)
self.merge_worksheet(
start_row=2, start_col=3,
end_row=2, end_col=total_column - 1,
title=ReportType.ACP_WORKSHEET_NAME_2,
style=ACPReportTemplate.WORKSHEET_HEADER_FORMAT,
worksheet=worksheet, workbook=workbook,
)
logger.info("Creating Header for each sheet") # -------- Date HEADER Section --------
logger.info("Adding Date time in header")
self.merge_worksheet(
start_row=3, start_col=0, end_row=3, end_col=1,
title=ReportType.DATE,
style=ACPReportTemplate.WORKSHEET_DATE_HEADER_FORMAT,
worksheet=worksheet, workbook=workbook,
)
# (Merge Rows, Start Column, '', Total Column, Title, Format) # -------- Date Section --------
worksheet.merge_range(1, 0, 0, 0, sheet_name, logger.info("Adding Date time in header")
main_header_format) self.merge_worksheet(
worksheet.merge_range(1, 1, 0, total_column - 1, start_row=3, start_col=2,
ReportType.ACP_WORKSHEET_NAME, end_row=3, end_col=3, title=sheet_name,
main_header_format) style=ACPReportTemplate.WORKSHEET_DATE_FORMAT,
worksheet=worksheet, workbook=workbook,
)
# 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.ACP_COLUMN_WIDTH)
# Center alignment of Excel data # Center alignment of Excel data
workbook.formats[0].set_align('center') workbook.formats[0].set_align('center')
logger.info(f"Report completed for: {each_date_range}") logger.info(f"Report completed for: {each_date_range}")
else:
logger.error("Missing: Start Date or End Date")
except GeneralException as err: except GeneralException as err:
logger.error(f"Exception in custom_report_handler: {err}") logger.error(f"Exception in custom_report_handler: {err}")
return status, message, data return response_json
def merge_worksheet(self, start_row, start_col,
end_row, end_col, title, style, worksheet, workbook):
"""
This method is to merge the worksheet
:param start_row:
:param start_col:
:param end_row:
:param end_col:
:param title:
:param style:
:param worksheet:
:param workbook:
:return:
"""
style_format = workbook.add_format(style)
worksheet.merge_range(
start_row, start_col, end_row, end_col, title, style_format
)
...@@ -14,6 +14,8 @@ class ReportInput(BaseModel): ...@@ -14,6 +14,8 @@ class ReportInput(BaseModel):
class ReportOutput(BaseModel): class ReportOutput(BaseModel):
status: bool job_id: str
message: str file_path: str = ""
data: str file_name: Optional[str] = None
is_schedule: Optional[bool] = False
project_id: str
...@@ -63,10 +63,10 @@ async def custom_report_function(input_json: custom_report_input_model): ...@@ -63,10 +63,10 @@ async def custom_report_function(input_json: custom_report_input_model):
""" """
try: try:
status, message, data = report_handler_obj.custom_report_handler( response = report_handler_obj.custom_report_handler(
input_json=input_json input_json=input_json
) )
return {"status": status, "message": message, "data": data} return response
except Exception as err: except Exception as err:
logger.exception( logger.exception(
CommonConstants.EXCEPTION_RAISER.format(str(err)), CommonConstants.EXCEPTION_RAISER.format(str(err)),
......
from scripts.constants import PostgresConstant
from scripts.core.db.postgres.custom_report_query import ACPQuery from scripts.core.db.postgres.custom_report_query import ACPQuery
class ACPReportTemplate: class ACPReportTemplate:
""" HEADER STYLING FORMAT """
WORKSHEET_IMAGE_HEADER_FORMAT = {
"bold": True,
"align": "center",
"valign": "center",
"border": 1,
}
WORKSHEET_HEADER_FORMAT = { WORKSHEET_HEADER_FORMAT = {
"bold": True, "bold": True,
"align": "center", "align": "center",
"valign": "center", "valign": "center",
"fg_color": "#e6e7eb",
"font_color": "#1b314f",
"border": 1, "border": 1,
'font_size': '20', "fg_color": "#1AC5F3",
'font_size': '18',
}
""" DATE HEADER """
WORKSHEET_DATE_HEADER_FORMAT = {
"bold": True,
"align": "center",
"valign": "center",
"border": 1,
"fg_color": "#F4AD66",
'font_size': '12',
}
WORKSHEET_DATE_FORMAT = {
"bold": True,
"align": "center",
"valign": "center",
"border": 1,
"fg_color": "#F4CE84",
'font_size': '12',
} }
""" COLUMN HEADER FORMAT """
COLUMN_HEADER_FORMAT = { COLUMN_HEADER_FORMAT = {
"bold": True, "bold": True,
"align": "center", "align": "center",
...@@ -25,6 +50,8 @@ class ACPReportTemplate: ...@@ -25,6 +50,8 @@ class ACPReportTemplate:
"align": "center", "align": "center",
"valign": "center", "valign": "center",
} }
""" REPORT TEMPLATE """
REPORT_TEMPLATE = [ REPORT_TEMPLATE = [
{ {
"BLANK": { "BLANK": {
...@@ -47,17 +74,11 @@ class ACPReportTemplate: ...@@ -47,17 +74,11 @@ class ACPReportTemplate:
"FO": [ "FO": [
ACPQuery.FO.QUERY_1, ACPQuery.FO.QUERY_1,
ACPQuery.FO.QUERY_2, ACPQuery.FO.QUERY_2,
],
"PNG/LPG": [
], ],
"Rejection": [ "Rejection": [
ACPQuery.Rejection.QUERY_1, ACPQuery.Rejection.QUERY_1,
ACPQuery.Rejection.QUERY_2, ACPQuery.Rejection.QUERY_2,
], ],
"Power": [
]
}, },
"data": [], "data": [],
"data_column": [ "data_column": [
...@@ -105,161 +126,215 @@ class ACPReportTemplate: ...@@ -105,161 +126,215 @@ class ACPReportTemplate:
], ],
}, },
}, },
{ # {
"A-SHIFT COMMUNICATION": { # "A-SHIFT COMMUNICATION": {
"columns": [ # "columns": [
"S.No", "A-SHIFT COMMUNICATION" # "S.No", "A-SHIFT COMMUNICATION"
], # ],
"query": { # "query": {
"AShiftCommunication": [ # "AShiftCommunication": [
ACPQuery.AShiftCommunication.QUERY_1, # ACPQuery.AShiftCommunication.QUERY_1,
], # ],
}, # },
"data": [], # "data": [],
"data_column": [ # "data_column": [
"s_no", "a_shift_comm" # "s_no", "a_shift_comm"
], # ],
}, # },
"A SHIFTWISE DATA": { # "A SHIFTWISE DATA": {
"columns": [ # "columns": [
"MOULD", "SET VALUE", "FIELD WT" # "MOULD", "SET VALUE", "FIELD WT"
], # ],
"query": { # "query": {
"AShiftwiseData": [ # "AShiftwiseData": [
ACPQuery.AShiftwiseData.QUERY_1, # ACPQuery.AShiftwiseData.QUERY_1,
] # ]
}, # },
"data": [], # "data": [],
"data_column": [ # "data_column": [
"mould", "set_value", "field_wt" # "mould", "set_value", "field_wt"
], # ],
"addition": { # "addition": {
"merge_header": "SHIFTWISE DATA" # "merge_header": "SHIFTWISE DATA"
} # }
} # }
}, # },
{ # {
"B-SHIFT COMMUNICATION": { # "B-SHIFT COMMUNICATION": {
"columns": [ # "columns": [
"S.No", "B-SHIFT COMMUNICATION" # "S.No", "B-SHIFT COMMUNICATION"
], # ],
"query": { # "query": {
"BShiftCommunication": [ # "BShiftCommunication": [
ACPQuery.BShiftCommunication.QUERY_1, # ACPQuery.BShiftCommunication.QUERY_1,
], # ],
}, # },
"data": [], # "data": [],
"data_column": [ # "data_column": [
"s_no", "b_shift_comm" # "s_no", "b_shift_comm"
], # ],
}, # },
"B SHIFTWISE DATA": { # "B SHIFTWISE DATA": {
"columns": [ # "columns": [
"MOULD", "SET VALUE", "FIELD WT" # "MOULD", "SET VALUE", "FIELD WT"
], # ],
"query": { # "query": {
"BShiftwiseData": [ # "BShiftwiseData": [
ACPQuery.BShiftwiseData.QUERY_1, # ACPQuery.BShiftwiseData.QUERY_1,
] # ]
}, # },
"data": [], # "data": [],
"data_column": [ # "data_column": [
"mould", "set_value", "field_wt" # "mould", "set_value", "field_wt"
], # ],
"addition": { # "addition": {
"merge_header": "SHIFTWISE DATA" # "merge_header": "SHIFTWISE DATA"
} # }
} # }
}, # },
{ # {
"C-SHIFT COMMUNICATION": { # "C-SHIFT COMMUNICATION": {
"columns": [ # "columns": [
"S.No", "C-SHIFT COMMUNICATION" # "S.No", "C-SHIFT COMMUNICATION"
], # ],
"query": { # "query": {
"CShiftCommunication": [ # "CShiftCommunication": [
ACPQuery.CShiftCommunication.QUERY_1, # ACPQuery.CShiftCommunication.QUERY_1,
], # ],
}, # },
"data": [], # "data": [],
"data_column": [ # "data_column": [
"s_no", "a_shift_comm" # "s_no", "a_shift_comm"
], # ],
}, # },
"C SHIFTWISE DATA": { # "C SHIFTWISE DATA": {
"columns": [ # "columns": [
"MOULD", "SET VALUE", "FIELD WT" # "MOULD", "SET VALUE", "FIELD WT"
], # ],
"query": { # "query": {
"CShiftwiseData": [ # "CShiftwiseData": [
ACPQuery.CShiftwiseData.QUERY_1, # ACPQuery.CShiftwiseData.QUERY_1,
] # ]
}, # },
"data": [], # "data": [],
"data_column": [ # "data_column": [
"mould", "set_value", "field_wt" # "mould", "set_value", "field_wt"
], # ],
"addition": { # "addition": {
"merge_header": "SHIFTWISE DATA" # "merge_header": "SHIFTWISE DATA"
} # }
} # }
}, # },
{ # {
"PARAMETERS": { # "PARAMETERS": {
"columns": [ # "columns": [
"PARAMETERS", "RANGE", "VALUE" # "PARAMETERS", "RANGE", "VALUE"
], # ],
"query": { # "query": {
"Furnace1FoTemperature": [ # "Furnace1FoTemperature": [
ACPQuery.Furnace1FoTemperature.QUERY_1, # ACPQuery.Furnace1FoTemperature.QUERY_1,
], # ],
"FoOilPressure": [ # "FoOilPressure": [
ACPQuery.FoOilPressure.QUERY_1, # ACPQuery.FoOilPressure.QUERY_1,
], # ],
"Furnace1OilFlow": [ # "Furnace1OilFlow": [
ACPQuery.Furnace1OilFlow.QUERY_1, # ACPQuery.Furnace1OilFlow.QUERY_1,
], # ],
"Furnace2OilFlow": [ # "Furnace2OilFlow": [
ACPQuery.Furnace2OilFlow.QUERY_1, # ACPQuery.Furnace2OilFlow.QUERY_1,
], # ],
"MeltTemperature": [ # "MeltTemperature": [
# ACPQuery.MeltTemperature.QUERY_1,
# ],
# "MouldTemperature": [
# ACPQuery.MouldTemperature.QUERY_1,
# ],
# "LpgVapourizerTemperature": [
# ACPQuery.LpgVapourizerTemperature.QUERY_1,
# ],
# "LaunderBlowerAirPressure": [
# ACPQuery.LaunderBlowerAirPressure.QUERY_1,
# ],
# "Furnace1ShellTemperature": [
# ACPQuery.Furnace1ShellTemperature.QUERY_1,
# ],
# "Furnace2ShellTemperature": [
# ACPQuery.Furnace2ShellTemperature.QUERY_1,
# ],
# "BariumSulphateSolutionSpecificGravity": [
# ACPQuery.BariumSulphateSolutionSpecificGravity.QUERY_1,
# ],
# "MouldAlignmentLevel": [
# ACPQuery.MouldAlignmentLevel.QUERY_1,
# ],
# "HeatNoArsenicA": [
# ACPQuery.HeatNoArsenicA.QUERY_1,
# ],
# "HeatNoArsenicB": [
# ACPQuery.HeatNoArsenicB.QUERY_1,
# ],
# "HeatNoArsenicC": [
# ACPQuery.HeatNoArsenicC.QUERY_1,
# ]
# },
# "data": [],
# "data_column": [
# "parameters", "range", "value"
# ],
# },
# },
# {
# "FURNACE SHIFT A": {
# "columns": [
# "FURNACE", "BURNER 1", "BURNER 2", "BURNER 3"
# ],
# "query": {
# "FurnaceShiftA": [
# ACPQuery.FurnaceShiftA.QUERY_1,
# ],
# },
# "data": [],
# "data_column": [
# "furnace", "burner_1", "burner_2", "burner_3"
# ],
# "addition": {
# "merge_header": "SHIFT - A DATA"
# }
# },
# "FURNACE SHIFT B": {
# "columns": [
# "FURNACE", "BURNER 1", "BURNER 2", "BURNER 3"
# ],
# "query": {
# "FurnaceShiftB": [
# ACPQuery.FurnaceShiftB.QUERY_1,
# ],
# },
# "data": [],
# "data_column": [
# "furnace", "burner_1", "burner_2", "burner_3"
# ],
# "addition": {
# "merge_header": "SHIFT - B DATA"
# }
# },
# "FURNACE SHIFT C": {
# "columns": [
# "FURNACE", "BURNER 1", "BURNER 2", "BURNER 3"
# ],
# "query": {
# "FurnaceShiftC": [
# ACPQuery.FurnaceShiftC.QUERY_1,
# ],
# },
# "data": [],
# "data_column": [
# "furnace", "burner_1", "burner_2", "burner_3"
# ],
# "addition": {
# "merge_header": "SHIFT - C DATA"
# }
# }
# }
],
"MouldTemperature": [
ACPQuery.MouldTemperature.QUERY_1,
],
"LpgVapourizerTemperature": [
ACPQuery.LpgVapourizerTemperature.QUERY_1,
],
"LaunderBlowerAirPressure": [
ACPQuery.LaunderBlowerAirPressure.QUERY_1,
],
"Furnace1ShellTemperature": [
ACPQuery.Furnace1ShellTemperature.QUERY_1,
],
"Furnace2ShellTemperature": [
ACPQuery.Furnace2ShellTemperature.QUERY_1,
],
"BariumSulphateSolutionSpecificGravity": [
ACPQuery.BariumSulphateSolutionSpecificGravity.QUERY_1,
],
"MouldAlignmentLevel": [
ACPQuery.MouldAlignmentLevel.QUERY_1,
],
"HeatNoArsenicA": [
ACPQuery.HeatNoArsenicA.QUERY_1,
],
"HeatNoArsenicB": [
ACPQuery.HeatNoArsenicB.QUERY_1,
],
"HeatNoArsenicC": [
ACPQuery.HeatNoArsenicC.QUERY_1,
]
},
"data": [],
"data_column": [
"parameters", "range", "value"
],
},
}
] ]
...@@ -3,6 +3,7 @@ from scripts.core.db.postgres.custom_report_query import SterliteRefineryQuery ...@@ -3,6 +3,7 @@ from scripts.core.db.postgres.custom_report_query import SterliteRefineryQuery
class SterliteRefineryTemplate: class SterliteRefineryTemplate:
""" HEADER STYLING FORMAT """
WORKSHEET_HEADER_FORMAT = { WORKSHEET_HEADER_FORMAT = {
"bold": True, "bold": True,
"align": "center", "align": "center",
...@@ -12,6 +13,8 @@ class SterliteRefineryTemplate: ...@@ -12,6 +13,8 @@ class SterliteRefineryTemplate:
"border": 1, "border": 1,
'font_size': '20', 'font_size': '20',
} }
""" COLUMN HEADER FORMAT """
COLUMN_HEADER_FORMAT = { COLUMN_HEADER_FORMAT = {
"bold": True, "bold": True,
"align": "center", "align": "center",
...@@ -25,6 +28,8 @@ class SterliteRefineryTemplate: ...@@ -25,6 +28,8 @@ class SterliteRefineryTemplate:
"align": "center", "align": "center",
"valign": "center", "valign": "center",
} }
""" REPORT TEMPLATE """
REPORT_TEMPLATE = [ REPORT_TEMPLATE = [
{ {
"CATHODE PRODUCTION REVISED": { "CATHODE PRODUCTION REVISED": {
......
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