Commit ec94d16c authored by suryakant's avatar suryakant

Query Update

parent 4ad7037b
......@@ -53,6 +53,7 @@ class CommonConstants:
FREQUENCY = 'D'
START_COLUMN = 0
START_ROW = 2
OVERALL_COLUMN_WIDTH = 25
class ReportType:
......
......@@ -2,7 +2,110 @@ class SterliteRefineryQuery:
"""
Refinery report queries
"""
class CathodeProductionRevised:
""" CATHODE PRODUCTION REVISED """
QUERY_1 = """
SELECT
METRIC_VALUE as cathode_production_revised,
uom
FROM
(SELECT DD.DATE_DT AS date,
CASE
WHEN LOWER(TRIM(AREA_ICS_HEAD_REFINERY_DATA_SELECT)) =
'cathode production plan' THEN 'Cathode Production Revised'
WHEN LOWER(TRIM(AREA_ICS_HEAD_REFINERY_DATA_SELECT)) =
'deposit' THEN 'Deposit Revised'
ELSE NULL
END AS KPI,
'MT' AS UOM,
CASE
WHEN LOWER(TRIM(AREA_ICS_HEAD_REFINERY_DATA_SELECT)) =
'cathode production plan' THEN
COALESCE(AREA_ICS_HEAD_REFINERY_DATA_VALUE::double precision,
0)
WHEN LOWER(TRIM(AREA_ICS_HEAD_REFINERY_DATA_SELECT)) =
'deposit' THEN COALESCE(AREA_ICS_HEAD_REFINERY_DATA_VALUE::double precision,
0)
ELSE NULL
END AS METRIC_VALUE
FROM SEMANTIC_PROD.AREA_ICS_HEAD_REFINERY_DATA AIHRD
LEFT JOIN
(SELECT DIM_DATE.DATE_DT,
DIM_DATE.MONTH_OF_YR_NUM AS MNTH,
DIM_DATE.YR_NAME AS YR
FROM SEMANTIC_PROD.DIM_DATE) DD ON DATE_PART('month',
DATE(AIHRD.DATE)) = DD.MNTH
AND DATE_PART('year',
DATE(AIHRD.DATE)) = DD.YR
WHERE LOWER(TRIM(AIHRD.AREA_ICS_HEAD_REFINERY_DATA_SELECT))
in
(
'cathode production plan'
)
AND DATE_PART('day',
DATE(AIHRD.DATE)) = 1 )TB
WHERE DATE='{day_start_date}'
"""
class DepositRevised:
""" DEPOSIT REVISED """
QUERY_1 = """
SELECT
METRIC_VALUE as deposit_revised
FROM
(SELECT DD.DATE_DT AS date,
CASE
WHEN LOWER(TRIM(AREA_ICS_HEAD_REFINERY_DATA_SELECT)) =
'cathode production plan' THEN 'Cathode Production Revised'
WHEN LOWER(TRIM(AREA_ICS_HEAD_REFINERY_DATA_SELECT)) =
'deposit' THEN 'Deposit Revised'
ELSE NULL
END AS KPI,
'MT' AS UOM,
CASE
WHEN LOWER(TRIM(AREA_ICS_HEAD_REFINERY_DATA_SELECT)) =
'cathode production plan' THEN
COALESCE(AREA_ICS_HEAD_REFINERY_DATA_VALUE::double precision,
0)
WHEN LOWER(TRIM(AREA_ICS_HEAD_REFINERY_DATA_SELECT)) =
'deposit' THEN COALESCE(AREA_ICS_HEAD_REFINERY_DATA_VALUE::double precision,
0)
ELSE NULL
END AS METRIC_VALUE
FROM SEMANTIC_PROD.AREA_ICS_HEAD_REFINERY_DATA AIHRD
LEFT JOIN
(SELECT DIM_DATE.DATE_DT,
DIM_DATE.MONTH_OF_YR_NUM AS MNTH,
DIM_DATE.YR_NAME AS YR
FROM SEMANTIC_PROD.DIM_DATE) DD ON DATE_PART('month',
DATE(AIHRD.DATE)) = DD.MNTH
AND DATE_PART('year',
DATE(AIHRD.DATE)) = DD.YR
WHERE LOWER(TRIM(AIHRD.AREA_ICS_HEAD_REFINERY_DATA_SELECT))
in
(
'deposit'
)
AND DATE_PART('day',
DATE(AIHRD.DATE)) = 1 )TB
WHERE DATE='{day_start_date}'
"""
class AnodeAvailability:
""" ANODE AVAILABILITY """
QUERY_1 = """
......@@ -1878,7 +1981,7 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW
WHERE LOWER(KPI) in
(
'cathode_production_actual',
'cathode_production_actual'
)
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY
......@@ -1892,7 +1995,7 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW
WHERE LOWER(KPI) in
(
'cathode_production_actual',
'cathode_production_actual'
)
AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}'
GROUP BY
......@@ -1906,7 +2009,7 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW
WHERE LOWER(KPI) in
(
'cathode_production_actual',
'cathode_production_actual'
)
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY
......@@ -1965,7 +2068,7 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW
WHERE LOWER(KPI) in
(
'niso4_production_actual',
'niso4_production_actual'
)
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY
......@@ -1979,7 +2082,7 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW
WHERE LOWER(KPI) in
(
'niso4_production_actual',
'niso4_production_actual'
)
AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}'
GROUP BY
......@@ -1993,7 +2096,7 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW
WHERE LOWER(KPI) in
(
'niso4_production_actual',
'niso4_production_actual'
)
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY
......@@ -2052,7 +2155,7 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW
WHERE LOWER(KPI) in
(
'slime_production_actual',
'slime_production_actual'
)
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY
......@@ -2066,7 +2169,7 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW
WHERE LOWER(KPI) in
(
'slime_production_actual',
'slime_production_actual'
)
AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}'
GROUP BY
......@@ -2080,7 +2183,7 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW
WHERE LOWER(KPI) in
(
'slime_production_actual',
'slime_production_actual'
)
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY
......@@ -2139,7 +2242,7 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW
WHERE LOWER(KPI) in
(
'cuso4_production_actual',
'cuso4_production_actual'
)
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY
......@@ -2153,7 +2256,7 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW
WHERE LOWER(KPI) in
(
'cuso4_production_actual',
'cuso4_production_actual'
)
AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}'
GROUP BY
......@@ -2167,7 +2270,7 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW
WHERE LOWER(KPI) in
(
'cuso4_production_actual',
'cuso4_production_actual'
)
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY
......@@ -2934,6 +3037,30 @@ class SterliteRefineryQuery:
GROUP BY 1,2
"""
class FilteredVolume:
""" FILTERED VOLUME """
QUERY_1 = """
SELECT
ROUND(SUM(METRIC_VALUE)::NUMERIC, 2)
AS filter_availability
FROM SEMANTIC_PROD.REFINERY_FILTER_VOLUME_VIEW RFVV
WHERE LOWER(TRIM(KPI)) = 'filter_volume'
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
"""
class TotalVolumeRefinery:
""" TOTAL VOLUME REFINERY """
QUERY_1 = """
SELECT
ROUND(SUM(METRIC_VALUE)::NUMERIC, 2) AS total_volume_refinery
FROM SEMANTIC_PROD.REFINERY_FILTER_VOLUME_VIEW RFVV
WHERE LOWER(TRIM(KPI)) = 'total_refinery_volume'
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
"""
class CsmPlateRejection:
""" CSM Plate Rejection """
QUERY_1 = """
......@@ -6073,3 +6200,41 @@ class SterliteRefineryQuery:
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY 1)TB
"""
class SuspendedSolidsCir1:
""" SUSPENDED SOLIDS """
QUERY_1 = """
SELECT
CASE
WHEN TRIM(CIRCULATION::text) = '1' THEN PARAMETERS_NAME
ELSE NULL
END AS "cir_1",
MAX(CASE
WHEN TRIM(CIRCULATION::text) = '1' THEN
PARAMETERS_VALUES::double precision
END) AS cir_1_values
FROM SEMANTIC_PROD.FACT_CUSTOM_PARAMETERS FCP
WHERE TRIM(CIRCULATION::text) = '1'
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY 1
"""
class SuspendedSolidsCir2:
""" SUSPENDED SOLIDS """
QUERY_1 = """
SELECT CASE
WHEN TRIM(CIRCULATION::text) = '2' THEN PARAMETERS_NAME
ELSE NULL
END AS "cir_2",
MAX(CASE
WHEN TRIM(CIRCULATION::text) = '2' THEN
PARAMETERS_VALUES::double precision
END) AS cir_2_values
FROM SEMANTIC_PROD.FACT_CUSTOM_PARAMETERS FCP
WHERE TRIM(CIRCULATION::text) = '2'
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY 1
"""
......@@ -146,6 +146,8 @@ class CustomReportHandler:
logger.info("Iterating through each block to create a dataframe")
# Iterate through the categories and concatenate their data
print(input_json)
for category, category_data in input_json.items():
data = category_data.get('data', [])
data_frame = pd.DataFrame(data)
......@@ -249,6 +251,11 @@ class CustomReportHandler:
worksheet.merge_range(1, 1, 0, total_column - 1,
ReportType.REFINERY_WORKSHEET_NAME,
main_header_format)
# Setting width to the column
worksheet.set_column(0, total_column,
CommonConstants.OVERALL_COLUMN_WIDTH)
worksheet.set_text_wrap()
logger.info(f"Report completed for: {each_date_range}")
except GeneralException as err:
......
......@@ -9,6 +9,7 @@ class SterliteRefineryTemplate:
"fg_color": "#e6e7eb",
"font_color": "#1b314f",
"border": 1,
'font_size': '20',
}
COLUMN_HEADER_FORMAT = {
"bold": True,
......@@ -19,6 +20,37 @@ class SterliteRefineryTemplate:
"border": 1,
}
REPORT_TEMPLATE = [
{
"CATHODE PRODUCTION REVISED": {
"columns": [
"CATHODE PRODUCTION REVISED",
"UOM"
],
"query": {
"Cathode Production Revised": [
SterliteRefineryQuery.CathodeProductionRevised.QUERY_1,
]
},
"data": [],
"data_column": [
"cathode_production_revised", "uom"
],
},
"DEPOSIT REVISED": {
"columns": [
"DEPOSIT REVISED"
],
"query": {
"Deposit Revised": [
SterliteRefineryQuery.DepositRevised.QUERY_1,
]
},
"data": [],
"data_column": [
"deposit_revised"
],
},
},
{
"ANODE AVAILABILITY": {
"columns": [
......@@ -391,7 +423,35 @@ class SterliteRefineryTemplate:
"data_column": [
"filter_availability", "uom", "norms", "on_date", "mtd", "ytd"
],
}
},
"FILTERED VOLUME": {
"columns": [
"FILTERED VOLUME"
],
"query": {
"FilterAvailability": [
SterliteRefineryQuery.FilteredVolume.QUERY_1
]
},
"data": [],
"data_column": [
"filter_availability"
],
},
"TOTAL VOLUME REFINERY": {
"columns": [
"TOTAL VOLUME REFINERY"
],
"query": {
"TotalVolumeRefinery": [
SterliteRefineryQuery.TotalVolumeRefinery.QUERY_1
]
},
"data": [],
"data_column": [
"total_volume_refinery"
],
},
},
{
"SPECIFIC ENERGY CONSUMPTION": {
......@@ -539,11 +599,31 @@ class SterliteRefineryTemplate:
"cir_2",
],
},
"SUSPENDED SOLIDS": {
"columns": ["SUSPENDED SOLIDS"],
"query": [],
"SUSPENDED SOLIDS 1": {
"columns": [
"Cir-1: I/L",
"Cir-1: VALUES",
],
"query": {
"SuspendedSolidsCir1": [
SterliteRefineryQuery.SuspendedSolidsCir1.QUERY_1,
]
},
"data": [],
"data_column": ["cir_1", "cir_1_values"],
},
"SUSPENDED SOLIDS 2": {
"columns": [
"Cir-2: I/L",
"Cir-2: Values",
],
"query": {
"SuspendedSolidsCir2": [
SterliteRefineryQuery.SuspendedSolidsCir2.QUERY_1,
]
},
"data": [],
"data_column": ["suspended_solids"],
"data_column": ["cir_2", "cir_2_values"],
},
},
{
......
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