From 01328d567cae7c071f3595a0d959c96d2b0ee443 Mon Sep 17 00:00:00 2001
From: fuenmao <980740792@qq.com>
Date: Mon, 24 Aug 2026 11:28:51 +0800
Subject: [PATCH] 1
---
.../Entity/Onboarding/ObCompany.cs | 25 +++
.../Entity/Onboarding/ObContractScope.cs | 23 +++
.../Entity/Onboarding/ObContractTemplate.cs | 21 +++
.../Onboarding/ObContractTemplateVersion.cs | 25 +++
.../Entity/Onboarding/ObEmployee.cs | 46 ++++++
.../Entity/Onboarding/ObFormField.cs | 23 +++
.../Entity/Onboarding/ObFormRequirement.cs | 22 +++
.../Onboarding/ObMaterialRequirement.cs | 23 +++
.../Entity/Onboarding/ObMaterialType.cs | 22 +++
.../Entity/Onboarding/ObOnboardingTask.cs | 30 ++++
.../Entity/Onboarding/ObPosition.cs | 25 +++
.../Entity/Onboarding/ObTaskAudit.cs | 24 +++
.../Entity/Onboarding/ObTaskContract.cs | 31 ++++
.../Onboarding/ObTaskContractVariable.cs | 25 +++
.../Entity/Onboarding/ObTaskEmployeeInfo.cs | 44 ++++++
.../Entity/Onboarding/ObTaskFormValue.cs | 23 +++
.../Entity/Onboarding/ObTaskLink.cs | 25 +++
.../Entity/Onboarding/ObTaskMaterial.cs | 25 +++
.../Entity/Onboarding/ObTaskOperationLog.cs | 25 +++
.../Entity/Onboarding/ObTemplateVariable.cs | 30 ++++
.../Entity/Onboarding/OnboardingStatus.cs | 103 ++++++++++++
.../Company/Dto/OnboardingCompanyInput.cs | 25 +++
.../Company/IOnboardingCompanyService.cs | 11 ++
.../Company/OnboardingCompanyService.cs | 45 ++++++
.../Dto/OnboardingContractScopeInput.cs | 27 ++++
.../Dto/OnboardingContractTemplateInput.cs | 26 +++
.../Dto/OnboardingContractVersionInput.cs | 30 ++++
.../Dto/OnboardingTemplateVariableInput.cs | 35 ++++
.../IOnboardingContractTemplateService.cs | 19 +++
.../OnboardingContractTemplateService.cs | 149 ++++++++++++++++++
.../Position/Dto/OnboardingPositionInput.cs | 23 +++
.../Position/IOnboardingPositionService.cs | 11 ++
.../Position/OnboardingPositionService.cs | 52 ++++++
.../Task/Dto/OnboardingTaskInput.cs | 20 +++
.../Task/Dto/OnboardingTaskPublicInput.cs | 11 ++
.../Onboarding/Task/IOnboardingTaskService.cs | 6 +
.../Onboarding/Task/OnboardingTaskService.cs | 34 ++++
.../SimpleAdmin.Application.xml | 43 +++++
.../Onboarding/OnboardingCompanyController.cs | 17 ++
.../OnboardingContractTemplateController.cs | 25 +++
.../OnboardingPositionController.cs | 17 ++
.../Onboarding/OnboardingTaskController.cs | 11 ++
42 files changed, 1277 insertions(+)
create mode 100644 SimpleAdmin.Application/Entity/Onboarding/ObCompany.cs
create mode 100644 SimpleAdmin.Application/Entity/Onboarding/ObContractScope.cs
create mode 100644 SimpleAdmin.Application/Entity/Onboarding/ObContractTemplate.cs
create mode 100644 SimpleAdmin.Application/Entity/Onboarding/ObContractTemplateVersion.cs
create mode 100644 SimpleAdmin.Application/Entity/Onboarding/ObEmployee.cs
create mode 100644 SimpleAdmin.Application/Entity/Onboarding/ObFormField.cs
create mode 100644 SimpleAdmin.Application/Entity/Onboarding/ObFormRequirement.cs
create mode 100644 SimpleAdmin.Application/Entity/Onboarding/ObMaterialRequirement.cs
create mode 100644 SimpleAdmin.Application/Entity/Onboarding/ObMaterialType.cs
create mode 100644 SimpleAdmin.Application/Entity/Onboarding/ObOnboardingTask.cs
create mode 100644 SimpleAdmin.Application/Entity/Onboarding/ObPosition.cs
create mode 100644 SimpleAdmin.Application/Entity/Onboarding/ObTaskAudit.cs
create mode 100644 SimpleAdmin.Application/Entity/Onboarding/ObTaskContract.cs
create mode 100644 SimpleAdmin.Application/Entity/Onboarding/ObTaskContractVariable.cs
create mode 100644 SimpleAdmin.Application/Entity/Onboarding/ObTaskEmployeeInfo.cs
create mode 100644 SimpleAdmin.Application/Entity/Onboarding/ObTaskFormValue.cs
create mode 100644 SimpleAdmin.Application/Entity/Onboarding/ObTaskLink.cs
create mode 100644 SimpleAdmin.Application/Entity/Onboarding/ObTaskMaterial.cs
create mode 100644 SimpleAdmin.Application/Entity/Onboarding/ObTaskOperationLog.cs
create mode 100644 SimpleAdmin.Application/Entity/Onboarding/ObTemplateVariable.cs
create mode 100644 SimpleAdmin.Application/Entity/Onboarding/OnboardingStatus.cs
create mode 100644 SimpleAdmin.Application/Services/Onboarding/Company/Dto/OnboardingCompanyInput.cs
create mode 100644 SimpleAdmin.Application/Services/Onboarding/Company/IOnboardingCompanyService.cs
create mode 100644 SimpleAdmin.Application/Services/Onboarding/Company/OnboardingCompanyService.cs
create mode 100644 SimpleAdmin.Application/Services/Onboarding/ContractTemplate/Dto/OnboardingContractScopeInput.cs
create mode 100644 SimpleAdmin.Application/Services/Onboarding/ContractTemplate/Dto/OnboardingContractTemplateInput.cs
create mode 100644 SimpleAdmin.Application/Services/Onboarding/ContractTemplate/Dto/OnboardingContractVersionInput.cs
create mode 100644 SimpleAdmin.Application/Services/Onboarding/ContractTemplate/Dto/OnboardingTemplateVariableInput.cs
create mode 100644 SimpleAdmin.Application/Services/Onboarding/ContractTemplate/IOnboardingContractTemplateService.cs
create mode 100644 SimpleAdmin.Application/Services/Onboarding/ContractTemplate/OnboardingContractTemplateService.cs
create mode 100644 SimpleAdmin.Application/Services/Onboarding/Position/Dto/OnboardingPositionInput.cs
create mode 100644 SimpleAdmin.Application/Services/Onboarding/Position/IOnboardingPositionService.cs
create mode 100644 SimpleAdmin.Application/Services/Onboarding/Position/OnboardingPositionService.cs
create mode 100644 SimpleAdmin.Application/Services/Onboarding/Task/Dto/OnboardingTaskInput.cs
create mode 100644 SimpleAdmin.Application/Services/Onboarding/Task/Dto/OnboardingTaskPublicInput.cs
create mode 100644 SimpleAdmin.Application/Services/Onboarding/Task/IOnboardingTaskService.cs
create mode 100644 SimpleAdmin.Application/Services/Onboarding/Task/OnboardingTaskService.cs
create mode 100644 SimpleAdmin.Web.Core/Controllers/Application/Onboarding/OnboardingCompanyController.cs
create mode 100644 SimpleAdmin.Web.Core/Controllers/Application/Onboarding/OnboardingContractTemplateController.cs
create mode 100644 SimpleAdmin.Web.Core/Controllers/Application/Onboarding/OnboardingPositionController.cs
create mode 100644 SimpleAdmin.Web.Core/Controllers/Application/Onboarding/OnboardingTaskController.cs
diff --git a/SimpleAdmin.Application/Entity/Onboarding/ObCompany.cs b/SimpleAdmin.Application/Entity/Onboarding/ObCompany.cs
new file mode 100644
index 0000000..70f7e07
--- /dev/null
+++ b/SimpleAdmin.Application/Entity/Onboarding/ObCompany.cs
@@ -0,0 +1,25 @@
+// Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛
+//
+// SimpleAdmin 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款:
+// 1.请不要删除和修改根目录下的LICENSE文件。
+// 2.请不要删除和修改SimpleAdmin源码头部的版权声明。
+// 3.分发源码时候,请注明软件出处 https://gitee.com/dotnetmoyu/SimpleAdmin
+// 4.基于本软件的作品,只能使用 SimpleAdmin 作为后台服务,除外情况不可商用且不允许二次分发或开源。
+// 5.请不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
+// 6.任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。
+
+namespace SimpleAdmin.Application;
+
+[SugarTable("ob_company", TableDescription = "入职业务公司")]
+[Tenant(SqlSugarConst.DB_DEFAULT)]
+public class ObCompany : BaseEntity
+{
+ public virtual string CompanyCode { get; set; }
+ public virtual string CompanyName { get; set; }
+ public virtual string LegalName { get; set; }
+ public string UnifiedSocialCreditCode { get; set; }
+ public string LegalRepresentative { get; set; }
+ public string RegisteredAddress { get; set; }
+ public string ContactPhone { get; set; }
+ public string Remark { get; set; }
+}
diff --git a/SimpleAdmin.Application/Entity/Onboarding/ObContractScope.cs b/SimpleAdmin.Application/Entity/Onboarding/ObContractScope.cs
new file mode 100644
index 0000000..30c0be2
--- /dev/null
+++ b/SimpleAdmin.Application/Entity/Onboarding/ObContractScope.cs
@@ -0,0 +1,23 @@
+// Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛
+//
+// SimpleAdmin 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款:
+// 1.请不要删除和修改根目录下的LICENSE文件。
+// 2.请不要删除和修改SimpleAdmin源码头部的版权声明。
+// 3.分发源码时候,请注明软件出处 https://gitee.com/dotnetmoyu/SimpleAdmin
+// 4.基于本软件的作品,只能使用 SimpleAdmin 作为后台服务,除外情况不可商用且不允许二次分发或开源。
+// 5.请不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
+// 6.任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。
+
+namespace SimpleAdmin.Application;
+
+[SugarTable("ob_contract_scope", TableDescription = "公司岗位合同适用范围")]
+[Tenant(SqlSugarConst.DB_DEFAULT)]
+public class ObContractScope : BaseEntity
+{
+ public long CompanyId { get; set; }
+ public long? PositionId { get; set; }
+ public long TemplateId { get; set; }
+ public long TemplateVersionId { get; set; }
+ public bool Required { get; set; }
+ public int? SortCode { get; set; }
+}
diff --git a/SimpleAdmin.Application/Entity/Onboarding/ObContractTemplate.cs b/SimpleAdmin.Application/Entity/Onboarding/ObContractTemplate.cs
new file mode 100644
index 0000000..fc6ac64
--- /dev/null
+++ b/SimpleAdmin.Application/Entity/Onboarding/ObContractTemplate.cs
@@ -0,0 +1,21 @@
+// Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛
+//
+// SimpleAdmin 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款:
+// 1.请不要删除和修改根目录下的LICENSE文件。
+// 2.请不要删除和修改SimpleAdmin源码头部的版权声明。
+// 3.分发源码时候,请注明软件出处 https://gitee.com/dotnetmoyu/SimpleAdmin
+// 4.基于本软件的作品,只能使用 SimpleAdmin 作为后台服务,除外情况不可商用且不允许二次分发或开源。
+// 5.请不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
+// 6.任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。
+
+namespace SimpleAdmin.Application;
+
+[SugarTable("ob_contract_template", TableDescription = "合同模板主档案")]
+[Tenant(SqlSugarConst.DB_DEFAULT)]
+public class ObContractTemplate : BaseEntity
+{
+ public string TemplateCode { get; set; }
+ public string TemplateName { get; set; }
+ public string ContractType { get; set; }
+ public string Description { get; set; }
+}
diff --git a/SimpleAdmin.Application/Entity/Onboarding/ObContractTemplateVersion.cs b/SimpleAdmin.Application/Entity/Onboarding/ObContractTemplateVersion.cs
new file mode 100644
index 0000000..1a5d9d8
--- /dev/null
+++ b/SimpleAdmin.Application/Entity/Onboarding/ObContractTemplateVersion.cs
@@ -0,0 +1,25 @@
+// Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛
+//
+// SimpleAdmin 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款:
+// 1.请不要删除和修改根目录下的LICENSE文件。
+// 2.请不要删除和修改SimpleAdmin源码头部的版权声明。
+// 3.分发源码时候,请注明软件出处 https://gitee.com/dotnetmoyu/SimpleAdmin
+// 4.基于本软件的作品,只能使用 SimpleAdmin 作为后台服务,除外情况不可商用且不允许二次分发或开源。
+// 5.请不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
+// 6.任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。
+
+namespace SimpleAdmin.Application;
+
+[SugarTable("ob_contract_template_version", TableDescription = "合同模板版本")]
+[Tenant(SqlSugarConst.DB_DEFAULT)]
+public class ObContractTemplateVersion : BaseEntity
+{
+ public long TemplateId { get; set; }
+ public string VersionNo { get; set; }
+ public long SourceDocxFileId { get; set; }
+ public string FileHash { get; set; }
+ public DateTime? EffectiveDate { get; set; }
+ public DateTime? ExpiryDate { get; set; }
+ public string VersionStatus { get; set; } = ContractTemplateVersionStatus.Draft;
+ public string Remark { get; set; }
+}
diff --git a/SimpleAdmin.Application/Entity/Onboarding/ObEmployee.cs b/SimpleAdmin.Application/Entity/Onboarding/ObEmployee.cs
new file mode 100644
index 0000000..44b6ff2
--- /dev/null
+++ b/SimpleAdmin.Application/Entity/Onboarding/ObEmployee.cs
@@ -0,0 +1,46 @@
+// Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛
+//
+// SimpleAdmin 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款:
+// 1.请不要删除和修改根目录下的LICENSE文件。
+// 2.请不要删除和修改SimpleAdmin源码头部的版权声明。
+// 3.分发源码时候,请注明软件出处 https://gitee.com/dotnetmoyu/SimpleAdmin
+// 4.基于本软件的作品,只能使用 SimpleAdmin 作为后台服务,除外情况不可商用且不允许二次分发或开源。
+// 5.请不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
+// 6.任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。
+
+namespace SimpleAdmin.Application;
+
+[SugarTable("ob_employee", TableDescription = "正式员工档案")]
+[Tenant(SqlSugarConst.DB_DEFAULT)]
+public class ObEmployee : BaseEntity
+{
+ public string EmployeeNo { get; set; }
+ public string InternalNo { get; set; }
+ public string EmployeeName { get; set; }
+ public long CompanyId { get; set; }
+ public string DepartmentName { get; set; }
+ public long PositionId { get; set; }
+ public string Gender { get; set; }
+ public string Phone { get; set; }
+ public string IdCardNumber { get; set; }
+ public string College { get; set; }
+ public string Education { get; set; }
+ public string Major { get; set; }
+ public DateTime? BirthDate { get; set; }
+ public string RegisteredResidence { get; set; }
+ public string Nation { get; set; }
+ public string ContactAddress { get; set; }
+ public DateTime? EntryDate { get; set; }
+ public DateTime? ContractStartDate { get; set; }
+ public DateTime? ContractEndDate { get; set; }
+ public DateTime? ProbationStartDate { get; set; }
+ public DateTime? ProbationEndDate { get; set; }
+ public DateTime? RegularizationDate { get; set; }
+ public string SocialInsuranceCompany { get; set; }
+ public string ContractNature { get; set; }
+ public string BankCardNumber { get; set; }
+ public string BankAccountName { get; set; }
+ public string BankName { get; set; }
+ public string Remark { get; set; }
+ public string ExtraInfoJson { get; set; }
+}
diff --git a/SimpleAdmin.Application/Entity/Onboarding/ObFormField.cs b/SimpleAdmin.Application/Entity/Onboarding/ObFormField.cs
new file mode 100644
index 0000000..03639dc
--- /dev/null
+++ b/SimpleAdmin.Application/Entity/Onboarding/ObFormField.cs
@@ -0,0 +1,23 @@
+// Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛
+//
+// SimpleAdmin 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款:
+// 1.请不要删除和修改根目录下的LICENSE文件。
+// 2.请不要删除和修改SimpleAdmin源码头部的版权声明。
+// 3.分发源码时候,请注明软件出处 https://gitee.com/dotnetmoyu/SimpleAdmin
+// 4.基于本软件的作品,只能使用 SimpleAdmin 作为后台服务,除外情况不可商用且不允许二次分发或开源。
+// 5.请不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
+// 6.任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。
+
+namespace SimpleAdmin.Application;
+
+[SugarTable("ob_form_field", TableDescription = "动态入职填写字段")]
+[Tenant(SqlSugarConst.DB_DEFAULT)]
+public class ObFormField : BaseEntity
+{
+ public string FieldCode { get; set; }
+ public string FieldName { get; set; }
+ public string DataType { get; set; }
+ public string OptionsJson { get; set; }
+ public string ValidationRule { get; set; }
+ public string Placeholder { get; set; }
+}
diff --git a/SimpleAdmin.Application/Entity/Onboarding/ObFormRequirement.cs b/SimpleAdmin.Application/Entity/Onboarding/ObFormRequirement.cs
new file mode 100644
index 0000000..613c17a
--- /dev/null
+++ b/SimpleAdmin.Application/Entity/Onboarding/ObFormRequirement.cs
@@ -0,0 +1,22 @@
+// Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛
+//
+// SimpleAdmin 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款:
+// 1.请不要删除和修改根目录下的LICENSE文件。
+// 2.请不要删除和修改SimpleAdmin源码头部的版权声明。
+// 3.分发源码时候,请注明软件出处 https://gitee.com/dotnetmoyu/SimpleAdmin
+// 4.基于本软件的作品,只能使用 SimpleAdmin 作为后台服务,除外情况不可商用且不允许二次分发或开源。
+// 5.请不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
+// 6.任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。
+
+namespace SimpleAdmin.Application;
+
+[SugarTable("ob_form_requirement", TableDescription = "公司岗位动态填写项要求")]
+[Tenant(SqlSugarConst.DB_DEFAULT)]
+public class ObFormRequirement : BaseEntity
+{
+ public long CompanyId { get; set; }
+ public long? PositionId { get; set; }
+ public long FieldId { get; set; }
+ public bool Required { get; set; }
+ public int? SortCode { get; set; }
+}
diff --git a/SimpleAdmin.Application/Entity/Onboarding/ObMaterialRequirement.cs b/SimpleAdmin.Application/Entity/Onboarding/ObMaterialRequirement.cs
new file mode 100644
index 0000000..8e3776a
--- /dev/null
+++ b/SimpleAdmin.Application/Entity/Onboarding/ObMaterialRequirement.cs
@@ -0,0 +1,23 @@
+// Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛
+//
+// SimpleAdmin 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款:
+// 1.请不要删除和修改根目录下的LICENSE文件。
+// 2.请不要删除和修改SimpleAdmin源码头部的版权声明。
+// 3.分发源码时候,请注明软件出处 https://gitee.com/dotnetmoyu/SimpleAdmin
+// 4.基于本软件的作品,只能使用 SimpleAdmin 作为后台服务,除外情况不可商用且不允许二次分发或开源。
+// 5.请不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
+// 6.任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。
+
+namespace SimpleAdmin.Application;
+
+[SugarTable("ob_material_requirement", TableDescription = "公司岗位入职资料要求")]
+[Tenant(SqlSugarConst.DB_DEFAULT)]
+public class ObMaterialRequirement : BaseEntity
+{
+ public long CompanyId { get; set; }
+ public long? PositionId { get; set; }
+ public long MaterialTypeId { get; set; }
+ public bool Required { get; set; }
+ public int? SortCode { get; set; }
+}
+
diff --git a/SimpleAdmin.Application/Entity/Onboarding/ObMaterialType.cs b/SimpleAdmin.Application/Entity/Onboarding/ObMaterialType.cs
new file mode 100644
index 0000000..b2e8b98
--- /dev/null
+++ b/SimpleAdmin.Application/Entity/Onboarding/ObMaterialType.cs
@@ -0,0 +1,22 @@
+// Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛
+//
+// SimpleAdmin 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款:
+// 1.请不要删除和修改根目录下的LICENSE文件。
+// 2.请不要删除和修改SimpleAdmin源码头部的版权声明。
+// 3.分发源码时候,请注明软件出处 https://gitee.com/dotnetmoyu/SimpleAdmin
+// 4.基于本软件的作品,只能使用 SimpleAdmin 作为后台服务,除外情况不可商用且不允许二次分发或开源。
+// 5.请不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
+// 6.任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。
+
+namespace SimpleAdmin.Application;
+
+[SugarTable("ob_material_type", TableDescription = "入职上传资料类型")]
+[Tenant(SqlSugarConst.DB_DEFAULT)]
+public class ObMaterialType : BaseEntity
+{
+ public string MaterialCode { get; set; }
+ public string MaterialName { get; set; }
+ public string AllowedExtensions { get; set; }
+ public int MaxFileCount { get; set; }
+ public int? MaxFileSizeMb { get; set; }
+}
diff --git a/SimpleAdmin.Application/Entity/Onboarding/ObOnboardingTask.cs b/SimpleAdmin.Application/Entity/Onboarding/ObOnboardingTask.cs
new file mode 100644
index 0000000..720f34d
--- /dev/null
+++ b/SimpleAdmin.Application/Entity/Onboarding/ObOnboardingTask.cs
@@ -0,0 +1,30 @@
+// Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛
+//
+// SimpleAdmin 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款:
+// 1.请不要删除和修改根目录下的LICENSE文件。
+// 2.请不要删除和修改SimpleAdmin源码头部的版权声明。
+// 3.分发源码时候,请注明软件出处 https://gitee.com/dotnetmoyu/SimpleAdmin
+// 4.基于本软件的作品,只能使用 SimpleAdmin 作为后台服务,除外情况不可商用且不允许二次分发或开源。
+// 5.请不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
+// 6.任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。
+
+namespace SimpleAdmin.Application;
+
+[SugarTable("ob_onboarding_task", TableDescription = "新员工入职任务")]
+[Tenant(SqlSugarConst.DB_DEFAULT)]
+public class ObOnboardingTask : BaseEntity
+{
+ public string TaskNo { get; set; }
+ public long? EmployeeId { get; set; }
+ public long CompanyId { get; set; }
+ public long PositionId { get; set; }
+ public long? AssignedReviewerUserId { get; set; }
+ public string TaskStatus { get; set; } = OnboardingTaskStatus.Draft;
+ public DateTime? LinkExpireAt { get; set; }
+ public int SubmitCount { get; set; }
+ public DateTime? LastSubmittedAt { get; set; }
+ public DateTime? AuditedAt { get; set; }
+ public DateTime? ArchivedAt { get; set; }
+ public string RejectReason { get; set; }
+ public string Remark { get; set; }
+}
diff --git a/SimpleAdmin.Application/Entity/Onboarding/ObPosition.cs b/SimpleAdmin.Application/Entity/Onboarding/ObPosition.cs
new file mode 100644
index 0000000..9882d1a
--- /dev/null
+++ b/SimpleAdmin.Application/Entity/Onboarding/ObPosition.cs
@@ -0,0 +1,25 @@
+// Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛
+//
+// SimpleAdmin 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款:
+// 1.请不要删除和修改根目录下的LICENSE文件。
+// 2.请不要删除和修改SimpleAdmin源码头部的版权声明。
+// 3.分发源码时候,请注明软件出处 https://gitee.com/dotnetmoyu/SimpleAdmin
+// 4.基于本软件的作品,只能使用 SimpleAdmin 作为后台服务,除外情况不可商用且不允许二次分发或开源。
+// 5.请不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
+// 6.任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。
+
+namespace SimpleAdmin.Application;
+
+[SugarTable("ob_position", TableDescription = "入职业务岗位")]
+[Tenant(SqlSugarConst.DB_DEFAULT)]
+public class ObPosition : BaseEntity
+{
+ public long CompanyId { get; set; }
+ public virtual string PositionCode { get; set; }
+ public virtual string PositionName { get; set; }
+ public decimal? DefaultContractYears { get; set; }
+ public int? DefaultProbationMonths { get; set; }
+ public string DefaultParamsJson { get; set; }
+ public string Remark { get; set; }
+}
+
diff --git a/SimpleAdmin.Application/Entity/Onboarding/ObTaskAudit.cs b/SimpleAdmin.Application/Entity/Onboarding/ObTaskAudit.cs
new file mode 100644
index 0000000..a84ec5e
--- /dev/null
+++ b/SimpleAdmin.Application/Entity/Onboarding/ObTaskAudit.cs
@@ -0,0 +1,24 @@
+// Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛
+//
+// SimpleAdmin 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款:
+// 1.请不要删除和修改根目录下的LICENSE文件。
+// 2.请不要删除和修改SimpleAdmin源码头部的版权声明。
+// 3.分发源码时候,请注明软件出处 https://gitee.com/dotnetmoyu/SimpleAdmin
+// 4.基于本软件的作品,只能使用 SimpleAdmin 作为后台服务,除外情况不可商用且不允许二次分发或开源。
+// 5.请不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
+// 6.任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。
+
+namespace SimpleAdmin.Application;
+
+[SugarTable("ob_task_audit", TableDescription = "入职任务提交与审核记录")]
+[Tenant(SqlSugarConst.DB_DEFAULT)]
+public class ObTaskAudit : BaseEntity
+{
+ public long TaskId { get; set; }
+ public int AuditRound { get; set; }
+ public string AuditAction { get; set; }
+ public long? AuditorUserId { get; set; }
+ public string AuditOpinion { get; set; }
+ public string SnapshotJson { get; set; }
+ public DateTime AuditedAt { get; set; }
+}
diff --git a/SimpleAdmin.Application/Entity/Onboarding/ObTaskContract.cs b/SimpleAdmin.Application/Entity/Onboarding/ObTaskContract.cs
new file mode 100644
index 0000000..3db8a68
--- /dev/null
+++ b/SimpleAdmin.Application/Entity/Onboarding/ObTaskContract.cs
@@ -0,0 +1,31 @@
+// Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛
+//
+// SimpleAdmin 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款:
+// 1.请不要删除和修改根目录下的LICENSE文件。
+// 2.请不要删除和修改SimpleAdmin源码头部的版权声明。
+// 3.分发源码时候,请注明软件出处 https://gitee.com/dotnetmoyu/SimpleAdmin
+// 4.基于本软件的作品,只能使用 SimpleAdmin 作为后台服务,除外情况不可商用且不允许二次分发或开源。
+// 5.请不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
+// 6.任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。
+
+namespace SimpleAdmin.Application;
+
+[SugarTable("ob_task_contract", TableDescription = "入职任务合同明细")]
+[Tenant(SqlSugarConst.DB_DEFAULT)]
+public class ObTaskContract : BaseEntity
+{
+ public long TaskId { get; set; }
+ public long TemplateId { get; set; }
+ public long TemplateVersionId { get; set; }
+ public string ContractName { get; set; }
+ public string ContractType { get; set; }
+ public bool Required { get; set; }
+ public string ContractStatus { get; set; } = TaskContractStatus.PendingGenerate;
+ public long? GeneratedDocxFileId { get; set; }
+ public long? GeneratedPdfFileId { get; set; }
+ public DateTime? GeneratedAt { get; set; }
+ public DateTime? ReadAt { get; set; }
+ public DateTime? ConfirmedAt { get; set; }
+ public DateTime? OfflineSignedAt { get; set; }
+ public DateTime? PrintedAt { get; set; }
+}
diff --git a/SimpleAdmin.Application/Entity/Onboarding/ObTaskContractVariable.cs b/SimpleAdmin.Application/Entity/Onboarding/ObTaskContractVariable.cs
new file mode 100644
index 0000000..98fe20b
--- /dev/null
+++ b/SimpleAdmin.Application/Entity/Onboarding/ObTaskContractVariable.cs
@@ -0,0 +1,25 @@
+// Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛
+//
+// SimpleAdmin 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款:
+// 1.请不要删除和修改根目录下的LICENSE文件。
+// 2.请不要删除和修改SimpleAdmin源码头部的版权声明。
+// 3.分发源码时候,请注明软件出处 https://gitee.com/dotnetmoyu/SimpleAdmin
+// 4.基于本软件的作品,只能使用 SimpleAdmin 作为后台服务,除外情况不可商用且不允许二次分发或开源。
+// 5.请不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
+// 6.任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。
+
+namespace SimpleAdmin.Application;
+
+[SugarTable("ob_task_contract_variable", TableDescription = "任务合同变量最终值快照")]
+[Tenant(SqlSugarConst.DB_DEFAULT)]
+public class ObTaskContractVariable : BaseEntity
+{
+ public long TaskContractId { get; set; }
+ public string VariableCode { get; set; }
+ public string VariableName { get; set; }
+ public string VariableType { get; set; }
+ public string DataType { get; set; }
+ public string VariableValue { get; set; }
+ public string SourceType { get; set; }
+ public bool IsManualOverride { get; set; }
+}
diff --git a/SimpleAdmin.Application/Entity/Onboarding/ObTaskEmployeeInfo.cs b/SimpleAdmin.Application/Entity/Onboarding/ObTaskEmployeeInfo.cs
new file mode 100644
index 0000000..49b8f89
--- /dev/null
+++ b/SimpleAdmin.Application/Entity/Onboarding/ObTaskEmployeeInfo.cs
@@ -0,0 +1,44 @@
+// Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛
+//
+// SimpleAdmin 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款:
+// 1.请不要删除和修改根目录下的LICENSE文件。
+// 2.请不要删除和修改SimpleAdmin源码头部的版权声明。
+// 3.分发源码时候,请注明软件出处 https://gitee.com/dotnetmoyu/SimpleAdmin
+// 4.基于本软件的作品,只能使用 SimpleAdmin 作为后台服务,除外情况不可商用且不允许二次分发或开源。
+// 5.请不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
+// 6.任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。
+
+namespace SimpleAdmin.Application;
+
+[SugarTable("ob_task_employee_info", TableDescription = "候选人提交的固定基础信息")]
+[Tenant(SqlSugarConst.DB_DEFAULT)]
+public class ObTaskEmployeeInfo : BaseEntity
+{
+ public long TaskId { get; set; }
+ public string EmployeeNo { get; set; }
+ public string InternalNo { get; set; }
+ public string EmployeeName { get; set; }
+ public string DepartmentName { get; set; }
+ public string Gender { get; set; }
+ public string Phone { get; set; }
+ public string IdCardNumber { get; set; }
+ public string College { get; set; }
+ public string Education { get; set; }
+ public string Major { get; set; }
+ public DateTime? BirthDate { get; set; }
+ public string RegisteredResidence { get; set; }
+ public string Nation { get; set; }
+ public string ContactAddress { get; set; }
+ public DateTime? EntryDate { get; set; }
+ public DateTime? ContractStartDate { get; set; }
+ public DateTime? ContractEndDate { get; set; }
+ public DateTime? ProbationStartDate { get; set; }
+ public DateTime? ProbationEndDate { get; set; }
+ public DateTime? RegularizationDate { get; set; }
+ public string SocialInsuranceCompany { get; set; }
+ public string ContractNature { get; set; }
+ public string BankCardNumber { get; set; }
+ public string BankAccountName { get; set; }
+ public string BankName { get; set; }
+ public string Remark { get; set; }
+}
diff --git a/SimpleAdmin.Application/Entity/Onboarding/ObTaskFormValue.cs b/SimpleAdmin.Application/Entity/Onboarding/ObTaskFormValue.cs
new file mode 100644
index 0000000..2ac5fe6
--- /dev/null
+++ b/SimpleAdmin.Application/Entity/Onboarding/ObTaskFormValue.cs
@@ -0,0 +1,23 @@
+// Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛
+//
+// SimpleAdmin 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款:
+// 1.请不要删除和修改根目录下的LICENSE文件。
+// 2.请不要删除和修改SimpleAdmin源码头部的版权声明。
+// 3.分发源码时候,请注明软件出处 https://gitee.com/dotnetmoyu/SimpleAdmin
+// 4.基于本软件的作品,只能使用 SimpleAdmin 作为后台服务,除外情况不可商用且不允许二次分发或开源。
+// 5.请不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
+// 6.任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。
+
+namespace SimpleAdmin.Application;
+
+[SugarTable("ob_task_form_value", TableDescription = "候选人动态填写信息")]
+[Tenant(SqlSugarConst.DB_DEFAULT)]
+public class ObTaskFormValue : BaseEntity
+{
+ public long TaskId { get; set; }
+ public long FieldId { get; set; }
+ public string FieldCode { get; set; }
+ public string FieldName { get; set; }
+ public string FieldValue { get; set; }
+ public int SubmitRound { get; set; }
+}
diff --git a/SimpleAdmin.Application/Entity/Onboarding/ObTaskLink.cs b/SimpleAdmin.Application/Entity/Onboarding/ObTaskLink.cs
new file mode 100644
index 0000000..5942430
--- /dev/null
+++ b/SimpleAdmin.Application/Entity/Onboarding/ObTaskLink.cs
@@ -0,0 +1,25 @@
+// Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛
+//
+// SimpleAdmin 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款:
+// 1.请不要删除和修改根目录下的LICENSE文件。
+// 2.请不要删除和修改SimpleAdmin源码头部的版权声明。
+// 3.分发源码时候,请注明软件出处 https://gitee.com/dotnetmoyu/SimpleAdmin
+// 4.基于本软件的作品,只能使用 SimpleAdmin 作为后台服务,除外情况不可商用且不允许二次分发或开源。
+// 5.请不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
+// 6.任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。
+
+namespace SimpleAdmin.Application;
+
+[SugarTable("ob_task_link", TableDescription = "新员工专属填写链接")]
+[Tenant(SqlSugarConst.DB_DEFAULT)]
+public class ObTaskLink : BaseEntity
+{
+ public long TaskId { get; set; }
+ public string TokenHash { get; set; }
+ public string LinkStatus { get; set; } = OnboardingLinkStatus.Active;
+ public DateTime ExpiresAt { get; set; }
+ public DateTime? LastAccessedAt { get; set; }
+ public int AccessCount { get; set; }
+ public DateTime? RevokedAt { get; set; }
+}
+
diff --git a/SimpleAdmin.Application/Entity/Onboarding/ObTaskMaterial.cs b/SimpleAdmin.Application/Entity/Onboarding/ObTaskMaterial.cs
new file mode 100644
index 0000000..2aec507
--- /dev/null
+++ b/SimpleAdmin.Application/Entity/Onboarding/ObTaskMaterial.cs
@@ -0,0 +1,25 @@
+// Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛
+//
+// SimpleAdmin 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款:
+// 1.请不要删除和修改根目录下的LICENSE文件。
+// 2.请不要删除和修改SimpleAdmin源码头部的版权声明。
+// 3.分发源码时候,请注明软件出处 https://gitee.com/dotnetmoyu/SimpleAdmin
+// 4.基于本软件的作品,只能使用 SimpleAdmin 作为后台服务,除外情况不可商用且不允许二次分发或开源。
+// 5.请不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
+// 6.任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。
+
+namespace SimpleAdmin.Application;
+
+[SugarTable("ob_task_material", TableDescription = "候选人上传资料")]
+[Tenant(SqlSugarConst.DB_DEFAULT)]
+public class ObTaskMaterial : BaseEntity
+{
+ public long TaskId { get; set; }
+ public long MaterialTypeId { get; set; }
+ public string MaterialName { get; set; }
+ public long FileId { get; set; }
+ public int SubmitRound { get; set; }
+ public DateTime UploadedAt { get; set; }
+ public string ReviewStatus { get; set; } = TaskMaterialReviewStatus.Pending;
+ public string ReviewRemark { get; set; }
+}
diff --git a/SimpleAdmin.Application/Entity/Onboarding/ObTaskOperationLog.cs b/SimpleAdmin.Application/Entity/Onboarding/ObTaskOperationLog.cs
new file mode 100644
index 0000000..3c0a54e
--- /dev/null
+++ b/SimpleAdmin.Application/Entity/Onboarding/ObTaskOperationLog.cs
@@ -0,0 +1,25 @@
+// Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛
+//
+// SimpleAdmin 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款:
+// 1.请不要删除和修改根目录下的LICENSE文件。
+// 2.请不要删除和修改SimpleAdmin源码头部的版权声明。
+// 3.分发源码时候,请注明软件出处 https://gitee.com/dotnetmoyu/SimpleAdmin
+// 4.基于本软件的作品,只能使用 SimpleAdmin 作为后台服务,除外情况不可商用且不允许二次分发或开源。
+// 5.请不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
+// 6.任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。
+
+namespace SimpleAdmin.Application;
+
+[SugarTable("ob_task_operation_log", TableDescription = "入职任务操作日志")]
+[Tenant(SqlSugarConst.DB_DEFAULT)]
+public class ObTaskOperationLog : BaseEntity
+{
+ public long TaskId { get; set; }
+ public string OperatorType { get; set; }
+ public long? OperatorUserId { get; set; }
+ public string OperationType { get; set; }
+ public string OperationContent { get; set; }
+ public string ChangeDataJson { get; set; }
+ public string IpAddress { get; set; }
+ public DateTime OperatedAt { get; set; }
+}
diff --git a/SimpleAdmin.Application/Entity/Onboarding/ObTemplateVariable.cs b/SimpleAdmin.Application/Entity/Onboarding/ObTemplateVariable.cs
new file mode 100644
index 0000000..1f26bb9
--- /dev/null
+++ b/SimpleAdmin.Application/Entity/Onboarding/ObTemplateVariable.cs
@@ -0,0 +1,30 @@
+// Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛
+//
+// SimpleAdmin 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款:
+// 1.请不要删除和修改根目录下的LICENSE文件。
+// 2.请不要删除和修改SimpleAdmin源码头部的版权声明。
+// 3.分发源码时候,请注明软件出处 https://gitee.com/dotnetmoyu/SimpleAdmin
+// 4.基于本软件的作品,只能使用 SimpleAdmin 作为后台服务,除外情况不可商用且不允许二次分发或开源。
+// 5.请不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
+// 6.任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。
+
+namespace SimpleAdmin.Application;
+
+[SugarTable("ob_template_variable", TableDescription = "合同模板变量定义")]
+[Tenant(SqlSugarConst.DB_DEFAULT)]
+public class ObTemplateVariable : BaseEntity
+{
+ public long TemplateVersionId { get; set; }
+ public string VariableCode { get; set; }
+ public string VariableName { get; set; }
+ public string VariableType { get; set; }
+ public string DataType { get; set; }
+ public string EmployeeField { get; set; }
+ public string DefaultValue { get; set; }
+ public string OptionsJson { get; set; }
+ public string FormatRule { get; set; }
+ public bool Required { get; set; }
+ public bool HrEditable { get; set; }
+ public int? SortCode { get; set; }
+ public string Remark { get; set; }
+}
diff --git a/SimpleAdmin.Application/Entity/Onboarding/OnboardingStatus.cs b/SimpleAdmin.Application/Entity/Onboarding/OnboardingStatus.cs
new file mode 100644
index 0000000..11a29ae
--- /dev/null
+++ b/SimpleAdmin.Application/Entity/Onboarding/OnboardingStatus.cs
@@ -0,0 +1,103 @@
+// Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛
+//
+// SimpleAdmin 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款:
+// 1.请不要删除和修改根目录下的LICENSE文件。
+// 2.请不要删除和修改SimpleAdmin源码头部的版权声明。
+// 3.分发源码时候,请注明软件出处 https://gitee.com/dotnetmoyu/SimpleAdmin
+// 4.基于本软件的作品,只能使用 SimpleAdmin 作为后台服务,除外情况不可商用且不允许二次分发或开源。
+// 5.请不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
+// 6.任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。
+
+namespace SimpleAdmin.Application;
+
+///
+/// 入职任务状态。
+///
+public static class OnboardingTaskStatus
+{
+ public const string Draft = "draft";
+ public const string PendingFill = "pending_fill";
+ public const string Reviewing = "reviewing";
+ public const string Rejected = "rejected";
+ public const string Approved = "approved";
+ public const string Archived = "archived";
+ public const string Expired = "expired";
+ public const string Revoked = "revoked";
+}
+
+///
+/// 入职链接状态。
+///
+public static class OnboardingLinkStatus
+{
+ public const string Active = "active";
+ public const string Expired = "expired";
+ public const string Revoked = "revoked";
+ public const string Replaced = "replaced";
+}
+
+///
+/// 合同模板版本状态。
+///
+public static class ContractTemplateVersionStatus
+{
+ public const string Draft = "draft";
+ public const string Enabled = "enabled";
+ public const string Disabled = "disabled";
+}
+
+///
+/// 入职任务合同状态。
+///
+public static class TaskContractStatus
+{
+ public const string PendingGenerate = "pending_generate";
+ public const string PendingConfirm = "pending_confirm";
+ public const string Confirmed = "confirmed";
+ public const string OfflinePendingSign = "offline_pending_sign";
+ public const string Archived = "archived";
+}
+
+///
+/// 合同变量类型。
+///
+public static class ContractVariableType
+{
+ public const string Employee = "employee";
+ public const string Company = "company";
+ public const string Contract = "contract";
+ public const string System = "system";
+}
+
+///
+/// 合同变量最终值来源。
+///
+public static class ContractVariableSourceType
+{
+ public const string Employee = "employee";
+ public const string Company = "company";
+ public const string HrInput = "hr_input";
+ public const string System = "system";
+}
+
+///
+/// 入职资料审核状态。
+///
+public static class TaskMaterialReviewStatus
+{
+ public const string Pending = "pending";
+ public const string Passed = "passed";
+ public const string NeedSupplement = "need_supplement";
+}
+
+///
+/// 入职审核动作。
+///
+public static class OnboardingAuditAction
+{
+ public const string Submit = "submit";
+ public const string Approve = "approve";
+ public const string Reject = "reject";
+ public const string Revoke = "revoke";
+ public const string Archive = "archive";
+}
diff --git a/SimpleAdmin.Application/Services/Onboarding/Company/Dto/OnboardingCompanyInput.cs b/SimpleAdmin.Application/Services/Onboarding/Company/Dto/OnboardingCompanyInput.cs
new file mode 100644
index 0000000..e44aaf0
--- /dev/null
+++ b/SimpleAdmin.Application/Services/Onboarding/Company/Dto/OnboardingCompanyInput.cs
@@ -0,0 +1,25 @@
+namespace SimpleAdmin.Application;
+
+public class OnboardingCompanyPageInput : BasePageInput
+{
+ public virtual string CompanyName { get; set; }
+ public string Status { get; set; }
+}
+
+public class OnboardingCompanyAddInput : ObCompany
+{
+ [global::System.ComponentModel.DataAnnotations.Required(ErrorMessage = "公司编码不能为空")]
+ public override string CompanyCode { get; set; }
+
+ [global::System.ComponentModel.DataAnnotations.Required(ErrorMessage = "公司名称不能为空")]
+ public override string CompanyName { get; set; }
+
+ [global::System.ComponentModel.DataAnnotations.Required(ErrorMessage = "合同甲方全称不能为空")]
+ public override string LegalName { get; set; }
+}
+
+public class OnboardingCompanyEditInput : OnboardingCompanyAddInput
+{
+ [IdNotNull(ErrorMessage = "公司Id不能为空")]
+ public override long Id { get; set; }
+}
diff --git a/SimpleAdmin.Application/Services/Onboarding/Company/IOnboardingCompanyService.cs b/SimpleAdmin.Application/Services/Onboarding/Company/IOnboardingCompanyService.cs
new file mode 100644
index 0000000..233c844
--- /dev/null
+++ b/SimpleAdmin.Application/Services/Onboarding/Company/IOnboardingCompanyService.cs
@@ -0,0 +1,11 @@
+namespace SimpleAdmin.Application;
+
+public interface IOnboardingCompanyService : ITransient
+{
+ Task> Page(OnboardingCompanyPageInput input);
+ Task> ListEnabled();
+ Task Detail(BaseIdInput input);
+ Task Add(OnboardingCompanyAddInput input);
+ Task Edit(OnboardingCompanyEditInput input);
+ Task Delete(BaseIdListInput input);
+}
diff --git a/SimpleAdmin.Application/Services/Onboarding/Company/OnboardingCompanyService.cs b/SimpleAdmin.Application/Services/Onboarding/Company/OnboardingCompanyService.cs
new file mode 100644
index 0000000..e732fff
--- /dev/null
+++ b/SimpleAdmin.Application/Services/Onboarding/Company/OnboardingCompanyService.cs
@@ -0,0 +1,45 @@
+namespace SimpleAdmin.Application;
+
+public class OnboardingCompanyService : DbRepository, IOnboardingCompanyService
+{
+ public async Task> Page(OnboardingCompanyPageInput input)
+ {
+ return await Context.Queryable()
+ .WhereIF(!string.IsNullOrWhiteSpace(input.CompanyName), it => it.CompanyName.Contains(input.CompanyName) || it.CompanyCode.Contains(input.CompanyName))
+ .WhereIF(!string.IsNullOrWhiteSpace(input.Status), it => it.Status == input.Status)
+ .OrderByIF(!string.IsNullOrWhiteSpace(input.SortField), $"{input.SortField} {input.SortOrder}")
+ .OrderBy(it => it.CreateTime)
+ .ToPagedListAsync(input.PageNum, input.PageSize);
+ }
+
+ public Task> ListEnabled() => Context.Queryable().Where(it => it.Status == "enable").OrderBy(it => it.CompanyName).ToListAsync();
+
+ public async Task Detail(BaseIdInput input) => await GetByIdAsync(input.Id) ?? throw Oops.Bah("公司不存在");
+
+ public async Task Add(OnboardingCompanyAddInput input)
+ {
+ await EnsureCodeUnique(input.CompanyCode, 0);
+ await InsertAsync(input.Adapt());
+ }
+
+ public async Task Edit(OnboardingCompanyEditInput input)
+ {
+ await Detail(new BaseIdInput { Id = input.Id });
+ await EnsureCodeUnique(input.CompanyCode, input.Id);
+ await UpdateAsync(input.Adapt());
+ }
+
+ public async Task Delete(BaseIdListInput input)
+ {
+ if (input.Ids.Count == 0) return;
+ if (await Context.Queryable().AnyAsync(it => input.Ids.Contains(it.CompanyId))) throw Oops.Bah("公司下仍有岗位,不能删除");
+ if (await Context.Queryable().AnyAsync(it => input.Ids.Contains(it.CompanyId))) throw Oops.Bah("公司已有入职任务,不能删除");
+ if (await Context.Queryable().AnyAsync(it => input.Ids.Contains(it.CompanyId))) throw Oops.Bah("公司已有正式员工,不能删除");
+ await DeleteByIdsAsync(input.Ids.Cast