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 @@
提交与审核记录列表。
+
+
+ 后台入职任务材料详情。
+
+
+
+
+ 材料原始文件名,用于下载时保留文件名称。
+
+
+
+
+ 材料文件后缀,用于判断是否支持图片预览。
+
+
定义入职任务查询业务能力。