第7代考勤系统设计

经过第6代考勤系统的优化升级分析,决定进一步加强顶层设计,直接规划第7代系统,在效率和可拓展性上找到新的平衡。下面简单描述第7代系统设计思路:

  1. 打开待处理文件,同时打开配置文件(智能)
  2. 调入停止考勤表+待处理文件 = source(源表),Dmin(最小日期),Dmax(最大日期)
  3. 生成对时表
    • 调入校准时间表+调入自习表 = 对时表A
    • 调入调课表 + Dmin , Dmax = 对时表B (含有具体调课信息)
    • 调入二次校准表 + 对时表A=对时表C (用来处理特殊情况)
  4. 调入标准时间,根据Dmin和Dmax 过滤有效的请假信息,生成请假表
  5. 逐行考勤
    • 定位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)...
  6. 生成报表
    • 定位到第j组职务数组source(j)
    • 调用职务j的汇总统计模块,因为班主任有弹性考勤
    • 根据汇总结果,生成异常报表数组source(j)yc
    • 新建文件source(j).xlsx
    • 着色码对该职务报表的签到签退上色,其中0绿,1黄,2红
    • 格式化报表
    • 新建文件source(j)yc.xlsx
    • 着色码对该职务异常报表的签到签退上色,其中0绿,1黄,2红
    • 格式化报表
    • 格式化导演报表
    • 重复以上各步骤,生成所有报表。
  7. 根据请假表生成上交学校的请假表,但是考虑到系统的不同时性,此模块应当单独拿出来,每周一执行。