diff --git a/IRaCIS.Core.Application/Helper/FileDocProcess/ExcelExportHelper.cs b/IRaCIS.Core.Application/Helper/FileDocProcess/ExcelExportHelper.cs
index acb545038..227258d79 100644
--- a/IRaCIS.Core.Application/Helper/FileDocProcess/ExcelExportHelper.cs
+++ b/IRaCIS.Core.Application/Helper/FileDocProcess/ExcelExportHelper.cs
@@ -551,7 +551,7 @@ public static class ExcelExportHelper
}
//创建新的列
- for (int i = originTotalEndIndex; i < originTotalEndIndex + needAddCount; i++)
+ for (int i = originRemoveEndIndex; i < originRemoveEndIndex + needAddCount; i++)
{
titelRow.CreateCell(i + 1);
@@ -585,6 +585,7 @@ public static class ExcelExportHelper
for (int i = dynamicColunmStartIndex; i < dynamicColunmStartIndex + needAddCount; i++)
{
+
var name = dynamicColumnConfig.ColumnIdNameList[i - dynamicColunmStartIndex].Name;
titelRow.GetCell(i).SetCellValue(name);
@@ -597,8 +598,10 @@ public static class ExcelExportHelper
cdicsRow.GetCell(i).SetCellValue(cdicsCode);
}
}
+
}
+
using (var memoryStream2 = new MemoryStream())
{
workbook.Write(memoryStream2, true);
@@ -621,8 +624,11 @@ public static class ExcelExportHelper
IgnoreTemplateParameterMissing = true,
};
+ //await MiniExcel.SaveAsByTemplateAsync("testmini.xlsx", templateStream.ToArray(), translateData);
+
await MiniExcel.SaveAsByTemplateAsync(memoryStream, templateStream.ToArray(), translateData, config);
+
memoryStream.Seek(0, SeekOrigin.Begin);
if (dynamicColumnConfig != null)
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.csproj b/IRaCIS.Core.Application/IRaCIS.Core.Application.csproj
index 20e2438b2..216bb3771 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.csproj
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.csproj
@@ -53,7 +53,7 @@
-
+
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index ae3ff7b54..2259a73af 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -1550,6 +1550,7 @@
+
测试邮件 带附件 填充word
diff --git a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
index 0faec4dc4..198f4c228 100644
--- a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
+++ b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs
@@ -1734,7 +1734,7 @@ namespace IRaCIS.Core.Application.Service.Common
//.WhereIf(inQuery.SystemLevel == null, t => t.SystemLevel == SysEmailLevel.not_sys)
.WhereIf(inQuery.SystemLevel != null, t => t.SystemLevel == inQuery.SystemLevel)
.WhereIf(inQuery.IsDistinguishCriteria != null, t => t.IsDistinguishCriteria == inQuery.IsDistinguishCriteria)
- .WhereIf(inQuery.CriterionTypeEnum != null, t => t.CriterionTypeEnum == inQuery.CriterionTypeEnum)
+ .WhereIf(inQuery.CriterionTypeEnum != null, t =>t.CriterionTypeList.Any(c=>c==inQuery.CriterionTypeEnum))
.WhereIf(inQuery.BusinessScenarioEnum != null, t => t.BusinessScenarioEnum == inQuery.BusinessScenarioEnum)
.WhereIf(inQuery.IsReturnRequired != null, t => t.IsReturnRequired == inQuery.IsReturnRequired)
.WhereIf(inQuery.IsEnable != null, t => t.IsEnable == inQuery.IsEnable)
@@ -2855,7 +2855,7 @@ namespace IRaCIS.Core.Application.Service.Common
//多表格,增加的一列,就用Guid.Empty 标识
var extralNameList = new List() { new DynamicColumnConfig.ColumItem() { Id = Guid.Empty, Name = _userInfo.IsEn_Us ? "Table Name" : "表格名称" } };
- var tableQuestionNameList = trialConfigTableQuestionList.Select(t => new DynamicColumnConfig.ColumItem() { Id = t.QuestionId, Name = t.TableName + "_" + t.QuestionName }).ToList();
+ var tableQuestionNameList = trialConfigTableQuestionList.OrderBy(t=>t.TableName).Select(t => new DynamicColumnConfig.ColumItem() { Id = t.QuestionId, Name = t.TableName + "_" + t.QuestionName }).ToList();
configCoumNameList = fistLeveLNameList.Union(extralNameList).Union(tableQuestionNameList).ToList();
}
@@ -3090,8 +3090,8 @@ namespace IRaCIS.Core.Application.Service.Common
cloneItem.Group = lessionItem.TableName;
cloneItem.TRLINKID = lessionItem.RowId.ToString();
- cloneItem.TRORRES = lessionItem.CDISCCode;
- cloneItem.TRTEST = lessionItem.QuestionValue;
+ cloneItem.TRORRES = lessionItem.QuestionValue;
+ cloneItem.TRTEST = lessionItem.CDISCCode;
cloneItem.TRORRESU = unitText;
diff --git a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs
index c532f86ed..60a1de26e 100644
--- a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs
+++ b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs
@@ -116,7 +116,15 @@ namespace IRaCIS.Core.Application.Service
}
-
+ ///
+ ///
+ ///
+ ///
+ /// 为空 代表 正常任务自动发送,为true 代表医学审核手动发送 为false 代表医学审核自动发送
+ ///
+ ///
+ ///
+ ///
private async Task DealMedicalReviewTasKGenerateAndIsSendAsync(Guid trialId, bool? isHandSend, string pdAnswer, List taskIdList, List minUserIdList)
{
@@ -298,7 +306,7 @@ namespace IRaCIS.Core.Application.Service
{
#region 不同标准 不同项目配置 发送邮件的时机 处理具体逻辑
- var answer = "否";
+ var answer = _userInfo.IsEn_Us ? "No" : "否";
var isNeedSend = true;
var minUserIdList = _trialUserRoleRepository.Where(t => t.UserRole.UserTypeEnum == Domain.Share.UserTypeEnum.MIM && t.TrialId == taskInfo.TrialId).Select(t => t.UserId).ToList();
@@ -310,7 +318,7 @@ namespace IRaCIS.Core.Application.Service
if (await _readingTableQuestionAnswerRepository.Where().AnyAsync(x => x.VisitTaskId == visitTaskId && x.Answer == TargetState.Exist.GetEnumInt() &&
x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.State && x.ReadingQuestionTrial.LesionType == LesionType.TargetLesion))
{
- answer = "是";
+ answer = _userInfo.IsEn_Us ? "Yes" : "是";
}
@@ -331,7 +339,7 @@ namespace IRaCIS.Core.Application.Service
isNeedSend = await DealMedicalReviewTasKGenerateAndIsSendAsync(taskInfo.TrialId, isHandSend, answer, new List() { visitTaskId }, minUserIdList);
- if (answer == "是")
+ if (answer == "是" || answer == "Yes")
{
//把另外一个人的任务设置为不加急(如果项目加急是否 subject 加急是否)
var urgent = _subjectVisitRepository.Where(t => t.Id == taskInfo.SourceSubjectVisitId).Select(t => new { IsSubjectUrgent = t.Subject.IsUrgent, t.Trial.IsUrgent }).FirstOrDefault();
@@ -630,6 +638,7 @@ namespace IRaCIS.Core.Application.Service
var path = FileStoreHelper.GetPhysicalFilePath(_hostEnvironment, _userInfo.IsEn_Us ? trialEmailConfig.AttachPath : trialEmailConfig.AttachCNPath);
+ //获取从word 到 PDF的路径
var (serverFilePath, relativePath, fileRealName) = FileStoreHelper.GetSubjectEnrollConfirmOrPDEmailPath(_hostEnvironment, Path.GetFileName(path), taskInfo.TrialId, taskInfo.TrialSiteId, taskInfo.SubjectId, true);
if (emailStoreMode == EmailStoreSendMode.StoreLocalSend || emailStoreMode == EmailStoreSendMode.OnlyStoreLocalNotSentEmail)
@@ -653,10 +662,11 @@ namespace IRaCIS.Core.Application.Service
{
var wordStoreServerPath = Path.Combine(Path.GetDirectoryName(serverFilePath), Path.GetFileNameWithoutExtension(serverFilePath) + ".docx");
- using (FileStream fileStream = new FileStream(wordStoreServerPath, FileMode.Create, FileAccess.Write))
- {
- wordMemoryStream.WriteTo(fileStream);
- }
+ //using (FileStream fileStream = new FileStream(wordStoreServerPath, FileMode.Create, FileAccess.Write))
+ //{
+ // wordMemoryStream.WriteTo(fileStream);
+ //}
+
FileConvertHelper.ConvertWordToPdf(wordStoreServerPath, Path.GetDirectoryName(serverFilePath));
File.Delete(wordStoreServerPath);
@@ -696,10 +706,10 @@ namespace IRaCIS.Core.Application.Service
{
var wordStoreServerPath = Path.Combine(Path.GetDirectoryName(serverFilePath), Path.GetFileNameWithoutExtension(serverFilePath) + ".docx");
- using (FileStream fileStream = new FileStream(wordStoreServerPath, FileMode.Create, FileAccess.Write))
- {
- wordMemoryStream.WriteTo(fileStream);
- }
+ //using (FileStream fileStream = new FileStream(wordStoreServerPath, FileMode.Create, FileAccess.Write))
+ //{
+ // wordMemoryStream.WriteTo(fileStream);
+ //}
FileConvertHelper.ConvertWordToPdf(wordStoreServerPath, Path.GetDirectoryName(serverFilePath));
File.Delete(wordStoreServerPath);
@@ -1349,7 +1359,7 @@ namespace IRaCIS.Core.Application.Service
await _trialEmailNoticeConfigRepository.SaveChangesAsync();
//处理定时任务
- var taskInfoList = await _trialEmailNoticeConfigRepository.Where(t => t.TrialId== trialId && t.EmailCron != string.Empty && t.IsAutoSend)
+ var taskInfoList = await _trialEmailNoticeConfigRepository.Where(t => t.TrialId == trialId && t.EmailCron != string.Empty && t.IsAutoSend)
.Select(t => new { t.Id, t.Code, TrialCode = t.Trial.TrialCode, t.EmailCron, t.BusinessScenarioEnum, t.TrialId })
.ToListAsync();
diff --git a/IRaCIS.Core.Domain/Common/EmailNoticeConfig.cs b/IRaCIS.Core.Domain/Common/EmailNoticeConfig.cs
index d1963eaa4..eff2f7d7e 100644
--- a/IRaCIS.Core.Domain/Common/EmailNoticeConfig.cs
+++ b/IRaCIS.Core.Domain/Common/EmailNoticeConfig.cs
@@ -66,9 +66,6 @@ public class EmailNoticeConfig : BaseFullDeleteAuditEntity
public SysEmailLevel SystemLevel { get; set; }
- [Comment("标准枚举--后续废弃,这里可以选择多个标准")]
- public CriterionType? CriterionTypeEnum { get; set; }
-
[Comment("邮件配置的多个标准")]
public List? CriterionTypeList { get; set; }
}