Commit 01bb1207 authored by suryakant's avatar suryakant

Query Update

parent 60eb2c4e
......@@ -53,7 +53,7 @@ class CommonConstants:
FREQUENCY = 'D'
START_COLUMN = 0
START_ROW = 2
OVERALL_COLUMN_WIDTH = 25
OVERALL_COLUMN_WIDTH = 27
class ReportType:
......
......@@ -693,8 +693,8 @@ class SterliteRefineryQuery:
QUERY_1 = """
SELECT CIRCULATION AS power_availability,
COALESCE(RLB.AREA_ICS_HEAD_UOM, 'Hrs') AS uom,
AVG(AREA_ICS_HEAD_VALUE) AS norms,
AVG(OPERATION_HOURS) AS on_date
ROUND(AVG(AREA_ICS_HEAD_VALUE)::NUMERIC, 2) AS norms,
ROUND(AVG(OPERATION_HOURS)::NUMERIC, 2) AS on_date
FROM
(SELECT CIRCULATION,
......@@ -726,7 +726,7 @@ class SterliteRefineryQuery:
QUERY_2 = """
SELECT CIRCULATION AS power_availability,
COALESCE(RLB.AREA_ICS_HEAD_UOM, 'Hrs') AS uom,
AVG(OPERATION_HOURS) AS mtd
ROUND(AVG(OPERATION_HOURS)::NUMERIC, 2) AS mtd
FROM
(SELECT CIRCULATION,
......@@ -759,7 +759,7 @@ class SterliteRefineryQuery:
QUERY_3 = """
SELECT CIRCULATION AS power_availability,
COALESCE(RLB.AREA_ICS_HEAD_UOM, 'Hrs') AS uom,
AVG(OPERATION_HOURS) AS ytd
ROUND(AVG(OPERATION_HOURS)::NUMERIC, 2) AS ytd
FROM
(SELECT CIRCULATION,
......@@ -796,11 +796,10 @@ class SterliteRefineryQuery:
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
ROUND(AVG(PLAN_METRIC_VALUE)::NUMERIC, 2) AS norms,
ROUND((SUM(ACTUAL_METRIC_VALUE) / COALESCE(NULLIF(COUNT(CASE WHEN
ACTUAL_METRIC_VALUE <> 0 THEN 1 ELSE NULL END), 0), 1))::NUMERIC, 2)
AS on_date
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) = '40ka_rectifier_current'
......@@ -811,10 +810,9 @@ class SterliteRefineryQuery:
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
ROUND((SUM(ACTUAL_METRIC_VALUE) / COALESCE(NULLIF(COUNT(CASE WHEN
ACTUAL_METRIC_VALUE <> 0 THEN 1 ELSE NULL END), 0), 1))::NUMERIC, 2)
AS mtd
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) = '40ka_rectifier_current'
......@@ -825,10 +823,9 @@ class SterliteRefineryQuery:
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
ROUND((SUM(ACTUAL_METRIC_VALUE) / COALESCE(NULLIF(COUNT(CASE WHEN
ACTUAL_METRIC_VALUE <> 0 THEN 1 ELSE NULL END), 0), 1))::NUMERIC, 2)
AS ytd
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) = '40ka_rectifier_current'
......@@ -842,11 +839,9 @@ class SterliteRefineryQuery:
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)
ROUND(AVG(PLAN_METRIC_VALUE)::NUMERIC, 2) AS norms,
ROUND((SUM(ACTUAL_METRIC_VALUE) / COALESCE(NULLIF(COUNT(CASE WHEN
ACTUAL_METRIC_VALUE <> 0 THEN 1 ELSE NULL END), 0), 1))::NUMERIC, 2)
AS on_date
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
......@@ -858,10 +853,8 @@ class SterliteRefineryQuery:
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)
ROUND((SUM(ACTUAL_METRIC_VALUE) / COALESCE(NULLIF(COUNT(CASE WHEN
ACTUAL_METRIC_VALUE <> 0 THEN 1 ELSE NULL END), 0), 1))::NUMERIC, 2)
AS mtd
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
......@@ -873,10 +866,8 @@ class SterliteRefineryQuery:
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)
ROUND((SUM(ACTUAL_METRIC_VALUE) / COALESCE(NULLIF(COUNT(CASE WHEN
ACTUAL_METRIC_VALUE <> 0 THEN 1 ELSE NULL END), 0), 1))::NUMERIC, 2)
AS ytd
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
......@@ -891,10 +882,10 @@ class SterliteRefineryQuery:
SELECT
'Total 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
ROUND(AVG(PLAN_METRIC_VALUE)::NUMERIC, 2) AS norms,
ROUND((SUM(ACTUAL_METRIC_VALUE) / COALESCE(NULLIF(COUNT(CASE WHEN
ACTUAL_METRIC_VALUE <> 0 THEN 1 ELSE NULL END), 0), 1))::NUMERIC, 2)
AS on_date
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) in
......@@ -907,9 +898,9 @@ class SterliteRefineryQuery:
SELECT
'Total 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
ROUND((SUM(ACTUAL_METRIC_VALUE) / COALESCE(NULLIF(COUNT(CASE WHEN
ACTUAL_METRIC_VALUE <> 0 THEN 1 ELSE NULL END), 0), 1))::NUMERIC, 2)
AS mtd
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) in
......@@ -922,9 +913,9 @@ class SterliteRefineryQuery:
SELECT
'Total 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
ROUND((SUM(ACTUAL_METRIC_VALUE) / COALESCE(NULLIF(COUNT(CASE WHEN
ACTUAL_METRIC_VALUE <> 0 THEN 1 ELSE NULL END), 0), 1))::NUMERIC, 2)
AS ytd
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) in
......@@ -940,8 +931,8 @@ class SterliteRefineryQuery:
SELECT
'Current Density' AS power_availability,
'Amp / m2' AS uom,
AVG(NUMO_PLAN) AS norms,
AVG(NUMO_ACTUAL) AS on_date
ROUND(AVG(NUMO_PLAN)::NUMERIC, 2) AS norms,
ROUND(AVG(NUMO_ACTUAL)::NUMERIC, 2) AS on_date
FROM SEMANTIC_PROD.CE_CD_TE_DETAILED_VIEW CCTDV2
WHERE
......@@ -952,7 +943,7 @@ class SterliteRefineryQuery:
SELECT
'Current Density' AS power_availability,
'Amp / m2' AS uom,
AVG(NUMO_ACTUAL) AS mtd
ROUND(AVG(NUMO_ACTUAL)::NUMERIC, 2) AS mtd
FROM SEMANTIC_PROD.CE_CD_TE_DETAILED_VIEW CCTDV2
WHERE
......@@ -963,7 +954,7 @@ class SterliteRefineryQuery:
SELECT
'Current Density' AS power_availability,
'Amp / m2' AS uom,
AVG(NUMO_ACTUAL) AS ytd
ROUND(AVG(NUMO_ACTUAL)::NUMERIC, 2) AS ytd
FROM SEMANTIC_PROD.CE_CD_TE_DETAILED_VIEW CCTDV2
WHERE
......@@ -975,16 +966,9 @@ class SterliteRefineryQuery:
""" RM ANODE RECEIPT DETAILS """
QUERY_1 = """
SELECT
KPI as rm_anode_receipt_details,
ROUND(SUM(METRIC_VALUE)::NUMERIC, 2) AS on_date
first_tbl.rm_anode_receipt_details,
first_tbl.on_date,
second_tbl.mtd,
third_tbl.ytd
FROM
(
SELECT kpi as rm_anode_receipt_details, SUM(METRIC_VALUE) AS on_date
FROM
(SELECT 'ACP Anode Receipt (MT)' AS KPI,
SUM(QUANTITY::double precision) AS METRIC_VALUE,
......@@ -1015,13 +999,12 @@ class SterliteRefineryQuery:
GROUP BY 1,3)TB
WHERE DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY 1
) as first_tbl
JOIN
"""
QUERY_2 = """
SELECT
KPI as rm_anode_receipt_details,
ROUND(SUM(METRIC_VALUE)::NUMERIC, 2) AS mtd
(
SELECT kpi as rm_anode_receipt_details,
SUM(METRIC_VALUE) AS mtd
FROM
(SELECT 'ACP Anode Receipt (MT)' AS KPI,
SUM(QUANTITY::double precision) AS METRIC_VALUE,
......@@ -1052,15 +1035,12 @@ class SterliteRefineryQuery:
GROUP BY 1,3)TB
WHERE DATE BETWEEN '{month_start_date}' AND '{month_end_date}'
GROUP BY 1
) as second_tbl
ON first_tbl.rm_anode_receipt_details=second_tbl.rm_anode_receipt_details
JOIN
"""
QUERY_3 = """
SELECT
KPI as rm_anode_receipt_details,
ROUND(SUM(METRIC_VALUE)::NUMERIC, 2) AS ytd
(
SELECT kpi as rm_anode_receipt_details,
SUM(METRIC_VALUE) AS ytd
FROM
(SELECT 'ACP Anode Receipt (MT)' AS KPI,
SUM(QUANTITY::double precision) AS METRIC_VALUE,
......@@ -1091,10 +1071,6 @@ class SterliteRefineryQuery:
GROUP BY 1,3)TB
WHERE DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY 1
) as third_tbl
ON second_tbl.rm_anode_receipt_details=third_tbl.rm_anode_receipt_details
"""
class BankCropStripping:
......@@ -1233,8 +1209,9 @@ class SterliteRefineryQuery:
'Current Efficiency' AS efficiencies,
'%' AS uom,
AVG(NUMO_PLAN) AS norms,
(SUM(NUMO_ACTUAL) / NULLIF(SUM(DENO_ACTUAL), 0)) * 100 AS
on_date
ROUND(((SUM(NUMO_ACTUAL) / NULLIF(SUM(DENO_ACTUAL), 0)) *
100)::NUMERIC, 2)
AS on_date
FROM SEMANTIC_PROD.CE_CD_TE_DETAILED_VIEW
......@@ -1246,8 +1223,8 @@ class SterliteRefineryQuery:
SELECT
'Current Efficiency' AS efficiencies,
'%' AS uom,
(SUM(NUMO_ACTUAL) / NULLIF(SUM(DENO_ACTUAL), 0)) * 100 AS
mtd
ROUND(((SUM(NUMO_ACTUAL) / NULLIF(SUM(DENO_ACTUAL), 0)) *
100)::NUMERIC, 2) AS mtd
FROM SEMANTIC_PROD.CE_CD_TE_DETAILED_VIEW
......@@ -1259,8 +1236,8 @@ class SterliteRefineryQuery:
SELECT
'Current Efficiency' AS efficiencies,
'%' AS uom,
(SUM(NUMO_ACTUAL) / NULLIF(SUM(DENO_ACTUAL), 0)) * 100 AS
ytd
ROUND(((SUM(NUMO_ACTUAL) / NULLIF(SUM(DENO_ACTUAL), 0)) *
100)::NUMERIC, 2) AS ytd
FROM SEMANTIC_PROD.CE_CD_TE_DETAILED_VIEW
......@@ -1275,8 +1252,8 @@ class SterliteRefineryQuery:
SELECT 'Time Efficiency' AS efficiencies,
'%' AS uom,
AVG(NUMO_PLAN) AS norms,
(SUM(NUMO_ACTUAL) / NULLIF(SUM(DENO_ACTUAL),0)) * 100
AS on_date
ROUND(((SUM(NUMO_ACTUAL) / NULLIF(SUM(DENO_ACTUAL), 0)) *
100)::NUMERIC, 2) AS on_date
FROM SEMANTIC_PROD.CE_CD_TE_DETAILED_VIEW
WHERE LOWER(TRIM(CATEGORY)) = 'te'
......@@ -1286,8 +1263,8 @@ class SterliteRefineryQuery:
QUERY_2 = """
SELECT 'Time Efficiency' AS efficiencies,
'%' AS uom,
(SUM(NUMO_ACTUAL) / NULLIF(SUM(DENO_ACTUAL),0)) * 100
AS mtd
ROUND(((SUM(NUMO_ACTUAL) / NULLIF(SUM(DENO_ACTUAL), 0)) *
100)::NUMERIC, 2) AS mtd
FROM SEMANTIC_PROD.CE_CD_TE_DETAILED_VIEW
WHERE LOWER(TRIM(CATEGORY)) = 'te'
......@@ -1295,9 +1272,11 @@ class SterliteRefineryQuery:
GROUP BY 1,2
"""
QUERY_3 = """
SELECT 'Time Efficiency' AS efficiencies,
SELECT
'Time Efficiency' AS efficiencies,
'%' AS uom,
(SUM(NUMO_ACTUAL) / NULLIF(SUM(DENO_ACTUAL),0)) * 100
ROUND(((SUM(NUMO_ACTUAL) / NULLIF(SUM(DENO_ACTUAL), 0)) *
100)::NUMERIC, 2)
AS ytd
FROM SEMANTIC_PROD.CE_CD_TE_DETAILED_VIEW
......
......@@ -174,7 +174,6 @@ 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', [])
......@@ -235,8 +234,10 @@ class CustomReportHandler:
start_row = CommonConstants.START_ROW
total_column = 0
workbook = writer.book
sheet_name = each_date_range[
CommonConstants.DAY_START_DATE]
sheet_name = datetime.strptime(each_date_range[
CommonConstants.DAY_START_DATE], "%Y-%m-%d").\
strftime("%d %b %Y")
worksheet = None
# Iterating over sterlite json file
......
......@@ -177,11 +177,16 @@ class SterliteRefineryTemplate:
"query": {
"AcpCcpcCcp": [
SterliteRefineryQuery.AcpCcpcCcp.QUERY_1,
SterliteRefineryQuery.AcpCcpcCcp.QUERY_2,
SterliteRefineryQuery.AcpCcpcCcp.QUERY_3,
]
},
"data": [],
"data_column": ["rm_anode_receipt_details", "on_date",
"mtd", "ytd"],
"addition": {
"primary": "rm_anode_receipt_details"
}
},
},
{
......
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