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
ec94d16c
Commit
ec94d16c
authored
Oct 12, 2023
by
suryakant
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Query Update
parent
4ad7037b
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
270 additions
and
17 deletions
+270
-17
scripts/constants/__init__.py
scripts/constants/__init__.py
+1
-0
scripts/core/db/postgres/custom_report_query.py
scripts/core/db/postgres/custom_report_query.py
+177
-12
scripts/core/handler/event_handler.py
scripts/core/handler/event_handler.py
+7
-0
scripts/template/sterlite_report_template.py
scripts/template/sterlite_report_template.py
+85
-5
No files found.
scripts/constants/__init__.py
View file @
ec94d16c
...
@@ -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
:
...
...
scripts/core/db/postgres/custom_report_query.py
View file @
ec94d16c
...
@@ -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
"""
scripts/core/handler/event_handler.py
View file @
ec94d16c
...
@@ -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
:
...
...
scripts/template/sterlite_report_template.py
View file @
ec94d16c
...
@@ -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_solid
s"
],
"data_column"
:
[
"
cir_2"
,
"cir_2_value
s"
],
},
},
},
},
{
{
...
...
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