-- =============================================
-- HRM 人力资源模块 SQL 初始化脚本
-- 包含人事审批、考勤管理、薪酬管理相关表
-- =============================================

-- =============================================
-- 1. 基础信息模块表
-- =============================================

-- 1.1 员工信息表（扩展信息）
CREATE TABLE IF NOT EXISTS `hrm_employee` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '员工ID',
    `user_id` bigint NOT NULL COMMENT '关联系统用户ID',
    `dept_id` bigint NOT NULL COMMENT '部门ID',
    `post_id` bigint DEFAULT NULL COMMENT '岗位ID',
    `employee_no` varchar(32) NOT NULL COMMENT '员工编号',
    `name` varchar(100) NOT NULL COMMENT '员工姓名',
    `gender` tinyint DEFAULT NULL COMMENT '性别：1-男，2-女',
    `birthday` date DEFAULT NULL COMMENT '出生日期',
    `phone` varchar(20) DEFAULT NULL COMMENT '手机号码',
    `email` varchar(100) DEFAULT NULL COMMENT '邮箱',
    `id_card` varchar(20) DEFAULT NULL COMMENT '身份证号',
    `hire_date` date NOT NULL COMMENT '入职日期',
    `regular_date` date DEFAULT NULL COMMENT '转正日期',
    `leave_date` date DEFAULT NULL COMMENT '离职日期',
    `employee_status` tinyint NOT NULL DEFAULT 1 COMMENT '员工状态：1-在职，2-试用，3-离职',
    `annual_leave_balance` decimal(4,2) DEFAULT 0 COMMENT '年假余额（天）',
    `sick_leave_balance` decimal(4,2) DEFAULT 0 COMMENT '病假余额（天）',
    `salary_structure_id` bigint DEFAULT NULL COMMENT '薪酬结构ID',
    `bank_name` varchar(100) DEFAULT NULL COMMENT '开户银行',
    `bank_account` varchar(50) DEFAULT NULL COMMENT '银行账号',
    `address` varchar(200) DEFAULT NULL COMMENT '居住地址',
    `remark` varchar(500) DEFAULT NULL COMMENT '备注',
    `creator` varchar(64) DEFAULT '' COMMENT '创建者',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `updater` varchar(64) DEFAULT '' COMMENT '更新者',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_user_id` (`user_id`),
    UNIQUE KEY `uk_employee_no` (`employee_no`),
    KEY `idx_dept_id` (`dept_id`),
    KEY `idx_employee_status` (`employee_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='HRM员工信息表';

