-- ============================================= -- 员工社保公积金档案表重新设计 -- 一个社保方案可以绑定多个员工,一个员工绑定一个社保方案 -- ============================================= -- 删除旧表(如果存在) DROP TABLE IF EXISTS `hrm_employee_social_security`; -- 创建员工社保公积金档案表 CREATE TABLE IF NOT EXISTS `hrm_employee_social_security` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '档案ID', `user_id` bigint NOT NULL COMMENT '系统用户ID', -- 绑定的社保公积金方案ID `social_security_scheme_id` bigint NOT NULL COMMENT '社保公积金方案ID', -- 缴纳基数(员工个性化设置) `social_security_base` decimal(12,2) NOT NULL COMMENT '社保缴纳基数', `housing_fund_base` decimal(12,2) NOT NULL 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`), KEY `idx_user_id` (`user_id`), KEY `idx_scheme_id` (`social_security_scheme_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='HRM员工社保公积金档案表'; -- ============================================= -- 社保公积金方案表(原全局配置表改为方案表) -- 一个方案可以被多个员工绑定 -- ============================================= -- 删除旧表 DROP TABLE IF EXISTS `hrm_social_security_config`; -- 创建社保公积金方案表 CREATE TABLE IF NOT EXISTS `hrm_social_security_scheme` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '方案ID', `name` varchar(100) NOT NULL COMMENT '方案名称', `effective_date` date NOT NULL COMMENT '生效日期', -- 养老保险比例 `pension_company_ratio` decimal(5,4) NOT NULL DEFAULT 0.16 COMMENT '养老保险企业缴纳比例', `pension_personal_ratio` decimal(5,4) NOT NULL DEFAULT 0.08 COMMENT '养老保险个人缴纳比例', -- 医疗保险比例 `medical_company_ratio` decimal(5,4) NOT NULL DEFAULT 0.095 COMMENT '医疗保险企业缴纳比例', `medical_personal_ratio` decimal(5,4) NOT NULL DEFAULT 0.02 COMMENT '医疗保险个人缴纳比例', -- 失业保险比例 `unemployment_company_ratio` decimal(5,4) NOT NULL DEFAULT 0.005 COMMENT '失业保险企业缴纳比例', `unemployment_personal_ratio` decimal(5,4) NOT NULL DEFAULT 0.005 COMMENT '失业保险个人缴纳比例', -- 工伤保险比例(仅企业缴纳) `work_injury_ratio` decimal(5,4) NOT NULL DEFAULT 0.005 COMMENT '工伤保险企业缴纳比例', -- 生育保险比例(仅企业缴纳) `maternity_ratio` decimal(5,4) NOT NULL DEFAULT 0.005 COMMENT '生育保险企业缴纳比例', -- 公积金比例 `housing_fund_company_ratio` decimal(5,4) NOT NULL DEFAULT 0.12 COMMENT '公积金企业缴纳比例', `housing_fund_personal_ratio` decimal(5,4) NOT NULL DEFAULT 0.12 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_effective_date` (`effective_date`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='HRM社保公积金方案表'; -- ============================================= -- 初始化默认方案 -- ============================================= INSERT INTO `hrm_social_security_scheme` (`name`, `effective_date`, `pension_company_ratio`, `pension_personal_ratio`, `medical_company_ratio`, `medical_personal_ratio`, `unemployment_company_ratio`, `unemployment_personal_ratio`, `work_injury_ratio`, `maternity_ratio`, `housing_fund_company_ratio`, `housing_fund_personal_ratio`, `status`, `remark`, `creator`, `updater`) VALUES ('2024年南通市标准', '2024-01-01', 0.16, 0.08, 0.095, 0.02, 0.005, 0.005, 0.005, 0.005, 0.12, 0.12, 0, '2024年南通市社保公积金缴纳标准', '1', '1'); SELECT '员工社保公积金档案表重新设计完成!' AS result;