У меня реальная отраслевая проблема с отчетом о выполнении работ сотрудниками. В таблице у нас есть элементы данных следующим образом:
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 дня.
После того, как сотрудник и менеджер сделали обзор, он обращается к менеджеру2 для проверки. статус проверки по-прежнему будет находиться в процессе выполнения, подчиненный статус будет «Подтверждение менеджера2», то же самое напоминание будет отправлено менеджеру2.
После того, как все люди пройдут, статус проверки станет Завершенным.
Из-за реальной рабочей платформы я не знаю, как применять операторы if-else в этом случае, особенно для ротации за 3 дня.