using System.ComponentModel; namespace SimpleAdmin.Web.Core; /// /// 提供合同模板、DOCX 版本和自动识别变量配置接口。 /// [ApiDescriptionSettings("Application", Tag = "入职合同模板")] [Route("biz/onboarding/contract-template")] [Route("biz/onboarding/contract")] [RolePermission] public class OnboardingContractTemplateController { private readonly IOnboardingContractTemplateService _service; private readonly IFileService _fileService; public OnboardingContractTemplateController( IOnboardingContractTemplateService service, IFileService fileService) { _service = service; _fileService = fileService; } /// /// 将入职合同 DOCX 模板上传到阿里云 OSS。 /// [HttpPost("file/upload-docx")] [Consumes("multipart/form-data")] [RequestSizeLimit(20 * 1024 * 1024)] [DisplayName("上传合同DOCX模板")] public async Task 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); } /// /// 分页查询合同模板。 /// [HttpGet("page")] [DisplayName("分页查询合同模板")] public async Task Page([FromQuery] OnboardingContractTemplatePageInput input) { return await _service.Page(input); } /// /// 查询合同模板详情。 /// [HttpGet("detail")] [DisplayName("查询合同模板详情")] public async Task Detail([FromQuery] BaseIdInput input) { return await _service.Detail(input); } /// /// 查询入职模板当前公司、部门及岗位可选择的合同模板。 /// [HttpPost("list-available")] public async Task ListAvailable([FromBody] OnboardingContractTemplateAvailableInput input) { return await _service.ListAvailable(input); } /// /// 新增合同模板。 /// [HttpPost("add")] [DisplayName("新增合同业务模板")] public async Task Add([FromBody] OnboardingContractTemplateAddInput input) { await _service.Add(input); } /// /// 编辑合同模板。 /// [HttpPost("edit")] [DisplayName("编辑合同业务模板")] public async Task Edit([FromBody] OnboardingContractTemplateEditInput input) { await _service.Edit(input); } /// /// 删除合同模板。 /// [HttpPost("delete")] [DisplayName("删除合同业务模板")] public async Task Delete([FromBody] BaseIdListInput input) { await _service.Delete(input); } /// /// 分页查询合同模板版本。 /// [HttpGet("version/page")] [DisplayName("分页查询合同版本")] public async Task VersionPage([FromQuery] OnboardingContractVersionPageInput input) { return await _service.VersionPage(input); } /// /// 新增合同模板版本。 /// [HttpPost("version/add")] public async Task AddVersion([FromBody] OnboardingContractVersionAddInput input) { await _service.AddVersion(input); } /// /// 设置合同模板版本状态。 /// [HttpPost("version/set-status")] public async Task SetVersionStatus([FromBody] OnboardingContractVersionStatusInput input) { await _service.SetVersionStatus(input); } /// /// 删除未被入职模板或任务使用的合同模板版本。 /// [HttpPost("version/delete")] public async Task DeleteVersion([FromBody] BaseIdInput input) { await _service.DeleteVersion(input); } /// /// 分页查询模板变量。 /// [HttpGet("variable/page")] [DisplayName("分页查询合同变量")] public async Task VariablePage([FromQuery] OnboardingTemplateVariablePageInput input) { return await _service.VariablePage(input); } /// /// 编辑模板变量。 /// [HttpPost("variable/edit")] public async Task EditVariable([FromBody] OnboardingTemplateVariableEditInput input) { await _service.EditVariable(input); } }