2026-07-09 d41fe2e95f3f64c6e3a7229acd9e74e673513a0a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
-- =============================================
-- 社保公积金个税扣除功能 SQL
-- =============================================
 
-- 1. 社保公积金配置表(全局配置)
CREATE TABLE IF NOT EXISTS `hrm_social_security_config` (
    `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 '公积金个人缴纳比例',
    -- 社保基数上下限
    `social_security_base_min` decimal(12,2) NOT NULL COMMENT '社保基数下限',
    `social_security_base_max` decimal(12,2) NOT NULL COMMENT '社保基数上限',
    -- 公积金基数上下限
    `housing_fund_base_min` decimal(12,2) NOT NULL COMMENT '公积金基数下限',
    `housing_fund_base_max` decimal(12,2) 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`),
    KEY `idx_effective_date` (`effective_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='HRM社保公积金配置表';
 
-- 2. 个税税率配置表(累进税率)
CREATE TABLE IF NOT EXISTS `hrm_tax_rate_config` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '配置ID',
    `name` varchar(100) NOT NULL COMMENT '配置名称',
    `effective_date` date NOT NULL COMMENT '生效日期',
    `level` tinyint NOT NULL COMMENT '税率级数:1-7',
    `min_amount` decimal(12,2) NOT NULL COMMENT '应纳税所得额下限(含)',
    `max_amount` decimal(12,2) NOT NULL COMMENT '应纳税所得额上限(不含),0表示无上限',
    `tax_rate` decimal(5,4) NOT NULL COMMENT '税率',
    `quick_deduction` decimal(12,2) NOT NULL DEFAULT 0 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`),
    KEY `idx_level` (`level`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='HRM个税税率配置表';
 
-- 3. 员工社保公积金档案表
CREATE TABLE IF NOT EXISTS `hrm_employee_social_security` (
    `id` bigint NOT NULL AUTO_INCREMENT COMMENT '档案ID',
    `user_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`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='HRM员工社保公积金档案表';
 
-- =============================================
-- 初始化数据
-- =============================================
 
-- 初始化社保公积金配置(2024年标准,示例数据)
INSERT INTO `hrm_social_security_config`
(`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`,
 `social_security_base_min`, `social_security_base_max`,
 `housing_fund_base_min`, `housing_fund_base_max`,
 `status`, `remark`, `creator`, `updater`)
VALUES
('2024年社保公积金标准', '2024-01-01',
 0.16, 0.08,   -- 养老:企业16%,个人8%
 0.095, 0.02,  -- 医疗:企业9.5%,个人2%
 0.005, 0.005, -- 失业:企业0.5%,个人0.5%
 0.005, 0.005, -- 工伤0.5%,生育0.5%(仅企业)
 0.12, 0.12,   -- 公积金:企业12%,个人12%
 4494.00, 28017.00, -- 社保基数:下限4494,上限28017
 2420.00, 35091.00, -- 公积金基数:下限2420,上限35091
 0, '2024年南通市社保公积金缴纳标准', '1', '1');
 
-- 初始化个税税率表(2024年标准)
INSERT INTO `hrm_tax_rate_config`
(`name`, `effective_date`, `level`, `min_amount`, `max_amount`, `tax_rate`, `quick_deduction`, `status`, `remark`, `creator`, `updater`)
VALUES
('2024年个税税率表', '2024-01-01', 1, 0, 36000, 0.03, 0, 0, '不超过36000元', '1', '1'),
('2024年个税税率表', '2024-01-01', 2, 36000, 144000, 0.10, 2520, 0, '超过36000元至144000元', '1', '1'),
('2024年个税税率表', '2024-01-01', 3, 144000, 300000, 0.20, 16920, 0, '超过144000元至300000元', '1', '1'),
('2024年个税税率表', '2024-01-01', 4, 300000, 420000, 0.25, 31920, 0, '超过300000元至420000元', '1', '1'),
('2024年个税税率表', '2024-01-01', 5, 420000, 660000, 0.30, 52920, 0, '超过420000元至660000元', '1', '1'),
('2024年个税税率表', '2024-01-01', 6, 660000, 960000, 0.35, 85920, 0, '超过660000元至960000元', '1', '1'),
('2024年个税税率表', '2024-01-01', 7, 960000, 0, 0.45, 181920, 0, '超过960000元', '1', '1');
 
-- =============================================
-- 菜单权限
-- =============================================
 
-- 社保公积金配置菜单
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 (6023, '社保公积金配置', '', 2, 3, 6020, 'social-security', 'ep:setting', 'hrm/salary/social-security/index', 'HrmSocialSecurityConfig', 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 (60231, '社保配置查询', 'hrm:social-security:query', 3, 1, 6023, '', '', '', 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 (60232, '社保配置新增', 'hrm:social-security:create', 3, 2, 6023, '', '', '', 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 (60233, '社保配置修改', 'hrm:social-security:update', 3, 3, 6023, '', '', '', 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 (60234, '社保配置删除', 'hrm:social-security:delete', 3, 4, 6023, '', '', '', 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 (6024, '个税税率配置', '', 2, 4, 6020, 'tax-rate', 'ep:document', 'hrm/salary/tax-rate/index', 'HrmTaxRateConfig', 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 (60241, '个税配置查询', 'hrm:tax-rate:query', 3, 1, 6024, '', '', '', 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 (60242, '个税配置新增', 'hrm:tax-rate:create', 3, 2, 6024, '', '', '', 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 (60243, '个税配置修改', 'hrm:tax-rate:update', 3, 3, 6024, '', '', '', 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 (60244, '个税配置删除', 'hrm:tax-rate:delete', 3, 4, 6024, '', '', '', NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');
 
-- 角色菜单关联
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 6023, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60231, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60232, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60233, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60234, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 6024, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60241, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60242, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60243, '1', NOW(), '1', NOW(), b'0');
INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (1, 60244, '1', NOW(), '1', NOW(), b'0');
 
SELECT '社保公积金个税扣除功能 SQL 初始化完成!' AS result;