中控考勤机网络化方案

原文地址: https://i-blog.csdnimg.cn/blog_migrate/14974d587c10926ed74a117c76b39ded.png

 

智能考勤就找我!! 哈哈。

 

他能解决哪些问题?

1、考勤地分散在各个城市,甚至全球,希望总部统一管控

2、领导出差,在家,随时想查看员工的出勤状况

3、无法提供上网的复杂环境

4、公司班车需要员工刷指纹(或刷脸或指静脉或掌纹或ID卡等)

5、员工自助查询:做为请假、调休等依据,结果更公正透明

6、考勤人员规模:小到几人的微型公司,大到几百万人的跨国集团。

7、无需HR人员采集考勤数据、向考勤机写入员工资料(系统自动操作,网络断线资料不会导致丢失)

使用说明:

 

1、小公司只要一台普通PC即可。

2、大公司一般都有专用的服务器。

有人会颖问,我小公司就一台普通PC没开机如何获取刷卡资料

回答:当然,没有开机是无法获取员工刷卡资料,什么时候开机,刷卡会在开机时自动上传。

又有人问,不提供上网环境,又是如何实时获取到异地员工的刷卡资料

回答:其实上网环境为考勤机自带的3G或4G手机卡或专用的上网卡实现(无需成本:原因公司一般都有出差人员,绑定到出差人员的附属手机卡上,一般电信或移动都免费提供)。

使用设备中控系列考勤机

优点:

国内排名第一大品牌,功能强大,价格公开,京东、淘宝均有售

 

 

官方网址:点击打开链接

 

购买需知:考勤机要支持http Push功能(BS功能),如图是中控U160截图,中控考勤机大部分都支持,但有些型号默认没有开启该功能,所以在购买时一定要厂商提供,否则购买再加Push功能,厂商需要另外收费。

中控HTTP PUSH 通信协议介绍

 

 

开发环境为VS2012,新建一个httppush专案,如图

新建三个ashx文件(cdata.ashx/devicecmd.ashx/getrequest.ashx),操作方法如图

 

再新增一个Global.asax,如果如图

因为中控http push url访问不支持扩展名,所以要通过Global重写url,打开Global.asax

具体代码如下:

数据库使用sqlserver(目前类库也支持oracel或mysql)

建立4个table分别命名:

TAttendanceMachine:记录考勤机信息

TAttendanceCmds:记录服务器向考勤机下发命令(例如新进员工资料自动写入考勤机,员工离职自动删除考勤机,指纹变更自动写入指纹到考勤机)

TAttendanceCardTime:员工考勤刷卡记录表

TEmpFinger:员工指纹表

sql脚本如下:

