namespace SimpleAdmin.Application; /// /// 入职任务的一次电子签流程,一次流程可以包含多份合同文件。 /// [SugarTable("ob_electronic_sign_process", TableDescription = "入职电子签流程")] [Tenant(SqlSugarConst.DB_DEFAULT)] public class ObElectronicSignProcess : BaseEntity { /// /// 所属入职任务 Id。 /// public long TaskId { get; set; } /// /// 审核通过后生成的正式员工 Id。 /// public long EmployeeId { get; set; } /// /// 电子签服务商编码。 /// public string Provider { get; set; } = ElectronicSignProvider.Qiyuesuo; /// /// 本系统生成的幂等业务编号。 /// public string BizId { get; set; } /// /// 是否为该入职任务当前使用的电子签流程。 /// 历史流程保存为空,当前流程保存为 true,并通过数据库唯一索引防止重复发起。 /// public bool? IsCurrent { get; set; } = true; /// /// 契约锁合同流程 Id。 /// public string ProviderContractId { get; set; } /// /// 契约锁业务分类 Id 快照。 /// public string CategoryId { get; set; } /// /// 契约锁企业印章 Id 快照。 /// public string SealId { get; set; } /// /// 电子签流程标题。 /// public string Subject { get; set; } /// /// 员工姓名快照。 /// public string EmployeeName { get; set; } /// /// 员工手机号码快照。 /// public string EmployeeMobile { get; set; } /// /// 员工身份证号码快照,仅用于锁定本次电子签署人的实名信息。 /// public string EmployeeIdCardNumber { get; set; } /// /// 契约锁合同创建人姓名快照。 /// public string CreatorName { get; set; } /// /// 契约锁合同创建人手机号快照。 /// public string CreatorMobile { get; set; } /// /// 本系统电子签状态。 /// public string SignStatus { get; set; } = ElectronicSignStatus.Creating; /// /// 契约锁返回的原始合同状态。 /// public string ProviderStatus { get; set; } /// /// 员工签署页面地址。 /// [SugarColumn(ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)] public string SignUrl { get; set; } /// /// 员工签署页面地址到期时间。 /// public DateTime? SignUrlExpireAt { get; set; } /// /// 管理员点击发起电子签的时间。 /// public DateTime StartedAt { get; set; } /// /// 合同流程正式发送的时间。 /// public DateTime? SentAt { get; set; } /// /// 所有签署方完成签署的时间。 /// public DateTime? CompletedAt { get; set; } /// /// 签署文件与签署日志保存到 OSS 的时间。 /// public DateTime? ArchivedAt { get; set; } /// /// 契约锁完整归档 ZIP 在系统文件表中的 Id。 /// public long? ArchiveFileId { get; set; } /// /// 最后一次主动查询契约锁状态的时间。 /// public DateTime? LastSyncedAt { get; set; } /// /// 最后一次收到契约锁回调的时间。 /// public DateTime? LastCallbackAt { get; set; } /// /// 最近一次失败原因,供管理员排查和重试。 /// [SugarColumn(ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)] public string LastError { get; set; } /// /// 创建或同步失败后的重试次数。 /// public int RetryCount { get; set; } /// /// 管理员重新发起本任务电子签时填写的原因。 /// public string ReissueReason { get; set; } /// /// 当前流程被新流程替代的时间。 /// public DateTime? ReissuedAt { get; set; } /// /// 替代当前流程的新电子签流程 Id。 /// public long? ReissuedByProcessId { get; set; } }