Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
sterlite_custom_reports
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
CI / CD Analytics
Repository Analytics
Value Stream Analytics
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
suryakant
sterlite_custom_reports
Commits
c74f4592
Commit
c74f4592
authored
Oct 09, 2023
by
suryakant
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Sterlite Custom Report Updates
parent
408a334a
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
507 additions
and
3 deletions
+507
-3
scripts/core/db/postgres/custom_report_query.py
scripts/core/db/postgres/custom_report_query.py
+453
-0
scripts/template/sterlite_report_template.py
scripts/template/sterlite_report_template.py
+54
-3
No files found.
scripts/core/db/postgres/custom_report_query.py
View file @
c74f4592
...
...
@@ -1049,3 +1049,456 @@ class SterliteRefineryQuery:
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY 1
"""
class
CurrentEfficiency
:
""" Efficiency """
QUERY_1
=
"""
SELECT
'Current Efficiency' AS efficiencies,
'
%
' AS uom,
AVG(NUMO_PLAN) AS norms,
(SUM(NUMO_ACTUAL) / NULLIF(SUM(DENO_ACTUAL), 0)) * 100 AS
on_date
FROM SEMANTIC_PROD.CE_CD_TE_DETAILED_VIEW
WHERE LOWER(TRIM(CATEGORY)) = 'ce'
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY 1,2
"""
QUERY_2
=
"""
SELECT
'Current Efficiency' AS efficiencies,
'
%
' AS uom,
(SUM(NUMO_ACTUAL) / NULLIF(SUM(DENO_ACTUAL), 0)) * 100 AS
mtd
FROM SEMANTIC_PROD.CE_CD_TE_DETAILED_VIEW
WHERE LOWER(TRIM(CATEGORY)) = 'ce'
AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}'
GROUP BY 1,2
"""
QUERY_3
=
"""
SELECT
'Current Efficiency' AS efficiencies,
'
%
' AS uom,
(SUM(NUMO_ACTUAL) / NULLIF(SUM(DENO_ACTUAL), 0)) * 100 AS
ytd
FROM SEMANTIC_PROD.CE_CD_TE_DETAILED_VIEW
WHERE LOWER(TRIM(CATEGORY)) = 'ce'
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY 1,2
"""
class
TimeEfficiency
:
""" Efficiency """
QUERY_1
=
"""
SELECT 'Time Efficiency' AS efficiencies,
'
%
' AS uom,
AVG(NUMO_PLAN) AS norms,
(SUM(NUMO_ACTUAL) / NULLIF(SUM(DENO_ACTUAL),0)) * 100
AS on_date
FROM SEMANTIC_PROD.CE_CD_TE_DETAILED_VIEW
WHERE LOWER(TRIM(CATEGORY)) = 'te'
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY 1,2
"""
QUERY_2
=
"""
SELECT 'Time Efficiency' AS efficiencies,
'
%
' AS uom,
(SUM(NUMO_ACTUAL) / NULLIF(SUM(DENO_ACTUAL),0)) * 100
AS mtd
FROM SEMANTIC_PROD.CE_CD_TE_DETAILED_VIEW
WHERE LOWER(TRIM(CATEGORY)) = 'te'
AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}'
GROUP BY 1,2
"""
QUERY_3
=
"""
SELECT 'Time Efficiency' AS efficiencies,
'
%
' AS uom,
(SUM(NUMO_ACTUAL) / NULLIF(SUM(DENO_ACTUAL),0)) * 100
AS ytd
FROM SEMANTIC_PROD.CE_CD_TE_DETAILED_VIEW
WHERE LOWER(TRIM(CATEGORY)) = 'te'
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY 1,2
"""
class
E40KARectifierEfficiency
:
""" Efficiency """
QUERY_1
=
"""
SELECT
'40 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
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) = '40ka_rectifier_efficiency'
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY 1,2
"""
QUERY_2
=
"""
SELECT
'40 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
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) = '40ka_rectifier_efficiency'
AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}'
GROUP BY 1,2
"""
QUERY_3
=
"""
SELECT
'40 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 ytd
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) = '40ka_rectifier_efficiency'
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY 1,2
"""
class
E35KARectifierEfficiency
:
""" Efficiency """
QUERY_1
=
"""
SELECT
'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
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) = '35ka_rectifier_efficiency'
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY 1,2
"""
QUERY_2
=
"""
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
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) = '35ka_rectifier_efficiency'
AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}'
GROUP BY 1,2
"""
QUERY_3
=
"""
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 ytd
FROM SEMANTIC_PROD.RECTIFIER_KPI_VIEW
WHERE LOWER(TRIM(KPI)) = '35ka_rectifier_efficiency'
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY 1,2
"""
class
SpentAnodeGenerationRate
:
""" Efficiency """
QUERY_1
=
"""
SELECT
'Spent Anode Generation Rate' efficiencies,
'
%
' AS uom,
MAX(NORMS) AS norms,
MAX(METRIC_VALUE) AS on_date
FROM
(SELECT KPI,
CASE
WHEN LOWER(TRIM(KPI)) = 'spent_anode_gen_actual'
THEN (SUM(METRIC_NUMERATOR) / NULLIF(SUM(METRIC_DENOMINATOR), 0))
* 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}'
GROUP BY 1)SPENT
GROUP BY 1,2
"""
QUERY_2
=
"""
SELECT
'Spent Anode Generation Rate' efficiencies,
'
%
' AS uom,
MAX(METRIC_VALUE) AS mtd
FROM
(SELECT KPI,
CASE
WHEN LOWER(TRIM(KPI)) = 'spent_anode_gen_actual'
THEN (SUM(METRIC_NUMERATOR) / NULLIF(SUM(METRIC_DENOMINATOR), 0))
* 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 '{month_start_date}' AND '{month_end_date}'
GROUP BY 1)SPENT
GROUP BY 1,2
"""
QUERY_3
=
"""
SELECT
'Spent Anode Generation Rate' efficiencies,
'
%
' AS uom,
MAX(METRIC_VALUE) AS ytd
FROM
(SELECT KPI,
CASE
WHEN LOWER(TRIM(KPI)) = 'spent_anode_gen_actual'
THEN (SUM(METRIC_NUMERATOR) / NULLIF(SUM(METRIC_DENOMINATOR), 0))
* 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 '{year_start_date}' AND '{year_end_date}'
GROUP BY 1)SPENT
GROUP BY 1,2
"""
class
Cathode
:
""" FG INVENTORY """
QUERY_1
=
"""
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')
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY 1
"""
QUERY_2
=
"""
SELECT
PRODUCT as fg_inventory,
SUM(CURRENT_STOCK) AS mtd
FROM SEMANTIC_PROD.INVENTORY_FG_RM_WIP_VIEW
WHERE LOWER(CATEGORY_OF_GOODS) like ('fg
%
')
AND LOWER(PRODUCT) in
('cathode')
AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}'
GROUP BY 1
"""
QUERY_3
=
"""
SELECT
PRODUCT as fg_inventory,
SUM(CURRENT_STOCK) AS ytd
FROM SEMANTIC_PROD.INVENTORY_FG_RM_WIP_VIEW
WHERE LOWER(CATEGORY_OF_GOODS) like ('fg
%
')
AND LOWER(PRODUCT) in
('cathode')
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY 1
"""
class
NiSO4
:
""" FG INVENTORY """
QUERY_1
=
"""
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
('niso4')
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY 1
"""
QUERY_2
=
"""
SELECT
PRODUCT as fg_inventory,
SUM(CURRENT_STOCK) AS mtd
FROM SEMANTIC_PROD.INVENTORY_FG_RM_WIP_VIEW
WHERE LOWER(CATEGORY_OF_GOODS) like ('fg
%
')
AND LOWER(PRODUCT) in
('niso4')
AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}'
GROUP BY 1
"""
QUERY_3
=
"""
SELECT
PRODUCT as fg_inventory,
SUM(CURRENT_STOCK) AS ytd
FROM SEMANTIC_PROD.INVENTORY_FG_RM_WIP_VIEW
WHERE LOWER(CATEGORY_OF_GOODS) like ('fg
%
')
AND LOWER(PRODUCT) in
('niso4')
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY 1
"""
class
RawSlime
:
""" FG INVENTORY """
QUERY_1
=
"""
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
('slime')
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY 1
"""
QUERY_2
=
"""
SELECT
PRODUCT as fg_inventory,
SUM(CURRENT_STOCK) AS mtd
FROM SEMANTIC_PROD.INVENTORY_FG_RM_WIP_VIEW
WHERE LOWER(CATEGORY_OF_GOODS) like ('fg
%
')
AND LOWER(PRODUCT) in
('slime')
AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}'
GROUP BY 1
"""
QUERY_3
=
"""
SELECT
PRODUCT as fg_inventory,
SUM(CURRENT_STOCK) AS ytd
FROM SEMANTIC_PROD.INVENTORY_FG_RM_WIP_VIEW
WHERE LOWER(CATEGORY_OF_GOODS) like ('fg
%
')
AND LOWER(PRODUCT) in
('slime')
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY 1
"""
class
CuSo4
:
""" FG INVENTORY """
QUERY_1
=
"""
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
('cuso4')
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY 1
"""
QUERY_2
=
"""
SELECT
PRODUCT as fg_inventory,
SUM(CURRENT_STOCK) AS mtd
FROM SEMANTIC_PROD.INVENTORY_FG_RM_WIP_VIEW
WHERE LOWER(CATEGORY_OF_GOODS) like ('fg
%
')
AND LOWER(PRODUCT) in
('cuso4')
AND DATE BETWEEN '{month_start_date}' AND '{month_end_date}'
GROUP BY 1
"""
QUERY_3
=
"""
SELECT
PRODUCT as fg_inventory,
SUM(CURRENT_STOCK) AS ytd
FROM SEMANTIC_PROD.INVENTORY_FG_RM_WIP_VIEW
WHERE LOWER(CATEGORY_OF_GOODS) like ('fg
%
')
AND LOWER(PRODUCT) in
('cuso4')
AND DATE BETWEEN '{year_start_date}' AND '{year_end_date}'
GROUP BY 1
"""
class
ElectrolyteComposition
:
""" ELECTROLYTE COMPOSITION """
QUERY_1
=
"""
SELECT
ELECTROLYTE_COMPOSITION AS electrolyte_composition,
MAX(UOM) AS uom,
MAX(NORMS) AS norms,
TO_CHAR(TO_DATE('{day_start_date}', 'YYYY-MM-DD'), 'DD-Mon') as date,
AVG(CIR_1) AS cir_1,
AVG(CIR_2) AS cir_2
FROM SEMANTIC_PROD.ELECTROLYTE_COMPOSITION_VIEW ECV
WHERE DATE = '{day_start_date}'
GROUP BY 1
"""
scripts/template/sterlite_report_template.py
View file @
c74f4592
...
...
@@ -117,7 +117,33 @@ class SterliteRefineryTemplate:
{
"EFFICIENCIES"
:
{
"columns"
:
[
"EFFICIENCIES"
,
"UOM"
,
"NORMS"
,
"ON DATE"
,
"MTD"
,
"YTD"
],
"query"
:
[],
"query"
:
{
"CurrentEfficiency"
:
[
SterliteRefineryQuery
.
CurrentEfficiency
.
QUERY_1
,
SterliteRefineryQuery
.
CurrentEfficiency
.
QUERY_2
,
SterliteRefineryQuery
.
CurrentEfficiency
.
QUERY_3
,
],
"TimeEfficiency"
:
[
SterliteRefineryQuery
.
TimeEfficiency
.
QUERY_1
,
SterliteRefineryQuery
.
TimeEfficiency
.
QUERY_2
,
SterliteRefineryQuery
.
TimeEfficiency
.
QUERY_3
,
],
"E40KARectifierEfficiency"
:
[
SterliteRefineryQuery
.
E40KARectifierEfficiency
.
QUERY_1
,
SterliteRefineryQuery
.
E40KARectifierEfficiency
.
QUERY_2
,
SterliteRefineryQuery
.
E40KARectifierEfficiency
.
QUERY_3
,
],
"E35KARectifierEfficiency"
:
[
SterliteRefineryQuery
.
E35KARectifierEfficiency
.
QUERY_1
,
SterliteRefineryQuery
.
E35KARectifierEfficiency
.
QUERY_2
,
SterliteRefineryQuery
.
E35KARectifierEfficiency
.
QUERY_3
,
],
"SpentAnodeGenerationRate"
:
[
SterliteRefineryQuery
.
SpentAnodeGenerationRate
.
QUERY_1
,
SterliteRefineryQuery
.
SpentAnodeGenerationRate
.
QUERY_2
,
SterliteRefineryQuery
.
SpentAnodeGenerationRate
.
QUERY_3
,
]
},
"data"
:
[],
"data_column"
:
[
"efficiencies"
,
"uom"
,
"norms"
,
"on_date"
,
"mtd"
,
"ytd"
],
...
...
@@ -158,7 +184,28 @@ class SterliteRefineryTemplate:
{
"FG INVENTORY"
:
{
"columns"
:
[
"FG INVENTORY"
,
"ON DATE"
,
"MTD"
,
"YTD"
],
"query"
:
[],
"query"
:
{
"Cathode"
:
[
SterliteRefineryQuery
.
Cathode
.
QUERY_1
,
SterliteRefineryQuery
.
Cathode
.
QUERY_2
,
SterliteRefineryQuery
.
Cathode
.
QUERY_3
,
],
"NiSO4"
:
[
SterliteRefineryQuery
.
NiSO4
.
QUERY_1
,
SterliteRefineryQuery
.
NiSO4
.
QUERY_2
,
SterliteRefineryQuery
.
NiSO4
.
QUERY_3
,
],
"RawSlime"
:
[
SterliteRefineryQuery
.
RawSlime
.
QUERY_1
,
SterliteRefineryQuery
.
RawSlime
.
QUERY_2
,
SterliteRefineryQuery
.
RawSlime
.
QUERY_3
,
],
"CuSo4"
:
[
SterliteRefineryQuery
.
CuSo4
.
QUERY_1
,
SterliteRefineryQuery
.
CuSo4
.
QUERY_2
,
SterliteRefineryQuery
.
CuSo4
.
QUERY_3
,
],
},
"data"
:
[],
"data_column"
:
[
"fg_inventory"
,
"on_date"
,
"mtd"
,
"ytd"
],
"format"
:
""
,
...
...
@@ -305,7 +352,11 @@ class SterliteRefineryTemplate:
"CIR-1"
,
"CIR-2"
,
],
"query"
:
[],
"query"
:
{
"ElectrolyteComposition"
:
[
SterliteRefineryQuery
.
ElectrolyteComposition
.
QUERY_1
]
},
"data"
:
[],
"data_column"
:
[
"electrolyte_composition"
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment