优化文档下载

This commit is contained in:
fuenmao
2026-09-14 17:55:05 +08:00
parent f004aec10f
commit 43a498162e
@@ -376,8 +376,19 @@ public class OnboardingContractDocumentService : IOnboardingContractDocumentServ
item => item.VariableValue ?? string.Empty,
StringComparer.OrdinalIgnoreCase));
var generatedAt = DateTime.Now;
// 在文件名中加入生成批次,避免手机系统把同名的新合同误认为历史下载文件。
var name = $"{task.TaskNo}_{contract.ContractName}_{generatedAt:yyyyMMddHHmmssfff}.docx";
var employeeInfo = await _db.Queryable<ObTaskEmployeeInfo>()
.FirstAsync(item => item.TaskId == task.Id);
var employeeName = string.IsNullOrWhiteSpace(employeeInfo?.EmployeeName)
? "新员工"
: employeeInfo.EmployeeName.Trim();
var docType = string.IsNullOrWhiteSpace(contract.ContractType)
? (string.IsNullOrWhiteSpace(contract.ContractName) ? "签署材料" : contract.ContractName.Trim())
: contract.ContractType.Trim();
var invalidChars = global::System.IO.Path.GetInvalidFileNameChars();
var safeEmployeeName = new string(employeeName.Select(character => invalidChars.Contains(character) ? '_' : character).ToArray());
var safeDocType = new string(docType.Select(character => invalidChars.Contains(character) ? '_' : character).ToArray());
// 按照规范:编号_员工姓名_文档类型.docx
var name = $"{task.TaskNo}_{safeEmployeeName}_{safeDocType}.docx";
var fileId = await _fileService.StoreGeneratedFile(
SysDictConst.FILE_ENGINE_ALIYUN_OSS,
name,