From 38801533e9b0c40e05b459d768060c22397c253b Mon Sep 17 00:00:00 2001
From: fuenmao <980740792@qq.com>
Date: Tue, 25 Aug 2026 13:54:16 +0800
Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../IOnboardingContractTemplateService.cs | 7 +-
.../OnboardingContractTemplateService.cs | 103 ++++++++++++++----
.../IOnboardingTaskLifecycleService.cs | 5 +
.../OnboardingTaskLifecycleService.cs | 44 ++++++++
.../IOnboardingTemplateService.cs | 2 +-
.../OnboardingTemplateService.cs | 11 +-
.../SimpleAdmin.Application.xml | 26 ++++-
.../OnboardingContractTemplateController.cs | 9 ++
.../OnboardingTaskLifecycleController.cs | 9 ++
SimpleAdmin.Web.Core/SimpleAdmin.Web.Core.xml | 10 ++
10 files changed, 196 insertions(+), 30 deletions(-)
diff --git a/SimpleAdmin.Application/Services/Onboarding/ContractTemplate/IOnboardingContractTemplateService.cs b/SimpleAdmin.Application/Services/Onboarding/ContractTemplate/IOnboardingContractTemplateService.cs
index e3d32dd..0b457b7 100644
--- a/SimpleAdmin.Application/Services/Onboarding/ContractTemplate/IOnboardingContractTemplateService.cs
+++ b/SimpleAdmin.Application/Services/Onboarding/ContractTemplate/IOnboardingContractTemplateService.cs
@@ -45,13 +45,18 @@ public interface IOnboardingContractTemplateService : ITransient
///
Task SetVersionStatus(OnboardingContractVersionStatusInput input);
+ ///
+ /// 删除未被入职模板或任务使用的合同版本。
+ ///
+ Task DeleteVersion(BaseIdInput input);
+
///
/// 分页查询指定模板版本自动识别出的变量。
///
Task> VariablePage(OnboardingTemplateVariablePageInput input);
///
- /// 编辑并确认草稿模板版本中的变量定义。
+ /// 编辑并确认模板版本中的变量定义。
///
Task EditVariable(OnboardingTemplateVariableEditInput input);
}
\ No newline at end of file
diff --git a/SimpleAdmin.Application/Services/Onboarding/ContractTemplate/OnboardingContractTemplateService.cs b/SimpleAdmin.Application/Services/Onboarding/ContractTemplate/OnboardingContractTemplateService.cs
index 9ce9d7b..f2c5cc4 100644
--- a/SimpleAdmin.Application/Services/Onboarding/ContractTemplate/OnboardingContractTemplateService.cs
+++ b/SimpleAdmin.Application/Services/Onboarding/ContractTemplate/OnboardingContractTemplateService.cs
@@ -11,6 +11,7 @@ public class OnboardingContractTemplateService : DbRepository
/// 分页查询合同模板主档案。
///
@@ -55,34 +56,92 @@ public class OnboardingContractTemplateService : DbRepository
- /// 删除未被版本、适用范围或任务合同引用的模板。
+ /// 删除未被入职模板或任务合同引用的模板(级联删除未使用的版本和变量)。
///
public async Task Delete(BaseIdListInput input)
{
if (input.Ids.Count == 0)
return;
- var hasVersions = await Context.Queryable()
- .AnyAsync(it => input.Ids.Contains(it.TemplateId));
- if (hasVersions)
- throw Oops.Bah("模板已有版本,不能删除");
-
- var hasScopes = await Context.Queryable()
- .AnyAsync(it => input.Ids.Contains(it.TemplateId));
- if (hasScopes)
- throw Oops.Bah("模板已配置旧版适用范围,不能删除");
-
var hasOnboardingTemplates = await Context.Queryable()
.AnyAsync(it => input.Ids.Contains(it.ContractTemplateId));
if (hasOnboardingTemplates)
- throw Oops.Bah("模板已被入职模板引用,不能删除");
+ throw Oops.Bah("模板已被入职模板引用,不能删除,请先在入职模板中移除关联");
var hasContracts = await Context.Queryable()
.AnyAsync(it => input.Ids.Contains(it.TemplateId));
if (hasContracts)
- throw Oops.Bah("模板已生成入职合同,不能删除");
+ throw Oops.Bah("模板已生成入职任务合同,不能删除,可改为停用");
- await DeleteByIdsAsync(input.Ids.Cast