补充注释

This commit is contained in:
fuenmao
2026-08-24 15:32:50 +08:00
parent b8b2d7e3fa
commit 22a7df5bec
84 changed files with 5913 additions and 45 deletions
@@ -10,16 +10,50 @@
namespace SimpleAdmin.Application;
/// <summary>
/// 入职业务公司档案,保存合同甲方及入职归属公司信息。
/// </summary>
[SugarTable("ob_company", TableDescription = "入职业务公司")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
public class ObCompany : BaseEntity
{
/// <summary>
/// 公司业务编码。
/// </summary>
public virtual string CompanyCode { get; set; }
/// <summary>
/// 公司显示名称。
/// </summary>
public virtual string CompanyName { get; set; }
/// <summary>
/// 合同中使用的甲方完整法定名称。
/// </summary>
public virtual string LegalName { get; set; }
/// <summary>
/// 统一社会信用代码。
/// </summary>
public string UnifiedSocialCreditCode { get; set; }
/// <summary>
/// 法定代表人姓名。
/// </summary>
public string LegalRepresentative { get; set; }
/// <summary>
/// 工商注册地址。
/// </summary>
public string RegisteredAddress { get; set; }
/// <summary>
/// 公司联系电话。
/// </summary>
public string ContactPhone { get; set; }
/// <summary>
/// 业务备注。
/// </summary>
public string Remark { get; set; }
}
@@ -10,14 +10,40 @@
namespace SimpleAdmin.Application;
/// <summary>
/// 合同适用范围,将已启用的合同版本绑定到公司或具体岗位。
/// </summary>
[SugarTable("ob_contract_scope", TableDescription = "公司岗位合同适用范围")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
public class ObContractScope : BaseEntity
{
/// <summary>
/// 所属入职业务公司 Id。
/// </summary>
public long CompanyId { get; set; }
/// <summary>
/// 所属岗位 Id;为空时表示适用于公司下全部岗位。
/// </summary>
public long? PositionId { get; set; }
/// <summary>
/// 合同模板主档案 Id。
/// </summary>
public long TemplateId { get; set; }
/// <summary>
/// 合同模板版本 Id。
/// </summary>
public long TemplateVersionId { get; set; }
/// <summary>
/// 该适用范围下的合同是否必签。
/// </summary>
public bool Required { get; set; }
/// <summary>
/// 显示排序码。
/// </summary>
public int? SortCode { get; set; }
}
@@ -10,12 +10,30 @@
namespace SimpleAdmin.Application;
/// <summary>
/// 合同模板主档案,用于区分不同合同类型及模板用途。
/// </summary>
[SugarTable("ob_contract_template", TableDescription = "合同模板主档案")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
public class ObContractTemplate : BaseEntity
{
/// <summary>
/// 合同模板业务编码。
/// </summary>
public string TemplateCode { get; set; }
/// <summary>
/// 合同模板名称。
/// </summary>
public string TemplateName { get; set; }
/// <summary>
/// 合同类型。
/// </summary>
public string ContractType { get; set; }
/// <summary>
/// 模板用途说明。
/// </summary>
public string Description { get; set; }
}
@@ -10,16 +10,50 @@
namespace SimpleAdmin.Application;
/// <summary>
/// 合同模板版本,保存不可变的 DOCX 源文件及版本有效期。
/// </summary>
[SugarTable("ob_contract_template_version", TableDescription = "合同模板版本")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
public class ObContractTemplateVersion : BaseEntity
{
/// <summary>
/// 合同模板主档案 Id。
/// </summary>
public long TemplateId { get; set; }
/// <summary>
/// 模板版本号。
/// </summary>
public string VersionNo { get; set; }
/// <summary>
/// 模板 DOCX 源文件 Id。
/// </summary>
public long SourceDocxFileId { get; set; }
/// <summary>
/// 源文件内容哈希,用于校验文件是否变化。
/// </summary>
public string FileHash { get; set; }
/// <summary>
/// 版本生效日期。
/// </summary>
public DateTime? EffectiveDate { get; set; }
/// <summary>
/// 版本失效日期。
/// </summary>
public DateTime? ExpiryDate { get; set; }
/// <summary>
/// 模板版本状态。
/// </summary>
public string VersionStatus { get; set; } = ContractTemplateVersionStatus.Draft;
/// <summary>
/// 业务备注。
/// </summary>
public string Remark { get; set; }
}
@@ -10,37 +10,155 @@
namespace SimpleAdmin.Application;
/// <summary>
/// 审核通过后生成的正式员工档案,是入职流程的最终业务数据。
/// </summary>
[SugarTable("ob_employee", TableDescription = "正式员工档案")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
public class ObEmployee : BaseEntity
{
/// <summary>
/// 员工编号。
/// </summary>
public string EmployeeNo { get; set; }
/// <summary>
/// 内部人员编号。
/// </summary>
public string InternalNo { get; set; }
/// <summary>
/// 员工姓名。
/// </summary>
public string EmployeeName { get; set; }
/// <summary>
/// 所属入职业务公司 Id。
/// </summary>
public long CompanyId { get; set; }
/// <summary>
/// 所属部门名称。
/// </summary>
public string DepartmentName { get; set; }
/// <summary>
/// 所属入职业务岗位 Id。
/// </summary>
public long PositionId { get; set; }
/// <summary>
/// 性别。
/// </summary>
public string Gender { get; set; }
/// <summary>
/// 手机号码。
/// </summary>
public string Phone { get; set; }
/// <summary>
/// 身份证号码。
/// </summary>
public string IdCardNumber { get; set; }
/// <summary>
/// 毕业院校。
/// </summary>
public string College { get; set; }
/// <summary>
/// 最高学历。
/// </summary>
public string Education { get; set; }
/// <summary>
/// 所学专业。
/// </summary>
public string Major { get; set; }
/// <summary>
/// 出生日期。
/// </summary>
public DateTime? BirthDate { get; set; }
/// <summary>
/// 户籍所在地。
/// </summary>
public string RegisteredResidence { get; set; }
/// <summary>
/// 民族。
/// </summary>
public string Nation { get; set; }
/// <summary>
/// 现居住或联系地址。
/// </summary>
public string ContactAddress { get; set; }
/// <summary>
/// 入职日期。
/// </summary>
public DateTime? EntryDate { get; set; }
/// <summary>
/// 合同开始日期。
/// </summary>
public DateTime? ContractStartDate { get; set; }
/// <summary>
/// 合同结束日期。
/// </summary>
public DateTime? ContractEndDate { get; set; }
/// <summary>
/// 试用期开始日期。
/// </summary>
public DateTime? ProbationStartDate { get; set; }
/// <summary>
/// 试用期结束日期。
/// </summary>
public DateTime? ProbationEndDate { get; set; }
/// <summary>
/// 转正日期。
/// </summary>
public DateTime? RegularizationDate { get; set; }
/// <summary>
/// 社保缴纳公司。
/// </summary>
public string SocialInsuranceCompany { get; set; }
/// <summary>
/// 合同性质。
/// </summary>
public string ContractNature { get; set; }
/// <summary>
/// 工资银行卡号。
/// </summary>
public string BankCardNumber { get; set; }
/// <summary>
/// 银行卡开户名。
/// </summary>
public string BankAccountName { get; set; }
/// <summary>
/// 开户银行名称。
/// </summary>
public string BankName { get; set; }
/// <summary>
/// 业务备注。
/// </summary>
public string Remark { get; set; }
/// <summary>
/// 审核通过时冻结的动态字段信息 JSON。
/// </summary>
public string ExtraInfoJson { get; set; }
}
@@ -10,14 +10,40 @@
namespace SimpleAdmin.Application;
/// <summary>
/// 动态入职字段定义,用于扩展固定人员基础信息之外的填写项。
/// </summary>
[SugarTable("ob_form_field", TableDescription = "动态入职填写字段")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
public class ObFormField : BaseEntity
{
/// <summary>
/// 动态字段业务编码。
/// </summary>
public string FieldCode { get; set; }
/// <summary>
/// 动态字段显示名称。
/// </summary>
public string FieldName { get; set; }
/// <summary>
/// 变量数据类型。
/// </summary>
public string DataType { get; set; }
/// <summary>
/// 选择型字段或变量的可选项 JSON。
/// </summary>
public string OptionsJson { get; set; }
/// <summary>
/// 字段校验规则。
/// </summary>
public string ValidationRule { get; set; }
/// <summary>
/// 员工端输入提示。
/// </summary>
public string Placeholder { get; set; }
}
@@ -10,13 +10,35 @@
namespace SimpleAdmin.Application;
/// <summary>
/// 动态字段填写要求,配置公司或岗位需要展示及校验的字段。
/// </summary>
[SugarTable("ob_form_requirement", TableDescription = "公司岗位动态填写项要求")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
public class ObFormRequirement : BaseEntity
{
/// <summary>
/// 所属入职业务公司 Id。
/// </summary>
public long CompanyId { get; set; }
/// <summary>
/// 所属岗位 Id;为空时表示适用于公司下全部岗位。
/// </summary>
public long? PositionId { get; set; }
/// <summary>
/// 动态字段定义 Id。
/// </summary>
public long FieldId { get; set; }
/// <summary>
/// 候选人是否必须填写该动态字段。
/// </summary>
public bool Required { get; set; }
/// <summary>
/// 显示排序码。
/// </summary>
public int? SortCode { get; set; }
}
@@ -10,14 +10,35 @@
namespace SimpleAdmin.Application;
/// <summary>
/// 入职材料要求,配置公司或岗位需要候选人上传的材料。
/// </summary>
[SugarTable("ob_material_requirement", TableDescription = "公司岗位入职资料要求")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
public class ObMaterialRequirement : BaseEntity
{
/// <summary>
/// 所属入职业务公司 Id。
/// </summary>
public long CompanyId { get; set; }
/// <summary>
/// 所属岗位 Id;为空时表示适用于公司下全部岗位。
/// </summary>
public long? PositionId { get; set; }
/// <summary>
/// 材料类型 Id。
/// </summary>
public long MaterialTypeId { get; set; }
/// <summary>
/// 候选人是否必须上传该类材料。
/// </summary>
public bool Required { get; set; }
/// <summary>
/// 显示排序码。
/// </summary>
public int? SortCode { get; set; }
}
@@ -10,13 +10,35 @@
namespace SimpleAdmin.Application;
/// <summary>
/// 入职材料类型,定义允许上传的文件类型、数量和大小。
/// </summary>
[SugarTable("ob_material_type", TableDescription = "入职上传资料类型")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
public class ObMaterialType : BaseEntity
{
/// <summary>
/// 材料类型业务编码。
/// </summary>
public string MaterialCode { get; set; }
/// <summary>
/// 材料显示名称。
/// </summary>
public string MaterialName { get; set; }
/// <summary>
/// 允许上传的文件扩展名,多个值使用逗号分隔。
/// </summary>
public string AllowedExtensions { get; set; }
/// <summary>
/// 单个任务允许上传的最大文件数量。
/// </summary>
public int MaxFileCount { get; set; }
/// <summary>
/// 单个文件最大大小,单位为 MB。
/// </summary>
public int? MaxFileSizeMb { get; set; }
}
@@ -10,21 +10,75 @@
namespace SimpleAdmin.Application;
/// <summary>
/// 新员工入职任务,承载候选人填写、审核、转正式员工和归档全过程。
/// </summary>
[SugarTable("ob_onboarding_task", TableDescription = "新员工入职任务")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
public class ObOnboardingTask : BaseEntity
{
/// <summary>
/// 入职任务编号。
/// </summary>
public string TaskNo { get; set; }
/// <summary>
/// 审核通过后生成的正式员工 Id。
/// </summary>
public long? EmployeeId { get; set; }
/// <summary>
/// 所属入职业务公司 Id。
/// </summary>
public long CompanyId { get; set; }
/// <summary>
/// 入职任务所属岗位 Id。
/// </summary>
public long PositionId { get; set; }
/// <summary>
/// 创建任务时指定的审核人用户 Id。
/// </summary>
public long? AssignedReviewerUserId { get; set; }
/// <summary>
/// 入职任务当前状态。
/// </summary>
public string TaskStatus { get; set; } = OnboardingTaskStatus.Draft;
/// <summary>
/// 员工填写链接业务过期时间。
/// </summary>
public DateTime? LinkExpireAt { get; set; }
/// <summary>
/// 候选人累计提交轮次。
/// </summary>
public int SubmitCount { get; set; }
/// <summary>
/// 候选人最近一次提交时间。
/// </summary>
public DateTime? LastSubmittedAt { get; set; }
/// <summary>
/// 审核或流程操作发生时间。
/// </summary>
public DateTime? AuditedAt { get; set; }
/// <summary>
/// 任务归档时间。
/// </summary>
public DateTime? ArchivedAt { get; set; }
/// <summary>
/// 最近一次审核退回原因。
/// </summary>
public string RejectReason { get; set; }
/// <summary>
/// 业务备注。
/// </summary>
public string Remark { get; set; }
}
@@ -10,16 +10,45 @@
namespace SimpleAdmin.Application;
/// <summary>
/// 入职业务岗位档案,保存岗位默认合同期限、试用期及业务参数。
/// </summary>
[SugarTable("ob_position", TableDescription = "入职业务岗位")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
public class ObPosition : BaseEntity
{
/// <summary>
/// 所属入职业务公司 Id。
/// </summary>
public long CompanyId { get; set; }
/// <summary>
/// 岗位业务编码。
/// </summary>
public virtual string PositionCode { get; set; }
/// <summary>
/// 岗位名称。
/// </summary>
public virtual string PositionName { get; set; }
/// <summary>
/// 默认合同期限,单位为年。
/// </summary>
public decimal? DefaultContractYears { get; set; }
/// <summary>
/// 默认试用期,单位为月。
/// </summary>
public int? DefaultProbationMonths { get; set; }
/// <summary>
/// 岗位默认合同参数 JSON。
/// </summary>
public string DefaultParamsJson { get; set; }
/// <summary>
/// 业务备注。
/// </summary>
public string Remark { get; set; }
}
@@ -10,15 +10,45 @@
namespace SimpleAdmin.Application;
/// <summary>
/// 入职任务提交与审核记录,按轮次保留意见及数据快照。
/// </summary>
[SugarTable("ob_task_audit", TableDescription = "入职任务提交与审核记录")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
public class ObTaskAudit : BaseEntity
{
/// <summary>
/// 所属入职任务 Id。
/// </summary>
public long TaskId { get; set; }
/// <summary>
/// 审核轮次,与任务提交次数对应。
/// </summary>
public int AuditRound { get; set; }
/// <summary>
/// 审核或流程动作。
/// </summary>
public string AuditAction { get; set; }
/// <summary>
/// 审核操作人用户 Id;员工提交时可为空。
/// </summary>
public long? AuditorUserId { get; set; }
/// <summary>
/// 审核意见或流程说明。
/// </summary>
public string AuditOpinion { get; set; }
/// <summary>
/// 本轮提交或审核时的数据快照 JSON。
/// </summary>
public string SnapshotJson { get; set; }
/// <summary>
/// 审核或流程操作发生时间。
/// </summary>
public DateTime AuditedAt { get; set; }
}
@@ -10,22 +10,80 @@
namespace SimpleAdmin.Application;
/// <summary>
/// 入职任务合同实例,锁定模板版本并记录生成、阅读和签署状态。
/// </summary>
[SugarTable("ob_task_contract", TableDescription = "入职任务合同明细")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
public class ObTaskContract : BaseEntity
{
/// <summary>
/// 所属入职任务 Id。
/// </summary>
public long TaskId { get; set; }
/// <summary>
/// 合同模板主档案 Id。
/// </summary>
public long TemplateId { get; set; }
/// <summary>
/// 合同模板版本 Id。
/// </summary>
public long TemplateVersionId { get; set; }
/// <summary>
/// 任务创建时冻结的合同名称。
/// </summary>
public string ContractName { get; set; }
/// <summary>
/// 合同类型。
/// </summary>
public string ContractType { get; set; }
/// <summary>
/// 是否为候选人必须阅读确认的合同。
/// </summary>
public bool Required { get; set; }
/// <summary>
/// 任务合同当前状态。
/// </summary>
public string ContractStatus { get; set; } = TaskContractStatus.PendingGenerate;
/// <summary>
/// 生成后的 DOCX 文件 Id。
/// </summary>
public long? GeneratedDocxFileId { get; set; }
/// <summary>
/// 归档或打印使用的 PDF 文件 Id。
/// </summary>
public long? GeneratedPdfFileId { get; set; }
/// <summary>
/// 合同文件生成时间。
/// </summary>
public DateTime? GeneratedAt { get; set; }
/// <summary>
/// 候选人首次阅读时间。
/// </summary>
public DateTime? ReadAt { get; set; }
/// <summary>
/// 候选人确认阅读时间。
/// </summary>
public DateTime? ConfirmedAt { get; set; }
/// <summary>
/// 线下签署完成时间。
/// </summary>
public DateTime? OfflineSignedAt { get; set; }
/// <summary>
/// 合同打印时间。
/// </summary>
public DateTime? PrintedAt { get; set; }
}
@@ -10,16 +10,50 @@
namespace SimpleAdmin.Application;
/// <summary>
/// 任务合同变量最终值快照,合同生成后不再读取模板实时值。
/// </summary>
[SugarTable("ob_task_contract_variable", TableDescription = "任务合同变量最终值快照")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
public class ObTaskContractVariable : BaseEntity
{
/// <summary>
/// 所属任务合同 Id。
/// </summary>
public long TaskContractId { get; set; }
/// <summary>
/// DOCX 中使用的变量编码。
/// </summary>
public string VariableCode { get; set; }
/// <summary>
/// 变量显示名称。
/// </summary>
public string VariableName { get; set; }
/// <summary>
/// 变量来源类型,例如员工、公司、合同或系统。
/// </summary>
public string VariableType { get; set; }
/// <summary>
/// 变量数据类型。
/// </summary>
public string DataType { get; set; }
/// <summary>
/// 合同生成时使用的最终变量值。
/// </summary>
public string VariableValue { get; set; }
/// <summary>
/// 最终值来源类型。
/// </summary>
public string SourceType { get; set; }
/// <summary>
/// 是否由人事手工覆盖自动值。
/// </summary>
public bool IsManualOverride { get; set; }
}
@@ -10,35 +10,145 @@
namespace SimpleAdmin.Application;
/// <summary>
/// 候选人在入职任务中提交的固定人员基础信息。
/// </summary>
[SugarTable("ob_task_employee_info", TableDescription = "候选人提交的固定基础信息")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
public class ObTaskEmployeeInfo : BaseEntity
{
/// <summary>
/// 所属入职任务 Id。
/// </summary>
public long TaskId { get; set; }
/// <summary>
/// 员工编号。
/// </summary>
public string EmployeeNo { get; set; }
/// <summary>
/// 内部人员编号。
/// </summary>
public string InternalNo { get; set; }
/// <summary>
/// 员工姓名。
/// </summary>
public string EmployeeName { get; set; }
/// <summary>
/// 所属部门名称。
/// </summary>
public string DepartmentName { get; set; }
/// <summary>
/// 性别。
/// </summary>
public string Gender { get; set; }
/// <summary>
/// 手机号码。
/// </summary>
public string Phone { get; set; }
/// <summary>
/// 身份证号码。
/// </summary>
public string IdCardNumber { get; set; }
/// <summary>
/// 毕业院校。
/// </summary>
public string College { get; set; }
/// <summary>
/// 最高学历。
/// </summary>
public string Education { get; set; }
/// <summary>
/// 所学专业。
/// </summary>
public string Major { get; set; }
/// <summary>
/// 出生日期。
/// </summary>
public DateTime? BirthDate { get; set; }
/// <summary>
/// 户籍所在地。
/// </summary>
public string RegisteredResidence { get; set; }
/// <summary>
/// 民族。
/// </summary>
public string Nation { get; set; }
/// <summary>
/// 现居住或联系地址。
/// </summary>
public string ContactAddress { get; set; }
/// <summary>
/// 入职日期。
/// </summary>
public DateTime? EntryDate { get; set; }
/// <summary>
/// 合同开始日期。
/// </summary>
public DateTime? ContractStartDate { get; set; }
/// <summary>
/// 合同结束日期。
/// </summary>
public DateTime? ContractEndDate { get; set; }
/// <summary>
/// 试用期开始日期。
/// </summary>
public DateTime? ProbationStartDate { get; set; }
/// <summary>
/// 试用期结束日期。
/// </summary>
public DateTime? ProbationEndDate { get; set; }
/// <summary>
/// 转正日期。
/// </summary>
public DateTime? RegularizationDate { get; set; }
/// <summary>
/// 社保缴纳公司。
/// </summary>
public string SocialInsuranceCompany { get; set; }
/// <summary>
/// 合同性质。
/// </summary>
public string ContractNature { get; set; }
/// <summary>
/// 工资银行卡号。
/// </summary>
public string BankCardNumber { get; set; }
/// <summary>
/// 银行卡开户名。
/// </summary>
public string BankAccountName { get; set; }
/// <summary>
/// 开户银行名称。
/// </summary>
public string BankName { get; set; }
/// <summary>
/// 业务备注。
/// </summary>
public string Remark { get; set; }
}
@@ -10,14 +10,40 @@
namespace SimpleAdmin.Application;
/// <summary>
/// 候选人动态字段填写值,保留字段快照及提交轮次。
/// </summary>
[SugarTable("ob_task_form_value", TableDescription = "候选人动态填写信息")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
public class ObTaskFormValue : BaseEntity
{
/// <summary>
/// 所属入职任务 Id。
/// </summary>
public long TaskId { get; set; }
/// <summary>
/// 动态字段定义 Id。
/// </summary>
public long FieldId { get; set; }
/// <summary>
/// 动态字段业务编码。
/// </summary>
public string FieldCode { get; set; }
/// <summary>
/// 动态字段显示名称。
/// </summary>
public string FieldName { get; set; }
/// <summary>
/// 候选人填写的字段值。
/// </summary>
public string FieldValue { get; set; }
/// <summary>
/// 该数据所属的提交轮次。
/// </summary>
public int SubmitRound { get; set; }
}
@@ -10,16 +10,45 @@
namespace SimpleAdmin.Application;
/// <summary>
/// 新员工专属填写链接,仅保存 Token 哈希及链接生命周期信息。
/// </summary>
[SugarTable("ob_task_link", TableDescription = "新员工专属填写链接")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
public class ObTaskLink : BaseEntity
{
/// <summary>
/// 所属入职任务 Id。
/// </summary>
public long TaskId { get; set; }
/// <summary>
/// 访问 Token 的 SHA-256 哈希,不保存明文 Token。
/// </summary>
public string TokenHash { get; set; }
/// <summary>
/// 填写链接当前状态。
/// </summary>
public string LinkStatus { get; set; } = OnboardingLinkStatus.Active;
/// <summary>
/// 链接过期时间。
/// </summary>
public DateTime ExpiresAt { get; set; }
/// <summary>
/// 链接最近访问时间。
/// </summary>
public DateTime? LastAccessedAt { get; set; }
/// <summary>
/// 链接累计访问次数。
/// </summary>
public int AccessCount { get; set; }
/// <summary>
/// 链接撤销时间。
/// </summary>
public DateTime? RevokedAt { get; set; }
}
@@ -10,16 +10,50 @@
namespace SimpleAdmin.Application;
/// <summary>
/// 候选人上传的入职材料,记录文件、提交轮次及审核状态。
/// </summary>
[SugarTable("ob_task_material", TableDescription = "候选人上传资料")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
public class ObTaskMaterial : BaseEntity
{
/// <summary>
/// 所属入职任务 Id。
/// </summary>
public long TaskId { get; set; }
/// <summary>
/// 材料类型 Id。
/// </summary>
public long MaterialTypeId { get; set; }
/// <summary>
/// 材料显示名称。
/// </summary>
public string MaterialName { get; set; }
/// <summary>
/// 系统文件 Id。
/// </summary>
public long FileId { get; set; }
/// <summary>
/// 该数据所属的提交轮次。
/// </summary>
public int SubmitRound { get; set; }
/// <summary>
/// 材料上传时间。
/// </summary>
public DateTime UploadedAt { get; set; }
/// <summary>
/// 材料审核状态。
/// </summary>
public string ReviewStatus { get; set; } = TaskMaterialReviewStatus.Pending;
/// <summary>
/// 材料审核意见。
/// </summary>
public string ReviewRemark { get; set; }
}
@@ -10,16 +10,50 @@
namespace SimpleAdmin.Application;
/// <summary>
/// 入职任务操作日志,用于追踪关键状态变化及操作人。
/// </summary>
[SugarTable("ob_task_operation_log", TableDescription = "入职任务操作日志")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
public class ObTaskOperationLog : BaseEntity
{
/// <summary>
/// 所属入职任务 Id。
/// </summary>
public long TaskId { get; set; }
/// <summary>
/// 操作人类型,例如员工、人事或系统。
/// </summary>
public string OperatorType { get; set; }
/// <summary>
/// 后台操作人用户 Id。
/// </summary>
public long? OperatorUserId { get; set; }
/// <summary>
/// 操作类型。
/// </summary>
public string OperationType { get; set; }
/// <summary>
/// 操作说明。
/// </summary>
public string OperationContent { get; set; }
/// <summary>
/// 本次变更的数据 JSON。
/// </summary>
public string ChangeDataJson { get; set; }
/// <summary>
/// 操作来源 IP 地址。
/// </summary>
public string IpAddress { get; set; }
/// <summary>
/// 操作发生时间。
/// </summary>
public DateTime OperatedAt { get; set; }
}
@@ -10,21 +10,75 @@
namespace SimpleAdmin.Application;
/// <summary>
/// 合同模板变量定义,描述 DOCX 占位符、来源类型及填写规则。
/// </summary>
[SugarTable("ob_template_variable", TableDescription = "合同模板变量定义")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
public class ObTemplateVariable : BaseEntity
{
/// <summary>
/// 合同模板版本 Id。
/// </summary>
public long TemplateVersionId { get; set; }
/// <summary>
/// DOCX 中使用的变量编码。
/// </summary>
public string VariableCode { get; set; }
/// <summary>
/// 变量显示名称。
/// </summary>
public string VariableName { get; set; }
/// <summary>
/// 变量来源类型,例如员工、公司、合同或系统。
/// </summary>
public string VariableType { get; set; }
/// <summary>
/// 变量数据类型。
/// </summary>
public string DataType { get; set; }
/// <summary>
/// 变量关联的候选人基础信息字段。
/// </summary>
public string EmployeeField { get; set; }
/// <summary>
/// 变量默认值。
/// </summary>
public string DefaultValue { get; set; }
/// <summary>
/// 选择型字段或变量的可选项 JSON。
/// </summary>
public string OptionsJson { get; set; }
/// <summary>
/// 变量格式化规则。
/// </summary>
public string FormatRule { get; set; }
/// <summary>
/// 是否必填、必传或必签。
/// </summary>
public bool Required { get; set; }
/// <summary>
/// 人事是否可在创建任务后手工填写或调整。
/// </summary>
public bool HrEditable { get; set; }
/// <summary>
/// 显示排序码。
/// </summary>
public int? SortCode { get; set; }
/// <summary>
/// 业务备注。
/// </summary>
public string Remark { get; set; }
}
@@ -15,13 +15,44 @@ namespace SimpleAdmin.Application;
/// </summary>
public static class OnboardingTaskStatus
{
/// <summary>
/// 草稿,任务尚未生成员工填写链接。
/// </summary>
public const string Draft = "draft";
/// <summary>
/// 待填写,候选人可以通过有效链接编辑资料。
/// </summary>
public const string PendingFill = "pending_fill";
/// <summary>
/// 审核中,候选人已提交且资料暂时锁定。
/// </summary>
public const string Reviewing = "reviewing";
/// <summary>
/// 已退回,候选人可根据意见补充后再次提交。
/// </summary>
public const string Rejected = "rejected";
/// <summary>
/// 已通过,系统已经生成正式员工档案。
/// </summary>
public const string Approved = "approved";
/// <summary>
/// 已归档,任务流程结束且历史数据只读。
/// </summary>
public const string Archived = "archived";
/// <summary>
/// 已过期,任务或链接超过有效期。
/// </summary>
public const string Expired = "expired";
/// <summary>
/// 已撤销,任务或链接被人事主动终止。
/// </summary>
public const string Revoked = "revoked";
}
@@ -30,9 +61,24 @@ public static class OnboardingTaskStatus
/// </summary>
public static class OnboardingLinkStatus
{
/// <summary>
/// 有效,链接可以正常访问。
/// </summary>
public const string Active = "active";
/// <summary>
/// 已过期,任务或链接超过有效期。
/// </summary>
public const string Expired = "expired";
/// <summary>
/// 已撤销,任务或链接被人事主动终止。
/// </summary>
public const string Revoked = "revoked";
/// <summary>
/// 已替换,旧链接已由新链接取代。
/// </summary>
public const string Replaced = "replaced";
}
@@ -41,8 +87,19 @@ public static class OnboardingLinkStatus
/// </summary>
public static class ContractTemplateVersionStatus
{
/// <summary>
/// 草稿,任务尚未生成员工填写链接。
/// </summary>
public const string Draft = "draft";
/// <summary>
/// 已启用,可用于创建新的入职任务。
/// </summary>
public const string Enabled = "enabled";
/// <summary>
/// 已停用,不再用于新任务。
/// </summary>
public const string Disabled = "disabled";
}
@@ -51,10 +108,29 @@ public static class ContractTemplateVersionStatus
/// </summary>
public static class TaskContractStatus
{
/// <summary>
/// 待生成,任务合同尚未生成文件。
/// </summary>
public const string PendingGenerate = "pending_generate";
/// <summary>
/// 待确认,合同已生成并等待候选人阅读确认。
/// </summary>
public const string PendingConfirm = "pending_confirm";
/// <summary>
/// 已确认,候选人已完成阅读确认。
/// </summary>
public const string Confirmed = "confirmed";
/// <summary>
/// 待线下签署,首版暂不接入第三方电子签。
/// </summary>
public const string OfflinePendingSign = "offline_pending_sign";
/// <summary>
/// 已归档,任务流程结束且历史数据只读。
/// </summary>
public const string Archived = "archived";
}
@@ -63,9 +139,24 @@ public static class TaskContractStatus
/// </summary>
public static class ContractVariableType
{
/// <summary>
/// 值来源于候选人或正式员工信息。
/// </summary>
public const string Employee = "employee";
/// <summary>
/// 值来源于公司档案。
/// </summary>
public const string Company = "company";
/// <summary>
/// 值来源于合同业务参数。
/// </summary>
public const string Contract = "contract";
/// <summary>
/// 值由系统自动生成。
/// </summary>
public const string System = "system";
}
@@ -74,9 +165,24 @@ public static class ContractVariableType
/// </summary>
public static class ContractVariableSourceType
{
/// <summary>
/// 值来源于候选人或正式员工信息。
/// </summary>
public const string Employee = "employee";
/// <summary>
/// 值来源于公司档案。
/// </summary>
public const string Company = "company";
/// <summary>
/// 值由人事手工录入。
/// </summary>
public const string HrInput = "hr_input";
/// <summary>
/// 值由系统自动生成。
/// </summary>
public const string System = "system";
}
@@ -85,8 +191,19 @@ public static class ContractVariableSourceType
/// </summary>
public static class TaskMaterialReviewStatus
{
/// <summary>
/// 待审核。
/// </summary>
public const string Pending = "pending";
/// <summary>
/// 审核通过。
/// </summary>
public const string Passed = "passed";
/// <summary>
/// 需要补充或重新上传。
/// </summary>
public const string NeedSupplement = "need_supplement";
}
@@ -95,9 +212,28 @@ public static class TaskMaterialReviewStatus
/// </summary>
public static class OnboardingAuditAction
{
/// <summary>
/// 候选人提交入职资料。
/// </summary>
public const string Submit = "submit";
/// <summary>
/// 人事审核通过。
/// </summary>
public const string Approve = "approve";
/// <summary>
/// 人事退回补充。
/// </summary>
public const string Reject = "reject";
/// <summary>
/// 人事撤销任务。
/// </summary>
public const string Revoke = "revoke";
/// <summary>
/// 人事归档任务。
/// </summary>
public const string Archive = "archive";
}