1111
This commit is contained in:
@@ -42,6 +42,11 @@ public class ObTaskContractVariable : BaseEntity
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string DataType { get; set; }
|
public string DataType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 变量在任务合同中的展示顺序,创建任务时从模板变量复制并固定。
|
||||||
|
/// </summary>
|
||||||
|
public int SortCode { get; set; } = 100;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 合同生成时使用的最终变量值。
|
/// 合同生成时使用的最终变量值。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
+1
@@ -53,6 +53,7 @@ public class OnboardingContractSnapshotService : IOnboardingContractSnapshotServ
|
|||||||
VariableName = definition.VariableName,
|
VariableName = definition.VariableName,
|
||||||
VariableType = definition.VariableType,
|
VariableType = definition.VariableType,
|
||||||
DataType = definition.DataType,
|
DataType = definition.DataType,
|
||||||
|
SortCode = definition.SortCode ?? 100,
|
||||||
VariableValue = preserveManual
|
VariableValue = preserveManual
|
||||||
? old.VariableValue
|
? old.VariableValue
|
||||||
: ResolveValue(definition, employeeInfo, dynamicValueMap, company, task),
|
: ResolveValue(definition, employeeInfo, dynamicValueMap, company, task),
|
||||||
|
|||||||
+3
-1
@@ -411,9 +411,11 @@ public class OnboardingContractTemplateService : DbRepository<ObContractTemplate
|
|||||||
EmployeeField = variableType is ContractVariableType.Employee or ContractVariableType.Company
|
EmployeeField = variableType is ContractVariableType.Employee or ContractVariableType.Company
|
||||||
? sourceField
|
? sourceField
|
||||||
: null,
|
: null,
|
||||||
|
DefaultValue = def?.DefaultValue,
|
||||||
Required = def?.Required ?? true,
|
Required = def?.Required ?? true,
|
||||||
HrEditable = variableType == ContractVariableType.Contract,
|
HrEditable = variableType == ContractVariableType.Contract,
|
||||||
SortCode = (index + 1) * 10,
|
// 合同版本首次识别时继承全局变量字典排序;未登记排序时才使用识别顺序兜底。
|
||||||
|
SortCode = def?.SortCode ?? (index + 1) * 10,
|
||||||
Remark = def?.Remark
|
Remark = def?.Remark
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
+5
@@ -103,6 +103,11 @@ public class OnboardingTaskContractVariableItemOutput
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string DataType { get; set; }
|
public string DataType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 任务创建时保存的变量展示顺序。
|
||||||
|
/// </summary>
|
||||||
|
public int SortCode { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 任务合同变量最终值。
|
/// 任务合同变量最终值。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
+3
-1
@@ -43,7 +43,8 @@ public class OnboardingTaskContractVariableService : IOnboardingTaskContractVari
|
|||||||
|
|
||||||
Variables = variables
|
Variables = variables
|
||||||
.Where(variable => variable.TaskContractId == contract.Id)
|
.Where(variable => variable.TaskContractId == contract.Id)
|
||||||
.OrderBy(variable => variable.VariableCode)
|
.OrderBy(variable => variable.SortCode)
|
||||||
|
.ThenBy(variable => variable.VariableCode)
|
||||||
.Select(variable =>
|
.Select(variable =>
|
||||||
{
|
{
|
||||||
var definition = definitions.FirstOrDefault(x =>
|
var definition = definitions.FirstOrDefault(x =>
|
||||||
@@ -59,6 +60,7 @@ public class OnboardingTaskContractVariableService : IOnboardingTaskContractVari
|
|||||||
VariableName = variable.VariableName,
|
VariableName = variable.VariableName,
|
||||||
VariableType = variable.VariableType,
|
VariableType = variable.VariableType,
|
||||||
DataType = variable.DataType,
|
DataType = variable.DataType,
|
||||||
|
SortCode = variable.SortCode,
|
||||||
VariableValue = variable.VariableValue,
|
VariableValue = variable.VariableValue,
|
||||||
Required = definition?.Required == true,
|
Required = definition?.Required == true,
|
||||||
HrEditable = hrEditable,
|
HrEditable = hrEditable,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛
|
// Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛
|
||||||
//
|
//
|
||||||
// SimpleAdmin 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款:
|
// SimpleAdmin 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款:
|
||||||
// 1.请不要删除和修改根目录下的LICENSE文件。
|
// 1.请不要删除和修改根目录下的LICENSE文件。
|
||||||
@@ -183,15 +183,18 @@ public class ResourceService : DbRepository<SysResource>, IResourceService
|
|||||||
foreach (var controller in controllerTypes)
|
foreach (var controller in controllerTypes)
|
||||||
{
|
{
|
||||||
var apiAttribute = controller.GetCustomAttribute<ApiDescriptionSettingsAttribute>();//获取接口描述特性
|
var apiAttribute = controller.GetCustomAttribute<ApiDescriptionSettingsAttribute>();//获取接口描述特性
|
||||||
var tag = apiAttribute.Tag;//获取标签
|
var tag = apiAttribute?.Tag;//获取标签
|
||||||
//获取数据权限特性
|
//获取数据权限特性
|
||||||
var routeAttributes = controller.GetCustomAttributes<RouteAttribute>().ToList();
|
var routeAttributes = controller.GetCustomAttributes<RouteAttribute>().ToList();
|
||||||
if (routeAttributes == null)
|
if (routeAttributes == null || routeAttributes.Count == 0)
|
||||||
continue;
|
continue;
|
||||||
var route = routeAttributes[0];//取第一个值
|
var route = routeAttributes[0];//取第一个值作为生成接口路由的基础
|
||||||
var routeName = GetRouteName(controller.Name, route.Template);//赋值路由名称
|
var routeName = GetRouteName(controller.Name, route.Template);//赋值路由名称
|
||||||
//如果路由包含在路由列表中
|
//如果路由包含在路由列表中,或支持前缀/多路由匹配
|
||||||
if (routes.Contains(routeName))
|
var isMatched = routeAttributes.Any(ra => routes.Contains(GetRouteName(controller.Name, ra.Template)))
|
||||||
|
|| routes.Contains(routeName)
|
||||||
|
|| routes.Any(r => !string.IsNullOrEmpty(r) && routeName.StartsWith(r));
|
||||||
|
if (isMatched)
|
||||||
{
|
{
|
||||||
//获取所有方法
|
//获取所有方法
|
||||||
var methods = controller.GetMethods();
|
var methods = controller.GetMethods();
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using System.ComponentModel;
|
||||||
namespace SimpleAdmin.Web.Core;
|
namespace SimpleAdmin.Web.Core;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -5,6 +6,7 @@ namespace SimpleAdmin.Web.Core;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[ApiDescriptionSettings("Application", Tag = "入职审核")]
|
[ApiDescriptionSettings("Application", Tag = "入职审核")]
|
||||||
[Route("biz/onboarding/audit")]
|
[Route("biz/onboarding/audit")]
|
||||||
|
[Route("biz/onboarding/task")]
|
||||||
[RolePermission]
|
[RolePermission]
|
||||||
public class OnboardingAuditController
|
public class OnboardingAuditController
|
||||||
{
|
{
|
||||||
@@ -19,6 +21,7 @@ public class OnboardingAuditController
|
|||||||
/// 审核通过任务并创建正式员工档案。
|
/// 审核通过任务并创建正式员工档案。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("approve")]
|
[HttpPost("approve")]
|
||||||
|
[DisplayName("审核通过入职任务")]
|
||||||
public async Task Approve([FromBody] OnboardingAuditActionInput input)
|
public async Task Approve([FromBody] OnboardingAuditActionInput input)
|
||||||
{
|
{
|
||||||
await _service.Approve(input);
|
await _service.Approve(input);
|
||||||
@@ -28,6 +31,7 @@ public class OnboardingAuditController
|
|||||||
/// 退回任务并要求候选人补充资料。
|
/// 退回任务并要求候选人补充资料。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("reject")]
|
[HttpPost("reject")]
|
||||||
|
[DisplayName("退回修改入职任务")]
|
||||||
public async Task Reject([FromBody] OnboardingAuditActionInput input)
|
public async Task Reject([FromBody] OnboardingAuditActionInput input)
|
||||||
{
|
{
|
||||||
await _service.Reject(input);
|
await _service.Reject(input);
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using System.ComponentModel;
|
||||||
namespace SimpleAdmin.Web.Core;
|
namespace SimpleAdmin.Web.Core;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -5,6 +6,7 @@ namespace SimpleAdmin.Web.Core;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[ApiDescriptionSettings("Application", Tag = "入职公司管理")]
|
[ApiDescriptionSettings("Application", Tag = "入职公司管理")]
|
||||||
[Route("biz/onboarding/company")]
|
[Route("biz/onboarding/company")]
|
||||||
|
[Route("biz/onboarding/setup")]
|
||||||
[RolePermission]
|
[RolePermission]
|
||||||
public class OnboardingCompanyController
|
public class OnboardingCompanyController
|
||||||
{
|
{
|
||||||
@@ -19,6 +21,7 @@ public class OnboardingCompanyController
|
|||||||
/// 分页查询入职业务公司。
|
/// 分页查询入职业务公司。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("page")]
|
[HttpGet("page")]
|
||||||
|
[DisplayName("分页查询入职公司")]
|
||||||
public async Task<dynamic> Page([FromQuery] OnboardingCompanyPageInput input)
|
public async Task<dynamic> Page([FromQuery] OnboardingCompanyPageInput input)
|
||||||
{
|
{
|
||||||
return await _service.Page(input);
|
return await _service.Page(input);
|
||||||
@@ -28,6 +31,7 @@ public class OnboardingCompanyController
|
|||||||
/// 查询已启用公司列表。
|
/// 查询已启用公司列表。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("list-enabled")]
|
[HttpGet("list-enabled")]
|
||||||
|
[DisplayName("查询已启用公司列表")]
|
||||||
public async Task<dynamic> ListEnabled()
|
public async Task<dynamic> ListEnabled()
|
||||||
{
|
{
|
||||||
return await _service.ListEnabled();
|
return await _service.ListEnabled();
|
||||||
@@ -37,6 +41,7 @@ public class OnboardingCompanyController
|
|||||||
/// 查询公司详情。
|
/// 查询公司详情。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("detail")]
|
[HttpGet("detail")]
|
||||||
|
[DisplayName("查询入职公司详情")]
|
||||||
public async Task<dynamic> Detail([FromQuery] BaseIdInput input)
|
public async Task<dynamic> Detail([FromQuery] BaseIdInput input)
|
||||||
{
|
{
|
||||||
return await _service.Detail(input);
|
return await _service.Detail(input);
|
||||||
@@ -46,6 +51,7 @@ public class OnboardingCompanyController
|
|||||||
/// 新增入职业务公司。
|
/// 新增入职业务公司。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("add")]
|
[HttpPost("add")]
|
||||||
|
[DisplayName("新增入职业务公司")]
|
||||||
public async Task Add([FromBody] OnboardingCompanyAddInput input)
|
public async Task Add([FromBody] OnboardingCompanyAddInput input)
|
||||||
{
|
{
|
||||||
await _service.Add(input);
|
await _service.Add(input);
|
||||||
@@ -55,6 +61,7 @@ public class OnboardingCompanyController
|
|||||||
/// 编辑入职业务公司。
|
/// 编辑入职业务公司。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("edit")]
|
[HttpPost("edit")]
|
||||||
|
[DisplayName("编辑入职业务公司")]
|
||||||
public async Task Edit([FromBody] OnboardingCompanyEditInput input)
|
public async Task Edit([FromBody] OnboardingCompanyEditInput input)
|
||||||
{
|
{
|
||||||
await _service.Edit(input);
|
await _service.Edit(input);
|
||||||
@@ -64,6 +71,7 @@ public class OnboardingCompanyController
|
|||||||
/// 删除入职业务公司。
|
/// 删除入职业务公司。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("delete")]
|
[HttpPost("delete")]
|
||||||
|
[DisplayName("删除入职业务公司")]
|
||||||
public async Task Delete([FromBody] BaseIdListInput input)
|
public async Task Delete([FromBody] BaseIdListInput input)
|
||||||
{
|
{
|
||||||
await _service.Delete(input);
|
await _service.Delete(input);
|
||||||
|
|||||||
+3
@@ -1,3 +1,4 @@
|
|||||||
|
using System.ComponentModel;
|
||||||
namespace SimpleAdmin.Web.Core;
|
namespace SimpleAdmin.Web.Core;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -5,6 +6,7 @@ namespace SimpleAdmin.Web.Core;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[ApiDescriptionSettings("Application", Tag = "入职合同文件")]
|
[ApiDescriptionSettings("Application", Tag = "入职合同文件")]
|
||||||
[Route("biz/onboarding/contract-document")]
|
[Route("biz/onboarding/contract-document")]
|
||||||
|
[Route("biz/onboarding/task")]
|
||||||
[RolePermission]
|
[RolePermission]
|
||||||
public class OnboardingContractDocumentController
|
public class OnboardingContractDocumentController
|
||||||
{
|
{
|
||||||
@@ -20,6 +22,7 @@ public class OnboardingContractDocumentController
|
|||||||
/// 生成入职合同文件
|
/// 生成入职合同文件
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("generate")]
|
[HttpPost("generate")]
|
||||||
|
[DisplayName("手动生成合同文件")]
|
||||||
public async Task<long> Generate(
|
public async Task<long> Generate(
|
||||||
[FromBody] OnboardingGenerateContractInput input)
|
[FromBody] OnboardingGenerateContractInput input)
|
||||||
{
|
{
|
||||||
|
|||||||
+10
@@ -1,3 +1,4 @@
|
|||||||
|
using System.ComponentModel;
|
||||||
namespace SimpleAdmin.Web.Core;
|
namespace SimpleAdmin.Web.Core;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -5,6 +6,7 @@ namespace SimpleAdmin.Web.Core;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[ApiDescriptionSettings("Application", Tag = "入职合同模板")]
|
[ApiDescriptionSettings("Application", Tag = "入职合同模板")]
|
||||||
[Route("biz/onboarding/contract-template")]
|
[Route("biz/onboarding/contract-template")]
|
||||||
|
[Route("biz/onboarding/contract")]
|
||||||
[RolePermission]
|
[RolePermission]
|
||||||
public class OnboardingContractTemplateController
|
public class OnboardingContractTemplateController
|
||||||
{
|
{
|
||||||
@@ -25,6 +27,7 @@ public class OnboardingContractTemplateController
|
|||||||
[HttpPost("file/upload-docx")]
|
[HttpPost("file/upload-docx")]
|
||||||
[Consumes("multipart/form-data")]
|
[Consumes("multipart/form-data")]
|
||||||
[RequestSizeLimit(20 * 1024 * 1024)]
|
[RequestSizeLimit(20 * 1024 * 1024)]
|
||||||
|
[DisplayName("上传合同DOCX模板")]
|
||||||
public async Task<long> UploadDocx([FromForm] IFormFile file)
|
public async Task<long> UploadDocx([FromForm] IFormFile file)
|
||||||
{
|
{
|
||||||
if (file == null || file.Length == 0)
|
if (file == null || file.Length == 0)
|
||||||
@@ -41,6 +44,7 @@ public class OnboardingContractTemplateController
|
|||||||
/// 分页查询合同模板。
|
/// 分页查询合同模板。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("page")]
|
[HttpGet("page")]
|
||||||
|
[DisplayName("分页查询合同模板")]
|
||||||
public async Task<dynamic> Page([FromQuery] OnboardingContractTemplatePageInput input)
|
public async Task<dynamic> Page([FromQuery] OnboardingContractTemplatePageInput input)
|
||||||
{
|
{
|
||||||
return await _service.Page(input);
|
return await _service.Page(input);
|
||||||
@@ -50,6 +54,7 @@ public class OnboardingContractTemplateController
|
|||||||
/// 查询合同模板详情。
|
/// 查询合同模板详情。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("detail")]
|
[HttpGet("detail")]
|
||||||
|
[DisplayName("查询合同模板详情")]
|
||||||
public async Task<dynamic> Detail([FromQuery] BaseIdInput input)
|
public async Task<dynamic> Detail([FromQuery] BaseIdInput input)
|
||||||
{
|
{
|
||||||
return await _service.Detail(input);
|
return await _service.Detail(input);
|
||||||
@@ -68,6 +73,7 @@ public class OnboardingContractTemplateController
|
|||||||
/// 新增合同模板。
|
/// 新增合同模板。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("add")]
|
[HttpPost("add")]
|
||||||
|
[DisplayName("新增合同业务模板")]
|
||||||
public async Task Add([FromBody] OnboardingContractTemplateAddInput input)
|
public async Task Add([FromBody] OnboardingContractTemplateAddInput input)
|
||||||
{
|
{
|
||||||
await _service.Add(input);
|
await _service.Add(input);
|
||||||
@@ -77,6 +83,7 @@ public class OnboardingContractTemplateController
|
|||||||
/// 编辑合同模板。
|
/// 编辑合同模板。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("edit")]
|
[HttpPost("edit")]
|
||||||
|
[DisplayName("编辑合同业务模板")]
|
||||||
public async Task Edit([FromBody] OnboardingContractTemplateEditInput input)
|
public async Task Edit([FromBody] OnboardingContractTemplateEditInput input)
|
||||||
{
|
{
|
||||||
await _service.Edit(input);
|
await _service.Edit(input);
|
||||||
@@ -86,6 +93,7 @@ public class OnboardingContractTemplateController
|
|||||||
/// 删除合同模板。
|
/// 删除合同模板。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("delete")]
|
[HttpPost("delete")]
|
||||||
|
[DisplayName("删除合同业务模板")]
|
||||||
public async Task Delete([FromBody] BaseIdListInput input)
|
public async Task Delete([FromBody] BaseIdListInput input)
|
||||||
{
|
{
|
||||||
await _service.Delete(input);
|
await _service.Delete(input);
|
||||||
@@ -95,6 +103,7 @@ public class OnboardingContractTemplateController
|
|||||||
/// 分页查询合同模板版本。
|
/// 分页查询合同模板版本。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("version/page")]
|
[HttpGet("version/page")]
|
||||||
|
[DisplayName("分页查询合同版本")]
|
||||||
public async Task<dynamic> VersionPage([FromQuery] OnboardingContractVersionPageInput input)
|
public async Task<dynamic> VersionPage([FromQuery] OnboardingContractVersionPageInput input)
|
||||||
{
|
{
|
||||||
return await _service.VersionPage(input);
|
return await _service.VersionPage(input);
|
||||||
@@ -131,6 +140,7 @@ public class OnboardingContractTemplateController
|
|||||||
/// 分页查询模板变量。
|
/// 分页查询模板变量。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("variable/page")]
|
[HttpGet("variable/page")]
|
||||||
|
[DisplayName("分页查询合同变量")]
|
||||||
public async Task<dynamic> VariablePage([FromQuery] OnboardingTemplateVariablePageInput input)
|
public async Task<dynamic> VariablePage([FromQuery] OnboardingTemplateVariablePageInput input)
|
||||||
{
|
{
|
||||||
return await _service.VariablePage(input);
|
return await _service.VariablePage(input);
|
||||||
|
|||||||
+8
@@ -1,3 +1,4 @@
|
|||||||
|
using System.ComponentModel;
|
||||||
namespace SimpleAdmin.Web.Core;
|
namespace SimpleAdmin.Web.Core;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -5,6 +6,7 @@
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[ApiDescriptionSettings("Application", Tag = "入职部门管理")]
|
[ApiDescriptionSettings("Application", Tag = "入职部门管理")]
|
||||||
[Route("biz/onboarding/department")]
|
[Route("biz/onboarding/department")]
|
||||||
|
[Route("biz/onboarding/setup")]
|
||||||
[RolePermission]
|
[RolePermission]
|
||||||
public class OnboardingDepartmentController
|
public class OnboardingDepartmentController
|
||||||
{
|
{
|
||||||
@@ -19,6 +21,7 @@ public class OnboardingDepartmentController
|
|||||||
/// 分页查询入职业务部门。
|
/// 分页查询入职业务部门。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("page")]
|
[HttpGet("page")]
|
||||||
|
[DisplayName("分页查询入职部门")]
|
||||||
public async Task<dynamic> Page([FromQuery] OnboardingDepartmentPageInput input)
|
public async Task<dynamic> Page([FromQuery] OnboardingDepartmentPageInput input)
|
||||||
{
|
{
|
||||||
return await _service.Page(input);
|
return await _service.Page(input);
|
||||||
@@ -28,6 +31,7 @@ public class OnboardingDepartmentController
|
|||||||
/// 查询指定公司的已启用部门。
|
/// 查询指定公司的已启用部门。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("list-enabled")]
|
[HttpGet("list-enabled")]
|
||||||
|
[DisplayName("查询已启用部门列表")]
|
||||||
public async Task<dynamic> ListEnabled([FromQuery] long companyId)
|
public async Task<dynamic> ListEnabled([FromQuery] long companyId)
|
||||||
{
|
{
|
||||||
return await _service.ListEnabled(companyId);
|
return await _service.ListEnabled(companyId);
|
||||||
@@ -37,6 +41,7 @@ public class OnboardingDepartmentController
|
|||||||
/// 查询部门详情。
|
/// 查询部门详情。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("detail")]
|
[HttpGet("detail")]
|
||||||
|
[DisplayName("查询入职部门详情")]
|
||||||
public async Task<dynamic> Detail([FromQuery] BaseIdInput input)
|
public async Task<dynamic> Detail([FromQuery] BaseIdInput input)
|
||||||
{
|
{
|
||||||
return await _service.Detail(input);
|
return await _service.Detail(input);
|
||||||
@@ -46,6 +51,7 @@ public class OnboardingDepartmentController
|
|||||||
/// 新增入职业务部门。
|
/// 新增入职业务部门。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("add")]
|
[HttpPost("add")]
|
||||||
|
[DisplayName("新增入职业务部门")]
|
||||||
public async Task Add([FromBody] OnboardingDepartmentAddInput input)
|
public async Task Add([FromBody] OnboardingDepartmentAddInput input)
|
||||||
{
|
{
|
||||||
await _service.Add(input);
|
await _service.Add(input);
|
||||||
@@ -55,6 +61,7 @@ public class OnboardingDepartmentController
|
|||||||
/// 编辑入职业务部门。
|
/// 编辑入职业务部门。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("edit")]
|
[HttpPost("edit")]
|
||||||
|
[DisplayName("编辑入职业务部门")]
|
||||||
public async Task Edit([FromBody] OnboardingDepartmentEditInput input)
|
public async Task Edit([FromBody] OnboardingDepartmentEditInput input)
|
||||||
{
|
{
|
||||||
await _service.Edit(input);
|
await _service.Edit(input);
|
||||||
@@ -64,6 +71,7 @@ public class OnboardingDepartmentController
|
|||||||
/// 批量删除入职业务部门。
|
/// 批量删除入职业务部门。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("delete")]
|
[HttpPost("delete")]
|
||||||
|
[DisplayName("删除入职业务部门")]
|
||||||
public async Task Delete([FromBody] BaseIdListInput input)
|
public async Task Delete([FromBody] BaseIdListInput input)
|
||||||
{
|
{
|
||||||
await _service.Delete(input);
|
await _service.Delete(input);
|
||||||
|
|||||||
+3
@@ -1,3 +1,4 @@
|
|||||||
|
using System.ComponentModel;
|
||||||
namespace SimpleAdmin.Web.Core;
|
namespace SimpleAdmin.Web.Core;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -19,6 +20,7 @@ public class OnboardingEmployeeController
|
|||||||
/// 分页查询正式员工档案。
|
/// 分页查询正式员工档案。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("page")]
|
[HttpGet("page")]
|
||||||
|
[DisplayName("分页查询正式员工档案")]
|
||||||
public async Task<dynamic> Page([FromQuery] OnboardingEmployeePageInput input)
|
public async Task<dynamic> Page([FromQuery] OnboardingEmployeePageInput input)
|
||||||
{
|
{
|
||||||
return await _service.Page(input);
|
return await _service.Page(input);
|
||||||
@@ -28,6 +30,7 @@ public class OnboardingEmployeeController
|
|||||||
/// 查询正式员工详情及来源记录。
|
/// 查询正式员工详情及来源记录。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("detail")]
|
[HttpGet("detail")]
|
||||||
|
[DisplayName("查询正式员工详情")]
|
||||||
public async Task<dynamic> Detail([FromQuery] BaseIdInput input)
|
public async Task<dynamic> Detail([FromQuery] BaseIdInput input)
|
||||||
{
|
{
|
||||||
return await _service.Detail(input);
|
return await _service.Detail(input);
|
||||||
|
|||||||
+7
@@ -1,3 +1,4 @@
|
|||||||
|
using System.ComponentModel;
|
||||||
namespace SimpleAdmin.Web.Core;
|
namespace SimpleAdmin.Web.Core;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -19,6 +20,7 @@ public class OnboardingEntryConfigController
|
|||||||
/// 查询动态入职字段。
|
/// 查询动态入职字段。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("form-field/list")]
|
[HttpGet("form-field/list")]
|
||||||
|
[DisplayName("查询动态字段列表")]
|
||||||
public async Task<dynamic> ListFormFields()
|
public async Task<dynamic> ListFormFields()
|
||||||
{
|
{
|
||||||
return await _service.ListFormFields();
|
return await _service.ListFormFields();
|
||||||
@@ -28,6 +30,7 @@ public class OnboardingEntryConfigController
|
|||||||
/// 保存动态入职字段。
|
/// 保存动态入职字段。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("form-field/save")]
|
[HttpPost("form-field/save")]
|
||||||
|
[DisplayName("保存动态入职字段")]
|
||||||
public async Task SaveFormField([FromBody] OnboardingFormFieldSaveInput input)
|
public async Task SaveFormField([FromBody] OnboardingFormFieldSaveInput input)
|
||||||
{
|
{
|
||||||
await _service.SaveFormField(input);
|
await _service.SaveFormField(input);
|
||||||
@@ -37,6 +40,7 @@ public class OnboardingEntryConfigController
|
|||||||
/// 删除动态入职字段。
|
/// 删除动态入职字段。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("form-field/delete")]
|
[HttpPost("form-field/delete")]
|
||||||
|
[DisplayName("删除动态入职字段")]
|
||||||
public async Task DeleteFormFields([FromBody] BaseIdListInput input)
|
public async Task DeleteFormFields([FromBody] BaseIdListInput input)
|
||||||
{
|
{
|
||||||
await _service.DeleteFormFields(input);
|
await _service.DeleteFormFields(input);
|
||||||
@@ -46,6 +50,7 @@ public class OnboardingEntryConfigController
|
|||||||
/// 查询入职材料类型。
|
/// 查询入职材料类型。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("material-type/list")]
|
[HttpGet("material-type/list")]
|
||||||
|
[DisplayName("查询材料类型列表")]
|
||||||
public async Task<dynamic> ListMaterialTypes()
|
public async Task<dynamic> ListMaterialTypes()
|
||||||
{
|
{
|
||||||
return await _service.ListMaterialTypes();
|
return await _service.ListMaterialTypes();
|
||||||
@@ -55,6 +60,7 @@ public class OnboardingEntryConfigController
|
|||||||
/// 保存入职材料类型。
|
/// 保存入职材料类型。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("material-type/save")]
|
[HttpPost("material-type/save")]
|
||||||
|
[DisplayName("保存入职材料类型")]
|
||||||
public async Task SaveMaterialType([FromBody] OnboardingMaterialTypeSaveInput input)
|
public async Task SaveMaterialType([FromBody] OnboardingMaterialTypeSaveInput input)
|
||||||
{
|
{
|
||||||
await _service.SaveMaterialType(input);
|
await _service.SaveMaterialType(input);
|
||||||
@@ -64,6 +70,7 @@ public class OnboardingEntryConfigController
|
|||||||
/// 删除入职材料类型。
|
/// 删除入职材料类型。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("material-type/delete")]
|
[HttpPost("material-type/delete")]
|
||||||
|
[DisplayName("删除入职材料类型")]
|
||||||
public async Task DeleteMaterialTypes([FromBody] BaseIdListInput input)
|
public async Task DeleteMaterialTypes([FromBody] BaseIdListInput input)
|
||||||
{
|
{
|
||||||
await _service.DeleteMaterialTypes(input);
|
await _service.DeleteMaterialTypes(input);
|
||||||
|
|||||||
+3
@@ -1,3 +1,4 @@
|
|||||||
|
using System.ComponentModel;
|
||||||
namespace SimpleAdmin.Web.Core;
|
namespace SimpleAdmin.Web.Core;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -5,6 +6,7 @@ namespace SimpleAdmin.Web.Core;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[ApiDescriptionSettings("Application", Tag = "入职资料审核")]
|
[ApiDescriptionSettings("Application", Tag = "入职资料审核")]
|
||||||
[Route("biz/onboarding/material")]
|
[Route("biz/onboarding/material")]
|
||||||
|
[Route("biz/onboarding/task")]
|
||||||
[RolePermission]
|
[RolePermission]
|
||||||
public class OnboardingMaterialReviewController
|
public class OnboardingMaterialReviewController
|
||||||
{
|
{
|
||||||
@@ -19,6 +21,7 @@ public class OnboardingMaterialReviewController
|
|||||||
/// 审核候选人上传的材料。
|
/// 审核候选人上传的材料。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("review")]
|
[HttpPost("review")]
|
||||||
|
[DisplayName("审核候选人材料")]
|
||||||
public async Task Review([FromBody] OnboardingMaterialReviewInput input)
|
public async Task Review([FromBody] OnboardingMaterialReviewInput input)
|
||||||
{
|
{
|
||||||
await _service.Review(input);
|
await _service.Review(input);
|
||||||
|
|||||||
+9
@@ -1,3 +1,4 @@
|
|||||||
|
using System.ComponentModel;
|
||||||
namespace SimpleAdmin.Web.Core;
|
namespace SimpleAdmin.Web.Core;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -5,6 +6,7 @@
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[ApiDescriptionSettings("Application", Tag = "入职岗位管理")]
|
[ApiDescriptionSettings("Application", Tag = "入职岗位管理")]
|
||||||
[Route("biz/onboarding/position")]
|
[Route("biz/onboarding/position")]
|
||||||
|
[Route("biz/onboarding/setup")]
|
||||||
[RolePermission]
|
[RolePermission]
|
||||||
public class OnboardingPositionController
|
public class OnboardingPositionController
|
||||||
{
|
{
|
||||||
@@ -19,6 +21,7 @@ public class OnboardingPositionController
|
|||||||
/// 分页查询入职业务岗位。
|
/// 分页查询入职业务岗位。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("page")]
|
[HttpGet("page")]
|
||||||
|
[DisplayName("分页查询入职岗位")]
|
||||||
public async Task<dynamic> Page([FromQuery] OnboardingPositionPageInput input)
|
public async Task<dynamic> Page([FromQuery] OnboardingPositionPageInput input)
|
||||||
{
|
{
|
||||||
return await _service.Page(input);
|
return await _service.Page(input);
|
||||||
@@ -28,6 +31,7 @@ public class OnboardingPositionController
|
|||||||
/// 查询指定公司的已启用岗位。
|
/// 查询指定公司的已启用岗位。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("list-enabled")]
|
[HttpGet("list-enabled")]
|
||||||
|
[DisplayName("查询公司已启用岗位")]
|
||||||
public async Task<dynamic> ListEnabled([FromQuery] long companyId)
|
public async Task<dynamic> ListEnabled([FromQuery] long companyId)
|
||||||
{
|
{
|
||||||
return await _service.ListEnabled(companyId);
|
return await _service.ListEnabled(companyId);
|
||||||
@@ -37,6 +41,7 @@ public class OnboardingPositionController
|
|||||||
/// 查询指定部门的已启用岗位。
|
/// 查询指定部门的已启用岗位。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("list-by-department")]
|
[HttpGet("list-by-department")]
|
||||||
|
[DisplayName("查询部门已启用岗位")]
|
||||||
public async Task<dynamic> ListByDepartment([FromQuery] long departmentId)
|
public async Task<dynamic> ListByDepartment([FromQuery] long departmentId)
|
||||||
{
|
{
|
||||||
return await _service.ListEnabledByDepartment(departmentId);
|
return await _service.ListEnabledByDepartment(departmentId);
|
||||||
@@ -46,6 +51,7 @@ public class OnboardingPositionController
|
|||||||
/// 查询岗位详情。
|
/// 查询岗位详情。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("detail")]
|
[HttpGet("detail")]
|
||||||
|
[DisplayName("查询入职岗位详情")]
|
||||||
public async Task<dynamic> Detail([FromQuery] BaseIdInput input)
|
public async Task<dynamic> Detail([FromQuery] BaseIdInput input)
|
||||||
{
|
{
|
||||||
return await _service.Detail(input);
|
return await _service.Detail(input);
|
||||||
@@ -55,6 +61,7 @@ public class OnboardingPositionController
|
|||||||
/// 新增入职业务岗位。
|
/// 新增入职业务岗位。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("add")]
|
[HttpPost("add")]
|
||||||
|
[DisplayName("新增入职业务岗位")]
|
||||||
public async Task Add([FromBody] OnboardingPositionAddInput input)
|
public async Task Add([FromBody] OnboardingPositionAddInput input)
|
||||||
{
|
{
|
||||||
await _service.Add(input);
|
await _service.Add(input);
|
||||||
@@ -64,6 +71,7 @@ public class OnboardingPositionController
|
|||||||
/// 编辑入职业务岗位。
|
/// 编辑入职业务岗位。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("edit")]
|
[HttpPost("edit")]
|
||||||
|
[DisplayName("编辑入职业务岗位")]
|
||||||
public async Task Edit([FromBody] OnboardingPositionEditInput input)
|
public async Task Edit([FromBody] OnboardingPositionEditInput input)
|
||||||
{
|
{
|
||||||
await _service.Edit(input);
|
await _service.Edit(input);
|
||||||
@@ -73,6 +81,7 @@ public class OnboardingPositionController
|
|||||||
/// 批量删除入职业务岗位。
|
/// 批量删除入职业务岗位。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("delete")]
|
[HttpPost("delete")]
|
||||||
|
[DisplayName("删除入职业务岗位")]
|
||||||
public async Task Delete([FromBody] BaseIdListInput input)
|
public async Task Delete([FromBody] BaseIdListInput input)
|
||||||
{
|
{
|
||||||
await _service.Delete(input);
|
await _service.Delete(input);
|
||||||
|
|||||||
+4
@@ -1,3 +1,4 @@
|
|||||||
|
using System.ComponentModel;
|
||||||
namespace SimpleAdmin.Web.Core;
|
namespace SimpleAdmin.Web.Core;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -5,6 +6,7 @@ namespace SimpleAdmin.Web.Core;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[ApiDescriptionSettings("Application", Tag = "入职任务合同参数")]
|
[ApiDescriptionSettings("Application", Tag = "入职任务合同参数")]
|
||||||
[Route("biz/onboarding/task-contract-variable")]
|
[Route("biz/onboarding/task-contract-variable")]
|
||||||
|
[Route("biz/onboarding/task")]
|
||||||
[RolePermission]
|
[RolePermission]
|
||||||
public class OnboardingTaskContractVariableController
|
public class OnboardingTaskContractVariableController
|
||||||
{
|
{
|
||||||
@@ -19,6 +21,7 @@ public class OnboardingTaskContractVariableController
|
|||||||
/// 查询任务合同变量。
|
/// 查询任务合同变量。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("list")]
|
[HttpGet("list")]
|
||||||
|
[DisplayName("查询任务合同变量")]
|
||||||
public async Task<dynamic> List([FromQuery] OnboardingTaskContractVariableQueryInput input)
|
public async Task<dynamic> List([FromQuery] OnboardingTaskContractVariableQueryInput input)
|
||||||
{
|
{
|
||||||
return await _service.List(input);
|
return await _service.List(input);
|
||||||
@@ -28,6 +31,7 @@ public class OnboardingTaskContractVariableController
|
|||||||
/// 保存任务合同变量。
|
/// 保存任务合同变量。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("save")]
|
[HttpPost("save")]
|
||||||
|
[DisplayName("保存任务合同变量")]
|
||||||
public async Task Save([FromBody] OnboardingTaskContractVariableSaveInput input)
|
public async Task Save([FromBody] OnboardingTaskContractVariableSaveInput input)
|
||||||
{
|
{
|
||||||
await _service.Save(input);
|
await _service.Save(input);
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using System.ComponentModel;
|
||||||
namespace SimpleAdmin.Web.Core;
|
namespace SimpleAdmin.Web.Core;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -19,6 +20,7 @@ public class OnboardingTaskController
|
|||||||
/// 创建入职任务并返回员工填写链接。
|
/// 创建入职任务并返回员工填写链接。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("create")]
|
[HttpPost("create")]
|
||||||
|
[DisplayName("发起新员工入职任务")]
|
||||||
public async Task<dynamic> Create([FromBody] OnboardingTaskCreateInput input)
|
public async Task<dynamic> Create([FromBody] OnboardingTaskCreateInput input)
|
||||||
{
|
{
|
||||||
return await _service.Create(input);
|
return await _service.Create(input);
|
||||||
|
|||||||
+4
@@ -1,3 +1,4 @@
|
|||||||
|
using System.ComponentModel;
|
||||||
namespace SimpleAdmin.Web.Core;
|
namespace SimpleAdmin.Web.Core;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -19,6 +20,7 @@ public class OnboardingTaskLifecycleController
|
|||||||
/// 归档审核通过的入职任务。
|
/// 归档审核通过的入职任务。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("archive")]
|
[HttpPost("archive")]
|
||||||
|
[DisplayName("归档入职任务")]
|
||||||
public async Task Archive([FromBody] OnboardingAuditActionInput input)
|
public async Task Archive([FromBody] OnboardingAuditActionInput input)
|
||||||
{
|
{
|
||||||
await _service.Archive(input);
|
await _service.Archive(input);
|
||||||
@@ -28,6 +30,7 @@ public class OnboardingTaskLifecycleController
|
|||||||
/// 撤销入职任务及员工填写链接。
|
/// 撤销入职任务及员工填写链接。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("revoke")]
|
[HttpPost("revoke")]
|
||||||
|
[DisplayName("撤销入职任务")]
|
||||||
public async Task Revoke([FromBody] OnboardingAuditActionInput input)
|
public async Task Revoke([FromBody] OnboardingAuditActionInput input)
|
||||||
{
|
{
|
||||||
await _service.Revoke(input);
|
await _service.Revoke(input);
|
||||||
@@ -37,6 +40,7 @@ public class OnboardingTaskLifecycleController
|
|||||||
/// 删除已撤销的入职任务。
|
/// 删除已撤销的入职任务。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("delete")]
|
[HttpPost("delete")]
|
||||||
|
[DisplayName("删除已撤销入职任务")]
|
||||||
public async Task Delete([FromBody] BaseIdInput input)
|
public async Task Delete([FromBody] BaseIdInput input)
|
||||||
{
|
{
|
||||||
await _service.Delete(input);
|
await _service.Delete(input);
|
||||||
|
|||||||
+4
@@ -1,3 +1,4 @@
|
|||||||
|
using System.ComponentModel;
|
||||||
namespace SimpleAdmin.Web.Core;
|
namespace SimpleAdmin.Web.Core;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -19,6 +20,7 @@ public class OnboardingTaskQueryController
|
|||||||
/// 分页查询入职任务。
|
/// 分页查询入职任务。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("page")]
|
[HttpGet("page")]
|
||||||
|
[DisplayName("分页查询入职任务")]
|
||||||
public async Task<dynamic> Page([FromQuery] OnboardingTaskPageInput input)
|
public async Task<dynamic> Page([FromQuery] OnboardingTaskPageInput input)
|
||||||
{
|
{
|
||||||
return await _service.Page(input);
|
return await _service.Page(input);
|
||||||
@@ -28,6 +30,7 @@ public class OnboardingTaskQueryController
|
|||||||
/// 查询入职任务完整详情。
|
/// 查询入职任务完整详情。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("detail")]
|
[HttpGet("detail")]
|
||||||
|
[DisplayName("查询入职任务详情")]
|
||||||
public async Task<dynamic> Detail([FromQuery] BaseIdInput input)
|
public async Task<dynamic> Detail([FromQuery] BaseIdInput input)
|
||||||
{
|
{
|
||||||
return await _service.Detail(input);
|
return await _service.Detail(input);
|
||||||
@@ -37,6 +40,7 @@ public class OnboardingTaskQueryController
|
|||||||
/// 获取或重新生成入职任务专属填写链接。
|
/// 获取或重新生成入职任务专属填写链接。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("get-link")]
|
[HttpGet("get-link")]
|
||||||
|
[DisplayName("获取入职填写链接")]
|
||||||
public async Task<dynamic> GetTaskLink([FromQuery] BaseIdInput input)
|
public async Task<dynamic> GetTaskLink([FromQuery] BaseIdInput input)
|
||||||
{
|
{
|
||||||
return await _service.GetTaskLink(input);
|
return await _service.GetTaskLink(input);
|
||||||
|
|||||||
+7
@@ -1,3 +1,4 @@
|
|||||||
|
using System.ComponentModel;
|
||||||
namespace SimpleAdmin.Web.Core;
|
namespace SimpleAdmin.Web.Core;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -5,6 +6,7 @@ namespace SimpleAdmin.Web.Core;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[ApiDescriptionSettings("Application", Tag = "入职模板")]
|
[ApiDescriptionSettings("Application", Tag = "入职模板")]
|
||||||
[Route("biz/onboarding/template")]
|
[Route("biz/onboarding/template")]
|
||||||
|
[Route("biz/onboarding/setup")]
|
||||||
[RolePermission]
|
[RolePermission]
|
||||||
public class OnboardingTemplateController
|
public class OnboardingTemplateController
|
||||||
{
|
{
|
||||||
@@ -19,6 +21,7 @@ public class OnboardingTemplateController
|
|||||||
/// 分页查询入职模板。
|
/// 分页查询入职模板。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("page")]
|
[HttpGet("page")]
|
||||||
|
[DisplayName("分页查询入职模板")]
|
||||||
public async Task<dynamic> Page([FromQuery] OnboardingTemplatePageInput input)
|
public async Task<dynamic> Page([FromQuery] OnboardingTemplatePageInput input)
|
||||||
{
|
{
|
||||||
return await _service.Page(input);
|
return await _service.Page(input);
|
||||||
@@ -28,6 +31,7 @@ public class OnboardingTemplateController
|
|||||||
/// 查询入职模板详情及全部关联配置。
|
/// 查询入职模板详情及全部关联配置。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("detail")]
|
[HttpGet("detail")]
|
||||||
|
[DisplayName("查询入职模板详情")]
|
||||||
public async Task<dynamic> Detail([FromQuery] BaseIdInput input)
|
public async Task<dynamic> Detail([FromQuery] BaseIdInput input)
|
||||||
{
|
{
|
||||||
return await _service.Detail(input);
|
return await _service.Detail(input);
|
||||||
@@ -37,6 +41,7 @@ public class OnboardingTemplateController
|
|||||||
/// 新增或编辑入职模板。
|
/// 新增或编辑入职模板。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("save")]
|
[HttpPost("save")]
|
||||||
|
[DisplayName("保存入职业务模板")]
|
||||||
public async Task<long> Save([FromBody] OnboardingTemplateSaveInput input)
|
public async Task<long> Save([FromBody] OnboardingTemplateSaveInput input)
|
||||||
{
|
{
|
||||||
return await _service.Save(input);
|
return await _service.Save(input);
|
||||||
@@ -46,6 +51,7 @@ public class OnboardingTemplateController
|
|||||||
/// 删除未被任务使用的入职模板。
|
/// 删除未被任务使用的入职模板。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpPost("delete")]
|
[HttpPost("delete")]
|
||||||
|
[DisplayName("删除入职业务模板")]
|
||||||
public async Task Delete([FromBody] BaseIdListInput input)
|
public async Task Delete([FromBody] BaseIdListInput input)
|
||||||
{
|
{
|
||||||
await _service.Delete(input);
|
await _service.Delete(input);
|
||||||
@@ -55,6 +61,7 @@ public class OnboardingTemplateController
|
|||||||
/// 查询指定公司、部门和岗位可使用的入职模板。
|
/// 查询指定公司、部门和岗位可使用的入职模板。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HttpGet("list-enabled")]
|
[HttpGet("list-enabled")]
|
||||||
|
[DisplayName("查询可用入职模板")]
|
||||||
public async Task<dynamic> ListEnabled(
|
public async Task<dynamic> ListEnabled(
|
||||||
[FromQuery] long companyId,
|
[FromQuery] long companyId,
|
||||||
[FromQuery] long departmentId,
|
[FromQuery] long departmentId,
|
||||||
|
|||||||
+7
@@ -1,3 +1,4 @@
|
|||||||
|
using System.ComponentModel;
|
||||||
namespace SimpleAdmin.Web.Core;
|
namespace SimpleAdmin.Web.Core;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -5,6 +6,7 @@
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[ApiDescriptionSettings("Application", Tag = "合同变量字典")]
|
[ApiDescriptionSettings("Application", Tag = "合同变量字典")]
|
||||||
[Route("biz/onboarding/variable-definition")]
|
[Route("biz/onboarding/variable-definition")]
|
||||||
|
[Route("biz/onboarding/contract")]
|
||||||
[RolePermission]
|
[RolePermission]
|
||||||
public class OnboardingVariableDefinitionController
|
public class OnboardingVariableDefinitionController
|
||||||
{
|
{
|
||||||
@@ -16,30 +18,35 @@ public class OnboardingVariableDefinitionController
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("page")]
|
[HttpGet("page")]
|
||||||
|
[DisplayName("分页查询变量字典")]
|
||||||
public async Task<dynamic> Page([FromQuery] OnboardingVariableDefinitionPageInput input)
|
public async Task<dynamic> Page([FromQuery] OnboardingVariableDefinitionPageInput input)
|
||||||
{
|
{
|
||||||
return await _service.Page(input);
|
return await _service.Page(input);
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("list")]
|
[HttpGet("list")]
|
||||||
|
[DisplayName("查询变量字典列表")]
|
||||||
public async Task<dynamic> List()
|
public async Task<dynamic> List()
|
||||||
{
|
{
|
||||||
return await _service.ListAll();
|
return await _service.ListAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost("add")]
|
[HttpPost("add")]
|
||||||
|
[DisplayName("新增合同变量字典")]
|
||||||
public async Task Add([FromBody] OnboardingVariableDefinitionAddInput input)
|
public async Task Add([FromBody] OnboardingVariableDefinitionAddInput input)
|
||||||
{
|
{
|
||||||
await _service.Add(input);
|
await _service.Add(input);
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost("edit")]
|
[HttpPost("edit")]
|
||||||
|
[DisplayName("编辑合同变量字典")]
|
||||||
public async Task Edit([FromBody] OnboardingVariableDefinitionEditInput input)
|
public async Task Edit([FromBody] OnboardingVariableDefinitionEditInput input)
|
||||||
{
|
{
|
||||||
await _service.Edit(input);
|
await _service.Edit(input);
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost("delete")]
|
[HttpPost("delete")]
|
||||||
|
[DisplayName("删除合同变量字典")]
|
||||||
public async Task Delete([FromBody] BaseIdListInput input)
|
public async Task Delete([FromBody] BaseIdListInput input)
|
||||||
{
|
{
|
||||||
await _service.Delete(input);
|
await _service.Delete(input);
|
||||||
|
|||||||
@@ -0,0 +1,109 @@
|
|||||||
|
-- OnboardX 任务合同变量排序快照升级脚本
|
||||||
|
-- 适用数据库:MySQL 8.0+
|
||||||
|
-- 说明:
|
||||||
|
-- 1. 可重复执行。
|
||||||
|
-- 2. 已有合同版本变量会同步全局变量字典的排序值。
|
||||||
|
-- 3. 新任务会在创建变量快照时固定模板变量的排序值。
|
||||||
|
-- 4. 历史任务按照其绑定的合同模板版本安全回填排序值。
|
||||||
|
|
||||||
|
SET NAMES utf8mb4;
|
||||||
|
|
||||||
|
DROP PROCEDURE IF EXISTS `ob_task_variable_add_column_if_missing`;
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE PROCEDURE `ob_task_variable_add_column_if_missing`(
|
||||||
|
IN p_table_name VARCHAR(128),
|
||||||
|
IN p_column_name VARCHAR(128),
|
||||||
|
IN p_column_definition VARCHAR(1000)
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS (
|
||||||
|
SELECT 1
|
||||||
|
FROM information_schema.COLUMNS
|
||||||
|
WHERE TABLE_SCHEMA = DATABASE()
|
||||||
|
AND TABLE_NAME = p_table_name
|
||||||
|
AND COLUMN_NAME = p_column_name
|
||||||
|
) THEN
|
||||||
|
SET @ddl = CONCAT(
|
||||||
|
'ALTER TABLE `', p_table_name, '` ADD COLUMN `',
|
||||||
|
p_column_name, '` ', p_column_definition
|
||||||
|
);
|
||||||
|
PREPARE stmt FROM @ddl;
|
||||||
|
EXECUTE stmt;
|
||||||
|
DEALLOCATE PREPARE stmt;
|
||||||
|
END IF;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
||||||
|
|
||||||
|
DROP PROCEDURE IF EXISTS `ob_task_variable_add_index_if_missing`;
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE PROCEDURE `ob_task_variable_add_index_if_missing`(
|
||||||
|
IN p_table_name VARCHAR(128),
|
||||||
|
IN p_index_name VARCHAR(128),
|
||||||
|
IN p_index_definition VARCHAR(1000)
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS (
|
||||||
|
SELECT 1
|
||||||
|
FROM information_schema.STATISTICS
|
||||||
|
WHERE TABLE_SCHEMA = DATABASE()
|
||||||
|
AND TABLE_NAME = p_table_name
|
||||||
|
AND INDEX_NAME = p_index_name
|
||||||
|
) THEN
|
||||||
|
SET @ddl = CONCAT(
|
||||||
|
'ALTER TABLE `', p_table_name, '` ADD ', p_index_definition
|
||||||
|
);
|
||||||
|
PREPARE stmt FROM @ddl;
|
||||||
|
EXECUTE stmt;
|
||||||
|
DEALLOCATE PREPARE stmt;
|
||||||
|
END IF;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
||||||
|
|
||||||
|
CALL `ob_task_variable_add_column_if_missing`(
|
||||||
|
'ob_task_contract_variable',
|
||||||
|
'SortCode',
|
||||||
|
'INT NOT NULL DEFAULT 100 COMMENT ''任务变量展示排序'' AFTER `DataType`'
|
||||||
|
);
|
||||||
|
|
||||||
|
-- 修复旧代码导入 DOCX 时没有继承全局变量字典排序的问题。
|
||||||
|
-- 模板变量编码创建后不可修改,因此可以按完整变量编码安全匹配。
|
||||||
|
UPDATE `ob_template_variable` template_variable
|
||||||
|
INNER JOIN `ob_variable_definition` variable_definition
|
||||||
|
ON CONVERT(variable_definition.`VariableCode` USING utf8mb4) COLLATE utf8mb4_unicode_ci
|
||||||
|
= CONVERT(template_variable.`VariableCode` USING utf8mb4) COLLATE utf8mb4_unicode_ci
|
||||||
|
SET template_variable.`SortCode` = COALESCE(variable_definition.`SortCode`, 100);
|
||||||
|
|
||||||
|
-- 使用任务锁定的合同版本回填历史变量排序;找不到模板定义的数据保留默认值 100。
|
||||||
|
UPDATE `ob_task_contract_variable` task_variable
|
||||||
|
INNER JOIN `ob_task_contract` task_contract
|
||||||
|
ON task_contract.`Id` = task_variable.`TaskContractId`
|
||||||
|
INNER JOIN `ob_template_variable` template_variable
|
||||||
|
ON template_variable.`TemplateVersionId` = task_contract.`TemplateVersionId`
|
||||||
|
AND CONVERT(template_variable.`VariableCode` USING utf8mb4) COLLATE utf8mb4_unicode_ci
|
||||||
|
= CONVERT(task_variable.`VariableCode` USING utf8mb4) COLLATE utf8mb4_unicode_ci
|
||||||
|
SET task_variable.`SortCode` = COALESCE(template_variable.`SortCode`, 100);
|
||||||
|
|
||||||
|
CALL `ob_task_variable_add_index_if_missing`(
|
||||||
|
'ob_task_contract_variable',
|
||||||
|
'idx_ob_task_contract_variable_sort',
|
||||||
|
'INDEX `idx_ob_task_contract_variable_sort` (`TaskContractId`, `SortCode`, `VariableCode`)'
|
||||||
|
);
|
||||||
|
|
||||||
|
DROP PROCEDURE IF EXISTS `ob_task_variable_add_index_if_missing`;
|
||||||
|
DROP PROCEDURE IF EXISTS `ob_task_variable_add_column_if_missing`;
|
||||||
|
|
||||||
|
-- 诊断仍未匹配到模板变量定义的历史数据。这些数据会使用默认排序值 100,并按变量编码稳定排序。
|
||||||
|
SELECT
|
||||||
|
task_variable.`Id`,
|
||||||
|
task_variable.`TaskContractId`,
|
||||||
|
task_variable.`VariableCode`,
|
||||||
|
task_variable.`SortCode`
|
||||||
|
FROM `ob_task_contract_variable` task_variable
|
||||||
|
LEFT JOIN `ob_task_contract` task_contract
|
||||||
|
ON task_contract.`Id` = task_variable.`TaskContractId`
|
||||||
|
LEFT JOIN `ob_template_variable` template_variable
|
||||||
|
ON template_variable.`TemplateVersionId` = task_contract.`TemplateVersionId`
|
||||||
|
AND CONVERT(template_variable.`VariableCode` USING utf8mb4) COLLATE utf8mb4_unicode_ci
|
||||||
|
= CONVERT(task_variable.`VariableCode` USING utf8mb4) COLLATE utf8mb4_unicode_ci
|
||||||
|
WHERE template_variable.`Id` IS NULL
|
||||||
|
ORDER BY task_variable.`TaskContractId`, task_variable.`VariableCode`;
|
||||||
Reference in New Issue
Block a user