14-06-26 1st comit

This commit is contained in:
Ankit Malik
2026-06-15 12:44:13 +05:30
parent 418a8847b2
commit 166a2a1d19
14 changed files with 1981 additions and 80 deletions
+29 -27
View File
@@ -140,23 +140,27 @@ def fetch_SOS_OneApp(engine: Engine, mids: list[int]) -> pl.DataFrame:
return df
def fetch_OQaD(engine: Engine, mids: list[int]) -> pl.DataFrame:
if not mids:
log.warning("No MIDs — nothing to fetch.")
return pl.DataFrame()
mid_list = ",".join(map(str, mids))
def fetch_OQaD(
engine: Engine,
run_date: date,
) -> pl.DataFrame:
sql = f"""
WITH MID_TABLE_COV1 AS
(
SELECT DISTINCT
SELECT
EmpId,
CAST(VisitDate AS DATE) AS VisitDate
FROM OneApp_KelloggsMT.dbo.T_StoreCoverage
WHERE MID IN ({mid_list})
FROM OneApp_KelloggsMT.dbo.T_OQAD
WHERE CAST(CreateDate AS DATE) = '{run_date}'
UNION
SELECT
EmpId,
CAST(VisitDate AS DATE) AS VisitDate
FROM OneApp_KelloggsMT.dbo.T_OQAD
WHERE CAST(UpdateDate AS DATE) = '{run_date}'
),
QUIZ AS
@@ -180,12 +184,12 @@ def fetch_OQaD(engine: Engine, mids: list[int]) -> pl.DataFrame:
INNER JOIN OneApp_KelloggsMT.dbo.Master_OQAD_Category QC
ON QU.QuestionCategoryId = QC.QuestionCategoryId
WHERE E.EmpName NOT LIKE 'test%'
WHERE E.RightId = 6
AND E.EmpName NOT LIKE 'test%'
AND E.EmpName NOT LIKE '%TEST%'
AND E.RightId = 6
AND (
E.ResignDate IS NULL
OR E.ResignDate >= DQ.VisitDate
OR E.ResignDate >= '{run_date}'
)
AND EXISTS
(
@@ -197,6 +201,7 @@ def fetch_OQaD(engine: Engine, mids: list[int]) -> pl.DataFrame:
)
SELECT
40148 AS project_id,
Q.EmpId AS employee_id,
0 AS process_id,
Q.VisitDate AS visit_date,
@@ -204,16 +209,18 @@ def fetch_OQaD(engine: Engine, mids: list[int]) -> pl.DataFrame:
Q.QuestionCategory AS question_category,
QM.QuestionId AS question_id,
QM.Question AS question,
ISNULL(QA.AnswerId,0) AS answer_id,
ISNULL(QA.Answer,'') AS answer,
ISNULL(QA.AnswerId, 0) AS answer_id,
ISNULL(QA.Answer, '') AS answer,
CASE
WHEN QA.AnswerId IS NULL THEN 'Not Answer'
WHEN QA.RightAnswer = 1 THEN 'Y'
WHEN QA.RightAnswer IS NULL THEN 'Not Answer'
ELSE 'N'
END AS correct_answer
END AS correct_answer,
GETDATE() AS update_date,
'SP-Pius' AS update_by
FROM QUIZ Q
@@ -223,24 +230,19 @@ def fetch_OQaD(engine: Engine, mids: list[int]) -> pl.DataFrame:
LEFT JOIN OneApp_KelloggsMT.dbo.Master_OQAD_Answer QA
ON Q.AnswerId = QA.AnswerId
"""
log.info(f"Fetching OQaD data for {len(mids):,} MIDs")
log.info("Fetching OQaD data for run_date=%s", run_date)
df = pl.read_database(
query=sql,
connection=engine
connection=engine,
)
log.info(f"Fetched {len(df):,} rows")
log.info("Fetched %s rows", len(df))
return df
def fetch_Survey(engine: Engine, mids: list[int]) -> pl.DataFrame:
if not mids:
log.warning("No MIDs — nothing to fetch.")