14-06-26 1st comit
This commit is contained in:
+29
-27
@@ -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.")
|
||||
|
||||
Reference in New Issue
Block a user