单位最近新买了一套指科密纹考勤机。
由于种种原因。买了个功能很少的。只有U盘可以导出数据的考勤机。
前几天领导说,要统计上个月15日到这个月15日的考勤数据。
研究了好久,发现只能按月导出报表!
问领导拿1日到31日的是否可以。领导说工资是算15日的。我那个内牛满面啊。。。。
不过好在以前做过考勤机的二次开发。算是有点熟悉。还好自己也算是写过N年代码的老司机了,这个东西还难不倒我。
===========开发思路=============
因为U盘能导出数据。同时也能导出所有的考勤记录。
有这些记录,我就有希望把它导入到数据库,然后进行各种统计和筛选。之后想要怎么统计,都随便了。
===========开发过程==============
1、导出打卡数据
打开考勤机,插入U盘。然后操作导出我需要的时段的打卡记录。(导出的名字是agl_000001.txt 我导出另外一个打卡机名字也是类似aglXXXX.txt)
agl_000001.txt 的内容格式大概是这样的。
简单写了个读取程序。用tab进行分割。
很顺利,它的内容格式确实是这个。
000001(自增ID)1(考勤机编号)0000000003(人员编号)名字1(人员名字)020(不知道是啥)001(不知道是啥)2016/10/01 07:53:57(考勤时间)
对我来说,我只需要人员编号、考勤时间。就足够我的要求了。
然后拿了另外一台没有写牌子的考勤机,也导出了一下数据,哈哈,格式居然是一样的。猜想可能基本上的考勤机都可以通用吧。以后随便人家买什么牌子的了。
2、数据处理
我需要自己重新写一套计算打卡和迟到早退的算法。
最大的问题在于如何判断上班还是下班时间。采用了打卡时间段的方法。
上午上班打卡时间6:00——10:00之间的都算上班打卡
10:01——13:00 都算下班打卡。以此类推,就能很好的区分上下班时间。
假设上午上班时间8:00
6:00——8:00 打卡都算正常签到
8:01——10:00 打卡都算迟到
由于领导有些特殊要求
如果一天都没打卡算旷工。有打卡都算有来上班。
上午下班不用打卡。
周六上半天班,周六上午下班要打卡。
所以又写了一些规则进去。
3、大功告成
上班时杂事比较多,断断续续的弄了几天,终于写完了,验证一下数据。抽取了一个人员进行测试。
配置的时间规则如下:
通过跟踪断点,进行一个一个验证。
4、写在最后
由于我们单位的规则比较特别,如果您的需求和我这边一样。这个小软件就送您了。
假如不一样,您有需要特别定制的,欢迎联系我Joshua_Studio@163.COM 。
但是事先声明,定制是收费的哈。
最后附上程序。
http://u.163.com/dQu7dmYb 提取码: EJu0Z83s
网友评论