From 1523450b883616e304d792d8a3b7529b66892189 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Sun, 28 Sep 2025 15:30:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E9=87=8F=E6=8E=88=E6=9D=83=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Document/AuditDocumentService.cs | 36 ++++++++++--------- .../Document/DTO/AuditDocumentViewModel.cs | 3 +- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Document/AuditDocumentService.cs b/IRaCIS.Core.Application/Service/Document/AuditDocumentService.cs index 5f8b2e5a3..14239a87d 100644 --- a/IRaCIS.Core.Application/Service/Document/AuditDocumentService.cs +++ b/IRaCIS.Core.Application/Service/Document/AuditDocumentService.cs @@ -175,28 +175,32 @@ public class AuditDocumentService(IRepository _auditDocumentRepos public async Task SetAuditRecordPermission(SetAuditRecordPermissionCommand inCommand) { - var find = await _auditRecordPermissionRepository.FirstOrDefaultAsync(t => t.AuditRecordId == inCommand.AuditRecordId && t.AuditDocumentId == inCommand.AuditDocumentId); + var list = await _auditRecordPermissionRepository.Where(t => t.AuditRecordId == inCommand.AuditRecordId && inCommand.AuditDocumentIdList.Contains(t.AuditDocumentId)).ToListAsync(); - if (find == null && inCommand.IsAuthorization) + foreach (var item in list) { - - //闭包表中找到 设置Id为祖先的所有 后代 包括自己 - var matchIdList = await _auditDocumentClosureRepository.Where(t => inCommand.AuditDocumentId == t.AncestorId).Select(t => t.DescendantId).ToListAsync(); - - - foreach (var item in matchIdList) + if (inCommand.IsAuthorization) { - await _auditRecordPermissionRepository.AddAsync(new AuditRecordPermission() { AuditRecordId = inCommand.AuditRecordId, AuditDocumentId = item }); - } + //闭包表中找到 设置Id为祖先的所有 后代 包括自己 + var matchIdList = await _auditDocumentClosureRepository.Where(t => item.AuditDocumentId == t.AncestorId).Select(t => t.DescendantId).ToListAsync(); - await _auditRecordPermissionRepository.SaveChangesAsync(); - - } - else - { - await _auditRecordPermissionRepository.DeleteFromQueryAsync(t => t.AuditRecordId == inCommand.AuditRecordId && t.AuditDocumentId == inCommand.AuditDocumentId, true); + + foreach (var matchItem in matchIdList) + { + await _auditRecordPermissionRepository.AddAsync(new AuditRecordPermission() { AuditRecordId = inCommand.AuditRecordId, AuditDocumentId = matchItem }); + } + + await _auditRecordPermissionRepository.SaveChangesAsync(); + } + else + { + await _auditRecordPermissionRepository.DeleteFromQueryAsync(t => t.AuditRecordId == inCommand.AuditRecordId && t.AuditDocumentId == item.AuditDocumentId, true); + + } } + + return ResponseOutput.Ok(); } diff --git a/IRaCIS.Core.Application/Service/Document/DTO/AuditDocumentViewModel.cs b/IRaCIS.Core.Application/Service/Document/DTO/AuditDocumentViewModel.cs index 6321bca29..135cb18f8 100644 --- a/IRaCIS.Core.Application/Service/Document/DTO/AuditDocumentViewModel.cs +++ b/IRaCIS.Core.Application/Service/Document/DTO/AuditDocumentViewModel.cs @@ -80,7 +80,8 @@ public class AuditRecordQuery : PageInput public class SetAuditRecordPermissionCommand { - public Guid AuditDocumentId { get; set; } + + public List AuditDocumentIdList { get; set; } public Guid AuditRecordId { get; set; }