148 lines
4.2 KiB
C#
148 lines
4.2 KiB
C#
namespace SimpleAdmin.Web.Core;
|
|
|
|
/// <summary>
|
|
/// 提供合同模板、DOCX 版本和自动识别变量配置接口。
|
|
/// </summary>
|
|
[ApiDescriptionSettings("Application", Tag = "入职合同模板")]
|
|
[Route("biz/onboarding/contract-template")]
|
|
[RolePermission]
|
|
public class OnboardingContractTemplateController
|
|
{
|
|
private readonly IOnboardingContractTemplateService _service;
|
|
private readonly IFileService _fileService;
|
|
|
|
public OnboardingContractTemplateController(
|
|
IOnboardingContractTemplateService service,
|
|
IFileService fileService)
|
|
{
|
|
_service = service;
|
|
_fileService = fileService;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 将入职合同 DOCX 模板上传到阿里云 OSS。
|
|
/// </summary>
|
|
[HttpPost("file/upload-docx")]
|
|
[Consumes("multipart/form-data")]
|
|
[RequestSizeLimit(20 * 1024 * 1024)]
|
|
public async Task<long> UploadDocx([FromForm] IFormFile file)
|
|
{
|
|
if (file == null || file.Length == 0)
|
|
throw Oops.Bah("请选择需要上传的 DOCX 文件");
|
|
|
|
var suffix = Path.GetExtension(file.FileName);
|
|
if (!string.Equals(suffix, ".docx", StringComparison.OrdinalIgnoreCase))
|
|
throw Oops.Bah("合同模板仅支持 DOCX 文件");
|
|
|
|
return await _fileService.UploadFile(SysDictConst.FILE_ENGINE_ALIYUN_OSS, file);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 分页查询合同模板。
|
|
/// </summary>
|
|
[HttpGet("page")]
|
|
public async Task<dynamic> Page([FromQuery] OnboardingContractTemplatePageInput input)
|
|
{
|
|
return await _service.Page(input);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 查询合同模板详情。
|
|
/// </summary>
|
|
[HttpGet("detail")]
|
|
public async Task<dynamic> Detail([FromQuery] BaseIdInput input)
|
|
{
|
|
return await _service.Detail(input);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 查询入职模板当前公司、部门及岗位可选择的合同模板。
|
|
/// </summary>
|
|
[HttpPost("list-available")]
|
|
public async Task<dynamic> ListAvailable([FromBody] OnboardingContractTemplateAvailableInput input)
|
|
{
|
|
return await _service.ListAvailable(input);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 新增合同模板。
|
|
/// </summary>
|
|
[HttpPost("add")]
|
|
public async Task Add([FromBody] OnboardingContractTemplateAddInput input)
|
|
{
|
|
await _service.Add(input);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 编辑合同模板。
|
|
/// </summary>
|
|
[HttpPost("edit")]
|
|
public async Task Edit([FromBody] OnboardingContractTemplateEditInput input)
|
|
{
|
|
await _service.Edit(input);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除合同模板。
|
|
/// </summary>
|
|
[HttpPost("delete")]
|
|
public async Task Delete([FromBody] BaseIdListInput input)
|
|
{
|
|
await _service.Delete(input);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 分页查询合同模板版本。
|
|
/// </summary>
|
|
[HttpGet("version/page")]
|
|
public async Task<dynamic> VersionPage([FromQuery] OnboardingContractVersionPageInput input)
|
|
{
|
|
return await _service.VersionPage(input);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 新增合同模板版本。
|
|
/// </summary>
|
|
[HttpPost("version/add")]
|
|
public async Task AddVersion([FromBody] OnboardingContractVersionAddInput input)
|
|
{
|
|
await _service.AddVersion(input);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置合同模板版本状态。
|
|
/// </summary>
|
|
[HttpPost("version/set-status")]
|
|
public async Task SetVersionStatus([FromBody] OnboardingContractVersionStatusInput input)
|
|
{
|
|
await _service.SetVersionStatus(input);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除未被入职模板或任务使用的合同模板版本。
|
|
/// </summary>
|
|
[HttpPost("version/delete")]
|
|
public async Task DeleteVersion([FromBody] BaseIdInput input)
|
|
{
|
|
await _service.DeleteVersion(input);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 分页查询模板变量。
|
|
/// </summary>
|
|
[HttpGet("variable/page")]
|
|
public async Task<dynamic> VariablePage([FromQuery] OnboardingTemplateVariablePageInput input)
|
|
{
|
|
return await _service.VariablePage(input);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 编辑模板变量。
|
|
/// </summary>
|
|
[HttpPost("variable/edit")]
|
|
public async Task EditVariable([FromBody] OnboardingTemplateVariableEditInput input)
|
|
{
|
|
await _service.EditVariable(input);
|
|
}
|
|
}
|