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