第7代考勤系统设计
经过第6代考勤系统的优化升级分析,决定进一步加强顶层设计,直接规划第7代系统,在效率和可拓展性上找到新的平衡。下面简单描述第7代系统设计思路:
- 打开
待处理文件
,同时打开配置文件(智能)
- 调入
停止考勤表
+待处理文件
= source(源表),Dmin(最小日期),Dmax(最大日期) - 生成对时表
- 调入
校准时间表
+调入自习表
=对时表A
- 调入
调课表
+ Dmin , Dmax =对时表B
(含有具体调课信息) - 调入
二次校准表
+对时表A
=对时表C
(用来处理特殊情况)
- 调入
- 调入
标准时间
,根据Dmin和Dmax 过滤有效的请假信息,生成请假表
- 逐行考勤
- 定位Source的第i行
- 第i行比对
请假表
- 比对成功,加入请假信息到签到签退,设置比对码=1
- 比对不成功,则设置比对码=0
- 置空校准时间记录临时变量temp,对时码=0
- 如果比对码=0 ,则执行比对
对时表B
- 比对成功,校准Source第i行,记录校准时间到temp,生成对时码=1
- 比对不成轼,设置对时码=0
- 如果对时码B=0,则执行比对
对时表C
- 比对成功,校准Source第i行,记录校准时间到temp,生成对时码=1
- 比对不成功,设置对时码=0
- 探测第i行职务,确定职务码j,调用Kernel(j)针对此职务的考勤,生成统计信息
- 如果签到签退为空,则填入
漏签
,并统计漏签一次 - 如果签到签退不为空,则与职务j上班的标准时间比对确定违规情况,同时生成
着色码
,记录到source第i行中 - 如对时码=1,则根据temp恢复source签到签退时间
- 根据职务码,导出结果到该组数组source(j)
- 如果签到签退为空,则填入
- 定位到第i+1行,重复以上步骤,直到处理完成所有行。
- 最终得到一系统职务的考勤结果source(1),sourc(2)...
- 生成报表
- 定位到第j组职务数组source(j)
- 调用职务j的汇总统计模块,因为班主任有弹性考勤
- 根据汇总结果,生成异常报表数组source(j)yc
- 新建文件source(j).xlsx
- 据
着色码
对该职务报表的签到签退上色,其中0绿,1黄,2红 - 格式化报表
- 新建文件source(j)yc.xlsx
- 据
着色码
对该职务异常报表的签到签退上色,其中0绿,1黄,2红 - 格式化报表
- 格式化导演报表
- 重复以上各步骤,生成所有报表。
- 根据请假表生成上交学校的请假表,但是考虑到系统的不同时性,此模块应当单独拿出来,每周一执行。