汉王考勤系统数据库补签到的过程

一、系统结构

客户端:客户端设备为低端的B210和高端的C240(容量不同);

服务器端:Windows Server & MySql

过程描述:客户在本地考勤后,数据实时同步到服务器数据库;管理人员通过服务器Web服务进行数据查询,生成报表。

二、需求和分析

后台允许补录考勤数据,但会生成补录的操作记录,以此能辨别出补录行为;而且补录考勤数据只能逐条进行,操作比较麻烦。因此决定从数据库入手,直接写入考勤数据到数据库。

三、数据库分析

  • stat_card:储存人员日常考勤信息,数据来源为从客户端硬件考勤设备获取。其中
    ng_user_id为人员唯一编码,系统自动生成;
    ng_branch_id为人员所在机构编码,系统自动生成;
    ng_dev_id为考勤设备编号,系统自动生成;
    sz_branch_name为部门名称,人工录入;
    sz_user_name为人员姓名,人工录入;
    sz_employ_id为员工号,人工录入;
    sz_dev_name为考勤设备名称,人工录入;
    sz_dev_place为考勤地点,人工录入(报表中会根据此项显示人员是否存在异地考勤现象)
  • stat_day_item_XXXXXX:根据stat_card数据生成考勤明细表。其中(X代表六位日期,例如202009)
    nt_period为班次时长(分),系统自动生成;
    ng_shift_id为考勤班次编号,系统自动生成;
    ng_regular_id为考勤规则编号,系统自动生成;
    ng_period_id为班次时长编号,系统自动生成;
    sz_shift_name为考勤班次名称,人工录入;
    sz_regular_name为考勤规则名称,系统自动生成;
  • stat_day_exception_XXXXXX储存考勤异常信息,包括异地考勤、迟到早退、旷工等。
  • stat_item_exception_XXXXXX:储存考勤异常信息,包括异地考勤、迟到早退、旷工等。

三、解决思路

  • 获取人员基本信息
  • 删除人员原考勤数据
  • 插入新考勤数据
  • 删除人员异常信息

数据库库表按月生成,所以以月为单位进行插入数据;基础信息在EXCEL中更新,查询命令在EXCEL中自动生成,自动跳过周末,简化到只需要执行生成好的命令即可。

四、解决方案

关键点都是以简便操作为核心,基于EXCEL自动生成查询命令。

获取日期:

  • 年:=YEAR(NOW());
  • 月:=IF(LEN(MONTH(NOW()))=1,”0″&MONTH(NOW()),MONTH(NOW()))
    此处命令是为了保留两位数月份
  • 日期对应星期:=WEEKDAY(B1,2)
订阅
提醒
0 评论
内嵌讨论
查看全部讨论