-- 卡片管理:卡片独立保存,绑定关系同步到 t_employee.card_no。
|
CREATE TABLE IF NOT EXISTS `t_card` (
|
`card_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '卡片主键',
|
`card_no` varchar(64) NOT NULL COMMENT '卡号',
|
`employee_id` bigint(20) DEFAULT NULL COMMENT '绑定员工主键',
|
`bind_time` datetime DEFAULT NULL COMMENT '绑定时间',
|
`del_flag` char(1) NOT NULL DEFAULT '0' COMMENT '删除标识:0正常 1删除',
|
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
|
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
PRIMARY KEY (`card_id`),
|
UNIQUE KEY `uk_card_no` (`card_no`, `del_flag`),
|
KEY `idx_card_employee` (`employee_id`, `del_flag`)
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='卡片管理表';
|
|
-- 兼容已有员工卡号,首次执行迁移时自动建立卡片记录。
|
INSERT INTO `t_card` (`card_no`, `employee_id`, `bind_time`, `del_flag`, `create_by`, `create_time`)
|
SELECT e.`card_no`, e.`employee_id`, e.`update_time`, '0', 'system', NOW()
|
FROM `t_employee` e
|
WHERE e.`card_no` IS NOT NULL
|
AND e.`card_no` <> ''
|
AND e.`del_flag` = '0'
|
AND NOT EXISTS (
|
SELECT 1 FROM `t_card` c
|
WHERE c.`card_no` = e.`card_no` AND c.`del_flag` = '0'
|
);
|