Commit f0aa3dde authored by suryakant's avatar suryakant

Sterlite Custom Report Updates

parent fb0f8019
......@@ -11,13 +11,13 @@ class SterliteRefineryQuery:
'%' AS UOM,
AVG(ANODE.AA_PLANNED) AS NORMS,
(SUM(ANODE.NUMERATOR) / NULLIF(SUM(DENOMINATOR), 0)) * 100 AS ON_DATE
FROM
(SELECT ACTUAL.AA_NUMO AS NUMERATOR,
ACTUAL.AA_DENO AS DENOMINATOR,
PLAN.AA_PLANNED,
COALESCE(ACTUAL.DATE,
PLAN.DATE) AS date
FROM SEMANTIC_PROD.REFINERY_ANODE_AVAILABILITY_ACTUAL_VIEW ACTUAL
FULL JOIN
......@@ -41,10 +41,10 @@ class SterliteRefineryQuery:
DD_1.MNTH = DATE_PART('month', M_PLAN.POSTING_DATE)
AND DD_1.YR = DATE_PART('year', M_PLAN.POSTING_DATE))PLAN
ON ACTUAL.DATE = PLAN.DATE)ANODE
WHERE
DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY
1,2;
"""
......@@ -151,10 +151,10 @@ class SterliteRefineryQuery:
MAX(CASE
WHEN LOWER(TRIM(KPI)) = 'liberator_cells_actual' THEN METRIC_VALUE END)
AS YTD
FROM
SEMANTIC_PROD.BANKS_CELLS_LIBERATORS_VIEW
GROUP BY
1,2
"""
......@@ -167,7 +167,7 @@ class SterliteRefineryQuery:
'No.' AS UOM,
MAX(NORMS) AS NORMS,
MAX(METRIC_VALUE) AS ON_DATE
FROM
(SELECT KPI,
CASE
......@@ -192,7 +192,7 @@ class SterliteRefineryQuery:
'Total Cells In Operation' AS ANODE_AVAILABILITY,
'No.' AS UOM,
MAX(METRIC_VALUE) AS MTD
FROM
(SELECT KPI,
CASE
......@@ -244,7 +244,7 @@ class SterliteRefineryQuery:
WHEN LOWER(TRIM(KPI)) = 'near miss' THEN 'No. of Near Miss'
ELSE NULL
END AS safety_report,
'No.' AS UOM,
0 AS NORMS,
ROUND(SUM(METRIC_VALUE), 2) AS ON_DATE
......@@ -337,291 +337,105 @@ class SterliteRefineryQuery:
GROUP BY 1,2,3
"""
class GridPowerAvailability:
""" POWER AVAILABILITY """
QUERY_1 = """
SELECT
first_tbl.power_availability,
first_tbl.uom,
first_tbl.norms,
first_tbl.on_date,
second_tbl.mtd,
third_tbl.ytd
FROM
(select
'Grid Power Availability' as power_availability,
'%' as UOM,
avg(grid_plan) as norms,
avg(grid_actual) as on_date
from(
select dd_1.date_dt as date,
plan.grid_plan,
case when actual.grid_actual is null then 100 else actual.grid_actual
end as grid_actual
from(
select date(date) as posting_date,
area_ics_head_value::double precision as grid_plan
from semantic_prod.area_ics_head_refinery_norms
where lower(trim(area_ics_head_select)) = 'grid power availability'
and date_part('day',date) = 1
group by 1,2
)plan
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_1 ON dd_1.mnth = date_part('month',
plan.posting_date)
and dd_1.yr = date_part('year',plan.posting_date)
left join(
select date(date) as posting_date,
max(case when lower(trim(loss_or_gain_shutdown_rectifier)) = 'both'
then ((24 - coalesce(loss_or_gain_shutdown_duration::double precision,
0)) / 24) * 100
else null end) as grid_actual
from semantic_prod.shutdown_details
group by 1
)actual on dd_1.date_dt = actual.posting_date
)grid_data
where date between '{day_start_date}' AND '{day_end_date}'
group by 1,2) as first_tbl
JOIN
(
select
'Grid Power Availability' as power_availability,
'%' as UOM,
avg(grid_actual) as mtd
from(
select dd_1.date_dt as date,
plan.grid_plan,
case when actual.grid_actual is null then 100 else actual.grid_actual
end as grid_actual
from(
select date(date) as posting_date,
area_ics_head_value::double precision as grid_plan
from semantic_prod.area_ics_head_refinery_norms
where lower(trim(area_ics_head_select)) = 'grid power availability'
and date_part('day',date) = 1
group by 1,2
)plan
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_1 ON dd_1.mnth = date_part('month',
plan.posting_date)
and dd_1.yr = date_part('year',plan.posting_date)
left join(
select date(date) as posting_date,
max(case when lower(trim(loss_or_gain_shutdown_rectifier)) = 'both'
then ((24 - coalesce(loss_or_gain_shutdown_duration::double precision,
0)) / 24) * 100
else null end) as grid_actual
from semantic_prod.shutdown_details
group by 1
)actual on dd_1.date_dt = actual.posting_date
)grid_data
where date between '{month_start_date}' AND '{month_end_date}'
group by 1,2
) as second_tbl
ON first_tbl.power_availability=second_tbl.power_availability
JOIN
(
select
'Grid Power Availability' as power_availability,
'%' as UOM,
avg(grid_actual) as ytd
from(
select dd_1.date_dt as date,
plan.grid_plan,
case when actual.grid_actual is null then 100 else actual.grid_actual
end as grid_actual
from(
select date(date) as posting_date,
area_ics_head_value::double precision as grid_plan
from semantic_prod.area_ics_head_refinery_norms
where lower(trim(area_ics_head_select)) = 'grid power availability'
and date_part('day',date) = 1
group by 1,2
)plan
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_1 ON dd_1.mnth = date_part('month',
plan.posting_date)
and dd_1.yr = date_part('year',plan.posting_date)
left join(
select date(date) as posting_date,
max(case when lower(trim(loss_or_gain_shutdown_rectifier)) = 'both'
then ((24 - coalesce(loss_or_gain_shutdown_duration::double precision,
0)) / 24) * 100
else null end) as grid_actual
from semantic_prod.shutdown_details
group by 1
)actual on dd_1.date_dt = actual.posting_date
)grid_data
where date between '{year_start_date}' AND '{year_end_date}'
group by 1,2
) as third_tbl
ON second_tbl.power_availability=third_tbl.power_availability
"""
class Cir140KARectifierAvgCurrent:
""" POWER AVAILABILITY """
QUERY_1 = """
SELECT
first_tbl.power_availability,
first_tbl.uom,
first_tbl.norms,
ROUND(first_tbl.on_date :: NUMERIC, 2) on_date,
ROUND(second_tbl.mtd :: NUMERIC, 2) mtd,
ROUND(third_tbl.ytd :: NUMERIC, 2) ytd
FROM
(SELECT
'Cir-1 40 KA Rectifier Avg. Current' AS power_availability,
'KAmp' AS uom,
AVG(PLAN_METRIC_VALUE) AS norms,
SUM(ACTUAL_METRIC_VALUE) / COALESCE(NULLIF(COUNT(
CASE
SELECT
'Cir-1 40 KA Rectifier Avg. Current' AS power_availability,
'KAmp' AS uom,
AVG(PLAN_METRIC_VALUE) AS norms,
SUM(ACTUAL_METRIC_VALUE) / COALESCE(NULLIF(COUNT(
CASE
WHEN ACTUAL_METRIC_VALUE <> 0 THEN 1
ELSE NULL END), 0), 1) AS on_date
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) = '40ka_rectifier_current'
AND date between '{day_start_date}' AND '{day_end_date}'
group by 1,2) as first_tbl
JOIN
(SELECT
'Cir-1 40 KA Rectifier Avg. Current' AS power_availability,
'KAmp' AS uom,
SUM(ACTUAL_METRIC_VALUE) / COALESCE(NULLIF(COUNT(
CASE
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) = '40ka_rectifier_current'
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY 1,2
"""
QUERY_2 = """
SELECT
'Cir-1 40 KA Rectifier Avg. Current' AS power_availability,
'KAmp' AS uom,
SUM(ACTUAL_METRIC_VALUE) / COALESCE(NULLIF(COUNT(
CASE
WHEN ACTUAL_METRIC_VALUE <> 0 THEN 1
ELSE NULL END), 0), 1) AS mtd
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) = '40ka_rectifier_current'
AND date between '{month_start_date}' AND '{month_end_date}'
group by 1,2) as second_tbl
ON first_tbl.power_availability=second_tbl.power_availability
JOIN
(SELECT
'Cir-1 40 KA Rectifier Avg. Current' AS power_availability,
'KAmp' AS uom,
SUM(ACTUAL_METRIC_VALUE) / COALESCE(NULLIF(COUNT(
CASE
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) = '40ka_rectifier_current'
AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}'
GROUP BY 1,2
"""
QUERY_3 = """
SELECT
'Cir-1 40 KA Rectifier Avg. Current' AS power_availability,
'KAmp' AS uom,
SUM(ACTUAL_METRIC_VALUE) / COALESCE(NULLIF(COUNT(
CASE
WHEN ACTUAL_METRIC_VALUE <> 0 THEN 1
ELSE NULL END), 0), 1) AS ytd
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) = '40ka_rectifier_current'
AND date between '{year_start_date}' AND '{year_end_date}'
group by 1,2) as third_tbl
ON second_tbl.power_availability=third_tbl.power_availability
"""
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) = '40ka_rectifier_current'
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY 1,2
"""
class Cir235KARectifierAvgCurrent:
""" POWER AVAILABILITY """
QUERY_1 = """
SELECT
first_tbl.power_availability,
first_tbl.uom,
first_tbl.norms,
ROUND(first_tbl.on_date :: NUMERIC, 2) on_date,
ROUND(second_tbl.mtd :: NUMERIC, 2) mtd,
ROUND(third_tbl.ytd :: NUMERIC, 2) ytd
FROM
(SELECT
'Cir-2 35 KA Rectifier Avg. Current' AS power_availability,
'KAmp' AS uom,
AVG(PLAN_METRIC_VALUE) AS norms,
SUM(ACTUAL_METRIC_VALUE) / COALESCE(NULLIF(COUNT(
SELECT
'Cir-2 35 KA Rectifier Avg. Current' AS power_availability,
'KAmp' AS uom,
AVG(PLAN_METRIC_VALUE) AS norms,
SUM(ACTUAL_METRIC_VALUE) / COALESCE(NULLIF(COUNT(
CASE
WHEN ACTUAL_METRIC_VALUE <> 0
THEN 1 ELSE NULL END), 0), 1)
AS on_date
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) = '35ka_rectifier_current'
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) = '35ka_rectifier_current'
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY 1,2) as first_tbl
JOIN
(SELECT
'Cir-2 35 KA Rectifier Avg. Current' AS power_availability,
'KAmp' AS uom,
SUM(ACTUAL_METRIC_VALUE) / COALESCE(NULLIF(COUNT(
GROUP BY 1,2
"""
QUERY_2 = """
SELECT
'Cir-2 35 KA Rectifier Avg. Current' AS power_availability,
'KAmp' AS uom,
SUM(ACTUAL_METRIC_VALUE) / COALESCE(NULLIF(COUNT(
CASE
WHEN ACTUAL_METRIC_VALUE <> 0
THEN 1 ELSE NULL END), 0), 1)
AS mtd
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) = '35ka_rectifier_current'
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) = '35ka_rectifier_current'
AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}'
GROUP BY 1,2) as second_tbl
ON first_tbl.power_availability=second_tbl.power_availability
JOIN
(SELECT
'Cir-2 35 KA Rectifier Avg. Current' AS power_availability,
'KAmp' AS uom,
SUM(ACTUAL_METRIC_VALUE) / COALESCE(NULLIF(COUNT(
GROUP BY 1,2
"""
QUERY_3 = """
SELECT
'Cir-2 35 KA Rectifier Avg. Current' AS power_availability,
'KAmp' AS uom,
SUM(ACTUAL_METRIC_VALUE) / COALESCE(NULLIF(COUNT(
CASE
WHEN ACTUAL_METRIC_VALUE <> 0
THEN 1 ELSE NULL END), 0), 1)
AS ytd
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) = '35ka_rectifier_current'
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) = '35ka_rectifier_current'
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY 1,2) as third_tbl
ON second_tbl.power_availability=third_tbl.power_availability
"""
GROUP BY 1,2
"""
class TotalAvgCurrent:
""" POWER AVAILABILITY """
QUERY_1 = """
SELECT
first_tbl.power_availability,
first_tbl.uom,
first_tbl.norms,
ROUND(first_tbl.on_date :: NUMERIC, 2) on_date,
ROUND(second_tbl.mtd :: NUMERIC, 2) mtd,
ROUND(third_tbl.ytd :: NUMERIC, 2) ytd
FROM
(SELECT
SELECT
'Total Avg. Current' AS power_availability,
'KAmp' AS uom,
AVG(PLAN_METRIC_VALUE) AS norms,
......@@ -632,12 +446,12 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) in
('40ka_rectifier_current', '35ka_rectifier_current')
AND date between '{day_start_date}' AND '{day_end_date}'
group by 1,2) as first_tbl
JOIN
(SELECT
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY 1,2
"""
QUERY_2 = """
SELECT
'Total Avg. Current' AS power_availability,
'KAmp' AS uom,
SUM(ACTUAL_METRIC_VALUE) / COALESCE(NULLIF(COUNT(
......@@ -647,14 +461,12 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) in
('40ka_rectifier_current', '35ka_rectifier_current')
AND date between '{month_start_date}' AND '{month_end_date}'
group by 1,2) as second_tbl
ON first_tbl.power_availability=second_tbl.power_availability
JOIN
(SELECT
AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}'
GROUP BY 1,2
"""
QUERY_3 = """
SELECT
'Total Avg. Current' AS power_availability,
'KAmp' AS uom,
SUM(ACTUAL_METRIC_VALUE) / COALESCE(NULLIF(COUNT(
......@@ -664,70 +476,47 @@ class SterliteRefineryQuery:
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) in
('40ka_rectifier_current', '35ka_rectifier_current')
AND date between '{year_start_date}' AND '{year_end_date}'
group by 1,2) as third_tbl
ON second_tbl.power_availability=third_tbl.power_availability
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY 1,2
"""
class CurrentDensity:
""" POWER AVAILABILITY """
QUERY_1 = """
SELECT
first_tbl.power_availability,
first_tbl.uom,
first_tbl.norms,
ROUND(first_tbl.on_date :: NUMERIC, 2) on_date,
ROUND(second_tbl.mtd :: NUMERIC, 2) mtd,
ROUND(third_tbl.ytd :: NUMERIC, 2) ytd
FROM
(SELECT
'Current Density' AS power_availability,
'Amp / m2' AS uom,
AVG(NUMO_PLAN) AS norms,
AVG(NUMO_ACTUAL) AS on_date
FROM SEMANTIC_PROD.CE_CD_TE_DETAILED_VIEW CCTDV2
WHERE
LOWER(TRIM(CATEGORY)) = 'cd'
AND date between '{day_start_date}' AND '{day_end_date}'
) as first_tbl
JOIN
(SELECT
'Current Density' AS power_availability,
'Amp / m2' AS uom,
AVG(NUMO_PLAN) AS norms,
AVG(NUMO_ACTUAL) AS mtd
FROM SEMANTIC_PROD.CE_CD_TE_DETAILED_VIEW CCTDV2
WHERE
LOWER(TRIM(CATEGORY)) = 'cd'
AND date between '{month_start_date}' AND '{month_end_date}'
) as second_tbl
ON first_tbl.power_availability=second_tbl.power_availability
JOIN
SELECT
'Current Density' AS power_availability,
'Amp / m2' AS uom,
AVG(NUMO_PLAN) AS norms,
AVG(NUMO_ACTUAL) AS on_date
(SELECT
'Current Density' AS power_availability,
'Amp / m2' AS uom,
AVG(NUMO_PLAN) AS norms,
AVG(NUMO_ACTUAL) AS ytd
FROM SEMANTIC_PROD.CE_CD_TE_DETAILED_VIEW CCTDV2
WHERE
LOWER(TRIM(CATEGORY)) = 'cd'
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
"""
QUERY_2 = """
SELECT
'Current Density' AS power_availability,
'Amp / m2' AS uom,
AVG(NUMO_ACTUAL) AS mtd
FROM SEMANTIC_PROD.CE_CD_TE_DETAILED_VIEW CCTDV2
WHERE
LOWER(TRIM(CATEGORY)) = 'cd'
AND date between '{year_start_date}' AND '{year_end_date}'
) as third_tbl
FROM SEMANTIC_PROD.CE_CD_TE_DETAILED_VIEW CCTDV2
WHERE
LOWER(TRIM(CATEGORY)) = 'cd'
AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}'
"""
QUERY_3 = """
SELECT
'Current Density' AS power_availability,
'Amp / m2' AS uom,
AVG(NUMO_ACTUAL) AS ytd
ON second_tbl.power_availability=third_tbl.power_availability
"""
FROM SEMANTIC_PROD.CE_CD_TE_DETAILED_VIEW CCTDV2
WHERE
LOWER(TRIM(CATEGORY)) = 'cd'
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
"""
class EdgeStripConsumption:
""" SPECIFIC CONSUMPTION """
......@@ -1394,7 +1183,7 @@ class SterliteRefineryQuery:
'35 KA Rectifier Efficiency' AS efficiencies,
'%' AS uom,
AVG(PLAN_METRIC_VALUE) AS norms,
SUM(ACTUAL_METRIC_VALUE) / COALESCE(NULLIF(COUNT(CASE
WHEN ACTUAL_METRIC_VALUE <> 0 THEN 1
ELSE NULL END), 0), 1) AS on_date
......@@ -1410,7 +1199,7 @@ class SterliteRefineryQuery:
SELECT
'35 KA Rectifier Efficiency' AS efficiencies,
'%' AS uom,
SUM(ACTUAL_METRIC_VALUE) / COALESCE(NULLIF(COUNT(CASE
WHEN ACTUAL_METRIC_VALUE <> 0 THEN 1
ELSE NULL END), 0), 1) AS mtd
......@@ -1446,7 +1235,7 @@ class SterliteRefineryQuery:
'%' AS uom,
MAX(NORMS) AS norms,
MAX(METRIC_VALUE) AS on_date
FROM
(SELECT KPI,
CASE
......@@ -1455,15 +1244,15 @@ class SterliteRefineryQuery:
* 100
ELSE NULL
END AS METRIC_VALUE,
CASE
WHEN LOWER(TRIM(KPI)) = 'spent_anode_gen_plan'
THEN AVG(METRIC_NUMERATOR)
ELSE NULL
END AS NORMS
FROM SEMANTIC_PROD.REFINERY_SPENT_ANODE_GEN_RATE
WHERE LOWER(TRIM(KPI)) in
('spent_anode_gen_actual', 'spent_anode_gen_plan')
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
......@@ -1535,9 +1324,9 @@ class SterliteRefineryQuery:
SELECT
PRODUCT as fg_inventory,
SUM(CURRENT_STOCK) AS on_date
FROM SEMANTIC_PROD.INVENTORY_FG_RM_WIP_VIEW
WHERE LOWER(CATEGORY_OF_GOODS) like ('fg%')
AND LOWER(PRODUCT) in
('cathode')
......
......@@ -79,9 +79,7 @@ class SterliteRefineryTemplate:
"YTD",
],
"query": {
"Grid Power Availability": [
SterliteRefineryQuery.GridPowerAvailability.QUERY_1,
],
"Grid Power Availability": [],
"Cir 1 Avg. Rectifier Running Hrs.": [],
"Cir 2 Avg. Rectifier Running Hrs.": [],
"Power Availability to Cir-1": [],
......@@ -89,15 +87,23 @@ class SterliteRefineryTemplate:
"Power Availability to Cell House": [],
"Cir-1 40 KA Rectifier Avg. Current": [
SterliteRefineryQuery.Cir140KARectifierAvgCurrent.QUERY_1,
SterliteRefineryQuery.Cir140KARectifierAvgCurrent.QUERY_2,
SterliteRefineryQuery.Cir140KARectifierAvgCurrent.QUERY_3,
],
"Cir-2 35 KA Rectifier Avg. Current": [
SterliteRefineryQuery.Cir235KARectifierAvgCurrent.QUERY_1,
SterliteRefineryQuery.Cir235KARectifierAvgCurrent.QUERY_2,
SterliteRefineryQuery.Cir235KARectifierAvgCurrent.QUERY_3,
],
"Total Avg. Current": [
SterliteRefineryQuery.TotalAvgCurrent.QUERY_1,
SterliteRefineryQuery.TotalAvgCurrent.QUERY_2,
SterliteRefineryQuery.TotalAvgCurrent.QUERY_3,
],
"Current Density": [
SterliteRefineryQuery.CurrentDensity.QUERY_1,
SterliteRefineryQuery.CurrentDensity.QUERY_2,
SterliteRefineryQuery.CurrentDensity.QUERY_3,
]
},
"data": [],
......
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