using System.ComponentModel; namespace SimpleAdmin.Web.Core; /// /// 提供入职任务电子签管理接口。 /// [ApiDescriptionSettings("Application", Tag = "入职电子签约")] [Route("biz/onboarding/electronic-sign")] [RolePermission] public class OnboardingElectronicSignController { private readonly IOnboardingElectronicSignService _service; public OnboardingElectronicSignController( IOnboardingElectronicSignService service) { _service = service; } /// /// 查询入职任务的电子签状态和合同文件。 /// [HttpGet("detail")] [DisplayName("查看入职电子签详情")] public async Task Detail( [FromQuery] BaseIdInput input) { return await _service.Detail(input); } /// /// 手动发起或继续上次失败的契约锁流程。 /// [HttpPost("initiate")] [DisplayName("发起入职电子签")] public async Task Initiate( [FromBody] OnboardingElectronicSignTaskInput input) { return await _service.Initiate(input); } /// /// 保留原流程记录并创建一次全新的契约锁签约流程。 /// [HttpPost("reinitiate")] [DisplayName("重新发起入职电子签")] public async Task Reinitiate( [FromBody] OnboardingElectronicSignReinitiateInput input) { return await _service.Reinitiate(input); } /// /// 主动同步契约锁状态,完成后自动归档。 /// [HttpPost("sync")] [DisplayName("同步入职电子签状态")] public async Task Sync( [FromBody] OnboardingElectronicSignTaskInput input) { return await _service.Sync(input); } /// /// 获取仍然有效的员工签署地址,过期则重新生成。 /// [HttpPost("get-link")] [DisplayName("获取员工电子签链接")] public async Task GetSignLink( [FromBody] OnboardingElectronicSignTaskInput input) { return await _service.GetSignLink(input); } /// /// 获取员工已签、企业未盖章文件的只读浏览页面。 /// [HttpPost("preview-employee-signed")] [DisplayName("预览员工已签合同")] public async Task PreviewEmployeeSignedDocument( [FromBody] OnboardingElectronicSignPreviewInput input) { return await _service.PreviewEmployeeSignedDocument(input); } /// /// 全部文件核对完成后,由后台管理员确认企业盖章。 /// [HttpPost("company-seal")] [DisplayName("确认入职合同企业盖章")] public async Task CompanySeal( [FromBody] OnboardingElectronicSignTaskInput input) { return await _service.CompanySeal(input); } /// /// 催办当前待签员工。 /// [HttpPost("notice")] [DisplayName("催办员工电子签")] public async Task Notice( [FromBody] OnboardingElectronicSignTaskInput input) { await _service.Notice(input); } /// /// 作废尚未结束的电子签流程。 /// [HttpPost("invalid")] [DisplayName("作废入职电子签")] public async Task Invalid( [FromBody] OnboardingElectronicSignInvalidInput input) { await _service.Invalid(input); } }