Files
OnboardXAdmin/database/migrations/20260825_full_schema_rebuild.sql
T
2026-08-25 20:37:17 +08:00

144 lines
11 KiB
SQL

-- ====================================================================
-- OnboardX 数据库全量升级与重建脚本 (2026-08-25)
-- 包含标准化《入职登记表》全字段、合同变量字典体系、精简入职模板
-- ====================================================================
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- 1. 变量字典定义表 (新核心表)
CREATE TABLE IF NOT EXISTS `ob_variable_definition` (
`Id` BIGINT NOT NULL COMMENT '主键Id',
`VariableCode` VARCHAR(128) NOT NULL COMMENT '变量全编码 (如 employee.EmployeeName, hr.BaseSalary)',
`VariableName` VARCHAR(128) NOT NULL COMMENT '变量中文显示名称',
`VariableCategory` VARCHAR(32) NOT NULL COMMENT '变量分类: employee, hr, company, system',
`DataType` VARCHAR(32) NOT NULL DEFAULT 'string' COMMENT '数据类型: string, number, date',
`DefaultValue` VARCHAR(512) NULL COMMENT '默认值/占位提示',
`IsBuiltIn` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否为登记表内置字段 (1=是,0=否)',
`Required` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否必填',
`SortCode` INT NOT NULL DEFAULT 100 COMMENT '排序码',
`Remark` VARCHAR(512) NULL COMMENT '说明备注',
`Status` VARCHAR(20) NULL DEFAULT 'enable' COMMENT '状态',
`CreateTime` DATETIME NULL COMMENT '创建时间',
`UpdateTime` DATETIME NULL COMMENT '更新时间',
`CreateUserId` BIGINT NULL COMMENT '创建者Id',
`UpdateUserId` BIGINT NULL COMMENT '修改者Id',
`CreateUser` VARCHAR(64) NULL COMMENT '创建人',
`UpdateUser` VARCHAR(64) NULL COMMENT '更新人',
`IsDelete` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '软删除',
`ExtJson` LONGTEXT NULL,
PRIMARY KEY (`Id`),
UNIQUE KEY `uk_variable_code` (`VariableCode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='合同变量字典定义表';
-- 预置标准变量字典数据
TRUNCATE TABLE `ob_variable_definition`;
INSERT INTO `ob_variable_definition` (`Id`, `VariableCode`, `VariableName`, `VariableCategory`, `DataType`, `IsBuiltIn`, `Required`, `SortCode`, `Remark`, `CreateTime`, `IsDelete`) VALUES
-- 员工入职登记表内置字段 (employee.)
(841400000000001, 'employee.EmployeeName', '员工姓名', 'employee', 'string', 1, 1, 10, '入职登记表-姓名', NOW(), 0),
(841400000000002, 'employee.Gender', '性别', 'employee', 'string', 1, 1, 20, '入职登记表-性别', NOW(), 0),
(841400000000003, 'employee.Nation', '民族', 'employee', 'string', 1, 0, 30, '入职登记表-民族', NOW(), 0),
(841400000000004, 'employee.Birthday', '出生年月日', 'employee', 'date', 1, 0, 40, '入职登记表-出生日期', NOW(), 0),
(841400000000005, 'employee.RegisteredResidence', '户籍所在地', 'employee', 'string', 1, 0, 50, '入职登记表-户籍', NOW(), 0),
(841400000000006, 'employee.Height', '身高(cm)', 'employee', 'string', 1, 0, 60, '入职登记表-身高', NOW(), 0),
(841400000000007, 'employee.Weight', '体重(kg)', 'employee', 'string', 1, 0, 70, '入职登记表-体重', NOW(), 0),
(841400000000008, 'employee.HealthCondition', '健康状况', 'employee', 'string', 1, 0, 80, '入职登记表-健康状况', NOW(), 0),
(841400000000009, 'employee.MaritalStatus', '婚育情况', 'employee', 'string', 1, 0, 90, '入职登记表-婚育情况', NOW(), 0),
(841400000000010, 'employee.Education', '最高学历', 'employee', 'string', 1, 0, 100, '入职登记表-学历', NOW(), 0),
(841400000000011, 'employee.Major', '所学专业', 'employee', 'string', 1, 0, 110, '入职登记表-专业', NOW(), 0),
(841400000000012, 'employee.GraduatedSchool', '毕业院校', 'employee', 'string', 1, 0, 120, '入职登记表-毕业院校', NOW(), 0),
(841400000000013, 'employee.VocationalQualification', '职业资格', 'employee', 'string', 1, 0, 130, '入职登记表-职业资格', NOW(), 0),
(841400000000014, 'employee.QualificationLevel', '资格等级', 'employee', 'string', 1, 0, 140, '入职登记表-等级', NOW(), 0),
(841400000000015, 'employee.TechnicalSpecialty', '技术特长', 'employee', 'string', 1, 0, 150, '入职登记表-有何技术特长', NOW(), 0),
(841400000000016, 'employee.Phone', '联系电话', 'employee', 'string', 1, 1, 160, '入职登记表-联系电话', NOW(), 0),
(841400000000017, 'employee.Email', '电子邮箱', 'employee', 'string', 1, 0, 170, '入职登记表-邮箱', NOW(), 0),
(841400000000018, 'employee.IdCardNumber', '身份证号码', 'employee', 'string', 1, 1, 180, '入职登记表-身份证号码', NOW(), 0),
(841400000000019, 'employee.CurrentAddress', '现居住/暂住地址', 'employee', 'string', 1, 0, 190, '入职登记表-暂住地址', NOW(), 0),
(841400000000020, 'employee.LandlordContact', '房东联系方式', 'employee', 'string', 1, 0, 200, '入职登记表-房东联系方式', NOW(), 0),
(841400000000021, 'employee.BankCardNumber', '工资银行卡号', 'employee', 'string', 1, 0, 210, '入职登记表-银行卡号', NOW(), 0),
(841400000000022, 'employee.BankName', '开户银行', 'employee', 'string', 1, 0, 220, '入职登记表-开户银行', NOW(), 0),
(841400000000023, 'employee.BankAccountName', '开户人姓名', 'employee', 'string', 1, 0, 230, '入职登记表-开户名', NOW(), 0),
(841400000000024, 'employee.EmergencyContact', '紧急联系人姓名', 'employee', 'string', 1, 0, 240, '入职登记表-紧急联系人', NOW(), 0),
(841400000000025, 'employee.EmergencyPhone', '紧急联系人电话', 'employee', 'string', 1, 0, 250, '入职登记表-紧急联系人电话', NOW(), 0),
(841400000000026, 'employee.EmergencyAddress', '紧急联系人地址', 'employee', 'string', 1, 0, 260, '入职登记表-紧急联系人地址', NOW(), 0),
-- 人事合同参数 (hr.)
(841400000000101, 'hr.BaseSalary', '基本工资(元)', 'hr', 'number', 1, 1, 300, '合同约定基本工资', NOW(), 0),
(841400000000102, 'hr.PositionSalary', '岗位工资(元)', 'hr', 'number', 1, 0, 310, '合同约定岗位工资', NOW(), 0),
(841400000000103, 'hr.PerformanceAllowance', '绩效津贴(元)', 'hr', 'number', 1, 0, 320, '合同绩效工资/津贴', NOW(), 0),
(841400000000104, 'hr.AttendanceBonus', '全勤奖(元)', 'hr', 'number', 1, 0, 330, '全勤奖金', NOW(), 0),
(841400000000105, 'hr.RegularSalary', '转正后薪资(元)', 'hr', 'number', 1, 0, 340, '转正薪资', NOW(), 0),
(841400000000106, 'hr.WorkCity', '工作地点/城市', 'hr', 'string', 1, 0, 350, '合同履行工作地点', NOW(), 0),
(841400000000107, 'hr.PositionName', '聘用岗位名称', 'hr', 'string', 1, 0, 360, '入职岗位名称', NOW(), 0),
(841400000000108, 'hr.ContractTerm', '合同期限', 'hr', 'string', 1, 0, 370, '固定期限,如:3年', NOW(), 0),
(841400000000109, 'hr.ContractStartDate', '合同开始日期', 'hr', 'date', 1, 1, 380, '劳动合同起算日期', NOW(), 0),
(841400000000110, 'hr.ContractEndDate', '合同结束日期', 'hr', 'date', 1, 1, 390, '劳动合同终止日期', NOW(), 0),
(841400000000111, 'hr.ProbationTerm', '试用期期限', 'hr', 'string', 1, 0, 400, '试用期时长,如:3个月', NOW(), 0),
(841400000000112, 'hr.ProbationStartDate', '试用期开始日期', 'hr', 'date', 1, 0, 410, '试用期起算日期', NOW(), 0),
(841400000000113, 'hr.ProbationEndDate', '试用期结束日期', 'hr', 'date', 1, 0, 420, '试用期截至日期', NOW(), 0),
(841400000000114, 'hr.EmployeeNo', '员工工号', 'hr', 'string', 1, 0, 430, '企业内部员工编号', NOW(), 0),
-- 公司与系统参数 (company. / system.)
(841400000000201, 'company.CompanyName', '公司主体全称', 'company', 'string', 1, 0, 500, '签署方甲方公司全称', NOW(), 0),
(841400000000202, 'company.CompanyCode', '公司统一代码', 'company', 'string', 1, 0, 510, '统一社会信用代码', NOW(), 0),
(841400000000203, 'company.LegalRepresentative', '法定代表人', 'company', 'string', 1, 0, 520, '甲方企业法定代表人', NOW(), 0),
(841400000000204, 'company.Address', '公司注册地址', 'company', 'string', 1, 0, 530, '甲方注册地址', NOW(), 0),
(841400000000205, 'company.Phone', '公司联系电话', 'company', 'string', 1, 0, 540, '甲方联系电话', NOW(), 0),
(841400000000301, 'system.TaskNo', '入职任务编号', 'system', 'string', 1, 0, 600, '系统入职流水号', NOW(), 0),
(841400000000302, 'system.SignDate', '合同签署日期', 'system', 'date', 1, 0, 610, '实际签署生成日期', NOW(), 0);
-- 2. 入职登记表员工档案表升级重建
DROP TABLE IF EXISTS `ob_task_employee_info`;
CREATE TABLE `ob_task_employee_info` (
`Id` BIGINT NOT NULL COMMENT '主键Id',
`TaskId` BIGINT NOT NULL COMMENT '所属入职任务Id',
`EmployeeNo` VARCHAR(64) NULL COMMENT '员工工号',
`EmployeeName` VARCHAR(64) NULL COMMENT '员工姓名',
`Gender` VARCHAR(16) NULL COMMENT '性别',
`Nation` VARCHAR(32) NULL COMMENT '民族',
`Birthday` VARCHAR(32) NULL COMMENT '出生年月日',
`RegisteredResidence` VARCHAR(256) NULL COMMENT '户籍所在地',
`Height` VARCHAR(16) NULL COMMENT '身高',
`Weight` VARCHAR(16) NULL COMMENT '体重',
`HealthCondition` VARCHAR(64) NULL COMMENT '健康状况',
`MaritalStatus` VARCHAR(32) NULL COMMENT '婚育情况',
`Education` VARCHAR(32) NULL COMMENT '最高学历',
`Major` VARCHAR(64) NULL COMMENT '所学专业',
`GraduatedSchool` VARCHAR(128) NULL COMMENT '毕业院校',
`VocationalQualification` VARCHAR(128) NULL COMMENT '职业资格',
`QualificationLevel` VARCHAR(64) NULL COMMENT '资格等级',
`TechnicalSpecialty` VARCHAR(256) NULL COMMENT '有何技术特长',
`Phone` VARCHAR(32) NULL COMMENT '联系电话',
`Email` VARCHAR(64) NULL COMMENT '电子邮箱',
`IdCardNumber` VARCHAR(32) NULL COMMENT '身份证号码',
`CurrentAddress` VARCHAR(256) NULL COMMENT '暂住/现居住地址',
`LandlordContact` VARCHAR(64) NULL COMMENT '房东联系方式',
`BankCardNumber` VARCHAR(64) NULL COMMENT '工资银行卡号',
`BankName` VARCHAR(128) NULL COMMENT '开户银行名称',
`BankAccountName` VARCHAR(64) NULL COMMENT '银行卡开户名',
`EmergencyContact` VARCHAR(64) NULL COMMENT '紧急联系人姓名',
`EmergencyPhone` VARCHAR(32) NULL COMMENT '紧急联系人电话',
`EmergencyAddress` VARCHAR(256) NULL COMMENT '紧急联系人地址',
`EducationHistoryJson` LONGTEXT NULL COMMENT '教育学习经历 JSON',
`WorkHistoryJson` LONGTEXT NULL COMMENT '主要工作经历 JSON',
`FamilyMembersJson` LONGTEXT NULL COMMENT '家庭成员 JSON',
`OnboardingDepartment` VARCHAR(64) NULL COMMENT '入职部门',
`OnboardingDate` VARCHAR(32) NULL COMMENT '入职时间',
`OnboardingPosition` VARCHAR(64) NULL COMMENT '入职岗位',
`OtherRemarks` VARCHAR(512) NULL COMMENT '其他说明',
`CustomVariablesJson` LONGTEXT NULL COMMENT '特殊合同增量变量键值 JSON',
`Status` VARCHAR(20) NULL DEFAULT 'enable' COMMENT '状态',
`CreateTime` DATETIME NULL,
`UpdateTime` DATETIME NULL,
`CreateUserId` BIGINT NULL,
`UpdateUserId` BIGINT NULL,
`CreateUser` VARCHAR(64) NULL,
`UpdateUser` VARCHAR(64) NULL,
`IsDelete` TINYINT(1) NOT NULL DEFAULT 0,
`ExtJson` LONGTEXT NULL,
PRIMARY KEY (`Id`),
KEY `idx_task_id` (`TaskId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='候选人填写的入职登记表';
SET FOREIGN_KEY_CHECKS = 1;