2 天以前 e1a2ae80bcac68064098d51bdec912fc74b7c964
feat(hrm): 添加HRM模块数据库表和菜单权限初始化脚本

- 创建转正申请表、月度工时汇总表、员工级排班明细表
- 添加绩效考核表班组范围列
- 添加培训活动表和培训参训人员表
- 添加转正申请、月度工时汇总、薪酬结构等菜单及按钮权限
- 添加培训管理菜单和相关权限
- 添加员工排班明细菜单及按钮权限
- 添加证书到期提醒和劳动合同到期提醒站内信模板
- 添加HRM证书和合同到期提醒天数全局配置
- 添加定时任务每日扫描证书合同到期并发送提醒
- 为超管和管理员角色分配相应菜单权限
已添加2个文件
269 ■■■■■ 文件已修改
sql/mysql/hrm_regularize_workhour_schedule_menu_init.sql 166 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sql/mysql/hrm_training_certificate_remind_init.sql 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sql/mysql/hrm_regularize_workhour_schedule_menu_init.sql
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,166 @@
-- =============================================
-- HRM éœ€æ±‚â‘ â‘¡æ”¶å°¾ SQL åˆå§‹åŒ–脚本
-- è¦†ç›–:转正申请表、月度工时汇总表、员工级排班明细表、
--      ç»©æ•ˆè€ƒæ ¸ç­ç»„范围列(scope_team_ids)、新菜单与按钮权限
-- æ‰§è¡Œåº“:mom-xgdl(run-once,禁止重复执行)
-- è§„则:不含 tenant_id;菜单/权限使用一次性 INSERT
-- =============================================
-- =============================================
-- 1. è½¬æ­£ç”³è¯·è¡¨
-- =============================================
CREATE TABLE IF NOT EXISTS `hrm_regularize_application` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '申请ID',
    `no` varchar(32) NOT NULL COMMENT '申请单号',
    `user_id` bigint NOT NULL COMMENT '申请人ID(关联 system_users.id)',
    `dept_id` bigint DEFAULT NULL COMMENT '部门ID',
    `post_id` bigint DEFAULT NULL COMMENT '岗位ID',
    `employment_type` tinyint DEFAULT NULL COMMENT '当前用工性质:1-正式,2-劳务,3-外包,4-实习,5-退休返聘,6-其他',
    `expected_date` date DEFAULT NULL COMMENT '拟转正日期',
    `reason` 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_id` (`user_id`),
    KEY `idx_status` (`status`),
    KEY `idx_process_instance_id` (`process_instance_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='HRM转正申请表';
-- =============================================
-- 2. æœˆåº¦å·¥æ—¶æ±‡æ€»è¡¨
-- =============================================
CREATE TABLE IF NOT EXISTS `hrm_workhour_summary` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '汇总ID',
    `employee_id` bigint NOT NULL COMMENT '员工ID',
    `dept_id` bigint DEFAULT NULL COMMENT '部门ID',
    `period` varchar(10) NOT NULL COMMENT '核算周期(yyyy-MM)',
    `work_days` int DEFAULT 0 COMMENT '出勤天数',
    `work_hours` decimal(10,2) DEFAULT 0 COMMENT '正常工时(小时)',
    `overtime_hours` decimal(10,2) DEFAULT 0 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_employee_period` (`employee_id`, `period`),
    KEY `idx_period` (`period`),
    KEY `idx_dept_id` (`dept_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='HRM月度工时汇总表';
