Files
OnboardXAdmin/SimpleAdmin.Application/Services/Onboarding/Task/Dto/OnboardingTaskPublicInput.cs
T
2026-08-26 15:30:31 +08:00

295 lines
7.1 KiB
C#

namespace SimpleAdmin.Application;
/// <summary>
/// 员工端通过 Token 访问任务参数。
/// </summary>
public class OnboardingTaskPublicAccessInput
{
/// <summary>
/// 员工填写链接中的明文 Token。
/// </summary>
[global::System.ComponentModel.DataAnnotations.Required]
public string Token { get; set; }
}
/// <summary>
/// 员工端获取合同源文件参数。
/// </summary>
public class OnboardingPublicContractSourceInput
{
/// <summary>
/// 员工填写链接中的明文 Token。
/// </summary>
[global::System.ComponentModel.DataAnnotations.Required]
public string Token { get; set; }
/// <summary>
/// 任务合同 Id。
/// </summary>
[IdNotNull(ErrorMessage = "任务合同Id不能为空")]
public long TaskContractId { get; set; }
}
/// <summary>
/// 员工端预览已上传材料参数。
/// </summary>
public class OnboardingPublicMaterialSourceInput
{
/// <summary>
/// 员工填写链接中的明文 Token。
/// </summary>
[global::System.ComponentModel.DataAnnotations.Required]
public string Token { get; set; }
/// <summary>
/// 任务材料记录 Id。
/// </summary>
[IdNotNull(ErrorMessage = "任务材料Id不能为空")]
public long TaskMaterialId { get; set; }
}
/// <summary>
/// 员工端保存固定基础信息参数。
/// </summary>
public class OnboardingTaskPublicSaveInput : ObTaskEmployeeInfo
{
/// <summary>
/// 员工填写链接中的明文 Token。
/// </summary>
[global::System.ComponentModel.DataAnnotations.Required]
public string Token { get; set; }
/// <summary>
/// 员工姓名。
/// </summary>
[global::System.ComponentModel.DataAnnotations.Required]
public new string EmployeeName { get; set; }
/// <summary>
/// 手机号码。
/// </summary>
[global::System.ComponentModel.DataAnnotations.Required]
public new string Phone { get; set; }
/// <summary>
/// 身份证号码。
/// </summary>
[global::System.ComponentModel.DataAnnotations.Required]
public new string IdCardNumber { get; set; }
}
/// <summary>
/// 员工端动态字段展示信息。
/// </summary>
public class OnboardingPublicFormFieldOutput
{
/// <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 DataType { get; set; }
/// <summary>
/// 可选项 JSON。
/// </summary>
public string OptionsJson { get; set; }
/// <summary>
/// 是否必填、必传或必签。
/// </summary>
public bool Required { get; set; }
}
/// <summary>
/// 员工端需要填写的合同员工变量。
/// </summary>
public class OnboardingPublicContractVariableOutput
{
/// <summary>
/// 合同变量编码。
/// </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 DefaultValue { get; set; }
/// <summary>
/// 选择型变量的可选项 JSON。
/// </summary>
public string OptionsJson { get; set; }
/// <summary>
/// 是否必填。
/// </summary>
public bool Required { get; set; }
}
/// <summary>
/// 员工端材料上传要求。
/// </summary>
public class OnboardingPublicMaterialOutput
{
/// <summary>
/// 材料类型 Id。
/// </summary>
public long MaterialTypeId { 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; }
/// <summary>
/// 是否必填、必传或必签。
/// </summary>
public bool Required { get; set; }
}
/// <summary>
/// 员工端已上传材料展示信息。
/// </summary>
public class OnboardingPublicTaskMaterialOutput
{
/// <summary>
/// 任务材料记录 Id。
/// </summary>
public long Id { 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 string FileName { get; set; }
/// <summary>
/// 文件扩展名,不包含点号。
/// </summary>
public string FileSuffix { get; set; }
/// <summary>
/// 格式化后的文件大小。
/// </summary>
public string FileSizeInfo { get; set; }
/// <summary>
/// 材料上传时间。
/// </summary>
public DateTime UploadedAt { get; set; }
/// <summary>
/// 材料审核状态。
/// </summary>
public string ReviewStatus { get; set; }
/// <summary>
/// 材料审核意见。
/// </summary>
public string ReviewRemark { get; set; }
}
/// <summary>
/// 员工端入职任务完整详情。
/// </summary>
public class OnboardingTaskPublicDetailOutput
{
/// <summary>
/// 入职任务主数据。
/// </summary>
public ObOnboardingTask Task { get; set; }
/// <summary>
/// 候选人固定基础信息。
/// </summary>
public ObTaskEmployeeInfo EmployeeInfo { get; set; }
/// <summary>
/// 任务合同列表。
/// </summary>
public List<ObTaskContract> Contracts { get; set; }
/// <summary>
/// 候选人已保存的动态字段值。
/// </summary>
public List<ObTaskFormValue> DynamicValues { get; set; }
/// <summary>
/// 员工端需要展示的动态字段。
/// </summary>
public List<OnboardingPublicFormFieldOutput> FormFields { get; set; }
/// <summary>
/// 员工端需要展示的材料要求。
/// </summary>
public List<OnboardingPublicMaterialOutput> MaterialRequirements { get; set; }
/// <summary>
/// 候选人已上传材料列表。
/// </summary>
public List<OnboardingPublicTaskMaterialOutput> Materials { get; set; }
/// <summary>
/// 合同中由员工填写的扩展变量。
/// </summary>
public List<OnboardingPublicContractVariableOutput> ContractVariables { get; set; }
}