Commit 1ebecec7 authored by suryakant's avatar suryakant

Sterlite Custom Report Updates

parent ab7ce150
......@@ -2269,3 +2269,387 @@ class SterliteRefineryQuery:
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY 1,2;
"""
class PowerAvailabilityCir1:
""" POWER AVAILABILITY """
QUERY_1 = """
SELECT
'Power Availability to Cir-1' AS power_availability,
'%' AS uom,
ROUND(AVG(AREA_ICS_HEAD_VALUE)::NUMERIC, 2) AS norms,
ROUND(AVG(RHRSPCT)::NUMERIC, 2) AS on_date
FROM
(SELECT CIRCULATION,
DATE(DATETIME) AS date,
(OPERATION_HOURS / 24) * 100 AS RHRSPCT
FROM SEMANTIC_PROD.DCS_DATA DD
WHERE OPERATION_HOURS IS NOT NULL) DCS
LEFT JOIN
(SELECT DATE(date) AS DATETIME,
AREA_ICS_HEAD_SELECT,
AREA_ICS_HEAD_VALUE,
AREA_ICS_HEAD_UOM
FROM SEMANTIC_PROD.AREA_ICS_HEAD_REFINERY_NORMS
WHERE LOWER(TRIM(AREA_ICS_HEAD_SELECT))
LIKE ('%Power Availability%')
AND AREA_ICS_HEAD_VALUE IS NOT NULL
AND DATE_PART('day',
DATE(date)) = 1) RLB ON EXTRACT(MONTH
FROM date) = EXTRACT(MONTH
FROM DATE(RLB.DATETIME))
AND EXTRACT(YEAR
FROM date) = EXTRACT(YEAR
FROM DATE(RLB.DATETIME))
WHERE CIRCULATION = 'Circulation 1'
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY 1,2;
"""
QUERY_2 = """
SELECT
'Power Availability to Cir-1' AS power_availability,
'%' AS uom,
ROUND(AVG(RHRSPCT)::NUMERIC, 2) AS mtd
FROM
(SELECT CIRCULATION,
DATE(DATETIME) AS date,
(OPERATION_HOURS / 24) * 100 AS RHRSPCT
FROM SEMANTIC_PROD.DCS_DATA DD
WHERE OPERATION_HOURS IS NOT NULL) DCS
LEFT JOIN
(SELECT DATE(date) AS DATETIME,
AREA_ICS_HEAD_SELECT,
AREA_ICS_HEAD_VALUE,
AREA_ICS_HEAD_UOM
FROM SEMANTIC_PROD.AREA_ICS_HEAD_REFINERY_NORMS
WHERE LOWER(TRIM(AREA_ICS_HEAD_SELECT))
LIKE ('%Power Availability%')
AND AREA_ICS_HEAD_VALUE IS NOT NULL
AND DATE_PART('day',
DATE(date)) = 1) RLB ON EXTRACT(MONTH
FROM date) = EXTRACT(MONTH
FROM DATE(RLB.DATETIME))
AND EXTRACT(YEAR
FROM date) = EXTRACT(YEAR
FROM DATE(RLB.DATETIME))
WHERE CIRCULATION = 'Circulation 1'
AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}'
GROUP BY 1,2;
"""
QUERY_3 = """
SELECT
'Power Availability to Cir-1' AS power_availability,
'%' AS uom,
ROUND(AVG(RHRSPCT)::NUMERIC, 2) AS ytd
FROM
(SELECT CIRCULATION,
DATE(DATETIME) AS date,
(OPERATION_HOURS / 24) * 100 AS RHRSPCT
FROM SEMANTIC_PROD.DCS_DATA DD
WHERE OPERATION_HOURS IS NOT NULL) DCS
LEFT JOIN
(SELECT DATE(date) AS DATETIME,
AREA_ICS_HEAD_SELECT,
AREA_ICS_HEAD_VALUE,
AREA_ICS_HEAD_UOM
FROM SEMANTIC_PROD.AREA_ICS_HEAD_REFINERY_NORMS
WHERE LOWER(TRIM(AREA_ICS_HEAD_SELECT))
LIKE ('%Power Availability%')
AND AREA_ICS_HEAD_VALUE IS NOT NULL
AND DATE_PART('day',
DATE(date)) = 1) RLB ON EXTRACT(MONTH
FROM date) = EXTRACT(MONTH
FROM DATE(RLB.DATETIME))
AND EXTRACT(YEAR
FROM date) = EXTRACT(YEAR
FROM DATE(RLB.DATETIME))
WHERE CIRCULATION = 'Circulation 1'
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY 1,2;
"""
class PowerAvailabilityCir2:
""" POWER AVAILABILITY """
QUERY_1 = """
SELECT
'Power Availability to Cir-2' AS power_availability,
'%' AS uom,
ROUND(AVG(AREA_ICS_HEAD_VALUE)::NUMERIC, 2) AS norms,
ROUND(AVG(RHRSPCT)::NUMERIC, 2) AS on_date
FROM
(SELECT CIRCULATION,
DATE(DATETIME) AS date,
(OPERATION_HOURS / 24) * 100 AS RHRSPCT
FROM SEMANTIC_PROD.DCS_DATA DD
WHERE OPERATION_HOURS IS NOT NULL) DCS
LEFT JOIN
(SELECT DATE(date) AS DATETIME,
AREA_ICS_HEAD_SELECT,
AREA_ICS_HEAD_VALUE,
AREA_ICS_HEAD_UOM
FROM SEMANTIC_PROD.AREA_ICS_HEAD_REFINERY_NORMS
WHERE LOWER(TRIM(AREA_ICS_HEAD_SELECT)) like ('%Power Availability%')
AND AREA_ICS_HEAD_VALUE IS NOT NULL
AND DATE_PART('day',
DATE(date)) = 1) RLB ON EXTRACT(MONTH
FROM date) = EXTRACT(MONTH
FROM DATE(RLB.DATETIME))
AND EXTRACT(YEAR
FROM date) = EXTRACT(YEAR
FROM DATE(RLB.DATETIME))
WHERE CIRCULATION = 'Circulation 2'
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY 1,2;
"""
QUERY_2 = """
SELECT
'Power Availability to Cir-2' AS power_availability,
'%' AS uom,
ROUND(AVG(RHRSPCT)::NUMERIC, 2) AS mtd
FROM
(SELECT CIRCULATION,
DATE(DATETIME) AS date,
(OPERATION_HOURS / 24) * 100 AS RHRSPCT
FROM SEMANTIC_PROD.DCS_DATA DD
WHERE OPERATION_HOURS IS NOT NULL) DCS
LEFT JOIN
(SELECT DATE(date) AS DATETIME,
AREA_ICS_HEAD_SELECT,
AREA_ICS_HEAD_VALUE,
AREA_ICS_HEAD_UOM
FROM SEMANTIC_PROD.AREA_ICS_HEAD_REFINERY_NORMS
WHERE LOWER(TRIM(AREA_ICS_HEAD_SELECT)) like ('%Power Availability%')
AND AREA_ICS_HEAD_VALUE IS NOT NULL
AND DATE_PART('day',
DATE(date)) = 1) RLB ON EXTRACT(MONTH
FROM date) = EXTRACT(MONTH
FROM DATE(RLB.DATETIME))
AND EXTRACT(YEAR
FROM date) = EXTRACT(YEAR
FROM DATE(RLB.DATETIME))
WHERE CIRCULATION = 'Circulation 2'
AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}'
GROUP BY 1,2;
"""
QUERY_3 = """
SELECT
'Power Availability to Cir-2' AS power_availability,
'%' AS uom,
ROUND(AVG(RHRSPCT)::NUMERIC, 2) AS ytd
FROM
(SELECT CIRCULATION,
DATE(DATETIME) AS date,
(OPERATION_HOURS / 24) * 100 AS RHRSPCT
FROM SEMANTIC_PROD.DCS_DATA DD
WHERE OPERATION_HOURS IS NOT NULL) DCS
LEFT JOIN
(SELECT DATE(date) AS DATETIME,
AREA_ICS_HEAD_SELECT,
AREA_ICS_HEAD_VALUE,
AREA_ICS_HEAD_UOM
FROM SEMANTIC_PROD.AREA_ICS_HEAD_REFINERY_NORMS
WHERE LOWER(TRIM(AREA_ICS_HEAD_SELECT)) like ('%Power Availability%')
AND AREA_ICS_HEAD_VALUE IS NOT NULL
AND DATE_PART('day',
DATE(date)) = 1) RLB ON EXTRACT(MONTH
FROM date) = EXTRACT(MONTH
FROM DATE(RLB.DATETIME))
AND EXTRACT(YEAR
FROM date) = EXTRACT(YEAR
FROM DATE(RLB.DATETIME))
WHERE CIRCULATION = 'Circulation 2'
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY 1,2;
"""
class PowerAvailabilityCellHouse:
""" POWER AVAILABILITY """
QUERY_1 = """
SELECT
'Power Availability to Cell House' AS power_availability,
'%' AS uom,
ROUND(AVG(AREA_ICS_HEAD_VALUE)::NUMERIC, 2) AS norms,
ROUND(AVG(CIRPCTG)::NUMERIC, 2) AS on_date
FROM
(SELECT CIRCULATION,
DATE(DATETIME) AS date,
(AVG(OPERATION_HOURS) / 24) * 100 AS CIRPCTG
FROM SEMANTIC_PROD.DCS_DATA DD
WHERE OPERATION_HOURS IS NOT NULL
GROUP BY 1,2) DCS
LEFT JOIN
(SELECT DATE(date) AS DATETIME,
AREA_ICS_HEAD_SELECT,
AREA_ICS_HEAD_VALUE,
AREA_ICS_HEAD_UOM
FROM SEMANTIC_PROD.AREA_ICS_HEAD_REFINERY_NORMS
WHERE LOWER(TRIM(AREA_ICS_HEAD_SELECT)) like ('%power availability%')
AND AREA_ICS_HEAD_VALUE IS NOT NULL
AND DATE_PART('day',
DATE(date)) = 1) RLB ON EXTRACT(MONTH
FROM date) = EXTRACT(MONTH
FROM DATE(RLB.DATETIME))
AND EXTRACT(YEAR
FROM date) = EXTRACT(YEAR
FROM DATE(RLB.DATETIME))
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY 1,2;
"""
QUERY_2 = """
SELECT
'Power Availability to Cell House' AS power_availability,
'%' AS uom,
ROUND(AVG(CIRPCTG)::NUMERIC, 2) AS mtd
FROM
(SELECT CIRCULATION,
DATE(DATETIME) AS date,
(AVG(OPERATION_HOURS) / 24) * 100 AS CIRPCTG
FROM SEMANTIC_PROD.DCS_DATA DD
WHERE OPERATION_HOURS IS NOT NULL
GROUP BY 1,2) DCS
LEFT JOIN
(SELECT DATE(date) AS DATETIME,
AREA_ICS_HEAD_SELECT,
AREA_ICS_HEAD_VALUE,
AREA_ICS_HEAD_UOM
FROM SEMANTIC_PROD.AREA_ICS_HEAD_REFINERY_NORMS
WHERE LOWER(TRIM(AREA_ICS_HEAD_SELECT)) like ('%power availability%')
AND AREA_ICS_HEAD_VALUE IS NOT NULL
AND DATE_PART('day',
DATE(date)) = 1) RLB ON EXTRACT(MONTH
FROM date) = EXTRACT(MONTH
FROM DATE(RLB.DATETIME))
AND EXTRACT(YEAR
FROM date) = EXTRACT(YEAR
FROM DATE(RLB.DATETIME))
AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}'
GROUP BY 1,2;
"""
QUERY_3 = """
SELECT
'Power Availability to Cell House' AS power_availability,
'%' AS uom,
ROUND(AVG(CIRPCTG)::NUMERIC, 2) AS ytd
FROM
(SELECT CIRCULATION,
DATE(DATETIME) AS date,
(AVG(OPERATION_HOURS) / 24) * 100 AS CIRPCTG
FROM SEMANTIC_PROD.DCS_DATA DD
WHERE OPERATION_HOURS IS NOT NULL
GROUP BY 1,2) DCS
LEFT JOIN
(SELECT DATE(date) AS DATETIME,
AREA_ICS_HEAD_SELECT,
AREA_ICS_HEAD_VALUE,
AREA_ICS_HEAD_UOM
FROM SEMANTIC_PROD.AREA_ICS_HEAD_REFINERY_NORMS
WHERE LOWER(TRIM(AREA_ICS_HEAD_SELECT)) like ('%power availability%')
AND AREA_ICS_HEAD_VALUE IS NOT NULL
AND DATE_PART('day',
DATE(date)) = 1) RLB ON EXTRACT(MONTH
FROM date) = EXTRACT(MONTH
FROM DATE(RLB.DATETIME))
AND EXTRACT(YEAR
FROM date) = EXTRACT(YEAR
FROM DATE(RLB.DATETIME))
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY 1,2;
"""
class Cir1Cir2:
""" CIRCULATION """
QUERY_1 = """
SELECT CASE
WHEN "substring"(BTRIM(REFINERY_PRODUCTION_SELECT),
'\d+$'::text)::numeric >= 1::numeric
AND "substring"(BTRIM(REFINERY_PRODUCTION_SELECT),
'\d+$'::text)::numeric <= 10::numeric THEN 'cir_1'::text
WHEN "substring"(BTRIM(REFINERY_PRODUCTION_SELECT),
'\d+$'::text)::numeric >= 11::numeric
AND "substring"(BTRIM(REFINERY_PRODUCTION_SELECT),
'\d+$'::text)::numeric <= 22::numeric THEN 'cir_2'::text
END AS circulation,
ROUND(AVG(REFINARY_PRODUCTION_CE)::NUMERIC, 2) AS ce,
ROUND(SUM(REFINARY_PRODUCTION_THEORETICAL_WEIGHT)::NUMERIC, 3)
AS theor_weight,
ROUND(SUM(REFINARY_PRODUCTION_ACTUAL_WEIGHT)::NUMERIC, 3)
AS actual_weight
FROM SEMANTIC_PROD.BANKWISE_REFINERY_PRODUCTION
WHERE REFINERY_PRODUCTION_SELECT IS NOT NULL
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY 1;
"""
class TotalCirculation:
""" CIRCULATION """
QUERY_1 = """
SELECT
'Total' AS circulation,
ROUND(AVG(REFINARY_PRODUCTION_CE)::NUMERIC, 2) AS ce,
ROUND(SUM(REFINARY_PRODUCTION_THEORETICAL_WEIGHT)::NUMERIC, 3)
AS theor_weight,
ROUND(SUM(REFINARY_PRODUCTION_ACTUAL_WEIGHT)::NUMERIC, 3)
AS actual_weight
FROM SEMANTIC_PROD.BANKWISE_REFINERY_PRODUCTION
WHERE REFINERY_PRODUCTION_SELECT IS NOT NULL
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY 1;
"""
class CropCir:
""" CROP Cir 1, 2.. """
QUERY_1 = """
SELECT
CONCAT('Cir-', SUBSTRING(TRIM(DCS.CIR)
FROM '\d+$'), ' Crop-', SUBSTRING(TRIM(DCS.CROP_NO::text)
FROM '\d+$')) AS crop,
COUNT(1) AS banks,
SUM(CELLS.CELL_COUNT) AS total_cells,
AVG(DCS.AVG_CELL_VOLTAGE) AS cell_voltage,
SUM(NO_OF_SHORTS) AS t_shorts
FROM
(SELECT DATE(DATETIME) AS date,
TRIM(CIRCULATION) AS CIR,
MAX(CROP_NO) AS CROP_NO,
TRIM(BANK) AS BANK,
MAX(AVERAGE_CELL_VOLTAGE::double precision) AS AVG_CELL_VOLTAGE,
MAX(NO_OF_SHORTS::double precision) AS NO_OF_SHORTS
FROM SEMANTIC_PROD.DCS_DATA DD
WHERE LOWER(TRIM(BANK)) like 'bank%'
AND LOWER(TRIM(CIRCULATION)) in ('circulation 1',
'circulation 2')
GROUP BY 1,2,
4)DCS
LEFT JOIN
(SELECT DATE(date) AS date,
TRIM(BANK) AS BANK,
CELL_COUNT::double precision
FROM SEMANTIC_PROD.NO_OF_BANK_CELLS NOBC
GROUP BY 1,2,
3)CELLS ON DCS.DATE = CELLS.DATE
AND TRIM(DCS.BANK) = TRIM(CELLS.BANK)
WHERE DCS.DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY 1;
"""
......@@ -94,6 +94,21 @@ class SterliteRefineryTemplate:
SterliteRefineryQuery.Circulation2.QUERY_2,
SterliteRefineryQuery.Circulation2.QUERY_3,
],
"Power Availability to Cir-1": [
SterliteRefineryQuery.PowerAvailabilityCir1.QUERY_1,
SterliteRefineryQuery.PowerAvailabilityCir1.QUERY_2,
SterliteRefineryQuery.PowerAvailabilityCir1.QUERY_3,
],
"Power Availability to Cir-2": [
SterliteRefineryQuery.PowerAvailabilityCir2.QUERY_1,
SterliteRefineryQuery.PowerAvailabilityCir2.QUERY_2,
SterliteRefineryQuery.PowerAvailabilityCir2.QUERY_3,
],
"Power Availability to Cell House": [
SterliteRefineryQuery.PowerAvailabilityCellHouse.QUERY_1,
SterliteRefineryQuery.PowerAvailabilityCellHouse.QUERY_2,
SterliteRefineryQuery.PowerAvailabilityCellHouse.QUERY_3,
],
"Cir-1 40 KA Rectifier Avg. Current": [
SterliteRefineryQuery.Cir140KARectifierAvgCurrent.QUERY_1,
SterliteRefineryQuery.Cir140KARectifierAvgCurrent.QUERY_2,
......@@ -217,7 +232,14 @@ class SterliteRefineryTemplate:
},
"CIRCULATION": {
"columns": ["CIRCULATION", "CE%", "THEOR. WEIGHT", "ACTUAL WEIGHT"],
"query": [],
"query": {
"Cir1Cir2": [
SterliteRefineryQuery.Cir1Cir2.QUERY_1,
],
"TotalCirculation": [
SterliteRefineryQuery.TotalCirculation.QUERY_1,
]
},
"data": [],
"data_column": ["circulation", "ce", "theor_weight", "actual_weight"],
},
......@@ -252,7 +274,7 @@ class SterliteRefineryTemplate:
},
"PRODUCTION": {
"columns": ["PRODUCTION", "ON DATE", "MTD", "YTD"],
"query": [],
"query": {},
"data": [],
"data_column": ["production", "on_date", "mtd", "ytd"],
},
......@@ -266,7 +288,11 @@ class SterliteRefineryTemplate:
"CELL VOLTAGE (V)",
"T. SHORTS / CELL / CHECK",
],
"query": [],
"query": {
"CROP": [
SterliteRefineryQuery.CropCir.QUERY_1,
]
},
"data": [],
"data_column": ["crop", "banks", "total_cells",
"cell_voltage", "t_shorts"],
......@@ -277,7 +303,7 @@ class SterliteRefineryTemplate:
"ON DATE",
"TILL DATE"
],
"query": [],
"query": {},
"data": [],
"data_column": [
"category",
......@@ -296,7 +322,7 @@ class SterliteRefineryTemplate:
"3rd CROP",
"CSM Plate Rejection"
],
"query": [],
"query": {},
"data": [],
"data_column": [
"stripping_time",
......
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