152 lines
4.1 KiB
C#
152 lines
4.1 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
|
|
namespace SimpleAdmin.Application;
|
|
|
|
/// <summary>
|
|
/// 创建新员工入职任务参数。
|
|
/// </summary>
|
|
public class OnboardingTaskCreateInput
|
|
{
|
|
/// <summary>
|
|
/// 入职业务公司 Id。
|
|
/// </summary>
|
|
[IdNotNull(ErrorMessage = "公司Id不能为空")]
|
|
public long CompanyId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 入职业务部门 Id。
|
|
/// </summary>
|
|
[IdNotNull(ErrorMessage = "部门Id不能为空")]
|
|
public long DepartmentId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 入职任务所属岗位 Id。
|
|
/// </summary>
|
|
[IdNotNull(ErrorMessage = "岗位Id不能为空")]
|
|
public long PositionId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 用工类型:full_time 正式用工,part_time 兼职用工。
|
|
/// </summary>
|
|
public string EmploymentType { get; set; } = EmployeeEmploymentType.FullTime;
|
|
|
|
/// <summary>
|
|
/// 本次任务使用的入职模板 Id。
|
|
/// </summary>
|
|
[IdNotNull(ErrorMessage = "入职模板Id不能为空")]
|
|
public long OnboardingTemplateId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 创建任务时由人事预先填写的合同变量。
|
|
/// </summary>
|
|
public List<OnboardingInitialContractVariableInput> ContractVariables { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// 创建任务时指定的审核人用户 Id。
|
|
/// </summary>
|
|
public long? AssignedReviewerUserId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 链接过期时间;实际有效期由系统配置计算。
|
|
/// </summary>
|
|
public DateTime? LinkExpireAt { get; set; }
|
|
|
|
/// <summary>
|
|
/// 业务备注。
|
|
/// </summary>
|
|
[Required(ErrorMessage = "人事备注不能为空")]
|
|
public string Remark { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 批量复制入职任务参数。
|
|
/// </summary>
|
|
public class OnboardingTaskCopyInput
|
|
{
|
|
/// <summary>
|
|
/// 被复制的原入职任务 Id。
|
|
/// </summary>
|
|
[IdNotNull(ErrorMessage = "原入职任务Id不能为空")]
|
|
public long SourceTaskId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 在原任务之外需要新建的任务数量。
|
|
/// </summary>
|
|
public int Count { get; set; }
|
|
|
|
/// <summary>
|
|
/// 每条新任务分别填写的人事备注。
|
|
/// </summary>
|
|
public List<OnboardingTaskCopyItemInput> Items { get; set; } = new();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 单条复制任务的个性化参数。
|
|
/// </summary>
|
|
public class OnboardingTaskCopyItemInput
|
|
{
|
|
/// <summary>
|
|
/// 新任务的人事备注,用于区分候选人和专属链接。
|
|
/// </summary>
|
|
[Required(ErrorMessage = "人事备注不能为空")]
|
|
public string Remark { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 创建任务时填写的单个合同变量。
|
|
/// </summary>
|
|
public class OnboardingInitialContractVariableInput
|
|
{
|
|
/// <summary>
|
|
/// 变量所属合同模板版本 Id。
|
|
/// </summary>
|
|
[IdNotNull(ErrorMessage = "合同模板版本Id不能为空")]
|
|
public long ContractTemplateVersionId { get; set; }
|
|
|
|
/// <summary>
|
|
/// DOCX 中的完整变量编码,例如 hr.MonthlySalary。
|
|
/// </summary>
|
|
public string VariableCode { get; set; }
|
|
|
|
/// <summary>
|
|
/// 人事录入的变量值。
|
|
/// </summary>
|
|
public string VariableValue { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 入职任务创建结果。
|
|
/// </summary>
|
|
public class OnboardingTaskCreatedOutput
|
|
{
|
|
/// <summary>
|
|
/// 入职任务 Id。
|
|
/// </summary>
|
|
public long TaskId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 入职任务编号。
|
|
/// </summary>
|
|
public string TaskNo { get; set; }
|
|
|
|
/// <summary>
|
|
/// 新生成的员工填写链接 Token,仅在创建结果中返回。
|
|
/// </summary>
|
|
public string LinkToken { get; set; }
|
|
|
|
/// <summary>
|
|
/// 员工填写链接过期时间。
|
|
/// </summary>
|
|
public DateTime ExpiresAt { get; set; }
|
|
}
|
|
/// <summary>
|
|
/// 批量复制入职任务结果。
|
|
/// </summary>
|
|
public class OnboardingTaskCopyOutput
|
|
{
|
|
/// <summary>
|
|
/// 本次复制生成的全部新任务及独立链接信息。
|
|
/// </summary>
|
|
public List<OnboardingTaskCreatedOutput> Tasks { get; set; } = new();
|
|
}
|