144 lines
11 KiB
SQL
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; |