我对员工的工作表现报告有一个真正的行业问题。表中的数据项如下:
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 因此,如果考核状态未启动,而子状态为EmployeeAssessment,则意味着员工本人尚未开始检查自己。
预期结果:
我们希望在员工到期日前7天发出提醒函。如果员工不采取任何行动,而且到期日期已经过去,我们希望每3天发出一次提醒(这意味着3,6,9.)在预产期之后。
一旦员工自我检查,就会进入下一个阶段,这意味着ReviewStatus将更改为“在制品”,其子状态将是“经理评估”。在这一点上,我们希望直接经理审查雇员。如果经理没有这样做,经理的到期日已经过去,那么我们也希望每3天发出一次提醒。
在员工和经理完成评审之后,它将转到manager2进行检查。评审状态仍在进行中,子状态将为manager2确认,同样的提醒将发送给Manager2。
在所有的人完成后,审查状态就会完成。
由于真正的工作平台,我不知道如何应用if- real语句在这种情况下,特别是在3天的轮换。
发布于 2019-10-21 17:46:45
检查下面的模拟解决方案,可以随意提问:
# 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 !")https://stackoverflow.com/questions/58488646
复制相似问题