Commit ec94d16c authored by suryakant's avatar suryakant

Query Update

parent 4ad7037b
...@@ -53,6 +53,7 @@ class CommonConstants: ...@@ -53,6 +53,7 @@ class CommonConstants:
FREQUENCY = 'D' FREQUENCY = 'D'
START_COLUMN = 0 START_COLUMN = 0
START_ROW = 2 START_ROW = 2
OVERALL_COLUMN_WIDTH = 25
class ReportType: class ReportType:
......
...@@ -2,7 +2,110 @@ class SterliteRefineryQuery: ...@@ -2,7 +2,110 @@ class SterliteRefineryQuery:
""" """
Refinery report queries 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: class AnodeAvailability:
""" ANODE AVAILABILITY """ """ ANODE AVAILABILITY """
QUERY_1 = """ QUERY_1 = """
...@@ -1878,7 +1981,7 @@ class SterliteRefineryQuery: ...@@ -1878,7 +1981,7 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW
WHERE LOWER(KPI) in WHERE LOWER(KPI) in
( (
'cathode_production_actual', 'cathode_production_actual'
) )
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}' AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY GROUP BY
...@@ -1892,7 +1995,7 @@ class SterliteRefineryQuery: ...@@ -1892,7 +1995,7 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW
WHERE LOWER(KPI) in WHERE LOWER(KPI) in
( (
'cathode_production_actual', 'cathode_production_actual'
) )
AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}' AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}'
GROUP BY GROUP BY
...@@ -1906,7 +2009,7 @@ class SterliteRefineryQuery: ...@@ -1906,7 +2009,7 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW
WHERE LOWER(KPI) in WHERE LOWER(KPI) in
( (
'cathode_production_actual', 'cathode_production_actual'
) )
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}' AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY GROUP BY
...@@ -1965,7 +2068,7 @@ class SterliteRefineryQuery: ...@@ -1965,7 +2068,7 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW
WHERE LOWER(KPI) in WHERE LOWER(KPI) in
( (
'niso4_production_actual', 'niso4_production_actual'
) )
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}' AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY GROUP BY
...@@ -1979,7 +2082,7 @@ class SterliteRefineryQuery: ...@@ -1979,7 +2082,7 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW
WHERE LOWER(KPI) in WHERE LOWER(KPI) in
( (
'niso4_production_actual', 'niso4_production_actual'
) )
AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}' AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}'
GROUP BY GROUP BY
...@@ -1993,7 +2096,7 @@ class SterliteRefineryQuery: ...@@ -1993,7 +2096,7 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW
WHERE LOWER(KPI) in WHERE LOWER(KPI) in
( (
'niso4_production_actual', 'niso4_production_actual'
) )
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}' AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY GROUP BY
...@@ -2052,7 +2155,7 @@ class SterliteRefineryQuery: ...@@ -2052,7 +2155,7 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW
WHERE LOWER(KPI) in WHERE LOWER(KPI) in
( (
'slime_production_actual', 'slime_production_actual'
) )
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}' AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY GROUP BY
...@@ -2066,7 +2169,7 @@ class SterliteRefineryQuery: ...@@ -2066,7 +2169,7 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW
WHERE LOWER(KPI) in WHERE LOWER(KPI) in
( (
'slime_production_actual', 'slime_production_actual'
) )
AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}' AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}'
GROUP BY GROUP BY
...@@ -2080,7 +2183,7 @@ class SterliteRefineryQuery: ...@@ -2080,7 +2183,7 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW
WHERE LOWER(KPI) in WHERE LOWER(KPI) in
( (
'slime_production_actual', 'slime_production_actual'
) )
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}' AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY GROUP BY
...@@ -2139,7 +2242,7 @@ class SterliteRefineryQuery: ...@@ -2139,7 +2242,7 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW
WHERE LOWER(KPI) in WHERE LOWER(KPI) in
( (
'cuso4_production_actual', 'cuso4_production_actual'
) )
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}' AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY GROUP BY
...@@ -2153,7 +2256,7 @@ class SterliteRefineryQuery: ...@@ -2153,7 +2256,7 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW
WHERE LOWER(KPI) in WHERE LOWER(KPI) in
( (
'cuso4_production_actual', 'cuso4_production_actual'
) )
AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}' AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}'
GROUP BY GROUP BY
...@@ -2167,7 +2270,7 @@ class SterliteRefineryQuery: ...@@ -2167,7 +2270,7 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW FROM SEMANTIC_PROD.PRODUCTION_KPI_VIEW
WHERE LOWER(KPI) in WHERE LOWER(KPI) in
( (
'cuso4_production_actual', 'cuso4_production_actual'
) )
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}' AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY GROUP BY
...@@ -2934,6 +3037,30 @@ class SterliteRefineryQuery: ...@@ -2934,6 +3037,30 @@ class SterliteRefineryQuery:
GROUP BY 1,2 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: class CsmPlateRejection:
""" CSM Plate Rejection """ """ CSM Plate Rejection """
QUERY_1 = """ QUERY_1 = """
...@@ -6073,3 +6200,41 @@ class SterliteRefineryQuery: ...@@ -6073,3 +6200,41 @@ class SterliteRefineryQuery:
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}' AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY 1)TB 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: ...@@ -146,6 +146,8 @@ 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)
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', [])
data_frame = pd.DataFrame(data) data_frame = pd.DataFrame(data)
...@@ -249,6 +251,11 @@ class CustomReportHandler: ...@@ -249,6 +251,11 @@ class CustomReportHandler:
worksheet.merge_range(1, 1, 0, total_column - 1, worksheet.merge_range(1, 1, 0, total_column - 1,
ReportType.REFINERY_WORKSHEET_NAME, ReportType.REFINERY_WORKSHEET_NAME,
main_header_format) 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}") logger.info(f"Report completed for: {each_date_range}")
except GeneralException as err: except GeneralException as err:
......
...@@ -9,6 +9,7 @@ class SterliteRefineryTemplate: ...@@ -9,6 +9,7 @@ class SterliteRefineryTemplate:
"fg_color": "#e6e7eb", "fg_color": "#e6e7eb",
"font_color": "#1b314f", "font_color": "#1b314f",
"border": 1, "border": 1,
'font_size': '20',
} }
COLUMN_HEADER_FORMAT = { COLUMN_HEADER_FORMAT = {
"bold": True, "bold": True,
...@@ -19,6 +20,37 @@ class SterliteRefineryTemplate: ...@@ -19,6 +20,37 @@ class SterliteRefineryTemplate:
"border": 1, "border": 1,
} }
REPORT_TEMPLATE = [ 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": { "ANODE AVAILABILITY": {
"columns": [ "columns": [
...@@ -391,7 +423,35 @@ class SterliteRefineryTemplate: ...@@ -391,7 +423,35 @@ class SterliteRefineryTemplate:
"data_column": [ "data_column": [
"filter_availability", "uom", "norms", "on_date", "mtd", "ytd" "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": { "SPECIFIC ENERGY CONSUMPTION": {
...@@ -539,11 +599,31 @@ class SterliteRefineryTemplate: ...@@ -539,11 +599,31 @@ class SterliteRefineryTemplate:
"cir_2", "cir_2",
], ],
}, },
"SUSPENDED SOLIDS": { "SUSPENDED SOLIDS 1": {
"columns": ["SUSPENDED SOLIDS"], "columns": [
"query": [], "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": [],
"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