一、为什么要检测是否可以签到?
上节课我们通过分装Emos系统常量信息,从而得知考勤是分为起止时间的。在考勤开始之前,用户是不能考勤签到的。同理,在当天考勤结束之后,用户也是不能考勤签到的。甚至节假日也不能考勤,只有正常的工作日才能考勤签到。
怎么判断当天是工作日还是节假日?
在数据库中有tb_workday和tb_holidays两张数据表,记录着哪天是工作日,哪天是休息日。
Emos系统默认周一至周五为工作日,周六周日为休息日。但是这两张表不是把所有的工作日和休息日都记录下来,只是记录比特殊的工作日或者休息日。比如说今年的中秋节赶上了礼拜四,于是就把周五和周六设置成休息日,跟中秋节连成三连休,然后周日正常上班。这种特殊情况我们就要记录下来。在tb_workday记录周日是工作日,在tb_holidays表中记录周五那天是休息日。这样Emos系统在中秋三连休期间不会执行考勤签到。
查询当天是否已经签到
tb_checkin表结构如下,Emos不仅要记录考勤的人员、时间,还要记录考勤人的地理坐标,然后根据疫情实时信息,判定用户所处的地区是新冠疫情的高危地区还是低风险地区。这部分功能,后续的章节我们再实现。