CREATE TABLE [dbo].[TAttendanceCardTime](
[FID] [int] IDENTITY(1,1) NOT NULL,
[FEmpID] [varchar](15) NULL,
[FEmpName] [nvarchar](50) NULL,
[FDateTime] [datetime] NULL,
[FVerify] [tinyint] NULL,
[FCreateDateTime] [datetime] NULL,
 CONSTRAINT [PK_TAttendanceCardTime] PRIMARY KEY CLUSTERED 
(
[FID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]


GO


SET ANSI_PADDING OFF
GO


EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'工号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TAttendanceCardTime', @level2type=N'COLUMN',@level2name=N'FEmpID'
GO


EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'姓名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TAttendanceCardTime', @level2type=N'COLUMN',@level2name=N'FEmpName'
GO


EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'刷卡时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TAttendanceCardTime', @level2type=N'COLUMN',@level2name=N'FDateTime'
GO


EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'刷卡方式:0密码1指纹2卡9其它' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TAttendanceCardTime', @level2type=N'COLUMN',@level2name=N'FVerify'
GO


EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'刷卡记录上传时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TAttendanceCardTime', @level2type=N'COLUMN',@level2name=N'FCreateDateTime'
GO


EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'刷卡记录表' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TAttendanceCardTime'
GO


ALTER TABLE [dbo].[TAttendanceCardTime] ADD  CONSTRAINT [DF_TAttendanceCardTime_F_CreateDateTime]  DEFAULT (getdate()) FOR [FCreateDateTime]
GO

CREATE TABLE [dbo].[TEmpFinger](
[FID] [int] IDENTITY(1,1) NOT NULL,
[FEmpID] [varchar](15) NULL,
[FingerID] [smallint] NULL,
[FTemplate] [nvarchar](max) NULL,
[FSize] [int] NULL,
[Fpversion] [nvarchar](10) NULL,
[FValid] [bit] NULL,
[FCreatorID] [varchar](15) NULL,
[FCreatorName] [nvarchar](10) NULL,
[FCreateDateTime] [datetime] NULL,
[FModifyID] [varchar](15) NULL,
[FModifyName] [nvarchar](10) NULL,
[FModifyDateTime] [datetime] NULL,
[FDeleteDateTime] [datetime] NULL,
[FStatus] [tinyint] NULL,
[FSN] [varchar](50) NULL,
 CONSTRAINT [PK_T_EmpFinger] PRIMARY KEY CLUSTERED 
(
[FID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]


GO


SET ANSI_PADDING OFF
GO


EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'手指顺序' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TEmpFinger', @level2type=N'COLUMN',@level2name=N'FingerID'
GO


EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'指纹信息' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TEmpFinger', @level2type=N'COLUMN',@level2name=N'FTemplate'
GO


EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'指纹长度' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TEmpFinger', @level2type=N'COLUMN',@level2name=N'FSize'
GO


EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'指纹版本' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TEmpFinger', @level2type=N'COLUMN',@level2name=N'Fpversion'
GO


EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'指纹验证' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TEmpFinger', @level2type=N'COLUMN',@level2name=N'FValid'
GO


EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'修改时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TEmpFinger', @level2type=N'COLUMN',@level2name=N'FModifyDateTime'
GO


EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'删除时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TEmpFinger', @level2type=N'COLUMN',@level2name=N'FDeleteDateTime'
GO


EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'状态码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TEmpFinger', @level2type=N'COLUMN',@level2name=N'FStatus'
GO


EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'员工指文表' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'TEmpFinger'
GO


ALTER TABLE [dbo].[TEmpFinger] ADD  CONSTRAINT [DF_T_EmpFinger_F_CreateDateTime]  DEFAULT (getdate()) FOR [FCreateDateTime]
GO

打开cdata.ashx,写入如下代码(此页面主要获取考勤机基本资料,员工刷卡资料,采集员工在考勤机上登记的指纹,当然也可以单独购买指纹仪(指纹仪读取方法指纹保存到数据的方法可以联系我。))

获取考勤机及刷卡资料再通知考勤机,所以考勤资料不会丢失,当网络异常,或网线断掉,网络重连后会自动发送,无需人工操作。

 

打开getrequest.ashx写入如下代码(此页面主要是服务器向考勤机下发命令,例如向多台考勤机写入员工资料、删除员工资料,更新姓名,写入指纹等)

打开devicecmd.ashx写入代码(此页面主要是考勤机传回getrequest.ashx页面下发的命令执行状态,是成功还是失败,修改数据库里状态)

 

然后编译,布署到IIS,设置端口号,可以默认的80,此IIS的IP与服务器端口要填入中控考勤机,具体从下图进入,

进入考勤机通讯设置,ADMS设置,输入服务器的IP地址与端口号。

中控的其它型号设置步骤基本相似,新版不叫ADMS是Web服务,但都是在通讯设置里。

带3G或4G卡的考勤机设置方法一致。

如果是广域网连接,即异地连接:

大公司都是由资讯解析域名,将域名与端口号提交给你,你直接设置到考勤机即可。

小公司都要自己操作:

操作方法如下:

你可以购买一台带域名解析的路由器(现在路由器大部分都支持,具体可以购买前咨询路由器厂商)

然后映射端口号到IIS服务器地址,请详见:点击打开链接

动态IP地址上网,需要注册DDSN,注册地址:点击打开链接

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值