-- =============================================
-- 3. å‘˜å·¥çº§æŽ’班明细表
-- =============================================
CREATE TABLE IF NOT EXISTS `mes_cal_schedule_detail` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
    `plan_id` bigint DEFAULT NULL COMMENT '排班计划编号',
    `team_id` bigint DEFAULT NULL COMMENT '班组编号',
    `user_id` bigint NOT NULL COMMENT '班组成员用户编号(关联 system_users.id)',
    `day` datetime NOT NULL COMMENT '日期',
    `shift_id` bigint DEFAULT NULL COMMENT '班次编号',
    `shift_name` varchar(50) DEFAULT NULL COMMENT '班次名称(冗余)',
    `start_time` varchar(20) DEFAULT NULL COMMENT '开始时间(HH:mm,冗余)',
    `end_time` varchar(20) DEFAULT NULL COMMENT '结束时间(HH:mm,冗余)',
    `source` tinyint NOT NULL DEFAULT 1 COMMENT '来源:1-自动生成,2-人工调整',
    `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_plan_id` (`plan_id`),
    KEY `idx_team_id` (`team_id`),
    KEY `idx_user_id_day` (`user_id`, `day`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='MES员工级排班明细表';
-- =============================================
-- 4. ç»©æ•ˆè€ƒæ ¸è¡¨å¢žåŠ ç­ç»„èŒƒå›´åˆ—ï¼ˆå…ˆæ£€æŸ¥å†æ·»åŠ ï¼Œå…¼å®¹é‡å¤æ‰§è¡Œï¼‰
-- =============================================
SET @exists_scope_team_ids = (SELECT COUNT(*) FROM information_schema.columns
    WHERE table_schema = 'mom-xgdl' AND table_name = 'hrm_performance_appraise' AND column_name = 'scope_team_ids');
SET @sql_scope_team_ids = IF(@exists_scope_team_ids = 0,
    'ALTER TABLE `hrm_performance_appraise` ADD COLUMN `scope_team_ids` varchar(500) DEFAULT NULL COMMENT ''指定班组编号集合(JSON æ•°ç»„,scope_type=2 æ—¶ç”Ÿæ•ˆï¼‰'' AFTER `scope_type`',
    'SELECT 1');
PREPARE stmt_scope_team_ids FROM @sql_scope_team_ids;
EXECUTE stmt_scope_team_ids;
DEALLOCATE PREPARE stmt_scope_team_ids;
-- =============================================
-- 5. èœå•与按钮权限(一次性 INSERT)
-- =============================================
-- 5.1 è½¬æ­£ç”³è¯·èœå•(父 6002 äººäº‹å®¡æ‰¹ï¼‰+ æŒ‰é’®
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
(6007, '转正申请', '', 2, 4, 6002, 'regularize', 'ep:promotion', 'hrm/regularize/index', 'HrmRegularizeApplication', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(600701, '转正申请查询', 'hrm:regularize:query', 3, 1, 6007, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(600702, '转正申请创建', 'hrm:regularize:create', 3, 2, 6007, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(600703, '转正申请更新', 'hrm:regularize:update', 3, 3, 6007, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(600704, '转正申请删除', 'hrm:regularize:delete', 3, 4, 6007, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(600705, '转正申请提交审批', 'hrm:regularize:submit', 3, 5, 6007, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(600706, '转正申请审批', 'hrm:regularize:audit', 3, 6, 6007, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0');
-- 5.2 æœˆåº¦å·¥æ—¶æ±‡æ€»èœå•(父 6001 äººåŠ›èµ„æºï¼‰+ æŒ‰é’®
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
(1065700, '月度工时汇总', '', 2, 3, 6001, 'work-hour-summary', 'ep:data-line', 'hrm/workHourSummary/index', 'HrmWorkHourSummary', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1065701, '月度工时汇总查询', 'hrm:work-hour:query', 3, 1, 1065700, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1065702, '月度工时汇总生成', 'hrm:work-hour:generate', 3, 2, 1065700, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0');
-- 5.3 è–ªé…¬ç»“构菜单(父 6020 è–ªé…¬ç®¡ç†ï¼‰+ æŒ‰é’®
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
(1065710, '薪酬结构', '', 2, 4, 6020, 'salary-structure', 'ep:coins', 'hrm/salaryStructure/index', 'HrmSalaryStructure', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1065711, '薪酬结构查询', 'hrm:salary:query', 3, 1, 1065710, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1065712, '薪酬结构创建', 'hrm:salary:create', 3, 2, 1065710, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1065713, '薪酬结构更新', 'hrm:salary:update', 3, 3, 1065710, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1065714, '薪酬结构删除', 'hrm:salary:delete', 3, 4, 1065710, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0');
-- 5.4 å‘˜å·¥è–ªé…¬æ¡£æ¡ˆèœå•(父 6020 è–ªé…¬ç®¡ç†ï¼‰+ æŒ‰é’®
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
(1065720, '员工薪酬档案', '', 2, 5, 6020, 'employee-salary', 'ep:wallet', 'hrm/employeeSalary/index', 'HrmEmployeeSalary', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1065721, '员工薪酬档案查询', 'hrm:salary:query', 3, 1, 1065720, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1065722, '员工薪酬档案创建', 'hrm:salary:create', 3, 2, 1065720, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1065723, '员工薪酬档案更新', 'hrm:salary:update', 3, 3, 1065720, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1065724, '员工薪酬档案删除', 'hrm:salary:delete', 3, 4, 1065720, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0');
-- 5.5 å‘˜å·¥çº§æŽ’班明细菜单(父 5200 è®¡åˆ’排程)+ æŒ‰é’®
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
(5270, '员工排班明细', '', 2, 4, 5200, 'schedule-detail', 'ep:tickets', 'mes/cal/scheduleDetail/index', 'MesCalScheduleDetail', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(5271, '员工排班明细查询', 'mes:cal-schedule-detail:query', 3, 1, 5270, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(5272, '员工排班明细生成', 'mes:cal-schedule-detail:generate', 3, 2, 5270, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(5273, '员工排班明细调整', 'mes:cal-schedule-detail:update', 3, 3, 5270, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0');
-- =============================================
-- 6. è§’色授权(与 HRM çŽ°æœ‰ 1065330 å·¥æ—¶ç»Ÿè®¡ä¸€è‡´ï¼ŒæŽˆæƒç»™è¶…管/管理员角色)
-- =============================================
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES
(1, 6007, '1', NOW(), '1', NOW(), b'0'),
(1, 600701, '1', NOW(), '1', NOW(), b'0'),
(1, 600702, '1', NOW(), '1', NOW(), b'0'),
(1, 600703, '1', NOW(), '1', NOW(), b'0'),
(1, 600704, '1', NOW(), '1', NOW(), b'0'),
(1, 600705, '1', NOW(), '1', NOW(), b'0'),
(1, 600706, '1', NOW(), '1', NOW(), b'0'),
(2, 1065700, '1', NOW(), '1', NOW(), b'0'),
(2, 1065701, '1', NOW(), '1', NOW(), b'0'),
(2, 1065702, '1', NOW(), '1', NOW(), b'0'),
(109, 1065700, '1', NOW(), '1', NOW(), b'0'),
(109, 1065701, '1', NOW(), '1', NOW(), b'0'),
(109, 1065702, '1', NOW(), '1', NOW(), b'0'),
(111, 1065700, '1', NOW(), '1', NOW(), b'0'),
(111, 1065701, '1', NOW(), '1', NOW(), b'0'),
(111, 1065702, '1', NOW(), '1', NOW(), b'0');
sql/mysql/hrm_training_certificate_remind_init.sql
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,103 @@
-- ============================================
-- HRM åŸ¹è®­ç®¡ç† + è¯ä¹¦/合同到期提醒 æ¨¡å—初始化脚本
-- ç›®æ ‡åº“:mom-xgdl(单次执行,勿重复跑)
-- 1. å»ºè¡¨(培训活动 + å‚训人员)
-- 2. èœå• + æŒ‰é’®æƒé™ + è§’色授权
-- 3. ç«™å†…信模板(2)
-- 4. å…¨å±€é…ç½®(提醒天数,默认 30)
-- 5. å®šæ—¶ä»»åŠ¡(每日 08:00 åˆ°æœŸæé†’)
-- ============================================
-- 1. å»ºè¡¨
CREATE TABLE IF NOT EXISTS `hrm_training` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
    `training_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '培训编号',
    `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '培训名称',
    `training_type` tinyint NOT NULL COMMENT '培训类型(1=安全培训,2=技能培训,3=管理培训,4=其他)',
    `trainer` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '讲师',
    `location` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '培训地点',
    `hours` decimal(6,1) NULL DEFAULT NULL COMMENT '培训学时',
    `start_date` date NULL DEFAULT NULL COMMENT '开始日期',
    `end_date` date NULL DEFAULT NULL COMMENT '结束日期',
    `issue_certificate` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否自动发证(0=否,1=是;仅安全/技能培训支持)',
    `cert_validity_months` int NULL DEFAULT NULL COMMENT '证书有效期(月),自动发证时用于计算证书到期日',
    `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态(0=草稿,10=待开展,20=已完成,30=已取消)',
    `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注',
    -- æ ‡å‡†å­—段
    `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL 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`) USING BTREE,
    UNIQUE INDEX `uk_training_no` (`training_no`) USING BTREE,
    INDEX `idx_status` (`status`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'HRM åŸ¹è®­æ´»åЍ' ROW_FORMAT = Dynamic;
CREATE TABLE IF NOT EXISTS `hrm_training_participant` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
    `training_id` bigint NOT NULL COMMENT '培训活动编号',
    `employee_id` bigint NOT NULL COMMENT '员工编号',
    `attended` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否实际参加(0=未参加,1=参加)',
    `score` decimal(10,2) NULL DEFAULT NULL COMMENT '考核成绩',
    `is_pass` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否合格(0=不合格,1=合格)',
    `certificate_id` bigint NULL DEFAULT NULL COMMENT '联动生成的证书资质编号(幂等回写,防重复发证)',
    `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注',
    -- æ ‡å‡†å­—段
    `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者',
    `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL 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`) USING BTREE,
    UNIQUE INDEX `uk_training_id_employee_id` (`training_id`, `employee_id`) USING BTREE,
    INDEX `idx_employee_id` (`employee_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'HRM åŸ¹è®­å‚训人员' ROW_FORMAT = Dynamic;
-- 2. èœå•(父菜单 6001 äººåŠ›èµ„æºï¼‰ï¼šåŸ¹è®­ç®¡ç†
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 (1065600, '培训管理', '', 2, 99, 6001, 'training', 'ep:reading', 'hrm/training/index', 'HrmTraining', 0, b'1', b'0', 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
(1065601, '培训管理查询', 'hrm:training:query', 3, 1, 1065600, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1065602, '培训管理新增', 'hrm:training:create', 3, 2, 1065600, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1065603, '培训管理修改', 'hrm:training:update', 3, 3, 1065600, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0'),
(1065604, '培训管理删除', 'hrm:training:delete', 3, 4, 1065600, '', '', '', '', 0, b'1', b'0', b'1', '1', NOW(), '1', NOW(), b'0');
-- è§’色授权:与"证书资质"一致,授权给角色 2/109/111
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES
(2, 1065600, '1', NOW(), '1', NOW(), b'0'),
(2, 1065601, '1', NOW(), '1', NOW(), b'0'),
(2, 1065602, '1', NOW(), '1', NOW(), b'0'),
(2, 1065603, '1', NOW(), '1', NOW(), b'0'),
(2, 1065604, '1', NOW(), '1', NOW(), b'0'),
(109, 1065600, '1', NOW(), '1', NOW(), b'0'),
(109, 1065601, '1', NOW(), '1', NOW(), b'0'),
(109, 1065602, '1', NOW(), '1', NOW(), b'0'),
(109, 1065603, '1', NOW(), '1', NOW(), b'0'),
(109, 1065604, '1', NOW(), '1', NOW(), b'0'),
(111, 1065600, '1', NOW(), '1', NOW(), b'0'),
(111, 1065601, '1', NOW(), '1', NOW(), b'0'),
(111, 1065602, '1', NOW(), '1', NOW(), b'0'),
(111, 1065603, '1', NOW(), '1', NOW(), b'0'),
(111, 1065604, '1', NOW(), '1', NOW(), b'0');
-- 3. ç«™å†…信模板(type=2 ç³»ç»Ÿæ¶ˆæ¯ï¼›å˜é‡åé¡»ä¸ŽåŽç«¯ HrmExpiryRemindServiceImpl æŽ¨é€çš„ params ä¸€è‡´ï¼‰
INSERT INTO `system_notify_template` (`name`, `code`, `nickname`, `content`, `type`, `params`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES
('证书到期提醒', 'hrm_certificate_expire_remind', 'HRM ç³»ç»Ÿ', '{employeeName},您的证书资质【{certTypeName}】{certName} å°†äºŽ {expireDate} åˆ°æœŸï¼Œè¯·åŠæ—¶åŠžç†å¤å®¡/换证。', 2, '["employeeName","certTypeName","certName","expireDate"]', 0, '1', NOW(), '1', NOW(), b'0'),
('劳动合同到期提醒', 'hrm_contract_expire_remind', 'HRM ç³»ç»Ÿ', '{employeeName},您的劳动合同(编号:{contractNo})将于 {endDate} åˆ°æœŸï¼Œè¯·åŠæ—¶è”系人事办理续签或离职手续。', 2, '["employeeName","contractNo","endDate"]', 0, '1', NOW(), '1', NOW(), b'0');
-- 4. å…¨å±€é…ç½®ï¼ˆåˆ°æœŸæé†’天数,默认 30,可在「系统配置」调整)
INSERT INTO `infra_config` (`category`, `type`, `name`, `config_key`, `value`, `visible`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES
('biz', 2, 'HRM è¯ä¹¦åˆ°æœŸæé†’天数', 'hrm.certificate.remind-days', '30', 1, '证书资质有效期到期前 N å¤©æé†’(站内信发送至员工系统账号),默认 30', '1', NOW(), '1', NOW(), b'0'),
('biz', 2, 'HRM åˆåŒåˆ°æœŸæé†’天数', 'hrm.contract.remind-days', '30', 1, '劳动合同到期前 N å¤©æé†’(站内信发送至员工系统账号),默认 30', '1', NOW(), '1', NOW(), b'0');
-- 5. å®šæ—¶ä»»åŠ¡ï¼šæ¯æ—¥ 08:00 æ‰«æè¯ä¹¦/合同到期并发送站内信(handlerName=hrmExpiryRemindJob,status=1 å¯ç”¨ï¼‰
INSERT INTO `infra_job` (`name`, `status`, `handler_name`, `handler_param`, `cron_expression`, `retry_count`, `retry_interval`, `monitor_timeout`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES ('HRM è¯ä¹¦/合同到期提醒', 1, 'hrmExpiryRemindJob', NULL, '0 0 8 * * ?', 0, 0, 0, '1', NOW(), '1', NOW(), b'0');