-- ============================================================
|
-- 从「新疆中亿装配」同步 HRM 能力到「新疆北方科技」—— 表结构变更
|
-- 生成日期:2026-10-24
|
--
|
-- 说明:
|
-- 1. 本脚本【只做表结构变更】,不含任何业务数据
|
-- 2. 业务数据(员工、部门、岗位、考勤规则、薪资、社保方案等)
|
-- 保留北方科技自己的,不从其他企业迁移
|
-- 3. 配套代码:yudao-module-hrm / yudao-module-hrm-api 由中亿装配分支同步
|
-- 4. 【执行一次即可】ALTER TABLE ADD COLUMN 不幂等,重复执行会报
|
-- Duplicate column name,属正常现象;CREATE TABLE 已用 IF NOT EXISTS
|
-- 5. 存量数据自动兼容:
|
-- - employee_category 默认 1(普通员工)
|
-- - 考勤规则 effective_*_date 为空表示不限,原规则继续生效
|
-- - 社保新比例字段为空,不影响原有计算
|
-- ============================================================
|
|
-- ------------------------------------------------------------
|
-- 1. 加班工资配置表(新增功能:薪酬 → 加班工资)
|
-- ------------------------------------------------------------
|
CREATE TABLE IF NOT EXISTS `hrm_overtime_wage_config` (
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '配置ID',
|
`post_id` bigint NOT NULL COMMENT '岗位ID,关联 system_post.id',
|
`hourly_rate` decimal(10,2) NOT NULL DEFAULT '20.00' COMMENT '加班时薪(元/小时),默认 20',
|
`max_overtime_hours` decimal(6,1) 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`),
|
UNIQUE KEY `uk_post_id` (`post_id`)
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='HRM岗位加班工资配置表';
|
|
-- ------------------------------------------------------------
|
-- 2. 员工类别(默认 1-普通员工,存量 168 条自动填充为普通员工)
|
-- ------------------------------------------------------------
|
ALTER TABLE `hrm_employee`
|
ADD COLUMN `employee_category` tinyint NOT NULL DEFAULT 1 COMMENT '员工类别:1-普通员工,2-技工,3-管理' AFTER `employee_status`;
|
|
-- ------------------------------------------------------------
|
-- 3. 考勤规则生效日期区间(空表示不限,存量规则按原逻辑继续生效)
|
-- ------------------------------------------------------------
|
ALTER TABLE `hrm_attendance_rule`
|
ADD COLUMN `effective_start_date` date DEFAULT NULL COMMENT '生效开始日期(空表示不限)' AFTER `overtime_threshold`,
|
ADD COLUMN `effective_end_date` date DEFAULT NULL COMMENT '生效结束日期(空表示不限)' AFTER `effective_start_date`;
|
|
-- ------------------------------------------------------------
|
-- 4. 社保公积金方案:新增大病医疗、长期护理两项保险比例
|
-- ------------------------------------------------------------
|
ALTER TABLE `hrm_social_security_scheme`
|
ADD COLUMN `serious_illness_company_ratio` decimal(10,4) DEFAULT NULL COMMENT '大病医疗企业缴纳比例' AFTER `maternity_ratio`,
|
ADD COLUMN `serious_illness_personal_ratio` decimal(10,4) DEFAULT NULL COMMENT '大病医疗个人缴纳比例' AFTER `serious_illness_company_ratio`,
|
ADD COLUMN `long_term_care_company_ratio` decimal(10,4) DEFAULT NULL COMMENT '长期护理企业缴纳比例' AFTER `serious_illness_personal_ratio`,
|
ADD COLUMN `long_term_care_personal_ratio` decimal(10,4) DEFAULT NULL COMMENT '长期护理个人缴纳比例' AFTER `long_term_care_company_ratio`;
|
|
-- ------------------------------------------------------------
|
-- 5. 【必须】节假日表放开 start_date / end_date 非空约束
|
--
|
-- 背景:北方科技原先支持「节假日时间段」(start_date/end_date,NOT NULL),
|
-- 中亿装配的 HrmAttendanceHolidayDO 只有单日 date 字段,不写这两个列。
|
-- 若保留 NOT NULL,新增/导入节假日会直接抛
|
-- Field 'start_date' doesn't have a default value → 前端显示「系统异常」
|
-- 现有数据:两边 hrm_attendance_holiday 均为 0 条,放开约束不涉及数据迁移
|
-- ------------------------------------------------------------
|
ALTER TABLE `hrm_attendance_holiday`
|
MODIFY COLUMN `start_date` date DEFAULT NULL COMMENT '开始日期(中亿版代码不写此列,保留兼容北方原区间结构)',
|
MODIFY COLUMN `end_date` date DEFAULT NULL COMMENT '结束日期(中亿版代码不写此列,保留兼容北方原区间结构)';
|