-- 1.2 员工教育经历表
CREATE TABLE IF NOT EXISTS `hrm_employee_education` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '记录ID',
    `employee_id` bigint NOT NULL COMMENT '员工ID',
    `school_name` varchar(100) NOT NULL COMMENT '学校名称',
    `major` varchar(100) DEFAULT NULL COMMENT '专业',
    `degree` tinyint NOT NULL COMMENT '学历：1-高中，2-大专，3-本科，4-硕士，5-博士',
    `start_date` date NOT NULL COMMENT '入学时间',
    `end_date` date NOT NULL COMMENT '毕业时间',
    `certificate_no` varchar(50) DEFAULT NULL COMMENT '证书编号',
    `remark` varchar(200) DEFAULT NULL COMMENT '备注',
    `creator` varchar(64) DEFAULT '' COMMENT '创建者',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `updater` varchar(64) DEFAULT '' COMMENT '更新者',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
    PRIMARY KEY (`id`),
    KEY `idx_employee_id` (`employee_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='HRM员工教育经历表';

-- 1.3 员工工作经历表
CREATE TABLE IF NOT EXISTS `hrm_employee_work_history` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '记录ID',
    `employee_id` bigint NOT NULL COMMENT '员工ID',
    `company_name` varchar(100) NOT NULL COMMENT '公司名称',
    `position` varchar(100) NOT NULL COMMENT '职位',
    `start_date` date NOT NULL COMMENT '入职时间',
    `end_date` date DEFAULT NULL COMMENT '离职时间',
    `work_content` varchar(500) DEFAULT NULL COMMENT '工作内容',
    `leave_reason` varchar(200) DEFAULT NULL COMMENT '离职原因',
    `reference_name` varchar(50) DEFAULT NULL COMMENT '证明人姓名',
    `reference_phone` varchar(20) DEFAULT NULL COMMENT '证明人电话',
    `remark` varchar(200) DEFAULT NULL COMMENT '备注',
    `creator` varchar(64) DEFAULT '' COMMENT '创建者',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `updater` varchar(64) DEFAULT '' COMMENT '更新者',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
    PRIMARY KEY (`id`),
    KEY `idx_employee_id` (`employee_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='HRM员工工作经历表';

-- 1.4 员工紧急联系人表
CREATE TABLE IF NOT EXISTS `hrm_employee_emergency_contact` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '记录ID',
    `employee_id` bigint NOT NULL COMMENT '员工ID',
    `name` varchar(50) NOT NULL COMMENT '联系人姓名',
    `relationship` varchar(50) NOT NULL COMMENT '与员工关系',
    `phone` varchar(20) NOT NULL COMMENT '联系电话',
    `address` varchar(200) DEFAULT NULL COMMENT '联系地址',
    `sort` tinyint DEFAULT 1 COMMENT '排序（可设置多个紧急联系人）',
    `remark` varchar(200) DEFAULT NULL COMMENT '备注',
    `creator` varchar(64) DEFAULT '' COMMENT '创建者',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `updater` varchar(64) DEFAULT '' COMMENT '更新者',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
    PRIMARY KEY (`id`),
    KEY `idx_employee_id` (`employee_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='HRM员工紧急联系人表';

-- =============================================
-- 2. 人事审批模块表
-- =============================================

-- 2.1 请假申请表
CREATE TABLE IF NOT EXISTS `hrm_leave_application` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '申请ID',
    `no` varchar(32) NOT NULL COMMENT '申请单号',
    `user_id` bigint NOT NULL COMMENT '申请人ID',
    `dept_id` bigint NOT NULL COMMENT '部门ID',
    `leave_type` tinyint NOT NULL COMMENT '请假类型：1-事假，2-病假，3-年假，4-婚假，5-产假，6-丧假',
    `start_time` datetime NOT NULL COMMENT '开始时间',
    `end_time` datetime NOT NULL COMMENT '结束时间',
    `duration` decimal(4,2) NOT NULL COMMENT '请假时长（天）',
    `reason` varchar(500) NOT NULL COMMENT '请假原因',
    `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态：0-草稿，10-审批中，20-通过，30-驳回，40-撤销',
    `process_instance_id` varchar(64) DEFAULT NULL COMMENT 'BPM流程实例ID',
    `approve_time` datetime DEFAULT NULL COMMENT '审批完成时间',
    `remark` varchar(500) DEFAULT NULL COMMENT '备注',
    `creator` varchar(64) DEFAULT '' COMMENT '创建者',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `updater` varchar(64) DEFAULT '' COMMENT '更新者',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_no` (`no`),
    KEY `idx_user_status` (`user_id`, `status`),
    KEY `idx_dept_time` (`dept_id`, `start_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='HRM请假申请表';

-- 2.2 调岗申请表
CREATE TABLE IF NOT EXISTS `hrm_transfer_application` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '申请ID',
    `no` varchar(32) NOT NULL COMMENT '申请单号',
    `user_id` bigint NOT NULL COMMENT '申请人ID',
    `current_dept_id` bigint NOT NULL COMMENT '原部门ID',
    `current_post_id` bigint NOT NULL COMMENT '原岗位ID',
    `target_dept_id` bigint NOT NULL COMMENT '目标部门ID',
    `target_post_id` bigint NOT NULL COMMENT '目标岗位ID',
    `transfer_type` tinyint NOT NULL COMMENT '调岗类型：1-平调，2-升职，3-降职',
    `effective_date` date NOT NULL COMMENT '生效日期',
    `reason` varchar(500) NOT NULL COMMENT '调岗原因',
    `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态：0-草稿，10-审批中，20-通过，30-驳回，40-撤销',
    `process_instance_id` varchar(64) DEFAULT NULL COMMENT 'BPM流程实例ID',
    `approve_time` datetime DEFAULT NULL COMMENT '审批完成时间',
    `remark` varchar(500) DEFAULT NULL COMMENT '备注',
    `creator` varchar(64) DEFAULT '' COMMENT '创建者',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `updater` varchar(64) DEFAULT '' COMMENT '更新者',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_no` (`no`),
    KEY `idx_user_status` (`user_id`, `status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='HRM调岗申请表';

-- 2.3 离职申请表
CREATE TABLE IF NOT EXISTS `hrm_resignation_application` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '申请ID',
    `no` varchar(32) NOT NULL COMMENT '申请单号',
    `user_id` bigint NOT NULL COMMENT '申请人ID',
    `dept_id` bigint NOT NULL COMMENT '部门ID',
    `resignation_type` tinyint NOT NULL COMMENT '离职类型：1-主动离职，2-被动离职，3-合同到期',
    `expected_date` date NOT NULL COMMENT '预计离职日期',
    `actual_date` date DEFAULT NULL COMMENT '实际离职日期',
    `reason` varchar(500) NOT NULL COMMENT '离职原因',
    `handover_user_id` bigint DEFAULT NULL COMMENT '交接人ID',
    `handover_status` tinyint DEFAULT 0 COMMENT '交接状态：0-未开始，10-进行中，20-已完成',
    `handover_remark` varchar(500) DEFAULT NULL COMMENT '交接说明',
    `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态：0-草稿，10-审批中，20-通过，30-驳回，40-撤销',
    `process_instance_id` varchar(64) DEFAULT NULL COMMENT 'BPM流程实例ID',
    `approve_time` datetime DEFAULT NULL COMMENT '审批完成时间',
    `remark` varchar(500) DEFAULT NULL COMMENT '备注',
    `creator` varchar(64) DEFAULT '' COMMENT '创建者',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `updater` varchar(64) DEFAULT '' COMMENT '更新者',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_no` (`no`),
    KEY `idx_user_status` (`user_id`, `status`),
    KEY `idx_dept_time` (`dept_id`, `expected_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='HRM离职申请表';

-- =============================================
-- 3. 考勤管理模块表
-- =============================================

-- 3.1 考勤规则配置表
CREATE TABLE IF NOT EXISTS `hrm_attendance_rule` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '规则ID',
    `name` varchar(100) NOT NULL COMMENT '规则名称',
    `dept_id` bigint DEFAULT NULL COMMENT '适用部门ID（空表示全局）',
    `work_start_time` time NOT NULL COMMENT '上班时间',
    `work_end_time` time NOT NULL COMMENT '下班时间',
    `late_allow_minutes` tinyint DEFAULT 0 COMMENT '迟到允许分钟数',
    `early_allow_minutes` tinyint DEFAULT 0 COMMENT '早退允许分钟数',
    `overtime_threshold` decimal(4,2) DEFAULT 1 COMMENT '加班起算时长（小时）',
    `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态：0-启用，1-禁用',
    `remark` varchar(500) DEFAULT NULL COMMENT '备注',
    `creator` varchar(64) DEFAULT '' COMMENT '创建者',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `updater` varchar(64) DEFAULT '' COMMENT '更新者',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
    PRIMARY KEY (`id`),
    KEY `idx_dept_id` (`dept_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='HRM考勤规则配置表';

-- 3.2 考勤打卡记录表
CREATE TABLE IF NOT EXISTS `hrm_attendance_record` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '记录ID',
    `user_id` bigint NOT NULL COMMENT '员工ID',
    `dept_id` bigint NOT NULL COMMENT '部门ID',
    `date` date NOT NULL COMMENT '考勤日期',
    `clock_in_time` datetime DEFAULT NULL COMMENT '上班打卡时间',
    `clock_out_time` datetime DEFAULT NULL COMMENT '下班打卡时间',
    `clock_in_type` tinyint DEFAULT NULL COMMENT '上班打卡类型：1-正常，2-迟到，3-缺卡',
    `clock_out_type` tinyint DEFAULT NULL COMMENT '下班打卡类型：1-正常，2-早退，3-缺卡',
    `work_hours` decimal(4,2) DEFAULT NULL COMMENT '工作时长（小时）',
    `overtime_hours` decimal(4,2) DEFAULT 0 COMMENT '加班时长（小时）',
    `location` varchar(200) DEFAULT NULL COMMENT '打卡地点',
    `remark` varchar(500) DEFAULT NULL COMMENT '备注',
    `data_source` tinyint DEFAULT 1 COMMENT '数据来源：1-打卡，2-导入',
    `creator` varchar(64) DEFAULT '' COMMENT '创建者',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `updater` varchar(64) DEFAULT '' COMMENT '更新者',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_user_date` (`user_id`, `date`),
    KEY `idx_dept_date` (`dept_id`, `date`),
    KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='HRM考勤打卡记录表';

-- 3.3 考勤异常申请表
CREATE TABLE IF NOT EXISTS `hrm_attendance_exception` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '申请ID',
    `no` varchar(32) NOT NULL COMMENT '申请单号',
    `user_id` bigint NOT NULL COMMENT '申请人ID',
    `dept_id` bigint NOT NULL COMMENT '部门ID',
    `type` tinyint NOT NULL COMMENT '异常类型：1-补卡，2-加班，3-出差',
    `exception_date` date NOT NULL COMMENT '异常日期',
    `exception_time` datetime DEFAULT NULL COMMENT '异常时间点',
    `reason` varchar(500) NOT NULL COMMENT '申请原因',
    `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态：0-草稿，10-审批中，20-通过，30-驳回，40-撤销',
    `process_instance_id` varchar(64) DEFAULT NULL COMMENT 'BPM流程实例ID',
    `approve_time` datetime DEFAULT NULL COMMENT '审批完成时间',
    `remark` varchar(500) DEFAULT NULL COMMENT '备注',
    `creator` varchar(64) DEFAULT '' COMMENT '创建者',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `updater` varchar(64) DEFAULT '' COMMENT '更新者',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_no` (`no`),
    KEY `idx_user_status` (`user_id`, `status`),
    KEY `idx_dept_date` (`dept_id`, `exception_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='HRM考勤异常申请表';

-- =============================================
-- 3. 薪酬管理模块表
-- =============================================

-- 3.1 薪酬结构表
CREATE TABLE IF NOT EXISTS `hrm_salary_structure` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '结构ID',
    `name` varchar(100) NOT NULL COMMENT '结构名称',
    `base_salary` decimal(12,2) NOT NULL COMMENT '基本工资',
    `performance_ratio` decimal(4,2) DEFAULT 0 COMMENT '绩效工资占比（%）',
    `overtime_pay_ratio` decimal(4,2) DEFAULT 1.5 COMMENT '工作日加班工资倍率',
    `rest_day_overtime_pay_ratio` decimal(4,2) DEFAULT 2.0 COMMENT '休息日加班工资倍率',
    `legal_holiday_overtime_pay_ratio` decimal(4,2) DEFAULT 3.0 COMMENT '法定节假日加班工资倍率',
    `social_security_base` decimal(12,2) DEFAULT NULL COMMENT '社保基数',
    `housing_fund_base` decimal(12,2) DEFAULT NULL COMMENT '公积金基数',
    `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态：0-启用，1-禁用',
    `remark` varchar(500) DEFAULT NULL COMMENT '备注',
    `creator` varchar(64) DEFAULT '' COMMENT '创建者',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `updater` varchar(64) DEFAULT '' COMMENT '更新者',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='HRM薪酬结构表';

-- 3.2 员工薪酬档案表
CREATE TABLE IF NOT EXISTS `hrm_employee_salary` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '档案ID',
    `user_id` bigint NOT NULL COMMENT '员工ID',
    `salary_structure_id` bigint NOT NULL COMMENT '薪酬结构ID',
    `base_salary` decimal(12,2) NOT NULL COMMENT '基本工资',
    `performance_salary` decimal(12,2) DEFAULT NULL COMMENT '绩效工资',
    `meal_allowance` decimal(12,2) DEFAULT 0 COMMENT '餐补',
    `transport_allowance` decimal(12,2) DEFAULT 0 COMMENT '交通补贴',
    `other_allowance` decimal(12,2) DEFAULT 0 COMMENT '其他补贴',
    `effective_date` date NOT NULL COMMENT '生效日期',
    `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态：0-启用，1-禁用',
    `remark` varchar(500) DEFAULT NULL COMMENT '备注',
    `creator` varchar(64) DEFAULT '' COMMENT '创建者',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `updater` varchar(64) DEFAULT '' COMMENT '更新者',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_user_effective` (`user_id`, `effective_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='HRM员工薪酬档案表';

-- 3.3 薪酬核算记录表
CREATE TABLE IF NOT EXISTS `hrm_salary_calculation` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '核算ID',
    `no` varchar(32) NOT NULL COMMENT '核算单号',
    `period` varchar(20) NOT NULL COMMENT '核算周期（如2024-01）',
    `user_id` bigint NOT NULL COMMENT '员工ID',
    `dept_id` bigint NOT NULL COMMENT '部门ID',
    `base_salary` decimal(12,2) NOT NULL COMMENT '基本工资',
    `performance_salary` decimal(12,2) DEFAULT NULL COMMENT '绩效工资',
    `overtime_pay` decimal(12,2) DEFAULT 0 COMMENT '加班工资',
    `meal_allowance` decimal(12,2) DEFAULT 0 COMMENT '餐补',
    `transport_allowance` decimal(12,2) DEFAULT 0 COMMENT '交通补贴',
    `other_allowance` decimal(12,2) DEFAULT 0 COMMENT '其他补贴',
    `social_security_deduction` decimal(12,2) DEFAULT NULL COMMENT '社保扣除',
    `housing_fund_deduction` decimal(12,2) DEFAULT NULL COMMENT '公积金扣除',
    `tax_deduction` decimal(12,2) DEFAULT NULL COMMENT '个税扣除',
    `other_deduction` decimal(12,2) DEFAULT 0 COMMENT '其他扣除',
    `actual_salary` decimal(12,2) NOT NULL COMMENT '实发工资',
    `work_days` tinyint DEFAULT NULL COMMENT '出勤天数',
    `overtime_hours` decimal(4,2) DEFAULT NULL COMMENT '加班时长',
    `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态：0-待确认，10-已确认，20-已发放',
    `confirm_time` datetime DEFAULT NULL COMMENT '确认时间',
    `confirm_user_id` bigint DEFAULT NULL COMMENT '确认人ID',
    `payment_time` datetime DEFAULT NULL COMMENT '发放时间',
    `remark` varchar(500) DEFAULT NULL COMMENT '备注',
    `creator` varchar(64) DEFAULT '' COMMENT '创建者',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `updater` varchar(64) DEFAULT '' COMMENT '更新者',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_no` (`no`),
    KEY `idx_user_period` (`user_id`, `period`),
    KEY `idx_dept_period` (`dept_id`, `period`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='HRM薪酬核算记录表';

-- 3.4 薪资发放台账表
CREATE TABLE IF NOT EXISTS `hrm_salary_payment` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '发放ID',
    `no` varchar(32) NOT NULL COMMENT '发放单号',
    `period` varchar(20) NOT NULL COMMENT '发放周期',
    `total_amount` decimal(14,2) NOT NULL COMMENT '发放总金额',
    `total_count` int NOT NULL COMMENT '发放人数',
    `payment_method` tinyint NOT NULL COMMENT '发放方式：1-银行转账，2-现金',
    `payment_time` datetime NOT NULL COMMENT '发放时间',
    `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态：0-待发放，10-已发放',
    `remark` varchar(500) DEFAULT NULL COMMENT '备注',
    `creator` varchar(64) DEFAULT '' COMMENT '创建者',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `updater` varchar(64) DEFAULT '' COMMENT '更新者',
    `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_no` (`no`),
    KEY `idx_period` (`period`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='HRM薪资发放台账表';

-- =============================================
-- 4. 菜单权限
-- =============================================

-- 4.1 HRM管理目录
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (6001, '人事管理', '', 1, 50, 0, '/hrm', 'ep:user', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

-- 4.2 员工管理目录
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (6006, '员工管理', '', 2, 0, 6001, 'employee', 'ep:avatar', 'hrm/employee/index', 'HrmEmployee', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60061, '员工查询', 'hrm:employee:query', 3, 1, 6006, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60062, '员工新增', 'hrm:employee:create', 3, 2, 6006, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60063, '员工修改', 'hrm:employee:update', 3, 3, 6006, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60064, '员工删除', 'hrm:employee:delete', 3, 4, 6006, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60065, '员工导出', 'hrm:employee:export', 3, 5, 6006, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

-- 4.3 人事审批目录
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (6002, '人事审批', '', 1, 1, 6001, 'approval', 'ep:document-checked', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

-- 4.4 请假申请菜单
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (6003, '请假申请', '', 2, 1, 6002, 'leave', 'ep:calendar', 'hrm/approval/leave/index', 'HrmLeaveApplication', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60031, '请假申请查询', 'hrm:leave:query', 3, 1, 6003, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60032, '请假申请新增', 'hrm:leave:create', 3, 2, 6003, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60033, '请假申请修改', 'hrm:leave:update', 3, 3, 6003, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60034, '请假申请删除', 'hrm:leave:delete', 3, 4, 6003, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60035, '请假申请提交', 'hrm:leave:submit', 3, 5, 6003, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

-- 4.5 调岗申请菜单
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (6004, '调岗申请', '', 2, 2, 6002, 'transfer', 'ep:sort', 'hrm/approval/transfer/index', 'HrmTransferApplication', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60041, '调岗申请查询', 'hrm:transfer:query', 3, 1, 6004, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60042, '调岗申请新增', 'hrm:transfer:create', 3, 2, 6004, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60043, '调岗申请修改', 'hrm:transfer:update', 3, 3, 6004, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60044, '调岗申请删除', 'hrm:transfer:delete', 3, 4, 6004, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60045, '调岗申请提交', 'hrm:transfer:submit', 3, 5, 6004, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

-- 4.6 离职申请菜单
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (6005, '离职申请', '', 2, 3, 6002, 'resignation', 'ep:switch-button', 'hrm/approval/resignation/index', 'HrmResignationApplication', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60051, '离职申请查询', 'hrm:resignation:query', 3, 1, 6005, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60052, '离职申请新增', 'hrm:resignation:create', 3, 2, 6005, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60053, '离职申请修改', 'hrm:resignation:update', 3, 3, 6005, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60054, '离职申请删除', 'hrm:resignation:delete', 3, 4, 6005, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60055, '离职申请提交', 'hrm:resignation:submit', 3, 5, 6005, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

-- 4.6 考勤管理目录
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (6010, '考勤管理', '', 1, 2, 6001, 'attendance', 'ep:clock', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

-- 4.7 考勤记录菜单
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (6011, '考勤记录', '', 2, 1, 6010, 'record', 'ep:document', 'hrm/attendance/record/index', 'HrmAttendanceRecord', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60111, '考勤记录查询', 'hrm:attendance:query', 3, 1, 6011, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60112, '考勤记录导入', 'hrm:attendance:import', 3, 2, 6011, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60113, '考勤记录导出', 'hrm:attendance:export', 3, 3, 6011, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

-- 4.8 考勤异常菜单
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (6012, '考勤异常', '', 2, 2, 6010, 'exception', 'ep:warning', 'hrm/attendance/exception/index', 'HrmAttendanceException', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

-- 4.9 薪酬管理目录
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (6020, '薪酬管理', '', 1, 3, 6001, 'salary', 'ep:money', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

-- 4.10 薪酬核算菜单
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (6021, '薪酬核算', '', 2, 1, 6020, 'calculation', 'ep:coin', 'hrm/salary/calculation/index', 'HrmSalaryCalculation', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60211, '薪酬核算查询', 'hrm:salary:query', 3, 1, 6021, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60212, '薪酬核算执行', 'hrm:salary:calculate', 3, 2, 6021, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60213, '薪酬核算确认', 'hrm:salary:confirm', 3, 3, 6021, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (60214, '薪酬核算导出', 'hrm:salary:export', 3, 4, 6021, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

-- 4.11 薪资发放菜单
INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (6022, '薪资发放', '', 2, 2, 6020, 'payment', 'ep:wallet', 'hrm/salary/payment/index', 'HrmSalaryPayment', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

-- =============================================
-- 5. 角色菜单关联
-- =============================================

-- 给角色 ID=1（超级管理员）分配 HRM 菜单权限
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 6001, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 6006, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60061, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60062, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60063, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60064, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60065, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 6002, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 6003, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60031, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60032, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60033, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60034, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60035, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 6004, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60041, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60042, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60043, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60044, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60045, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 6005, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60051, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60052, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60053, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60054, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60055, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 6010, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 6011, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60111, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60112, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60113, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 6012, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 6020, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 6021, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60211, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60212, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60213, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60214, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 6022, '1', NOW(), '1', NOW(), b'0');

-- =============================================
-- 执行完成提示
-- =============================================
SELECT 'HRM 人力资源模块 SQL 初始化完成！' AS result;
