修改导出
continuous-integration/drone/push Build is passing Details

IRC_NewDev
hang 2024-10-12 18:08:07 +08:00
parent ad7463c2c9
commit fd3fc0ea03
5 changed files with 67 additions and 6 deletions

View File

@ -199,21 +199,25 @@ public static class ExcelExportHelper
public class DynamicColumnConfig public class DynamicColumnConfig
{ {
//标题动态修改的行 从0 开始算
public int AutoColumnStartIndex { get; set; } public int AutoColumnStartIndex { get; set; }
//动态列开始的index 从0开始
public int AutoColumnRowIndex { get; set; } public int AutoColumnRowIndex { get; set; }
//动态列后面还有几列数据
public int BackMoveCount { get; set; } public int BackMoveCount { get; set; }
//动态的列名
public List<string> ColumnNameList { get; set; } public List<string> ColumnNameList { get; set; }
//动态翻译的字典名
public List<string> TranslateDicNameList { get; set; } public List<string> TranslateDicNameList { get; set; }
//动态取数据的集合名 //动态取数据的集合名
public string DynamicListName { get; set; } public string DynamicListName { get; set; }
//动态数据翻译的取字典的属性名 //动态数据翻译的取字典的属性名
public string DynamicItemDicName { get; set; } public string DynamicItemDicName { get; set; }
//取值的属性名 //取值的属性名
@ -420,7 +424,7 @@ public static class ExcelExportHelper
var index = list.IndexOf(itemResult); var index = list.IndexOf(itemResult);
//从第四行开始处理动态列 //从第四行开始处理动态列
var row = sheet.GetRow(index + 3); var row = sheet.GetRow(index + dynamicColumnConfig.AutoColumnRowIndex + 1);
var itemDic = itemResult.ConvertToDictionary(); var itemDic = itemResult.ConvertToDictionary();

View File

@ -12716,6 +12716,38 @@
利用DocX 库 处理word国际化模板 利用DocX 库 处理word国际化模板
</summary> </summary>
</member> </member>
<member name="M:IRaCIS.Core.Application.MassTransit.Consumer.CommonEmailHelper.TranslationDictionary(IRaCIS.Core.Application.MassTransit.Consumer.TranslationDictionaryDto)">
<summary>
翻译字典
</summary>
<param name="inDto"></param>
<returns></returns>
</member>
<member name="T:IRaCIS.Core.Application.MassTransit.Consumer.TranslationDictionaryDto">
<summary>
转换字典的Dto
</summary>
</member>
<member name="P:IRaCIS.Core.Application.MassTransit.Consumer.TranslationDictionaryDto.DictionaryRepository">
<summary>
字典仓储
</summary>
</member>
<member name="P:IRaCIS.Core.Application.MassTransit.Consumer.TranslationDictionaryDto.DictionaryCode">
<summary>
字典Code
</summary>
</member>
<member name="P:IRaCIS.Core.Application.MassTransit.Consumer.TranslationDictionaryDto.EnumValue">
<summary>
枚举值
</summary>
</member>
<member name="P:IRaCIS.Core.Application.MassTransit.Consumer.TranslationDictionaryDto.IsEn_US">
<summary>
是否是英文
</summary>
</member>
<member name="M:IRaCIS.Core.Application.MassTransit.Consumer.ConsistencyCheckConsumer.#ctor(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.DicomStudy},IRaCIS.Core.Domain.Share.IUserInfo,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Subject},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SubjectVisit},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TrialSite},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.NoneDicomStudy},AutoMapper.IMapper,Microsoft.Extensions.Localization.IStringLocalizer)"> <member name="M:IRaCIS.Core.Application.MassTransit.Consumer.ConsistencyCheckConsumer.#ctor(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.DicomStudy},IRaCIS.Core.Domain.Share.IUserInfo,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Subject},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SubjectVisit},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TrialSite},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.NoneDicomStudy},AutoMapper.IMapper,Microsoft.Extensions.Localization.IStringLocalizer)">
<summary> <summary>
构造函数注入 构造函数注入
@ -12762,6 +12794,19 @@
加急的医学反馈任务 通知MIM 加急的医学反馈任务 通知MIM
</summary> </summary>
</member> </member>
<member name="M:IRaCIS.Core.Application.MassTransit.Consumer.UrgentMedicalReviewAddedEventConsumer.#ctor(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.User},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TaskMedicalReview},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TrialSiteSurvey},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.EmailNoticeConfig},Microsoft.Extensions.Options.IOptionsMonitor{IRaCIS.Core.Domain.Share.SystemEmailSendConfig})">
<summary>
加急的医学反馈任务 通知MIM
</summary>
</member>
<member name="M:IRaCIS.Core.Application.MassTransit.Consumer.UrgentMedicalReviewAddedEventConsumer.Consume(MassTransit.ConsumeContext{IRaCIS.Core.Domain.UrgentMedicalReviewAddedEvent})">
<summary>
加急的医学反馈任务 通知MIM
</summary>
<param name="context"></param>
<returns></returns>
<exception cref="T:System.NotImplementedException"></exception>
</member>
<member name="T:IRaCIS.Core.Application.MassTransit.Consumer.UrgentMIMRepliedMedicalReviewConsumer"> <member name="T:IRaCIS.Core.Application.MassTransit.Consumer.UrgentMIMRepliedMedicalReviewConsumer">
<summary> <summary>
MIM 回复医学返回通知IR MIM 回复医学返回通知IR

View File

@ -73,7 +73,7 @@ public class UrgentMedicalReviewAddedEventConsumer(
var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr), var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr),
userinfo.FullName, // 用户名 userinfo.FullName, // 用户名
trialInfo.ExperimentName , // 项目 trialInfo.ExperimentName , // 项目
criterion.CriterionName, // 阅片标准 criterion.CriterionName // 阅片标准
// 受试者 // 受试者
// 访视 // 访视
// 任务类型 // 任务类型

View File

@ -1602,6 +1602,11 @@ namespace IRaCIS.Core.Application.Service.Common
var list = new List<ExportDocumentDes>(); var list = new List<ExportDocumentDes>();
var criterion = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == trialReadingCriterionId).Select(t => new { t.CriterionType, t.CriterionName }).FirstNotNullAsync(); var criterion = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == trialReadingCriterionId).Select(t => new { t.CriterionType, t.CriterionName }).FirstNotNullAsync();
list.Add(new ExportDocumentDes() { Code = StaticData.Export.CommonReading_Export, ExportCatogory = ExportCatogory.OverallTumorEvaluation });
list.Add(new ExportDocumentDes() { Code = StaticData.Export.CommonReadingDetail_Export, ExportCatogory = ExportCatogory.OverallTumorEvaluation });
list.Add(new ExportDocumentDes() { Code = StaticData.Export.CommonJudgeReadingDetail_Export, ExportCatogory = ExportCatogory.OverallTumorEvaluation });
if (criterion.CriterionType == CriterionType.RECIST1Point1 || criterion.CriterionType == CriterionType.RECIST1Pointt1_MB) if (criterion.CriterionType == CriterionType.RECIST1Point1 || criterion.CriterionType == CriterionType.RECIST1Pointt1_MB)
{ {
list.Add(new ExportDocumentDes() { Code = StaticData.Export.OverallTumorEvaluation_Export, ExportCatogory = ExportCatogory.OverallTumorEvaluation }); list.Add(new ExportDocumentDes() { Code = StaticData.Export.OverallTumorEvaluation_Export, ExportCatogory = ExportCatogory.OverallTumorEvaluation });
@ -2072,7 +2077,13 @@ namespace IRaCIS.Core.Application.Service.Common
exportInfo.List = ExportExcelConverterDate.ConvertToClientTimeInObject(list.Where(t => t.ReadingCategory != ReadingCategory.Global).ToList(), _userInfo.TimeZoneId); exportInfo.List = ExportExcelConverterDate.ConvertToClientTimeInObject(list.Where(t => t.ReadingCategory != ReadingCategory.Global).ToList(), _userInfo.TimeZoneId);
exportInfo.CurrentTime = ExportExcelConverterDate.DateTimeInternationalToString(DateTime.Now, _userInfo.TimeZoneId); exportInfo.CurrentTime = ExportExcelConverterDate.DateTimeInternationalToString(DateTime.Now, _userInfo.TimeZoneId);
var dynamicColumnConfig = new DynamicColumnConfig() { AutoColumnRowIndex = 2, AutoColumnStartIndex = 6, ColumnNameList = list.FirstOrDefault()?.JudgeQuestionAnswerList.Select(t => t.QuestionName).ToList() }; var dynamicColumnConfig = new DynamicColumnConfig() { AutoColumnRowIndex = 2, AutoColumnStartIndex = 6, BackMoveCount=3,
DynamicItemDicName= "QuestionName",
DynamicItemValueName= "QuestionValue",
DynamicListName= "JudgeQuestionAnswerList",
ColumnNameList = list.FirstOrDefault()?.JudgeQuestionAnswerList.Select(t => t.QuestionName).ToList(),
TranslateDicNameList= list.FirstOrDefault()?.JudgeQuestionAnswerList.Select(t => t.TranslateDicName).ToList()
};
var (memoryStream, fileName) = await ExcelExportHelper.DataExport_NpoiTestAsync(StaticData.Export.CommonReading_Export, exportInfo, _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(CommonEvaluationExport), criterion.CriterionType, dynamicColumnConfig); var (memoryStream, fileName) = await ExcelExportHelper.DataExport_NpoiTestAsync(StaticData.Export.CommonReading_Export, exportInfo, _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(CommonEvaluationExport), criterion.CriterionType, dynamicColumnConfig);

View File

@ -57,15 +57,16 @@ namespace IRaCIS.Core.Infrastructure.Extention
} }
Type type = obj.GetType(); Type type = obj.GetType();
PropertyInfo[] properties = type.GetProperties(); PropertyInfo[] properties = type.GetProperties(BindingFlags.Public | BindingFlags.Instance);
Dictionary<string, object> dictionary = new Dictionary<string, object>(); Dictionary<string, object> dictionary = new Dictionary<string, object>();
foreach (PropertyInfo property in properties) foreach (PropertyInfo property in properties)
{ {
string propertyName = property.Name; string propertyName = property.Name;
Console.WriteLine(propertyName);
object propertyValue = property.GetValue(obj); object propertyValue = property.GetValue(obj);
Console.WriteLine(propertyName);
// 如果属性的类型是枚举,将其值保留为整数 // 如果属性的类型是枚举,将其值保留为整数
if (property.PropertyType.IsEnum || (Nullable.GetUnderlyingType(property.PropertyType)?.IsEnum == true && propertyValue!=null) ) if (property.PropertyType.IsEnum || (Nullable.GetUnderlyingType(property.PropertyType)?.IsEnum == true && propertyValue!=null) )
{ {