补充注释

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
@@ -1,9 +1,27 @@
namespace SimpleAdmin.Application;
/// <summary>
/// 员工端材料上传前校验参数。
/// </summary>
public class OnboardingMaterialUploadValidationInput
{
/// <summary>
/// 员工填写链接中的明文 Token。
/// </summary>
public string Token { get; set; }
/// <summary>
/// 材料类型 Id。
/// </summary>
public long MaterialTypeId { get; set; }
/// <summary>
/// 待上传文件名称。
/// </summary>
public string FileName { get; set; }
/// <summary>
/// 待上传文件大小,单位为字节。
/// </summary>
public long FileLength { get; set; }
}
@@ -1,38 +1,85 @@
namespace SimpleAdmin.Application;
/// <summary>
/// 单个动态字段填写值。
/// </summary>
public class OnboardingDynamicValueInput
{
/// <summary>
/// 动态字段 Id。
/// </summary>
public long FieldId { get; set; }
/// <summary>
/// 动态字段填写值。
/// </summary>
public string FieldValue { get; set; }
}
/// <summary>
/// 批量保存员工动态字段参数。
/// </summary>
public class OnboardingSaveDynamicValuesInput
{
/// <summary>
/// 员工填写链接中的明文 Token。
/// </summary>
[global::System.ComponentModel.DataAnnotations.Required]
public string Token { get; set; }
/// <summary>
/// 待保存的字段或变量值集合。
/// </summary>
public List<OnboardingDynamicValueInput> Values { get; set; } = new();
}
/// <summary>
/// 保存员工已上传材料参数。
/// </summary>
public class OnboardingSaveMaterialInput
{
/// <summary>
/// 员工填写链接中的明文 Token。
/// </summary>
[global::System.ComponentModel.DataAnnotations.Required]
public string Token { get; set; }
/// <summary>
/// 材料类型 Id。
/// </summary>
public long MaterialTypeId { get; set; }
/// <summary>
/// 系统文件 Id。
/// </summary>
public long FileId { get; set; }
}
/// <summary>
/// 员工确认阅读合同参数。
/// </summary>
public class OnboardingConfirmContractInput
{
/// <summary>
/// 员工填写链接中的明文 Token。
/// </summary>
[global::System.ComponentModel.DataAnnotations.Required]
public string Token { get; set; }
/// <summary>
/// 任务合同 Id。
/// </summary>
public long TaskContractId { get; set; }
}
/// <summary>
/// 员工提交入职资料参数。
/// </summary>
public class OnboardingSubmitInput
{
/// <summary>
/// 员工填写链接中的明文 Token。
/// </summary>
[global::System.ComponentModel.DataAnnotations.Required]
public string Token { get; set; }
}
@@ -1,10 +1,28 @@
namespace SimpleAdmin.Application;
/// <summary>
/// 定义员工端入职资料提交业务能力。
/// </summary>
public interface IOnboardingPublicSubmissionService : ITransient
{
/// <summary>
/// 保存候选人填写的动态字段值。
/// </summary>
Task SaveDynamicValues(OnboardingSaveDynamicValuesInput input);
/// <summary>
/// 关联候选人已经上传的系统文件与材料类型。
/// </summary>
Task SaveMaterial(OnboardingSaveMaterialInput input);
/// <summary>
/// 记录候选人已阅读并确认指定任务合同。
/// </summary>
Task ConfirmContract(OnboardingConfirmContractInput input);
/// <summary>
/// 校验全部必填资料后提交入职任务进入审核。
/// </summary>
Task Submit(OnboardingSubmitInput input);
/// <summary>
/// 在保存文件前校验材料适用范围、扩展名、大小和数量。
/// </summary>
Task ValidateMaterialUpload(OnboardingMaterialUploadValidationInput input);
}
@@ -1,5 +1,8 @@
namespace SimpleAdmin.Application;
/// <summary>
/// 实现员工端入职资料提交业务能力。
/// </summary>
public class OnboardingPublicSubmissionService : IOnboardingPublicSubmissionService
{
private readonly SqlSugarScope _db;
@@ -12,6 +15,9 @@ public class OnboardingPublicSubmissionService : IOnboardingPublicSubmissionServ
_snapshotService = snapshotService;
}
/// <summary>
/// 保存候选人填写的动态字段值。
/// </summary>
public async Task SaveDynamicValues(OnboardingSaveDynamicValuesInput input)
{
var task = await GetEditableTask(input.Token);
@@ -52,6 +58,9 @@ public class OnboardingPublicSubmissionService : IOnboardingPublicSubmissionServ
}
}
/// <summary>
/// 关联候选人已经上传的系统文件与材料类型。
/// </summary>
public async Task SaveMaterial(OnboardingSaveMaterialInput input)
{
var task = await GetEditableTask(input.Token);
@@ -84,6 +93,9 @@ public class OnboardingPublicSubmissionService : IOnboardingPublicSubmissionServ
}).ExecuteCommandAsync();
}
/// <summary>
/// 记录候选人已阅读并确认指定任务合同。
/// </summary>
public async Task ConfirmContract(OnboardingConfirmContractInput input)
{
var task = await GetEditableTask(input.Token);
@@ -97,6 +109,9 @@ public class OnboardingPublicSubmissionService : IOnboardingPublicSubmissionServ
await _db.Updateable(contract).ExecuteCommandAsync();
}
/// <summary>
/// 校验全部必填资料后提交入职任务进入审核。
/// </summary>
public async Task Submit(OnboardingSubmitInput input)
{
var task = await GetEditableTask(input.Token);
@@ -111,6 +126,7 @@ public class OnboardingPublicSubmissionService : IOnboardingPublicSubmissionServ
await _snapshotService.Build(task.Id, info);
// 提交时统一完成动态字段、材料、合同变量和合同确认校验,保存阶段只负责暂存。
var requiredFields = (await GetEffectiveFormRequirements(task))
.Where(item => item.Required)
.Select(item => item.FieldId)
@@ -160,6 +176,9 @@ public class OnboardingPublicSubmissionService : IOnboardingPublicSubmissionServ
}).ExecuteCommandAsync();
}
/// <summary>
/// 在保存文件前校验材料适用范围、扩展名、大小和数量。
/// </summary>
public async Task ValidateMaterialUpload(OnboardingMaterialUploadValidationInput input)
{
var task = await GetEditableTask(input.Token);
@@ -262,5 +281,3 @@ public class OnboardingPublicSubmissionService : IOnboardingPublicSubmissionServ
return task;
}
}