-- =============================================
|
-- 员工社保公积金档案表重新设计
|
-- 一个社保方案可以绑定多个员工,一个员工绑定一个社保方案
|
-- =============================================
|
|
-- 删除旧表(如果存在)
|
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;
|