CREATE TABLE IF NOT EXISTS sys_dept (
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
uuid VARCHAR(64) NOT NULL,
|
version BIGINT NOT NULL DEFAULT 1,
|
create_id BIGINT NULL,
|
create_time DATETIME NULL,
|
update_id BIGINT NULL,
|
update_time DATETIME NULL,
|
del_flag INT NOT NULL DEFAULT 0,
|
parent_id BIGINT NOT NULL DEFAULT 0,
|
dept_name VARCHAR(128) NOT NULL,
|
sort_order INT NOT NULL DEFAULT 0,
|
UNIQUE KEY uk_sys_dept_uuid (uuid)
|
);
|
|
CREATE TABLE IF NOT EXISTS sys_user (
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
uuid VARCHAR(64) NOT NULL,
|
version BIGINT NOT NULL DEFAULT 1,
|
create_id BIGINT NULL,
|
create_time DATETIME NULL,
|
update_id BIGINT NULL,
|
update_time DATETIME NULL,
|
del_flag INT NOT NULL DEFAULT 0,
|
username VARCHAR(64) NOT NULL,
|
password_hash VARCHAR(255) NOT NULL,
|
real_name VARCHAR(64) NULL,
|
mobile VARCHAR(32) NULL,
|
dept_id BIGINT NULL,
|
status INT NOT NULL DEFAULT 1,
|
UNIQUE KEY uk_sys_user_uuid (uuid),
|
UNIQUE KEY uk_sys_user_username (username)
|
);
|
|
CREATE TABLE IF NOT EXISTS sys_role (
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
uuid VARCHAR(64) NOT NULL,
|
version BIGINT NOT NULL DEFAULT 1,
|
create_id BIGINT NULL,
|
create_time DATETIME NULL,
|
update_id BIGINT NULL,
|
update_time DATETIME NULL,
|
del_flag INT NOT NULL DEFAULT 0,
|
role_code VARCHAR(64) NOT NULL,
|
role_name VARCHAR(128) NOT NULL,
|
UNIQUE KEY uk_sys_role_uuid (uuid),
|
UNIQUE KEY uk_sys_role_code (role_code)
|
);
|
|
CREATE TABLE IF NOT EXISTS sys_user_role (
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
uuid VARCHAR(64) NOT NULL,
|
version BIGINT NOT NULL DEFAULT 1,
|
create_id BIGINT NULL,
|
create_time DATETIME NULL,
|
update_id BIGINT NULL,
|
update_time DATETIME NULL,
|
del_flag INT NOT NULL DEFAULT 0,
|
user_id BIGINT NOT NULL,
|
role_id BIGINT NOT NULL,
|
UNIQUE KEY uk_sys_user_role_uuid (uuid),
|
KEY idx_user_role (user_id, role_id)
|
);
|
|
CREATE TABLE IF NOT EXISTS appointment_order (
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
uuid VARCHAR(64) NOT NULL,
|
version BIGINT NOT NULL DEFAULT 1,
|
create_id BIGINT NULL,
|
create_time DATETIME NULL,
|
update_id BIGINT NULL,
|
update_time DATETIME NULL,
|
del_flag INT NOT NULL DEFAULT 0,
|
order_no VARCHAR(64) NOT NULL,
|
visit_type VARCHAR(32) NOT NULL,
|
visited_user_id BIGINT NOT NULL,
|
visited_user_name VARCHAR(64) NULL,
|
visit_reason_code VARCHAR(64) NULL,
|
visitor_org VARCHAR(255) NULL,
|
visit_start_date DATE NOT NULL,
|
visit_end_date DATE NOT NULL,
|
status VARCHAR(32) NOT NULL,
|
holiday_flag TINYINT(1) NOT NULL DEFAULT 0,
|
key_area_flag TINYINT(1) NOT NULL DEFAULT 0,
|
submitter_open_id VARCHAR(128) NULL,
|
reject_reason VARCHAR(512) NULL,
|
UNIQUE KEY uk_appointment_order_uuid (uuid),
|
UNIQUE KEY uk_order_no (order_no),
|
KEY idx_visited_user (visited_user_id),
|
KEY idx_status (status)
|
);
|
|
CREATE TABLE IF NOT EXISTS appointment_visitor (
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
uuid VARCHAR(64) NOT NULL,
|
version BIGINT NOT NULL DEFAULT 1,
|
create_id BIGINT NULL,
|
create_time DATETIME NULL,
|
update_id BIGINT NULL,
|
update_time DATETIME NULL,
|
del_flag INT NOT NULL DEFAULT 0,
|
order_id BIGINT NOT NULL,
|
name VARCHAR(64) NOT NULL,
|
id_card_cipher VARCHAR(512) NULL,
|
mobile VARCHAR(32) NULL,
|
driver_name VARCHAR(64) NULL,
|
plate_no VARCHAR(32) NULL,
|
UNIQUE KEY uk_appointment_visitor_uuid (uuid),
|
KEY idx_order (order_id)
|
);
|
|
CREATE TABLE IF NOT EXISTS approval_instance (
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
uuid VARCHAR(64) NOT NULL,
|
version BIGINT NOT NULL DEFAULT 1,
|
create_id BIGINT NULL,
|
create_time DATETIME NULL,
|
update_id BIGINT NULL,
|
update_time DATETIME NULL,
|
del_flag INT NOT NULL DEFAULT 0,
|
order_id BIGINT NOT NULL,
|
current_node_code VARCHAR(64) NULL,
|
status VARCHAR(32) NOT NULL,
|
finished_at DATETIME NULL,
|
UNIQUE KEY uk_approval_instance_uuid (uuid),
|
KEY idx_order (order_id)
|
);
|
|
CREATE TABLE IF NOT EXISTS approval_task (
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
uuid VARCHAR(64) NOT NULL,
|
version BIGINT NOT NULL DEFAULT 1,
|
create_id BIGINT NULL,
|
create_time DATETIME NULL,
|
update_id BIGINT NULL,
|
update_time DATETIME NULL,
|
del_flag INT NOT NULL DEFAULT 0,
|
instance_id BIGINT NOT NULL,
|
node_code VARCHAR(64) NOT NULL,
|
group_key VARCHAR(128) NOT NULL,
|
assignee_user_id BIGINT NOT NULL,
|
task_status VARCHAR(32) NOT NULL,
|
comment VARCHAR(512) NULL,
|
UNIQUE KEY uk_approval_task_uuid (uuid),
|
KEY idx_instance (instance_id),
|
KEY idx_assignee_status (assignee_user_id, task_status)
|
);
|
|
CREATE TABLE IF NOT EXISTS biz_visit_reason (
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
uuid VARCHAR(64) NOT NULL,
|
version BIGINT NOT NULL DEFAULT 1,
|
create_id BIGINT NULL,
|
create_time DATETIME NULL,
|
update_id BIGINT NULL,
|
update_time DATETIME NULL,
|
del_flag INT NOT NULL DEFAULT 0,
|
reason_code VARCHAR(64) NOT NULL,
|
reason_name VARCHAR(128) NOT NULL,
|
sort_order INT NOT NULL DEFAULT 0,
|
enabled INT NOT NULL DEFAULT 1,
|
UNIQUE KEY uk_biz_visit_reason_uuid (uuid),
|
UNIQUE KEY uk_reason_code (reason_code)
|
);
|
|
CREATE TABLE IF NOT EXISTS biz_field_config (
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
uuid VARCHAR(64) NOT NULL,
|
version BIGINT NOT NULL DEFAULT 1,
|
create_id BIGINT NULL,
|
create_time DATETIME NULL,
|
update_id BIGINT NULL,
|
update_time DATETIME NULL,
|
del_flag INT NOT NULL DEFAULT 0,
|
field_code VARCHAR(64) NOT NULL,
|
field_name VARCHAR(128) NOT NULL,
|
visible INT NOT NULL DEFAULT 1,
|
required_flag INT NOT NULL DEFAULT 0,
|
sort_order INT NOT NULL DEFAULT 0,
|
UNIQUE KEY uk_biz_field_config_uuid (uuid),
|
UNIQUE KEY uk_field_code (field_code)
|
);
|
|
CREATE TABLE IF NOT EXISTS biz_approval_node_config (
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
uuid VARCHAR(64) NOT NULL,
|
version BIGINT NOT NULL DEFAULT 1,
|
create_id BIGINT NULL,
|
create_time DATETIME NULL,
|
update_id BIGINT NULL,
|
update_time DATETIME NULL,
|
del_flag INT NOT NULL DEFAULT 0,
|
node_code VARCHAR(64) NOT NULL,
|
node_name VARCHAR(128) NOT NULL,
|
enabled INT NOT NULL DEFAULT 1,
|
sort_order INT NOT NULL DEFAULT 0,
|
UNIQUE KEY uk_biz_approval_node_uuid (uuid),
|
UNIQUE KEY uk_node_code (node_code)
|
);
|
|
CREATE TABLE IF NOT EXISTS biz_op_log (
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
uuid VARCHAR(64) NOT NULL,
|
version BIGINT NOT NULL DEFAULT 1,
|
create_id BIGINT NULL,
|
create_time DATETIME NULL,
|
update_id BIGINT NULL,
|
update_time DATETIME NULL,
|
del_flag INT NOT NULL DEFAULT 0,
|
operator_user_id BIGINT NULL,
|
module VARCHAR(64) NOT NULL,
|
action VARCHAR(64) NOT NULL,
|
resource_type VARCHAR(64) NULL,
|
resource_id VARCHAR(128) NULL,
|
detail_json TEXT NULL,
|
op_time DATETIME NOT NULL,
|
trace_id VARCHAR(64) NULL,
|
UNIQUE KEY uk_biz_op_log_uuid (uuid),
|
KEY idx_op_time (op_time)
|
);
|
|
CREATE TABLE IF NOT EXISTS qrcode_ticket (
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
uuid VARCHAR(64) NOT NULL,
|
version BIGINT NOT NULL DEFAULT 1,
|
create_id BIGINT NULL,
|
create_time DATETIME NULL,
|
update_id BIGINT NULL,
|
update_time DATETIME NULL,
|
del_flag INT NOT NULL DEFAULT 0,
|
order_id BIGINT NOT NULL,
|
payload TEXT NOT NULL,
|
ticket_status VARCHAR(32) NOT NULL,
|
used_at DATETIME NULL,
|
UNIQUE KEY uk_qrcode_ticket_uuid (uuid),
|
KEY idx_order (order_id)
|
);
|
|
-- 默认部门
|
INSERT INTO sys_dept (uuid, version, parent_id, dept_name, sort_order, del_flag)
|
VALUES (REPLACE(UUID(), '-', ''), 1, 0, '总公司', 0, 0);
|
|
SET @dept_id = LAST_INSERT_ID();
|
|
-- 角色
|
INSERT INTO sys_role (uuid, version, role_code, role_name, del_flag) VALUES
|
(REPLACE(UUID(), '-', ''), 1, 'ADMIN', '系统管理员', 0),
|
(REPLACE(UUID(), '-', ''), 1, 'HANDLER', '经办人', 0),
|
(REPLACE(UUID(), '-', ''), 1, 'DEPT_LEADER', '部门负责人', 0),
|
(REPLACE(UUID(), '-', ''), 1, 'VISIT_DEPT', '访客主管部门', 0),
|
(REPLACE(UUID(), '-', ''), 1, 'VISIT_DEPT_LEADER', '访客主管部门领导', 0),
|
(REPLACE(UUID(), '-', ''), 1, 'KEY_DEPT_LEADER', '要害管理部门领导', 0);
|
|
-- 管理员用户(密码:Admin@123456aA,BCrypt)
|
INSERT INTO sys_user (uuid, version, username, password_hash, real_name, mobile, dept_id, status, del_flag)
|
VALUES (
|
REPLACE(UUID(), '-', ''), 1,
|
'admin',
|
'$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi',
|
'管理员', '13800000000', @dept_id, 1, 0
|
);
|
|
SET @admin_id = LAST_INSERT_ID();
|
|
INSERT INTO sys_user (uuid, version, username, password_hash, real_name, mobile, dept_id, status, del_flag)
|
VALUES (
|
REPLACE(UUID(), '-', ''), 1,
|
'handler',
|
'$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi',
|
'经办人A', '13800000001', @dept_id, 1, 0
|
);
|
SET @handler_id = LAST_INSERT_ID();
|
|
INSERT INTO sys_user (uuid, version, username, password_hash, real_name, mobile, dept_id, status, del_flag)
|
VALUES (
|
REPLACE(UUID(), '-', ''), 1,
|
'leader',
|
'$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi',
|
'部门领导', '13800000002', @dept_id, 1, 0
|
);
|
SET @leader_id = LAST_INSERT_ID();
|
|
-- 角色绑定:admin=ADMIN;handler=HANDLER;leader=DEPT_LEADER + HANDLER 便于测试
|
INSERT INTO sys_user_role (uuid, version, user_id, role_id, del_flag)
|
SELECT REPLACE(UUID(), '-', ''), 1, @admin_id, id, 0 FROM sys_role WHERE role_code = 'ADMIN';
|
|
INSERT INTO sys_user_role (uuid, version, user_id, role_id, del_flag)
|
SELECT REPLACE(UUID(), '-', ''), 1, @handler_id, id, 0 FROM sys_role WHERE role_code = 'HANDLER';
|
|
INSERT INTO sys_user_role (uuid, version, user_id, role_id, del_flag)
|
SELECT REPLACE(UUID(), '-', ''), 1, @leader_id, id, 0 FROM sys_role WHERE role_code = 'DEPT_LEADER';
|
|
INSERT INTO sys_user_role (uuid, version, user_id, role_id, del_flag)
|
SELECT REPLACE(UUID(), '-', ''), 1, @leader_id, id, 0 FROM sys_role WHERE role_code = 'HANDLER';
|
|
-- 来访事由示例
|
INSERT INTO biz_visit_reason (uuid, version, reason_code, reason_name, sort_order, enabled, del_flag)
|
VALUES (REPLACE(UUID(), '-', ''), 1, 'BUSINESS', '商务洽谈', 1, 1, 0);
|
|
-- 预约字段示例
|
INSERT INTO biz_field_config (uuid, version, field_code, field_name, visible, required_flag, sort_order, del_flag)
|
VALUES
|
(REPLACE(UUID(), '-', ''), 1, 'visitorOrg', '来访单位', 1, 0, 1, 0),
|
(REPLACE(UUID(), '-', ''), 1, 'idCard', '身份证号', 1, 1, 2, 0);
|
|
-- 审批节点(默认全开,按 sort 流转)
|
INSERT INTO biz_approval_node_config (uuid, version, node_code, node_name, enabled, sort_order, del_flag)
|
VALUES
|
(REPLACE(UUID(), '-', ''), 1, 'LEVEL1_HANDLER', '经办人(一级)', 1, 10, 0),
|
(REPLACE(UUID(), '-', ''), 1, 'LEVEL2_DEPT_LEADER', '部门负责人(二级)', 1, 20, 0),
|
(REPLACE(UUID(), '-', ''), 1, 'LEVEL3_VISIT_DEPT', '访客主管部门(三级)', 0, 30, 0),
|
(REPLACE(UUID(), '-', ''), 1, 'LEVEL4_VISIT_DEPT_LEADER', '访客主管部门领导(四级)', 1, 40, 0),
|
(REPLACE(UUID(), '-', ''), 1, 'LEVEL5_KEY_DEPT_LEADER', '要害管理部门领导(五级)', 1, 50, 0);
|