电子签基础功能
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
-- OnboardX 契约锁电子签流程表
|
||||
-- 适用数据库:MySQL 8.0+
|
||||
-- 说明:
|
||||
-- 1. 一条电子签流程可以包含同一入职任务下的多份合同。
|
||||
-- 2. ProviderContractId、ProviderDocumentId 一律使用 VARCHAR,避免第三方 19 位 Id 在前端精度丢失。
|
||||
-- 3. 回调事件通过 PayloadHash 幂等处理,可安全接收契约锁重复通知。
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `ob_electronic_sign_process` (
|
||||
`Id` BIGINT NOT NULL COMMENT '主键',
|
||||
`TaskId` BIGINT NOT NULL COMMENT '入职任务Id',
|
||||
`EmployeeId` BIGINT NOT NULL COMMENT '正式员工Id',
|
||||
`Provider` VARCHAR(30) NOT NULL DEFAULT 'qiyuesuo' COMMENT '电子签服务商',
|
||||
`BizId` VARCHAR(100) NOT NULL COMMENT '本系统幂等业务编号',
|
||||
`IsCurrent` TINYINT(1) NULL DEFAULT 1 COMMENT '是否为任务当前电子签流程,历史流程为空',
|
||||
`ProviderContractId` VARCHAR(100) NULL COMMENT '契约锁合同流程Id',
|
||||
`CategoryId` VARCHAR(100) NOT NULL COMMENT '契约锁业务分类Id快照',
|
||||
`SealId` VARCHAR(100) NOT NULL COMMENT '契约锁印章Id快照',
|
||||
`Subject` VARCHAR(300) NOT NULL COMMENT '电子签流程标题',
|
||||
`EmployeeName` VARCHAR(100) NOT NULL COMMENT '员工姓名快照',
|
||||
`EmployeeMobile` VARCHAR(30) NOT NULL COMMENT '员工手机号快照',
|
||||
`EmployeeIdCardNumber` VARCHAR(30) NULL COMMENT '员工身份证号码快照',
|
||||
`CreatorName` VARCHAR(100) NOT NULL COMMENT '创建人姓名快照',
|
||||
`CreatorMobile` VARCHAR(30) NOT NULL COMMENT '创建人手机号快照',
|
||||
`SignStatus` VARCHAR(40) NOT NULL COMMENT '本系统电子签状态',
|
||||
`ProviderStatus` VARCHAR(60) NULL COMMENT '契约锁原始合同状态',
|
||||
`SignUrl` LONGTEXT NULL COMMENT '员工签署页面地址',
|
||||
`SignUrlExpireAt` DATETIME(3) NULL COMMENT '签署页面地址到期时间',
|
||||
`StartedAt` DATETIME(3) NOT NULL COMMENT '管理员发起时间',
|
||||
`SentAt` DATETIME(3) NULL COMMENT '合同发送时间',
|
||||
`CompletedAt` DATETIME(3) NULL COMMENT '全部签署完成时间',
|
||||
`ArchivedAt` DATETIME(3) NULL COMMENT '归档完成时间',
|
||||
`ArchiveFileId` BIGINT NULL COMMENT '完整归档ZIP文件Id',
|
||||
`LastSyncedAt` DATETIME(3) NULL COMMENT '最后主动同步时间',
|
||||
`LastCallbackAt` DATETIME(3) NULL COMMENT '最后回调时间',
|
||||
`LastError` LONGTEXT NULL COMMENT '最近一次失败原因',
|
||||
`RetryCount` INT NOT NULL DEFAULT 0 COMMENT '失败重试次数',
|
||||
`ReissueReason` VARCHAR(500) NULL COMMENT '重新发起原因',
|
||||
`ReissuedAt` DATETIME(3) NULL COMMENT '被新流程替代时间',
|
||||
`ReissuedByProcessId` BIGINT NULL COMMENT '替代当前流程的新流程Id',
|
||||
`ExtJson` LONGTEXT NULL COMMENT '扩展信息',
|
||||
`Status` VARCHAR(20) NULL DEFAULT 'enable' COMMENT '启用状态',
|
||||
`CreateTime` DATETIME(3) NULL COMMENT '创建时间',
|
||||
`UpdateTime` DATETIME(3) NULL COMMENT '更新时间',
|
||||
`CreateUserId` BIGINT NULL COMMENT '创建者Id',
|
||||
`UpdateUserId` BIGINT NULL COMMENT '修改者Id',
|
||||
`CreateUser` VARCHAR(200) NULL COMMENT '创建人',
|
||||
`UpdateUser` VARCHAR(200) NULL COMMENT '更新人',
|
||||
`IsDelete` TINYINT(1) NULL DEFAULT 0 COMMENT '软删除',
|
||||
PRIMARY KEY (`Id`),
|
||||
UNIQUE KEY `uk_ob_esign_process_biz` (`BizId`),
|
||||
UNIQUE KEY `uk_ob_esign_process_current` (`TaskId`, `IsCurrent`),
|
||||
UNIQUE KEY `uk_ob_esign_process_provider_contract` (`ProviderContractId`),
|
||||
KEY `idx_ob_esign_process_task` (`TaskId`, `StartedAt`),
|
||||
KEY `idx_ob_esign_process_status` (`SignStatus`, `UpdateTime`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='入职电子签流程';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `ob_electronic_sign_document` (
|
||||
`Id` BIGINT NOT NULL COMMENT '主键',
|
||||
`SignProcessId` BIGINT NOT NULL COMMENT '电子签流程Id',
|
||||
`TaskContractId` BIGINT NOT NULL COMMENT '任务合同Id',
|
||||
`ProviderDocumentId` VARCHAR(100) NOT NULL COMMENT '契约锁文档Id',
|
||||
`DocumentName` VARCHAR(300) NOT NULL COMMENT '文档名称快照',
|
||||
`DocumentSort` INT NOT NULL DEFAULT 1 COMMENT '文档顺序',
|
||||
`OriginalDocxFileId` BIGINT NOT NULL COMMENT '原始DOCX文件Id',
|
||||
`SignedPdfFileId` BIGINT NULL COMMENT '签署完成PDF文件Id',
|
||||
`EmployeeSignKeyword` VARCHAR(200) NOT NULL COMMENT '员工签名关键字快照',
|
||||
`CompanySealKeyword` VARCHAR(200) NOT NULL COMMENT '企业盖章关键字快照',
|
||||
`EmployeeActionId` VARCHAR(100) NULL COMMENT '员工签署动作Id',
|
||||
`CompanyActionId` VARCHAR(100) NULL COMMENT '企业盖章动作Id',
|
||||
`ExtJson` LONGTEXT NULL COMMENT '扩展信息',
|
||||
`Status` VARCHAR(20) NULL DEFAULT 'enable' COMMENT '启用状态',
|
||||
`CreateTime` DATETIME(3) NULL COMMENT '创建时间',
|
||||
`UpdateTime` DATETIME(3) NULL COMMENT '更新时间',
|
||||
`CreateUserId` BIGINT NULL COMMENT '创建者Id',
|
||||
`UpdateUserId` BIGINT NULL COMMENT '修改者Id',
|
||||
`CreateUser` VARCHAR(200) NULL COMMENT '创建人',
|
||||
`UpdateUser` VARCHAR(200) NULL COMMENT '更新人',
|
||||
`IsDelete` TINYINT(1) NULL DEFAULT 0 COMMENT '软删除',
|
||||
PRIMARY KEY (`Id`),
|
||||
UNIQUE KEY `uk_ob_esign_document_task_contract` (`SignProcessId`, `TaskContractId`),
|
||||
UNIQUE KEY `uk_ob_esign_document_provider` (`ProviderDocumentId`),
|
||||
KEY `idx_ob_esign_document_process_sort` (`SignProcessId`, `DocumentSort`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='入职电子签文档';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `ob_electronic_sign_event` (
|
||||
`Id` BIGINT NOT NULL COMMENT '主键',
|
||||
`SignProcessId` BIGINT NULL COMMENT '电子签流程Id',
|
||||
`PayloadHash` VARCHAR(64) NOT NULL COMMENT '回调内容SHA-256',
|
||||
`EventSource` VARCHAR(30) NOT NULL COMMENT '事件来源',
|
||||
`EventType` VARCHAR(100) NULL COMMENT '契约锁事件类型',
|
||||
`ProviderStatus` VARCHAR(60) NULL COMMENT '契约锁状态',
|
||||
`PayloadJson` LONGTEXT NULL COMMENT '事件原始内容',
|
||||
`ProcessResult` VARCHAR(500) NULL COMMENT '处理结果',
|
||||
`ReceivedAt` DATETIME(3) NOT NULL COMMENT '接收时间',
|
||||
`ProcessedAt` DATETIME(3) NULL COMMENT '处理完成时间',
|
||||
`ExtJson` LONGTEXT NULL COMMENT '扩展信息',
|
||||
`Status` VARCHAR(20) NULL DEFAULT 'enable' COMMENT '启用状态',
|
||||
`CreateTime` DATETIME(3) NULL COMMENT '创建时间',
|
||||
`UpdateTime` DATETIME(3) NULL COMMENT '更新时间',
|
||||
`CreateUserId` BIGINT NULL COMMENT '创建者Id',
|
||||
`UpdateUserId` BIGINT NULL COMMENT '修改者Id',
|
||||
`CreateUser` VARCHAR(200) NULL COMMENT '创建人',
|
||||
`UpdateUser` VARCHAR(200) NULL COMMENT '更新人',
|
||||
`IsDelete` TINYINT(1) NULL DEFAULT 0 COMMENT '软删除',
|
||||
PRIMARY KEY (`Id`),
|
||||
UNIQUE KEY `uk_ob_esign_event_payload_hash` (`PayloadHash`),
|
||||
KEY `idx_ob_esign_event_process` (`SignProcessId`, `ReceivedAt`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='入职电子签事件';
|
||||
Reference in New Issue
Block a user