From 9ae5e0bc5475bc398ad7711067591d18741b40ea Mon Sep 17 00:00:00 2001 From: fuenmao <980740792@qq.com> Date: Wed, 26 Aug 2026 11:00:15 +0800 Subject: [PATCH] 11 --- .../TaskQuery/Dto/OnboardingTaskQueryInput.cs | 23 +++++-- .../TaskQuery/OnboardingTaskQueryService.cs | 60 +++++++++++++------ .../SimpleAdmin.Application.xml | 20 +++++-- 3 files changed, 73 insertions(+), 30 deletions(-) diff --git a/SimpleAdmin.Application/Services/Onboarding/TaskQuery/Dto/OnboardingTaskQueryInput.cs b/SimpleAdmin.Application/Services/Onboarding/TaskQuery/Dto/OnboardingTaskQueryInput.cs index 14cd71f..f42de5d 100644 --- a/SimpleAdmin.Application/Services/Onboarding/TaskQuery/Dto/OnboardingTaskQueryInput.cs +++ b/SimpleAdmin.Application/Services/Onboarding/TaskQuery/Dto/OnboardingTaskQueryInput.cs @@ -44,12 +44,7 @@ public class OnboardingTaskDetailOutput /// /// 候选人已上传材料列表。 /// - public List Materials { get; set; } - - /// - /// 候选人动态字段值列表。 - /// - public List FormValues { get; set; } + public List Materials { get; set; } /// /// 任务当前有效链接信息。 @@ -61,3 +56,19 @@ public class OnboardingTaskDetailOutput /// public List Audits { get; set; } } + +/// +/// 后台入职任务材料详情。 +/// +public class OnboardingTaskMaterialDetailOutput : ObTaskMaterial +{ + /// + /// 材料原始文件名,用于下载时保留文件名称。 + /// + public string FileName { get; set; } + + /// + /// 材料文件后缀,用于判断是否支持图片预览。 + /// + public string FileSuffix { get; set; } +} diff --git a/SimpleAdmin.Application/Services/Onboarding/TaskQuery/OnboardingTaskQueryService.cs b/SimpleAdmin.Application/Services/Onboarding/TaskQuery/OnboardingTaskQueryService.cs index 3a1ccd0..e6b2dd4 100644 --- a/SimpleAdmin.Application/Services/Onboarding/TaskQuery/OnboardingTaskQueryService.cs +++ b/SimpleAdmin.Application/Services/Onboarding/TaskQuery/OnboardingTaskQueryService.cs @@ -33,28 +33,50 @@ public class OnboardingTaskQueryService : IOnboardingTaskQueryService var task = await _db.Queryable().InSingleAsync(input.Id) ?? throw Oops.Bah("入职任务不存在"); + var employeeInfo = await _db.Queryable() + .FirstAsync(item => item.TaskId == task.Id); + var contracts = await _db.Queryable() + .Where(item => item.TaskId == task.Id) + .ToListAsync(); + var materials = await _db.Queryable() + .Where(item => item.TaskId == task.Id) + .ToListAsync(); + var materialFileIds = materials + .Select(item => item.FileId) + .Distinct() + .ToList(); + var materialFiles = await _db.Queryable() + .Where(item => materialFileIds.Contains(item.Id)) + .ToListAsync(); + var materialFileMap = materialFiles.ToDictionary(item => item.Id); + var materialOutputs = materials.Select(material => + { + var output = material.Adapt(); + if (materialFileMap.TryGetValue(material.FileId, out var file)) + { + output.FileName = file.Name; + output.FileSuffix = file.Suffix; + } + + return output; + }).ToList(); + var link = await _db.Queryable() + .Where(item => item.TaskId == task.Id && item.LinkStatus == "active") + .OrderByDescending(item => item.CreateTime) + .FirstAsync(); + var audits = await _db.Queryable() + .Where(item => item.TaskId == task.Id) + .OrderByDescending(item => item.AuditedAt) + .ToListAsync(); + return new OnboardingTaskDetailOutput { Task = task, - EmployeeInfo = await _db.Queryable() - .FirstAsync(item => item.TaskId == task.Id), - Contracts = await _db.Queryable() - .Where(item => item.TaskId == task.Id) - .ToListAsync(), - Materials = await _db.Queryable() - .Where(item => item.TaskId == task.Id) - .ToListAsync(), - FormValues = await _db.Queryable() - .Where(item => item.TaskId == task.Id) - .ToListAsync(), - Link = await _db.Queryable() - .Where(item => item.TaskId == task.Id && item.LinkStatus == "active") - .OrderByDescending(item => item.CreateTime) - .FirstAsync(), - Audits = await _db.Queryable() - .Where(item => item.TaskId == task.Id) - .OrderByDescending(item => item.AuditedAt) - .ToListAsync() + EmployeeInfo = employeeInfo, + Contracts = contracts, + Materials = materialOutputs, + Link = link, + Audits = audits }; } } diff --git a/SimpleAdmin.Application/SimpleAdmin.Application.xml b/SimpleAdmin.Application/SimpleAdmin.Application.xml index 4f6e0f9..b9057ee 100644 --- a/SimpleAdmin.Application/SimpleAdmin.Application.xml +++ b/SimpleAdmin.Application/SimpleAdmin.Application.xml @@ -3367,11 +3367,6 @@ 候选人已上传材料列表。 - - - 候选人动态字段值列表。 - - 任务当前有效链接信息。 @@ -3382,6 +3377,21 @@ 提交与审核记录列表。 + + + 后台入职任务材料详情。 + + + + + 材料原始文件名,用于下载时保留文件名称。 + + + + + 材料文件后缀,用于判断是否支持图片预览。 + + 定义入职任务查询业务能力。