liujie
2026-09-21 20051550f01227ecebbe0bf064e188dd242f58f2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
-- 卡片管理:卡片独立保存,绑定关系同步到 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'
  );