--员工考勤记录修改日志 CREATE TABLE CHECKEXACT ( EXACTID INT IDENTITY(1,1) NOT NULL , --修改日志ID USERID INT NULL DEFAULT 0, --员工ID号 CHECKTIME DATETIME NULL DEFAULT 0, --签到/签退时间 CHECKTYPE VARCHAR (2) NULL DEFAULT 0, --原来的签到/签退标志:I-签到,O-签退 ISADD SMALLINT NULL DEFAULT 0, --是否新增的记录 YUYIN VARCHAR (25) NULL , --修改考勤记录的原因 ISMODIFY SMALLINT NULL DEFAULT 0, --是否仅仅是修改原始记录 ISDELETE SMALLINT NULL DEFAULT 0, --是否是删除的记录 INCOUNT SMALLINT NULL DEFAULT 0, --是否恢复 ISCOUNT SMALLINT NULL DEFAULT 0, -- MODIFYBY VARCHAR (20) NULL, --操作员 [DATE] DATETIME NULL, --操作时间 CONSTRAINT EXACTID PRIMARY KEY (EXACTID) ) ; --签到/签退记录表 CREATE TABLE CHECKINOUT ( USERID INT NOT NULL , --员工ID号 CHECKTIME DATETIME NOT NULL DEFAULT GETDATE(), --签到/签退时间 CHECKTYPE VARCHAR (1) NULL DEFAULT 'I', --签到/签退标志:I-签到,O-签退 VERIFYCODE INT NULL DEFAULT 0, --验证方式:除256的余数表示签到的方式: 0-指纹;1-输号码;2-密码。大于256表示该记录已经被确认,在于处理时不进行处理 SENSORID VARCHAR (5) NULL, --采集数据的考勤终端/设备ID CONSTRAINT USERCHECKTIME PRIMARY KEY (USERID, CHECKTIME) ) ; --部门表 CREATE TABLE DEPARTMENTS ( DEPTID INT IDENTITY(1,1) NOT NULL , --部门ID DEPTNAME VARCHAR (30) NULL , --部门名称 SUPDEPTID INT NOT NULL DEFAULT 1, --上级部门的ID CONSTRAINT DEPTID PRIMARY KEY (DEPTID) ) ; CREATE TABLE EXCNOTES ( USERID INT NULL , ATTDATE DATETIME NULL , NOTES VARCHAR (200) NULL ) ; --节假日表 CREATE TABLE HOLIDAYS ( HOLIDAYID INT IDENTITY(1,1) NOT NULL , HOLIDAYNAME VARCHAR (20) NULL , HOLIDAYYEAR SMALLINT NULL , HOLIDAYMONTH SMALLINT NULL , HOLIDAYDAY SMALLINT NULL DEFAULT 1, STARTTIME DATETIME NULL , DURATION SMALLINT NULL , HOLIDAYTYPE SMALLINT NULL , XINBIE VARCHAR (4) NULL , MINZU VARCHAR (50) NULL, CONSTRAINT HOLID PRIMARY KEY (HOLIDAYID) ) ; --班次表 CREATE TABLE NUM_RUN ( NUM_RUNID INT IDENTITY(1,1) NOT NULL , --班次ID号 OLDID INT NULL DEFAULT -1, -- NAME VARCHAR (30) NOT NULL , --班次名称 STARTDATE DATETIME NULL DEFAULT '1900-1-1', --起用日期 ENDDATE DATETIME NULL DEFAULT '2099-12-31', --结束使用日期 CYLE SMALLINT NULL DEFAULT 1, --班次一次循环的周期 UNITS SMALLINT NULL DEFAULT 1, --周期单位 CONSTRAINT NUMID PRIMARY KEY (NUM_RUNID) ) ; --班次排班时段表 CREATE TABLE NUM_RUN_DEIL ( NUM_RUNID SMALLINT NOT NULL , --班次的ID号 STARTTIME DATETIME NOT NULL , --开始时间 ENDTIME DATETIME NULL , --结束时间 SDAYS SMALLINT NOT NULL , --开始日期 EDAYS SMALLINT NULL , --结束日期 SCHCLASSID INT NULL DEFAULT -1, --时段所属的类别 CONSTRAINT NUMID2 PRIMARY KEY (NUM_RUNID, SDAYS, STARTTIME) ) ; --管理员权限设置表 CREATE TABLE SECURITYDETAILS ( SECURITYDETAILID INT IDENTITY(1,1) NOT NULL , USERID SMALLINT NULL , DEPTID SMALLINT NULL , SCHEDULE SMALLINT NULL , USERINFO SMALLINT NULL , ENROLLFINGERS SMALLINT NULL , REPORTVIEW SMALLINT NULL , REPORT VARCHAR (10) NULL, CONSTRAINT NAMEID2 PRIMARY KEY (SECURITYDETAILID) ) ; --轮班表 CREATE TABLE SHIFT ( SHIFTID INT IDENTITY(1,1) NOT NULL , --轮班ID号 NAME VARCHAR (20) NULL , --轮班名称 USHIFTID INT NULL DEFAULT -1, -- STARTDATE DATETIME NOT NULL DEFAULT '1900-1-1', --起用轮班的日期 ENDDATE DATETIME NULL DEFAULT '1900-12-31', --结束时用轮班的日期 RUNNUM SMALLINT NULL DEFAULT 0, --该轮班中所含的班次数 0', 3, 'AttItem(minLater)'); insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc, RemaindCount, ReportSymbol, LeaveType, Calc) values('早退', 10, 2, 2, 1, '<', 3, 'AttItem(minEarly)'); insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc, RemaindCount, ReportSymbol, LeaveType, Calc) values('请假', 1, 1, 1, 1, '假', 3, 'if((AttItem(LeaveType1)>0) and (AttItem(LeaveType1)<999),AttItem(LeaveTime1),0)+if((AttItem(LeaveType2)>0) and (AttItem(LeaveType2)<999),AttItem(LeaveTime2),0)+if((AttItem(LeaveType3)>0) and (AttItem(LeaveType3)<999),AttItem(LeaveTime3),0)+if((AttItem(LeaveType4)>0) and (AttItem(LeaveType4)<999),AttItem(LeaveTime4),0)+if((AttItem(LeaveType5)>0) and (AttItem(LeaveType5)<999),AttItem(LeaveTime5),0)'); insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc, RemaindCount, ReportSymbol, LeaveType, Calc) values('旷工', 0.5, 3, 1, 0, '旷', 3, 'AttItem(MinAbsent)'); insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc, RemaindCount, ReportSymbol, LeaveType, Calc) values('加班', 1, 1, 1, 1, '+', 3, 'AttItem(MinOverTime)'); insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc, RemaindCount, ReportSymbol, LeaveType, Calc) values('节日加班', 1, 1, 0, 1, '=', 0, 'if(HolidayId(1)=1, AttItem(MinOverTime),0)'); insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc, RemaindCount, ReportSymbol, LeaveType) values('休息日', 0.5, 3, 2, 1, '-', 2); insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc, RemaindCount, ReportSymbol, LeaveType, Calc) values('未签到', 1, 4, 2, 1, '[', 2, 'If(AttItem(CheckIn)=null,If(AttItem(OnDuty)=null,0,if(((AttItem(LeaveStart1)=null) or (AttItem(LeaveStart1)>AttItem(OnDuty))) and AttItem(DutyOn),1,0)),0)'); insert into LeaveClass1(LeaveName, MinUnit, Unit, RemaindProc, RemaindCount, ReportSymbol, LeaveType, Calc) values('未签退', 1, 4, 2, 1, ']', 2, 'If(AttItem(CheckOut)=null,If(AttItem(OffDuty)=null,0,if((AttItem(LeaveEnd1)=null) or (AttItem(LeaveEnd1)