Files
OnboardXAdmin/SimpleAdmin.Web.Core/Controllers/Application/Onboarding/OnboardingContractDocumentController.cs
2026-09-07 16:17:49 +08:00

64 lines
2.0 KiB
C#

using System.ComponentModel;
namespace SimpleAdmin.Web.Core;
/// <summary>
/// 提供入职合同文件生成相关 HTTP 接口。
/// </summary>
[ApiDescriptionSettings("Application", Tag = "入职合同文件")]
[Route("biz/onboarding/contract-document")]
[Route("biz/onboarding/task")]
[RolePermission]
public class OnboardingContractDocumentController
{
private readonly IOnboardingContractDocumentService _service;
public OnboardingContractDocumentController(
IOnboardingContractDocumentService service)
{
_service = service;
}
/// <summary>
/// 创建入职任务前,按人事当前填写的参数下载指定 DOCX 合同预览。
/// </summary>
[HttpPost("preview-before-create")]
[DisplayName("创建入职任务前预览合同")]
public async Task<FileContentResult> PreviewBeforeCreate(
[FromBody] OnboardingContractPreviewInput input)
{
var preview = await _service.PreviewBeforeCreate(input);
return new FileContentResult(
preview.FileBytes,
"application/vnd.openxmlformats-officedocument.wordprocessingml.document")
{
FileDownloadName = preview.FileName
};
}
/// <summary>
/// 创建入职任务前,将全部 DOCX 合同预览打包下载。
/// </summary>
[HttpPost("preview-all-before-create")]
[DisplayName("创建入职任务前预览全部合同")]
public async Task<FileContentResult> PreviewAllBeforeCreate(
[FromBody] OnboardingContractPreviewInput input)
{
var preview = await _service.PreviewAllBeforeCreate(input);
return new FileContentResult(preview.FileBytes, "application/zip")
{
FileDownloadName = preview.FileName
};
}
/// <summary>
/// 生成入职合同文件
/// </summary>
[HttpPost("generate")]
[DisplayName("手动生成合同文件")]
public async Task<long> Generate(
[FromBody] OnboardingGenerateContractInput input)
{
return await _service.Generate(input);
}
}