如何使用If-else语句创建用于绩效考核的突发报告?

2024-04-26 07:29:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我对员工工作绩效报告有一个真正的行业问题。表中数据项如下:

EmpName EmpDue  ManagerDue  Manager2Due  ReviewStatus  SubStatus
   A  11/05/19   11/12/19    11/19/19    Not Started   EmployeeAssessment
   B  11/19/19   11/26/19    12/3/19     Not Started   EmployeeAssessment
   C  11/01/19   11/08/19    11/15/19    In Progress   Manager Assessment
   D  11/01/19   11/08/19    11/15/19    In Progress   Manager2 Acknowledgement
   E  10/3/19    10/10/19    10/17/19    Completed     

因此,如果审核状态为“未开始”,子状态为“员工考核”,则表示员工本人尚未开始审核自己

预期结果:

我们希望在员工到期日前7天发出提醒。如果员工没有采取任何行动并且到期日已过,则我们希望在到期日后每3天(即3、6、9……)发送一次提醒

员工自我评价后,进入下一阶段,即评价状态变为进行中,子状态为经理评价。此时,我们希望直接经理对员工进行审核。如果经理没有这样做,经理到期日过了,那么我们也希望每3天发送一次提醒

在员工和经理完成审核后,再由经理2审核。审核状态仍将处于进行中,子状态将为Manager2确认,相同的提醒将发送给Manager2

所有人员完成后,审核状态变为“完成”

由于真实的工作平台,我不知道如何在这种情况下应用if-else语句,特别是对于3天的轮换


Tags: in状态报告员工not评价经理progress
1条回答
网友
1楼 · 发布于 2024-04-26 07:29:15

查看下面的模拟解决方案,随时提问:

# check the conditions below avery day at 00:00, take info from db and check it in your script

if ReviewStatus == "Not Started":
    if curremt_date =< EmpDueDate:
        if EmpDue - current_date == 7:
            send_message()
    else:
        if (curremt_Date - EmpDueDate).daysnumber % 3 == 0:
            send_message()

elif ReviewStatus == "Progress" and  SubStatus == "Manager Assessment":
    if curremt_date > ManagerDueDate:
        if (curremt_Date - ManagerDueDate).daysnumber % 3 == 0:
            send_message()

elif ReviewStatus == "Progress" and  SubStatus == "Acknowledgement":
    if curremt_date > Manager2DueDate:
        if (curremt_Date - Manager2DueDate).daysnumber % 3 == 0:
            send_message()

else:
    raise Exception("Something Unexpected here !")

相关问题 更多 >