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);
}
}