Commit e1c392af authored by suryakant's avatar suryakant

Query Update

parent a682a952
......@@ -9,7 +9,6 @@ POSTGRES_HOST = 20.219.42.36
POSTGRES_PORT = 5786
POSTGRES_USERNAME = svc_sterlite
POSTGRES_PASSWORD = sterliteSvc#1247
POSTGRES_DATABASE = strelite-datalakedev
# Log Details
LOG_BASE_PATH=logs/
......
......@@ -60,7 +60,6 @@ class PostgresDetails(BaseSettings):
port: str
username: str
password: str
database: str
class Config:
env_prefix = "POSTGRES_"
......
......@@ -65,6 +65,12 @@ class ReportType:
REFINERY_WORKSHEET_NAME = "REFINERY DAILY PERFORMANCE REPORT"
class PostgresConstant:
""" Constant used in Postgre SQL """
STRELITE_DATALAKE_DEV = "strelite-datalakedev"
PROJECT_101__ILENS_AI = "project_101__ilens_ai"
figlet = """
____ _ _ _ _
/ ___| | |_ ___ _ __ | | (_) | |_ ___
......
......@@ -2661,7 +2661,7 @@ class SterliteRefineryQuery:
ROUND(PLANNED_VALUE::NUMERIC, 2) AS norms,
ROUND(ACTUAL_VALUE::NUMERIC, 2) AS on_date
FROM
(SELECT KPI,
CASE
......@@ -2719,7 +2719,7 @@ class SterliteRefineryQuery:
'Power_Consumption_CS_NS'
)
AND DATE BETWEEN '{day_start_date}' AND '{day_end_date}'
GROUP BY 1)TB
GROUP BY 1)TB
"""
QUERY_2 = """
SELECT CASE
......@@ -3699,3 +3699,17 @@ class SterliteRefineryQuery:
WHERE
DATE = '{day_start_date}'
"""
class BankCrop:
""" BANK / CROP """
QUERY_1 = """
SELECT
"Bank" AS BANK_CROP,
"Date"::VARCHAR AS TIME,
"Op" AS OP,
"Priority" AS PRIORITY,
"Copper Prod" AS COPPER_PROD,
"KA_new" AS KA_NEW
FROM PUBLIC.REFINERY_PRODUCTION_DAY_WISE RPDW
WHERE DATE("Date") = '{day_start_date}'
"""
......@@ -2,7 +2,7 @@ import copy
import pandas as pd
from datetime import datetime
from scripts.constants import ReportType, CommonConstants
from scripts.constants import ReportType, CommonConstants, PostgresConstant
from scripts.template.sterlite_report_template import SterliteRefineryTemplate
from scripts.core.logging.application_logging import logger
from scripts.core.exception.app_exceptions import GeneralException
......@@ -76,6 +76,10 @@ class CustomReportHandler:
append_flag = False
data_list = []
database = PostgresConstant.STRELITE_DATALAKE_DEV
if "database" in input_json[each_blocks]:
database = input_json[each_blocks]["database"]
# Iterating each query for each KPI
if input_json[each_blocks][CommonConstants.QUERY][each_kpi]:
for each_query in \
......@@ -95,7 +99,9 @@ class CustomReportHandler:
year_end_date=date_filter[
CommonConstants.YEAR_END_DATE])
response = self.postgres_db_obj.fetch_data(query=query)
response = self.postgres_db_obj. \
select_postgres_table(query=query, db=database
)[1]
if response and "addition" not in input_json[each_blocks]:
if len(response) <= 1:
......@@ -217,6 +223,7 @@ class CustomReportHandler:
if str(input_json["job_type"]).lower() == ReportType.REFINERY_REPORT:
logger.info("Generating custom date filter with in the range")
# Getting custom date range using start date and end date
date_filter = self.create_custom_date_filter(input_json=input_json)
......@@ -234,9 +241,9 @@ class CustomReportHandler:
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")
sheet_name = datetime.strptime(
each_date_range[CommonConstants.DAY_START_DATE],
"%Y-%m-%d").strftime("%d %b %Y")
worksheet = None
......@@ -244,6 +251,9 @@ class CustomReportHandler:
for each_blocks in report_template:
logger.info("Fetching each KPI data from queries")
print("--------------------")
print(each_blocks)
print("-- \n")
each_blocks = self.get_queries_from_db(
input_json=each_blocks, date_filter=each_date_range
)
......
......@@ -11,17 +11,18 @@ class PostgresDBUtility:
def __init__(self):
try:
logger.debug("Meta DB connection initialization")
self.cursor_type = RealDictCursor
self.host = postgres_details.host
self.port = postgres_details.port
self.username = postgres_details.username
self.password = postgres_details.password
self.db_name = postgres_details.database
self.cursor_type = RealDictCursor
except Exception as e:
logger.error(f"Exception in the Meta DB initialization : {str(e)}")
def create_connection(self, db=None):
_db = db or self.db_name
print("Database ====================================> ", _db)
conn = psycopg2.connect(
database=_db,
user=self.username,
......@@ -42,7 +43,7 @@ class PostgresDBUtility:
"""
logger.debug(f" SQL QUERY {query}")
connection = None
result = ""
result = []
flag = False
try:
connection = self.create_connection(db)
......
from scripts.constants import PostgresConstant
from scripts.core.db.postgres.custom_report_query import SterliteRefineryQuery
......@@ -572,10 +573,17 @@ class SterliteRefineryTemplate:
},
{
"BANK / CROP": {
"columns": ["BANK / CROP", "TIME", "WEIGHT (MT)", "CELLS", "READING"],
"query": {},
"columns": ["BANK / CROP", "TIME", "OP", "PRIORITY",
"COPPER_PROD", "KA_NEW"],
"query": {
"BankCrop": [
SterliteRefineryQuery.BankCrop.QUERY_1,
]
},
"data": [],
"data_column": ["bank_crop", "time", "weight", "cells", "reading"],
"data_column": ["bank_crop", "time", "op", "priority",
"copper_prod", "ka_new"],
"database": PostgresConstant.PROJECT_101__ILENS_AI
},
},
{
......
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