From ff7e9c14967c0f09bf9ab02fc9e8f45d3b0b0626 Mon Sep 17 00:00:00 2001 From: fuenmao <980740792@qq.com> Date: Fri, 18 Sep 2026 20:44:57 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=B8=E5=85=B3=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Audit/OnboardingAuditService.cs | 24 +------ .../Common/OnboardingReviewerConfigParser.cs | 64 ------------------- .../OnboardingMaterialReviewService.cs | 18 +----- 3 files changed, 4 insertions(+), 102 deletions(-) delete mode 100644 SimpleAdmin.Application/Services/Onboarding/Common/OnboardingReviewerConfigParser.cs diff --git a/SimpleAdmin.Application/Services/Onboarding/Audit/OnboardingAuditService.cs b/SimpleAdmin.Application/Services/Onboarding/Audit/OnboardingAuditService.cs index 68a4909..2ed376e 100644 --- a/SimpleAdmin.Application/Services/Onboarding/Audit/OnboardingAuditService.cs +++ b/SimpleAdmin.Application/Services/Onboarding/Audit/OnboardingAuditService.cs @@ -6,19 +6,16 @@ namespace SimpleAdmin.Application; public class OnboardingAuditService : IOnboardingAuditService { private readonly SqlSugarScope _db; - private readonly IConfigService _config; private readonly IOnboardingContractSnapshotService _snapshotService; private readonly IOnboardingEmployeeContractSnapshotService _employeeContractSnapshotService; private readonly IOnboardingDataPermissionService _dataPermission; public OnboardingAuditService( - IConfigService config, IOnboardingContractSnapshotService snapshotService, IOnboardingEmployeeContractSnapshotService employeeContractSnapshotService, IOnboardingDataPermissionService dataPermission) { _db = DbContext.DB; - _config = config; _snapshotService = snapshotService; _employeeContractSnapshotService = employeeContractSnapshotService; _dataPermission = dataPermission; @@ -137,11 +134,8 @@ public class OnboardingAuditService : IOnboardingAuditService if (task.CreateUserId.HasValue && task.CreateUserId != UserManager.UserId) { await _db.Updateable() - .SetColumns(item => new ObEmployee - { - CreateUserId = task.CreateUserId, - CreateUser = task.CreateUser - }) + .SetColumns(item => item.CreateUserId == task.CreateUserId) + .SetColumns(item => item.CreateUser == task.CreateUser) .Where(item => item.Id == employee.Id) .ExecuteCommandAsync(); @@ -227,20 +221,6 @@ public class OnboardingAuditService : IOnboardingAuditService OnboardingPermissionCodes.TaskManageAll, "入职任务"); - // 人事管理员/超级管理员可处理全部任务;普通人事还必须属于配置的审核人。 - if (await _dataPermission.CanManage(null, OnboardingPermissionCodes.TaskManageAll)) - return task; - - var config = await _config.GetByConfigKey(CateGoryConst.CONFIG_BIZ_DEFINE, "onboard.reviewer.userIds") - ?? throw Oops.Bah("请配置入职审核人"); - // 审核人由全局配置与公司专属配置合并得出,不依赖独立业务表。 - var reviewerIds = OnboardingReviewerConfigParser.Parse(config.ConfigValue, task.CompanyId); - - if (!reviewerIds.Contains(UserManager.UserId)) - { - throw Oops.Bah("您不是该入职任务的审核人"); - } - return task; } diff --git a/SimpleAdmin.Application/Services/Onboarding/Common/OnboardingReviewerConfigParser.cs b/SimpleAdmin.Application/Services/Onboarding/Common/OnboardingReviewerConfigParser.cs deleted file mode 100644 index 2fe38af..0000000 --- a/SimpleAdmin.Application/Services/Onboarding/Common/OnboardingReviewerConfigParser.cs +++ /dev/null @@ -1,64 +0,0 @@ -namespace SimpleAdmin.Application; - -/// -/// 解析入职审核人系统配置,统一支持全局审核人和公司专属审核人。 -/// -internal static class OnboardingReviewerConfigParser -{ - private const string ConfigKey = "onboard.reviewer.userIds"; - - /// - /// 获取指定公司的全部有效审核人用户 Id。 - /// - public static HashSet Parse(string configValue, long companyId) - { - if (string.IsNullOrWhiteSpace(configValue)) - throw Oops.Bah($"系统配置 {ConfigKey} 不能为空"); - - try - { - using var document = global::System.Text.Json.JsonDocument.Parse(configValue); - if (document.RootElement.ValueKind != global::System.Text.Json.JsonValueKind.Object) - throw new global::System.Text.Json.JsonException(); - - var reviewerIds = new HashSet(); - if (document.RootElement.TryGetProperty("all", out var allReviewers)) - AddReviewers(allReviewers, reviewerIds); - - if (document.RootElement.TryGetProperty("company", out var companyReviewers)) - { - if (companyReviewers.ValueKind != global::System.Text.Json.JsonValueKind.Object) - throw new global::System.Text.Json.JsonException(); - - if (companyReviewers.TryGetProperty(companyId.ToString(), out var reviewers)) - AddReviewers(reviewers, reviewerIds); - } - - return reviewerIds; - } - catch (global::System.Text.Json.JsonException) - { - throw Oops.Bah( - $"系统配置 {ConfigKey} 格式不正确,应为包含 all 数组和 company 对象的 JSON"); - } - } - - /// - /// 将 JSON 数组中的审核人 Id 加入集合,并拒绝非整数配置。 - /// - private static void AddReviewers( - global::System.Text.Json.JsonElement element, - HashSet reviewerIds) - { - if (element.ValueKind != global::System.Text.Json.JsonValueKind.Array) - throw new global::System.Text.Json.JsonException(); - - foreach (var reviewer in element.EnumerateArray()) - { - if (!reviewer.TryGetInt64(out var reviewerId) || reviewerId <= 0) - throw new global::System.Text.Json.JsonException(); - - reviewerIds.Add(reviewerId); - } - } -} diff --git a/SimpleAdmin.Application/Services/Onboarding/MaterialReview/OnboardingMaterialReviewService.cs b/SimpleAdmin.Application/Services/Onboarding/MaterialReview/OnboardingMaterialReviewService.cs index 5a94669..65dbc8e 100644 --- a/SimpleAdmin.Application/Services/Onboarding/MaterialReview/OnboardingMaterialReviewService.cs +++ b/SimpleAdmin.Application/Services/Onboarding/MaterialReview/OnboardingMaterialReviewService.cs @@ -6,15 +6,12 @@ namespace SimpleAdmin.Application; public class OnboardingMaterialReviewService : IOnboardingMaterialReviewService { private readonly SqlSugarScope _db; - private readonly IConfigService _config; private readonly IOnboardingDataPermissionService _dataPermission; public OnboardingMaterialReviewService( - IConfigService config, IOnboardingDataPermissionService dataPermission) { _db = DbContext.DB; - _config = config; _dataPermission = dataPermission; } @@ -55,22 +52,11 @@ public class OnboardingMaterialReviewService : IOnboardingMaterialReviewService await _db.Updateable(material).ExecuteCommandAsync(); } - private async Task EnsureReviewer(ObOnboardingTask task) + private Task EnsureReviewer(ObOnboardingTask task) { - await _dataPermission.EnsureCanManage( + return _dataPermission.EnsureCanManage( task.CreateUserId, OnboardingPermissionCodes.TaskManageAll, "入职任务"); - if (await _dataPermission.CanManage(null, OnboardingPermissionCodes.TaskManageAll)) - return; - - var config = await _config.GetByConfigKey(CateGoryConst.CONFIG_BIZ_DEFINE, "onboard.reviewer.userIds") - ?? throw Oops.Bah("请配置入职审核人"); - var reviewerIds = OnboardingReviewerConfigParser.Parse(config.ConfigValue, task.CompanyId); - - if (!reviewerIds.Contains(UserManager.UserId)) - { - throw Oops.Bah("您不是该入职任务的审核人"); - } } }