111
This commit is contained in:
@@ -0,0 +1,163 @@
|
||||
-- 员工合同快照:一名正式员工的一份任务合同对应一条记录。
|
||||
-- 常用字段独立存储用于筛选导出,VariablesJson 按 VariableCode 保存全部标准及自定义变量。
|
||||
-- 适用数据库:MySQL 8.0+
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `ob_employee_contract_snapshot` (
|
||||
`Id` BIGINT NOT NULL COMMENT '主键',
|
||||
`EmployeeId` BIGINT NOT NULL COMMENT '正式员工Id',
|
||||
`TaskId` BIGINT NOT NULL COMMENT '来源入职任务Id',
|
||||
`TaskContractId` BIGINT NOT NULL COMMENT '来源任务合同Id',
|
||||
`TemplateId` BIGINT NOT NULL COMMENT '合同模板Id',
|
||||
`TemplateVersionId` BIGINT NOT NULL COMMENT '合同模板版本Id',
|
||||
`ContractName` VARCHAR(300) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '合同名称快照',
|
||||
`ContractType` VARCHAR(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '合同类型快照',
|
||||
`ContractStartDate` DATE DEFAULT NULL COMMENT '合同开始日期',
|
||||
`ContractEndDate` DATE DEFAULT NULL COMMENT '合同结束日期',
|
||||
`ContractTerm` VARCHAR(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '合同期限原始文本',
|
||||
`ProbationStartDate` DATE DEFAULT NULL COMMENT '试用期开始日期',
|
||||
`ProbationEndDate` DATE DEFAULT NULL COMMENT '试用期结束日期',
|
||||
`ProbationTerm` VARCHAR(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '试用期期限原始文本',
|
||||
`ProbationSalary` DECIMAL(18,2) DEFAULT NULL COMMENT '试用薪资,对应hr.ProbationSalary,不自动推算',
|
||||
`BaseSalary` DECIMAL(18,2) DEFAULT NULL COMMENT '基本工资',
|
||||
`PositionSalary` DECIMAL(18,2) DEFAULT NULL COMMENT '岗位工资',
|
||||
`PerformanceAllowance` DECIMAL(18,2) DEFAULT NULL COMMENT '绩效津贴',
|
||||
`AttendanceBonus` DECIMAL(18,2) DEFAULT NULL COMMENT '全勤奖',
|
||||
`RegularSalary` DECIMAL(18,2) DEFAULT NULL COMMENT '转正后薪资',
|
||||
`WorkCity` VARCHAR(300) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '工作地点或城市',
|
||||
`PositionName` VARCHAR(300) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '合同岗位名称',
|
||||
`EmployeeNo` VARCHAR(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '合同员工工号',
|
||||
`VariablesJson` JSON NOT NULL COMMENT '按VariableCode索引的完整合同变量快照',
|
||||
`SnapshotVersion` INT NOT NULL DEFAULT 1 COMMENT '快照结构版本',
|
||||
`SnapshotAt` DATETIME(3) NOT NULL COMMENT '快照生成时间',
|
||||
`ExtJson` LONGTEXT COLLATE utf8mb4_unicode_ci COMMENT '扩展信息',
|
||||
`Status` VARCHAR(20) COLLATE utf8mb4_unicode_ci DEFAULT 'enable' COMMENT '记录状态',
|
||||
`CreateTime` DATETIME(3) DEFAULT NULL COMMENT '创建时间',
|
||||
`UpdateTime` DATETIME(3) DEFAULT NULL COMMENT '更新时间',
|
||||
`CreateUserId` BIGINT DEFAULT NULL COMMENT '创建者Id',
|
||||
`UpdateUserId` BIGINT DEFAULT NULL COMMENT '修改者Id',
|
||||
`CreateUser` VARCHAR(200) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人',
|
||||
`UpdateUser` VARCHAR(200) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '更新人',
|
||||
`IsDelete` TINYINT(1) DEFAULT 0 COMMENT '软删除',
|
||||
PRIMARY KEY (`Id`),
|
||||
UNIQUE KEY `uk_ob_employee_contract_snapshot_contract` (`TaskContractId`),
|
||||
KEY `idx_ob_employee_contract_snapshot_employee` (`EmployeeId`, `IsDelete`),
|
||||
KEY `idx_ob_employee_contract_snapshot_task` (`TaskId`, `IsDelete`),
|
||||
KEY `idx_ob_employee_contract_snapshot_dates` (`ContractStartDate`, `ContractEndDate`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='正式员工合同业务快照';
|
||||
|
||||
-- 为已经审核建档且仍保留任务合同变量的员工补建快照。
|
||||
INSERT IGNORE INTO `ob_employee_contract_snapshot` (
|
||||
`Id`, `EmployeeId`, `TaskId`, `TaskContractId`, `TemplateId`, `TemplateVersionId`,
|
||||
`ContractName`, `ContractType`, `ContractStartDate`, `ContractEndDate`, `ContractTerm`,
|
||||
`ProbationStartDate`, `ProbationEndDate`, `ProbationTerm`, `ProbationSalary`,
|
||||
`BaseSalary`, `PositionSalary`, `PerformanceAllowance`, `AttendanceBonus`, `RegularSalary`,
|
||||
`WorkCity`, `PositionName`, `EmployeeNo`, `VariablesJson`, `SnapshotVersion`, `SnapshotAt`,
|
||||
`Status`, `CreateTime`, `CreateUserId`, `CreateUser`, `IsDelete`
|
||||
)
|
||||
SELECT
|
||||
contract.`Id`,
|
||||
task.`EmployeeId`,
|
||||
task.`Id`,
|
||||
contract.`Id`,
|
||||
contract.`TemplateId`,
|
||||
contract.`TemplateVersionId`,
|
||||
contract.`ContractName`,
|
||||
contract.`ContractType`,
|
||||
CASE
|
||||
WHEN TRIM(variable.`ContractStartDateText`) REGEXP '^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$'
|
||||
THEN STR_TO_DATE(TRIM(variable.`ContractStartDateText`), '%Y-%m-%d')
|
||||
ELSE NULL
|
||||
END,
|
||||
CASE
|
||||
WHEN TRIM(variable.`ContractEndDateText`) REGEXP '^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$'
|
||||
THEN STR_TO_DATE(TRIM(variable.`ContractEndDateText`), '%Y-%m-%d')
|
||||
ELSE NULL
|
||||
END,
|
||||
variable.`ContractTerm`,
|
||||
CASE
|
||||
WHEN TRIM(variable.`ProbationStartDateText`) REGEXP '^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$'
|
||||
THEN STR_TO_DATE(TRIM(variable.`ProbationStartDateText`), '%Y-%m-%d')
|
||||
ELSE NULL
|
||||
END,
|
||||
CASE
|
||||
WHEN TRIM(variable.`ProbationEndDateText`) REGEXP '^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$'
|
||||
THEN STR_TO_DATE(TRIM(variable.`ProbationEndDateText`), '%Y-%m-%d')
|
||||
ELSE NULL
|
||||
END,
|
||||
variable.`ProbationTerm`,
|
||||
CASE WHEN TRIM(variable.`ProbationSalaryText`) REGEXP '^-?[0-9]+([.][0-9]+)?$'
|
||||
THEN CAST(TRIM(variable.`ProbationSalaryText`) AS DECIMAL(18,2)) ELSE NULL END,
|
||||
CASE WHEN TRIM(variable.`BaseSalaryText`) REGEXP '^-?[0-9]+([.][0-9]+)?$'
|
||||
THEN CAST(TRIM(variable.`BaseSalaryText`) AS DECIMAL(18,2)) ELSE NULL END,
|
||||
CASE WHEN TRIM(variable.`PositionSalaryText`) REGEXP '^-?[0-9]+([.][0-9]+)?$'
|
||||
THEN CAST(TRIM(variable.`PositionSalaryText`) AS DECIMAL(18,2)) ELSE NULL END,
|
||||
CASE WHEN TRIM(variable.`PerformanceAllowanceText`) REGEXP '^-?[0-9]+([.][0-9]+)?$'
|
||||
THEN CAST(TRIM(variable.`PerformanceAllowanceText`) AS DECIMAL(18,2)) ELSE NULL END,
|
||||
CASE WHEN TRIM(variable.`AttendanceBonusText`) REGEXP '^-?[0-9]+([.][0-9]+)?$'
|
||||
THEN CAST(TRIM(variable.`AttendanceBonusText`) AS DECIMAL(18,2)) ELSE NULL END,
|
||||
CASE WHEN TRIM(variable.`RegularSalaryText`) REGEXP '^-?[0-9]+([.][0-9]+)?$'
|
||||
THEN CAST(TRIM(variable.`RegularSalaryText`) AS DECIMAL(18,2)) ELSE NULL END,
|
||||
variable.`WorkCity`,
|
||||
variable.`PositionName`,
|
||||
variable.`EmployeeNo`,
|
||||
COALESCE(variable.`VariablesJson`, JSON_OBJECT()),
|
||||
1,
|
||||
COALESCE(task.`AuditedAt`, employee.`CreateTime`, NOW(3)),
|
||||
'enable',
|
||||
COALESCE(employee.`CreateTime`, NOW(3)),
|
||||
employee.`CreateUserId`,
|
||||
employee.`CreateUser`,
|
||||
0
|
||||
FROM `ob_onboarding_task` task
|
||||
INNER JOIN `ob_employee` employee
|
||||
ON employee.`Id` = task.`EmployeeId`
|
||||
INNER JOIN `ob_task_contract` contract
|
||||
ON contract.`TaskId` = task.`Id`
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
row_value.`TaskContractId`,
|
||||
MAX(CASE WHEN row_value.`VariableCode` = 'hr.ContractStartDate' THEN row_value.`VariableValue` END) AS `ContractStartDateText`,
|
||||
MAX(CASE WHEN row_value.`VariableCode` = 'hr.ContractEndDate' THEN row_value.`VariableValue` END) AS `ContractEndDateText`,
|
||||
MAX(CASE WHEN row_value.`VariableCode` = 'hr.ContractTerm' THEN row_value.`VariableValue` END) AS `ContractTerm`,
|
||||
MAX(CASE WHEN row_value.`VariableCode` = 'hr.ProbationStartDate' THEN row_value.`VariableValue` END) AS `ProbationStartDateText`,
|
||||
MAX(CASE WHEN row_value.`VariableCode` = 'hr.ProbationEndDate' THEN row_value.`VariableValue` END) AS `ProbationEndDateText`,
|
||||
MAX(CASE WHEN row_value.`VariableCode` = 'hr.ProbationTerm' THEN row_value.`VariableValue` END) AS `ProbationTerm`,
|
||||
MAX(CASE WHEN row_value.`VariableCode` = 'hr.ProbationSalary' THEN row_value.`VariableValue` END) AS `ProbationSalaryText`,
|
||||
MAX(CASE WHEN row_value.`VariableCode` = 'hr.BaseSalary' THEN row_value.`VariableValue` END) AS `BaseSalaryText`,
|
||||
MAX(CASE WHEN row_value.`VariableCode` = 'hr.PositionSalary' THEN row_value.`VariableValue` END) AS `PositionSalaryText`,
|
||||
MAX(CASE WHEN row_value.`VariableCode` = 'hr.PerformanceAllowance' THEN row_value.`VariableValue` END) AS `PerformanceAllowanceText`,
|
||||
MAX(CASE WHEN row_value.`VariableCode` = 'hr.AttendanceBonus' THEN row_value.`VariableValue` END) AS `AttendanceBonusText`,
|
||||
MAX(CASE WHEN row_value.`VariableCode` = 'hr.RegularSalary' THEN row_value.`VariableValue` END) AS `RegularSalaryText`,
|
||||
MAX(CASE WHEN row_value.`VariableCode` = 'hr.WorkCity' THEN row_value.`VariableValue` END) AS `WorkCity`,
|
||||
MAX(CASE WHEN row_value.`VariableCode` = 'hr.PositionName' THEN row_value.`VariableValue` END) AS `PositionName`,
|
||||
MAX(CASE WHEN row_value.`VariableCode` = 'hr.EmployeeNo' THEN row_value.`VariableValue` END) AS `EmployeeNo`,
|
||||
JSON_OBJECTAGG(
|
||||
row_value.`VariableCode`,
|
||||
JSON_OBJECT(
|
||||
'variableName', row_value.`VariableName`,
|
||||
'variableType', row_value.`VariableType`,
|
||||
'dataType', row_value.`DataType`,
|
||||
'variableValue', row_value.`VariableValue`,
|
||||
'sourceType', row_value.`SourceType`,
|
||||
'isManualOverride', row_value.`IsManualOverride`,
|
||||
'sortCode', row_value.`SortCode`
|
||||
)
|
||||
) AS `VariablesJson`
|
||||
FROM `ob_task_contract_variable` row_value
|
||||
WHERE row_value.`IsDelete` = 0
|
||||
GROUP BY row_value.`TaskContractId`
|
||||
) variable
|
||||
ON variable.`TaskContractId` = contract.`Id`
|
||||
WHERE task.`EmployeeId` IS NOT NULL
|
||||
AND task.`IsDelete` = 0
|
||||
AND employee.`IsDelete` = 0
|
||||
AND contract.`IsDelete` = 0;
|
||||
|
||||
SELECT
|
||||
COUNT(*) AS `员工合同快照数量`,
|
||||
COUNT(DISTINCT `EmployeeId`) AS `已归档员工数量`,
|
||||
COUNT(DISTINCT `TaskContractId`) AS `已归档合同数量`
|
||||
FROM `ob_employee_contract_snapshot`
|
||||
WHERE `IsDelete` = 0;
|
||||
@@ -0,0 +1,172 @@
|
||||
-- 员工用工类型、人工转正、社保状态及人事变更材料。
|
||||
-- 适用数据库:MySQL 8.0+
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
DROP PROCEDURE IF EXISTS ob_upgrade_employee_hr_management;
|
||||
DELIMITER $$
|
||||
|
||||
CREATE PROCEDURE ob_upgrade_employee_hr_management()
|
||||
BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'ob_onboarding_task'
|
||||
AND COLUMN_NAME = 'EmploymentType'
|
||||
) THEN
|
||||
ALTER TABLE ob_onboarding_task
|
||||
ADD COLUMN EmploymentType VARCHAR(20) COLLATE utf8mb4_unicode_ci
|
||||
NOT NULL DEFAULT 'full_time' COMMENT '用工类型:full_time正式、part_time兼职'
|
||||
AFTER PositionId;
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'ob_employee'
|
||||
AND COLUMN_NAME = 'EmploymentType'
|
||||
) THEN
|
||||
ALTER TABLE ob_employee
|
||||
ADD COLUMN EmploymentType VARCHAR(20) COLLATE utf8mb4_unicode_ci
|
||||
NOT NULL DEFAULT 'full_time' COMMENT '用工类型:full_time正式、part_time兼职'
|
||||
AFTER PositionId;
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'ob_employee'
|
||||
AND COLUMN_NAME = 'RegularizationStatus'
|
||||
) THEN
|
||||
ALTER TABLE ob_employee
|
||||
ADD COLUMN RegularizationStatus VARCHAR(20) COLLATE utf8mb4_unicode_ci
|
||||
NOT NULL DEFAULT 'probation' COMMENT '转正状态:probation、regular、not_applicable'
|
||||
AFTER EmploymentType;
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'ob_employee'
|
||||
AND COLUMN_NAME = 'SocialInsuranceStatus'
|
||||
) THEN
|
||||
ALTER TABLE ob_employee
|
||||
ADD COLUMN SocialInsuranceStatus VARCHAR(20) COLLATE utf8mb4_unicode_ci
|
||||
NOT NULL DEFAULT 'unknown' COMMENT '社保状态:unknown、not_purchased、purchased、stopped、not_applicable'
|
||||
AFTER RegularizationStatus;
|
||||
END IF;
|
||||
|
||||
IF EXISTS (
|
||||
SELECT 1 FROM information_schema.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'ob_employee_contract_snapshot'
|
||||
) AND NOT EXISTS (
|
||||
SELECT 1 FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'ob_employee_contract_snapshot'
|
||||
AND COLUMN_NAME = 'ProbationSalary'
|
||||
) THEN
|
||||
ALTER TABLE ob_employee_contract_snapshot
|
||||
ADD COLUMN ProbationSalary DECIMAL(18,2) DEFAULT NULL
|
||||
COMMENT '试用薪资,对应hr.ProbationSalary,不自动推算'
|
||||
AFTER ProbationTerm;
|
||||
END IF;
|
||||
END$$
|
||||
|
||||
DELIMITER ;
|
||||
CALL ob_upgrade_employee_hr_management();
|
||||
DROP PROCEDURE IF EXISTS ob_upgrade_employee_hr_management;
|
||||
|
||||
-- 历史任务及员工默认按正式用工处理;历史转正日期仅用于一次性初始化状态。
|
||||
UPDATE ob_onboarding_task
|
||||
SET EmploymentType = 'full_time'
|
||||
WHERE EmploymentType IS NULL OR EmploymentType NOT IN ('full_time', 'part_time');
|
||||
|
||||
UPDATE ob_employee
|
||||
SET
|
||||
EmploymentType = CASE
|
||||
WHEN EmploymentType = 'part_time' THEN 'part_time'
|
||||
ELSE 'full_time'
|
||||
END,
|
||||
RegularizationStatus = CASE
|
||||
WHEN EmploymentType = 'part_time' THEN 'not_applicable'
|
||||
WHEN RegularizationDate IS NOT NULL THEN 'regular'
|
||||
ELSE 'probation'
|
||||
END,
|
||||
SocialInsuranceStatus = CASE
|
||||
WHEN SocialInsuranceStatus IN (
|
||||
'unknown', 'not_purchased', 'purchased', 'stopped', 'not_applicable'
|
||||
) THEN SocialInsuranceStatus
|
||||
ELSE 'unknown'
|
||||
END;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ob_employee_change_record (
|
||||
Id BIGINT NOT NULL COMMENT '主键',
|
||||
EmployeeId BIGINT NOT NULL COMMENT '员工Id',
|
||||
ChangeType VARCHAR(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '变更类型',
|
||||
EffectiveDate DATE DEFAULT NULL COMMENT '业务生效日期',
|
||||
BeforeJson LONGTEXT COLLATE utf8mb4_unicode_ci COMMENT '变更前快照',
|
||||
AfterJson LONGTEXT COLLATE utf8mb4_unicode_ci COMMENT '变更后快照',
|
||||
Remark VARCHAR(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注',
|
||||
ExtJson LONGTEXT COLLATE utf8mb4_unicode_ci COMMENT '扩展信息',
|
||||
Status VARCHAR(20) COLLATE utf8mb4_unicode_ci DEFAULT 'enable' COMMENT '记录状态',
|
||||
CreateTime DATETIME(3) DEFAULT NULL COMMENT '创建时间',
|
||||
UpdateTime DATETIME(3) DEFAULT NULL COMMENT '更新时间',
|
||||
CreateUserId BIGINT DEFAULT NULL COMMENT '创建者Id',
|
||||
UpdateUserId BIGINT DEFAULT NULL COMMENT '修改者Id',
|
||||
CreateUser VARCHAR(200) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人',
|
||||
UpdateUser VARCHAR(200) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '更新人',
|
||||
IsDelete TINYINT(1) DEFAULT 0 COMMENT '软删除',
|
||||
PRIMARY KEY (Id),
|
||||
KEY idx_ob_employee_change_record_employee (EmployeeId, IsDelete, CreateTime),
|
||||
KEY idx_ob_employee_change_record_type (ChangeType, EffectiveDate)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='员工人事信息变更记录';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ob_employee_attachment (
|
||||
Id BIGINT NOT NULL COMMENT '主键',
|
||||
EmployeeId BIGINT NOT NULL COMMENT '员工Id',
|
||||
ChangeRecordId BIGINT DEFAULT NULL COMMENT '关联人事变更记录Id',
|
||||
BusinessType VARCHAR(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '附件业务类型',
|
||||
FileId BIGINT NOT NULL COMMENT '系统文件Id',
|
||||
FileName VARCHAR(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '上传时文件名快照',
|
||||
UploadedAt DATETIME(3) NOT NULL COMMENT '上传关联时间',
|
||||
ExtJson LONGTEXT COLLATE utf8mb4_unicode_ci COMMENT '扩展信息',
|
||||
Status VARCHAR(20) COLLATE utf8mb4_unicode_ci DEFAULT 'enable' COMMENT '记录状态',
|
||||
CreateTime DATETIME(3) DEFAULT NULL COMMENT '创建时间',
|
||||
UpdateTime DATETIME(3) DEFAULT NULL COMMENT '更新时间',
|
||||
CreateUserId BIGINT DEFAULT NULL COMMENT '创建者Id',
|
||||
UpdateUserId BIGINT DEFAULT NULL COMMENT '修改者Id',
|
||||
CreateUser VARCHAR(200) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人',
|
||||
UpdateUser VARCHAR(200) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '更新人',
|
||||
IsDelete TINYINT(1) DEFAULT 0 COMMENT '软删除',
|
||||
PRIMARY KEY (Id),
|
||||
KEY idx_ob_employee_attachment_employee (EmployeeId, BusinessType, IsDelete),
|
||||
KEY idx_ob_employee_attachment_change (ChangeRecordId, IsDelete),
|
||||
KEY idx_ob_employee_attachment_file (FileId)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='员工人事材料附件';
|
||||
|
||||
-- 标准试用薪资变量;已有同编码历史数据时恢复并统一为内置数值变量。
|
||||
INSERT INTO ob_variable_definition (
|
||||
Id, VariableCode, VariableName, VariableCategory, DataType,
|
||||
IsBuiltIn, Required, SortCode, Remark, Status,
|
||||
CreateTime, IsDelete
|
||||
) VALUES (
|
||||
841400000000115, 'hr.ProbationSalary', '试用薪资(元)', 'hr', 'number',
|
||||
1, 0, 335, '合同约定试用期薪资,不自动推算', 'enable',
|
||||
NOW(), 0
|
||||
)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
VariableName = VALUES(VariableName),
|
||||
VariableCategory = 'hr',
|
||||
DataType = 'number',
|
||||
IsBuiltIn = 1,
|
||||
SortCode = 335,
|
||||
Remark = VALUES(Remark),
|
||||
Status = 'enable',
|
||||
IsDelete = 0;
|
||||
|
||||
SELECT
|
||||
(SELECT COUNT(*) FROM ob_employee_change_record) AS '员工人事变更记录数',
|
||||
(SELECT COUNT(*) FROM ob_employee_attachment) AS '员工人事附件数',
|
||||
(SELECT COUNT(*) FROM ob_variable_definition
|
||||
WHERE VariableCode = 'hr.ProbationSalary' AND IsDelete = 0) AS '试用薪资标准变量数';
|
||||
@@ -49,6 +49,35 @@ BEGIN
|
||||
START TRANSACTION;
|
||||
|
||||
-- 一、删除任务运行数据及快照。
|
||||
-- 兼容尚未执行员工人事管理迁移的旧数据库。
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM information_schema.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'ob_employee_attachment'
|
||||
) THEN
|
||||
DELETE FROM ob_employee_attachment;
|
||||
END IF;
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM information_schema.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'ob_employee_change_record'
|
||||
) THEN
|
||||
DELETE FROM ob_employee_change_record;
|
||||
END IF;
|
||||
-- 兼容尚未执行员工合同快照迁移的旧数据库。
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM `information_schema`.`TABLES`
|
||||
WHERE `TABLE_SCHEMA` = DATABASE()
|
||||
AND `TABLE_NAME` = 'ob_employee_contract_snapshot'
|
||||
) THEN
|
||||
SET @delete_employee_contract_snapshot_sql = 'DELETE FROM `ob_employee_contract_snapshot`';
|
||||
PREPARE delete_employee_contract_snapshot_statement FROM @delete_employee_contract_snapshot_sql;
|
||||
EXECUTE delete_employee_contract_snapshot_statement;
|
||||
DEALLOCATE PREPARE delete_employee_contract_snapshot_statement;
|
||||
END IF;
|
||||
DELETE FROM `ob_task_operation_log`;
|
||||
DELETE FROM `ob_task_audit`;
|
||||
DELETE FROM `ob_task_material`;
|
||||
|
||||
@@ -43,6 +43,9 @@ BEGIN
|
||||
'ob_electronic_sign_event',
|
||||
'ob_electronic_sign_document',
|
||||
'ob_electronic_sign_process',
|
||||
'ob_employee_attachment',
|
||||
'ob_employee_change_record',
|
||||
'ob_employee_contract_snapshot',
|
||||
'ob_task_operation_log',
|
||||
'ob_task_audit',
|
||||
'ob_task_material',
|
||||
@@ -61,6 +64,9 @@ BEGIN
|
||||
'ob_electronic_sign_event',
|
||||
'ob_electronic_sign_document',
|
||||
'ob_electronic_sign_process',
|
||||
'ob_employee_attachment',
|
||||
'ob_employee_change_record',
|
||||
'ob_employee_contract_snapshot',
|
||||
'ob_task_operation_log',
|
||||
'ob_task_audit',
|
||||
'ob_task_material',
|
||||
@@ -166,6 +172,9 @@ BEGIN
|
||||
'ob_electronic_sign_event',
|
||||
'ob_electronic_sign_document',
|
||||
'ob_electronic_sign_process',
|
||||
'ob_employee_attachment',
|
||||
'ob_employee_change_record',
|
||||
'ob_employee_contract_snapshot',
|
||||
'ob_task_operation_log',
|
||||
'ob_task_audit',
|
||||
'ob_task_material',
|
||||
@@ -199,6 +208,9 @@ WHERE `TABLE_SCHEMA` = DATABASE()
|
||||
'ob_electronic_sign_event',
|
||||
'ob_electronic_sign_document',
|
||||
'ob_electronic_sign_process',
|
||||
'ob_employee_attachment',
|
||||
'ob_employee_change_record',
|
||||
'ob_employee_contract_snapshot',
|
||||
'ob_task_operation_log',
|
||||
'ob_task_audit',
|
||||
'ob_task_material',
|
||||
|
||||
Reference in New Issue
Block a user