门禁高级控制范例:上班在班次规定时间内入厂、打下班卡后指定时间内出厂

更新时间:2013-8-1 来源:惠州市大帮手软件有限公司 【字号:

门禁高级控制范例:实现上班必须在考勤班次的有效时间内入厂、下班在按考勤按指纹后指定时间内出厂。

某些企业基于生产安全和财产安全考虑,会通过门禁/闸机控制员工进出生产厂区.

如张三上午上班的是8:00-12:00的班,允许提前30分钟内入厂,则在7:30-8:00时间范围内可以刷卡入厂,不在此时间范围内禁止入厂.

下班时,必须刷了下班卡后,并在刷下班卡后的10分钟以内通过门禁机离开厂区,未刷下班卡,或者未在刷卡10分钟内离开的,门禁机自动禁止其离开厂区.

同时,门禁机可设定每张员工卡在1分钟(可自由设定分钟数)只能刷一次卡,避免一张卡同时放行多个人的问题.

控制语句如下:

Create PROCEDURE [dbo].[Get_Emp_Door_Control] @ip_addr nvarchar(20),
@Door_Is_In varchar(1),@door_area varchar(20),@pre_time datetime,@Emp_List int,@emp_Id nvarchar(10),
@Org_No nvarchar(20),@Card_No nvarchar(10),@mj_last_date datetime,@kq_last_date datetime,@Msg nvarchar(40) output,@ireturn bit output as
begin
 --輸入 @ipaddrno:機器IP地址,@Door_Is_In:0為出,1為進,2不分進出,@door_area:所在區域,@pre_time:門禁時間,@Emp_List:員工記錄號,@emp_Id:工號
 --@Org_No:部門代號,@Card_No:員工卡號,@mj_last_date:門禁最後刷卡時間,@kq_last_date:考勤最後刷卡時間
 --輸出 @Msg:出錯的提示,@ireturn:狀態(0失敗,1成功)
 set @ireturn=0
 
 --指定了不受控的人员
 if exists(select null from pist20E where emp_list=@Emp_List and Door_Control=0)
 set @ireturn=1
 else
 begin
   if  @door_is_in='1'  --上班则检测是否在上班允许的时间段内,在则放行
   begin
    if exists(select null from Kq16ForDoor where emp_list=@Emp_List and
       (@pre_time between in1_d_min and in1_d_max or @pre_time between in2_d_min and in2_d_max
     or @pre_time between in3_d_min and in3_d_max or @pre_time between in4_d_min and in4_d_max))
     set @ireturn=1
    else
     set @msg='非上班時間'
   end
   else --下班则检测是否有按刷考勤卡,且在考勤卡的有效时间范围内
   begin
    if  @kq_last_date is null
       set @Msg=' 未出勤'
    else
       begin
       --间隔时间多少秒,*60是分钟转为秒
       if (datediff(second,@kq_last_date,@pre_time)>10*60)
        set @Msg=' 已下班'+cast(datediff(minute,@kq_last_date,@pre_time) as nvarchar(20))+'分鐘'          
       else
        begin
        --防止重复刷卡,现设置为1分钟
        if (@mj_last_date is not null and datediff(second,@mj_last_date,@pre_time)<60)
        set @Msg=' 重複刷卡'+cast(datediff(second,@mj_last_date,@pre_time) as nvarchar(20))+'秒'   
        else
        set @ireturn=1
        end
      end
   end
  end
 end

文章Tag: 门禁  高级控制  考勤班次  
更多
关闭窗口】【我要打印

惠州市大帮手软件有限公司

广东省惠州市惠城区演达一路丽园新村10栋6D

电话:0752-2587641 2587640

E-mail:sales@helpersoft.cn

值班手机:15913877227(钟生)

值班QQ:365630986

HuiZhou Helper Software Co.,Ltd.

粤ICP备12049928号