修改文件导出代码

This commit is contained in:
2023-02-13 09:07:21 +08:00
parent 5a50b95987
commit 68d236ee5e
7 changed files with 129 additions and 48 deletions
@@ -17,17 +17,39 @@ namespace IRaCIS.Core.Application.Helper
public CriterionType? CriterionType { get; set; }
//是否翻译依赖其他属性
public bool IsTranslateDenpendOtherProperty =>!string.IsNullOrWhiteSpace(DependPropertyName);
public string DependPropertyName { get; set; }=string.Empty;
public string DependPropertyValueStr { get; set; } = string.Empty;
// 普通翻译的字典
public DictionaryTranslateAttribute(string dicParentCode)
{
DicParentCode = dicParentCode;
}
//针对不同的标准 翻译的字典不一样
public DictionaryTranslateAttribute(string dicParentCode, CriterionType criterionType )
{
DicParentCode = dicParentCode;
CriterionType = criterionType;
}
//针对业务某个属性的值 不一样 用的翻译字典不一样
public DictionaryTranslateAttribute(string dicParentCode,string dependPropertyName, string dependPropertyValueStr)
{
DicParentCode = dicParentCode;
DependPropertyName = dependPropertyName;
DependPropertyValueStr = dependPropertyValueStr;
}
}
}
@@ -30,7 +30,8 @@ public static class ExcelExportHelper
//一个值 对应不同的字典翻译
var needTranslatePropertyList = translateType.GetProperties().Where(t => t.IsDefined(typeof(DictionaryTranslateAttribute), true))
.SelectMany(c =>
c.GetCustomAttributes(typeof(DictionaryTranslateAttribute), false).Select(f => (DictionaryTranslateAttribute?)f).Where(t => t.CriterionType == criterionType || t.CriterionType == null).Select(k => new { c.Name, k.DicParentCode })
c.GetCustomAttributes(typeof(DictionaryTranslateAttribute), false).Select(f => (DictionaryTranslateAttribute?)f).Where(t => t.CriterionType == criterionType || t.CriterionType == null)
.Select(k => new { c.Name, k.DicParentCode ,k.IsTranslateDenpendOtherProperty, k.DependPropertyName,k.DependPropertyValueStr})
).ToList();
@@ -58,10 +59,25 @@ public static class ExcelExportHelper
foreach (var needTranslateProperty in needTranslatePropertyList)
{
var beforeValue = itemDic[needTranslateProperty.Name]?.ToString();
//翻译的属性依赖其他属性
if(needTranslateProperty.IsTranslateDenpendOtherProperty)
{
if (item[needTranslateProperty.DependPropertyName]?.ToString().ToLower() == needTranslateProperty.DependPropertyValueStr.ToLower())
{
var beforeValue = itemDic[needTranslateProperty.Name]?.ToString();
itemDic[needTranslateProperty.Name] = translateDataList[needTranslateProperty.DicParentCode].Where(t => t.Code.ToLower() == beforeValue?.ToLower()).FirstOrDefault()?.ValueCN ?? String.Empty;
}
}
//普通翻译 或者某一标准翻译
else
{
var beforeValue = itemDic[needTranslateProperty.Name]?.ToString();
itemDic[needTranslateProperty.Name] = translateDataList[needTranslateProperty.DicParentCode].Where(t => t.Code.ToLower() == beforeValue?.ToLower()).FirstOrDefault()?.ValueCN ?? String.Empty;
itemDic[needTranslateProperty.Name] = translateDataList[needTranslateProperty.DicParentCode].Where(t => t.Code.ToLower() == beforeValue?.ToLower()).FirstOrDefault()?.ValueCN ?? String.Empty;
}
}