CREATE TABLE `attendance_cfg` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`company_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT '细胞ID',
`month` char(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '年月:202111',
`status` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '状态:0=启用1=停用2=删除',
`off_type` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '休息类型:0=单休,1=双休',
`days` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '出勤天数:最大31',
`off_days` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '休息天数:最大31',
`param_json` text COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '月度配置json',
`editor_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '操作人ID',
`created_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `company_id` (`company_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='考勤:细胞考勤配置表';
CREATE TABLE `attendance_check` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`check_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '打卡记录id',
`company_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT '细胞ID',
`userinfo_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '寻木美系统userinfo_ID',
`deliuser_id` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '得力系统user_ID',
`check_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '打卡时间戳',
`check_day` timestamp NULL DEFAULT NULL COMMENT '打卡时间',
`check_minute` time NOT NULL DEFAULT '00:00:00' COMMENT '打卡时-分-秒',
`check_imei` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '考勤机设备序列号',
`check_name` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '考勤机设备名',
`check_type` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '得力打卡类型',
`check_data` varchar(1024) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '打卡补充数据',
`cal` char(10) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '打卡日历2021-11-9',
`status` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '状态:0=有效1=无效打卡',
`editor_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '校对人',
`editor_type` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '校对类型10=补卡',
`remark` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '校对备注',
`created_at` timestamp NULL DEFAULT NULL COMMENT '记录api导出时间',
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `userinfo_id` (`userinfo_id`)
) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='考勤:得力Deli打卡记录表';
CREATE TABLE `attendance_clock` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`company_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT '细胞ID',
`clock_type` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '打卡次数:0=2次,1=4次',
`is_remind` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '打卡提醒:0=不提醒,1=提醒',
`is_overtime` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '是否算加班:0=不计算,1=计算',
`reset_num` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '每月可补卡次数',
`work_time` decimal(4,1) NOT NULL DEFAULT '8.0' COMMENT '工作时长8',
`status` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '状态:0=启用1=停用2=删除',
`late_min` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '算迟到分钟数',
`back_num` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '算旷工迟到分钟数',
`clock_json` text COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '每天打卡时间段json',
`can_late` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '晚到/早走几分钟不记为异常:0=不允许,1=允许',
`late_str` varchar(512) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '配置:晚到/早走几分钟',
`can_free` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '允许晚到晚走/早到早走:0=不允许,1=允许',
`free_str` varchar(512) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '配置:自由是上班时间',
`editor_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '操作人ID',
`created_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `company_id` (`company_id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='考勤:打卡配置表';
CREATE TABLE `attendance_leave` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`userinfo_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '寻木美系统userinfo_ID',
`day` char(10) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '年月:2021-11-11',
`day_type` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '病假|事假|丧假|产假|调休...1-16款',
`leave_time` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '假期时长:1-8小时',
`start_time` time NOT NULL DEFAULT '00:00:00' COMMENT '请假开始时间',
`end_time` time NOT NULL DEFAULT '00:00:00' COMMENT '请假结束时间',
`remark` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '备注',
`status` tinyint(2) unsigned NOT NULL DEFAULT '0' COMMENT '状态',
`editor_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '确认人ID',
`created_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `userinfo_id` (`userinfo_id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='考勤:假期-记录表';
CREATE TABLE `attendance_machine` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`imei` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '机器序列号',
`name` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '机器序名称',
`address` varchar(1024) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '考勤机位置',
`company_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT '考勤机所属细胞id',
`status` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '状态:0=启用1=停用2=删除',
`editor_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '操作人ID',
`created_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='考勤:设备管理表';
CREATE TABLE `attendance_month` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`userinfo_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '寻木美系统userinfo_ID',
`company_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT '员工所属细胞id',
`month` char(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '年月:2021-11',
`status` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '状态:0=正常1=异常2=无效',
`work_days` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '实际出勤天数',
`work_hours` decimal(6,1) unsigned NOT NULL DEFAULT '0.0' COMMENT '实际工作时长',
`except_days` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '异常天数',
`later_hours` decimal(6,1) unsigned NOT NULL DEFAULT '0.0' COMMENT '迟到时长',
`before_num` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '早退次数',
`before_hours` decimal(6,1) unsigned NOT NULL DEFAULT '0.0' COMMENT '早退时长',
`no_work_hours` decimal(6,1) unsigned NOT NULL DEFAULT '0.0' COMMENT '旷工时长',
`un_clock_num` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '漏打卡次数',
`reset_num` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '补卡次数',
`out_num` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '外出次数',
`company_num` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '出差天数',
`year_num` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '年假天数',
`leave_num` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '事假天数',
`sick_num` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '病假天数',
`over_work_num` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '调休假天数',
`marry_num` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '婚假天数',
`baby_num` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '产假天数',
`daddy_num` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '陪产假天数',
`die_num` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '丧假天数',
`editor_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '确认人ID',
`created_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `month` (`month`),
KEY `userinfo_id` (`userinfo_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='考勤:月度报表';
CREATE TABLE `attendance_records` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`attendance_type` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`attendance_id` bigint(20) unsigned DEFAULT NULL COMMENT '考试中心id',
`describe` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '记录描述',
`type` tinyint(4) NOT NULL COMMENT '记录类型,物流,支付等',
`subtype` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '子类型',
`state` tinyint(3) unsigned DEFAULT NULL COMMENT '可用标志状态',
`param` text COLLATE utf8mb4_unicode_ci COMMENT '记录参数',
`editor_id` int(11) NOT NULL COMMENT '编辑人ID',
`deleted_at` timestamp NULL DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
KEY `attendance_id` (`attendance_id`)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='考勤:考勤操作记录表';
CREATE TABLE `attendance_work` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`userinfo_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '寻木美系统userinfo_ID',
`company_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT '员工所属细胞id',
`work_day` char(10) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '打卡日历2021-11-11',
`status` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '状态:0=正常1=异常2=无效',
`check_num` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '当日打卡次数',
`reset_num` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '当日补卡次数',
`leave_num` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '缺卡次数',
`editor_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '校对人ID',
`late_min` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '迟到时长',
`before_min` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '早退时长',
`unwork_min` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '旷工时长',
`over_min` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '加班时长',
`record1` time NOT NULL DEFAULT '00:00:00' COMMENT '上午上班时间',
`record2` time NOT NULL DEFAULT '00:00:00' COMMENT '上午下班时间',
`record3` time NOT NULL DEFAULT '00:00:00' COMMENT '下午上班时间',
`record4` time NOT NULL DEFAULT '00:00:00' COMMENT '下午下班时间',
`remark` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '备注',
`created_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='考勤:日历表';
规则:
考勤月份:根据筛选条件的月份统计
员工:员工档案名称
岗位名称:员工档案岗位名称
应出勤天数:计算当月需要出勤的天数(从出勤天数内获取上班天数)
实际出勤天数:应出勤天数-异常天数-事假天数
标准工作时长:根据本月应出勤的天数*打卡设置内的工作时长
实际工作时长:标准工作时长-迟到时长-旷工时长-早退时长
状态:正常(异常天数=0)异常(异常天数≥1)
异常天数:统计员工异常的打卡记录
迟到时长:员工迟到分钟数<120分钟
早退次数:累计员工打卡记录内的早退次数(一天早退两次统计两次)
早退时长:累计员工打卡记录内的早退时长
旷工时长:员工迟到分钟数≥120分钟
漏打卡次数/补卡次数/外出次数/出差天数/年假添加/事假天数/病假添加/调休假天数/婚假天数/产假天数/陪产假天数/丧假天数:根据用户保存的校对类型统计
日报规则:
日期:
员工:打卡用户名称
岗位名称:档案内的岗位名称
标准工作时长:根据本月应出勤的天数*打卡设置内的工作时长
实际工作时长:标准工作时长-迟到时长-旷工时长-早退时长
打卡时段:登录细胞配置打卡时间段
打卡类型:用户配置的每日应打卡次数(格式:1天xx次)
最早打卡时间:用户今日最早打卡时间(00:00:00-23:59:59)
最晚打卡时间:用户进入最后一次打卡时间(00:00:00-23:59:59)
打卡次数:在打卡规则内有效的打卡次数(例:9:00打上班卡,无论员工在9:00及9:00前打了多少次卡,只统计一次上班打卡)
状态:打卡次数等于打卡类型时状态等于“正常”;打卡次数小于打卡类型、实际工作时长<标准工作时长状态为“异常”
迟到时长:根据用户在打卡设置内的配置进行判断,无弹性打卡时超过用户设置的上班时间便开始统计迟到分钟数;有弹性打卡超过用户设置的最晚时间还未打卡便统计迟到分钟数(例:9:00上班,可晚30分钟,员工在31打卡时,迟到分钟数为31分钟)
早退时长:根据用户咋打卡设置内的配置判断。无弹性打卡时,打卡时间早于用户设置的下班时间视为早退;有弹性打卡时,打卡时间下班时间相差超过用户设置的最早分钟数,便视为早退(例:18:00下班,可早20分钟打卡,用户在17:32打卡,早退分钟数为28分钟)
缺卡次数:打卡类型-打卡次数-补发次数
补卡次数:根据用户在今日校对时选择的打卡时间校对方式进行统计(例:用户在今日一个时间段内做了两次补卡操作,仍算做补卡1次)
A打卡记录(9:33 12:10 18:31)
C打卡记录(9:33 11:55 12:01 14:04 18:31)
D打卡记录(9:33 11:55 14:04 18:31)
E打卡记录(9:33 11:45 12:01 18:44 19:31)
F打卡记录(8:44 12:01)
G打卡时间(7:56 8:45 11.45 11:59 13:23 16:43 18:43 20:21)
H打卡时间(8:56)
I打卡时间(18:58)
J打卡时间(8:55 12:01 12:44 13:44 18:56)
K打卡时间(8:33 12:03 18:31 18:59)
如何找出有效的4次打卡记录
子公司有的是打卡2次
有的4次
2021年11月20日18:03:59