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
1d747ef0
Commit
1d747ef0
authored
Oct 23, 2023
by
mohammed.akhib
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added ccpc report
parent
90cf805c
Changes
4
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
417 additions
and
384 deletions
+417
-384
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
+209
-259
scripts/core/handler/event_handler.py
scripts/core/handler/event_handler.py
+115
-0
scripts/template/ccpc_report_template.py
scripts/template/ccpc_report_template.py
+92
-125
No files found.
scripts/constants/__init__.py
View file @
1d747ef0
...
...
@@ -65,6 +65,7 @@ class ReportType:
REFINERY_REPORT
=
"refinery_report"
ACP_REPORT
=
"acp_report"
CCPP_REPORT
=
"ccpp_report"
CCPC_REPORT
=
"ccpc_report"
REFINERY_WORKSHEET_NAME
=
"REFINERY DAILY PERFORMANCE REPORT"
ACP_WORKSHEET_NAME_1
=
"VEDANTA LIMITED"
ACP_WORKSHEET_NAME_2
=
"ANODE CASTING PLANT (ACP) - SHIFT INCHARGE LOG SHEET"
...
...
scripts/core/db/postgres/custom_report_query.py
View file @
1d747ef0
This diff is collapsed.
Click to expand it.
scripts/core/handler/event_handler.py
View file @
1d747ef0
...
...
@@ -3,6 +3,7 @@ import copy
import
pandas
as
pd
from
datetime
import
datetime
from
scripts.constants
import
ReportType
,
CommonConstants
,
PostgresConstant
from
scripts.template.ccpc_report_template
import
CCPCReportTemplate
from
scripts.template.refinery_report_template
import
SterliteRefineryTemplate
from
scripts.template.acp_report_template
import
ACPReportTemplate
from
scripts.core.logging.application_logging
import
logger
...
...
@@ -83,6 +84,7 @@ class CustomReportHandler:
for
each_blocks
in
input_json
:
# Iterating each blocks for fetching query
if
input_json
[
each_blocks
][
CommonConstants
.
QUERY
]:
for
each_kpi
in
input_json
[
each_blocks
][
CommonConstants
.
QUERY
]:
logger
.
info
(
f
"KPI: {each_kpi}"
)
...
...
@@ -485,6 +487,119 @@ class CustomReportHandler:
worksheet
=
worksheet
,
workbook
=
workbook
,
)
# Setting width to the column
worksheet
.
set_column
(
0
,
total_column
,
CommonConstants
.
ACP_COLUMN_WIDTH
)
# Center alignment of Excel data
workbook
.
formats
[
0
]
.
set_align
(
'center'
)
logger
.
info
(
f
"Report completed for: {each_date_range}"
)
else
:
logger
.
error
(
"Missing: Start Date or End Date"
)
if
str
(
input_json
[
"job_type"
])
.
lower
()
==
ReportType
.
CCPC_REPORT
:
logger
.
info
(
"Generating custom date filter with in the range"
)
# Getting custom date range using start date and end date
date_flag
,
date_filter
=
self
.
create_custom_date_filter
(
input_json
=
input_json
)
if
date_flag
:
with
pd
.
ExcelWriter
(
input_json
[
"file_name"
],
engine
=
"xlsxwriter"
)
as
writer
:
for
each_date_range
in
date_filter
:
logger
.
info
(
f
"date filter: {each_date_range}"
)
report_template
=
copy
.
deepcopy
(
CCPCReportTemplate
.
CCPC_REPORT_TEMPLATE
)
start_col
=
CommonConstants
.
START_COLUMN
start_row
=
CommonConstants
.
START_ROW
total_column
=
0
workbook
=
writer
.
book
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
for
each_blocks
in
report_template
:
logger
.
info
(
"Fetching each KPI data from queries"
)
each_blocks
=
self
.
get_queries_from_db
(
input_json
=
each_blocks
,
date_filter
=
each_date_range
)
logger
.
info
(
"Writing each block into excel sheet"
)
shape
,
worksheet
,
header_flag
=
\
self
.
write_dataframe_to_excel
(
input_json
=
each_blocks
,
writer
=
writer
,
workbook
=
workbook
,
sheet_name
=
sheet_name
,
start_col
=
start_col
,
start_row
=
start_row
,
header_merge_format
=
CCPCReportTemplate
.
COLUMN_HEADER_FORMAT
,
column_merge_format
=
CCPCReportTemplate
.
COLUMN_HEADER_FORMAT
,
blank_merge_format
=
CCPCReportTemplate
.
BLANK_COLUMN_HEADER_FORMAT
)
if
total_column
<
shape
[
1
]:
total_column
=
shape
[
1
]
start_row
+=
shape
[
0
]
+
2
if
header_flag
:
start_row
+=
1
logger
.
info
(
"Creating Header for each sheet"
)
# -------- Image Section --------
logger
.
info
(
"Adding Image in header"
)
self
.
merge_worksheet
(
start_row
=
0
,
start_col
=
0
,
end_row
=
2
,
end_col
=
2
,
title
=
""
,
style
=
ACPReportTemplate
.
WORKSHEET_IMAGE_HEADER_FORMAT
,
worksheet
=
worksheet
,
workbook
=
workbook
,
)
worksheet
.
insert_image
(
'A1'
,
ReportType
.
LOGO_IMAGE_PATH
)
# -------- Heading Section --------
logger
.
info
(
"Adding Heading in Header"
)
self
.
merge_worksheet
(
start_row
=
0
,
start_col
=
3
,
end_row
=
1
,
end_col
=
total_column
-
1
,
title
=
ReportType
.
ACP_WORKSHEET_NAME_1
,
style
=
CCPCReportTemplate
.
WORKSHEET_HEADER_FORMAT
,
worksheet
=
worksheet
,
workbook
=
workbook
,
)
self
.
merge_worksheet
(
start_row
=
2
,
start_col
=
3
,
end_row
=
2
,
end_col
=
total_column
-
1
,
title
=
ReportType
.
ACP_WORKSHEET_NAME_2
,
style
=
CCPCReportTemplate
.
WORKSHEET_HEADER_FORMAT
,
worksheet
=
worksheet
,
workbook
=
workbook
,
)
# -------- Date HEADER Section --------
logger
.
info
(
"Adding Date time in header"
)
self
.
merge_worksheet
(
start_row
=
3
,
start_col
=
0
,
end_row
=
3
,
end_col
=
1
,
title
=
ReportType
.
DATE
,
style
=
ACPReportTemplate
.
WORKSHEET_DATE_HEADER_FORMAT
,
worksheet
=
worksheet
,
workbook
=
workbook
,
)
# -------- Date Section --------
logger
.
info
(
"Adding Date time in header"
)
self
.
merge_worksheet
(
start_row
=
3
,
start_col
=
2
,
end_row
=
3
,
end_col
=
3
,
title
=
sheet_name
,
style
=
ACPReportTemplate
.
WORKSHEET_DATE_FORMAT
,
worksheet
=
worksheet
,
workbook
=
workbook
,
)
# Setting width to the column
worksheet
.
set_column
(
0
,
total_column
,
CommonConstants
.
ACP_COLUMN_WIDTH
)
...
...
scripts/template/ccpc_report_template.py
View file @
1d747ef0
This diff is collapsed.
Click to expand it.
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