动态移动表格+动态删除指定列
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
fd3fc0ea03
commit
f1be4eaf5f
|
@ -199,29 +199,45 @@ public static class ExcelExportHelper
|
||||||
|
|
||||||
public class DynamicColumnConfig
|
public class DynamicColumnConfig
|
||||||
{
|
{
|
||||||
//标题动态修改的行 从0 开始算
|
/// <summary>
|
||||||
|
/// 增加动态列开始索引 从0 开始算
|
||||||
|
/// </summary>
|
||||||
public int AutoColumnStartIndex { get; set; }
|
public int AutoColumnStartIndex { get; set; }
|
||||||
|
|
||||||
//动态列开始的index 从0开始
|
/// <summary>
|
||||||
public int AutoColumnRowIndex { get; set; }
|
/// 动态列开始的行index 从0开始
|
||||||
|
/// </summary>
|
||||||
|
public int AutoColumnTitleRowIndex { get; set; }
|
||||||
|
|
||||||
//动态列后面还有几列数据
|
|
||||||
public int BackMoveCount { get; set; }
|
|
||||||
|
|
||||||
//动态的列名
|
public int TempalteLastColumnIndex { get; set; }
|
||||||
public List<string> ColumnNameList { get; set; }
|
|
||||||
|
|
||||||
//动态翻译的字典名
|
/// <summary>
|
||||||
public List<string> TranslateDicNameList { get; set; }
|
/// 动态的列名
|
||||||
|
/// </summary>
|
||||||
|
public List<string> ColumnNameList { get; set; } = new List<string>();
|
||||||
|
|
||||||
//动态取数据的集合名
|
/// <summary>
|
||||||
|
/// 动态翻译的字典名
|
||||||
|
/// </summary>
|
||||||
|
public List<string> TranslateDicNameList { get; set; } = new List<string>();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 动态取数据的集合名
|
||||||
|
/// </summary>
|
||||||
public string DynamicListName { get; set; }
|
public string DynamicListName { get; set; }
|
||||||
|
|
||||||
|
|
||||||
//动态数据翻译的取字典的属性名
|
/// <summary>
|
||||||
|
/// 动态数据翻译的取字典的属性名
|
||||||
|
/// </summary>
|
||||||
public string DynamicItemDicName { get; set; }
|
public string DynamicItemDicName { get; set; }
|
||||||
//取值的属性名
|
/// <summary>
|
||||||
|
/// 取值的属性名
|
||||||
|
/// </summary>
|
||||||
public string DynamicItemValueName { get; set; }
|
public string DynamicItemValueName { get; set; }
|
||||||
|
|
||||||
|
public List<int> RemoveColunmIndexList { get; set; } = new List<int>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -355,37 +371,84 @@ public static class ExcelExportHelper
|
||||||
{
|
{
|
||||||
var sheet = workbook.GetSheetAt(0);
|
var sheet = workbook.GetSheetAt(0);
|
||||||
|
|
||||||
var row = sheet.GetRow(dynamicColumnConfig.AutoColumnRowIndex);
|
var titelRow = sheet.GetRow(dynamicColumnConfig.AutoColumnTitleRowIndex);
|
||||||
var templateRow = sheet.GetRow(dynamicColumnConfig.AutoColumnRowIndex + 1);
|
var templateRow = sheet.GetRow(dynamicColumnConfig.AutoColumnTitleRowIndex + 1);
|
||||||
|
|
||||||
|
//动态移除列的数量
|
||||||
|
var dynamicRemoveColunmCount = dynamicColumnConfig.RemoveColunmIndexList.Count();
|
||||||
|
|
||||||
|
var beforeDynamicRemoveCount = dynamicColumnConfig.RemoveColunmIndexList.Where(t => t < dynamicColumnConfig.AutoColumnStartIndex).Count();
|
||||||
|
|
||||||
|
//动态添加列的数量
|
||||||
var needAddCount = dynamicColumnConfig.ColumnNameList.Count;
|
var needAddCount = dynamicColumnConfig.ColumnNameList.Count;
|
||||||
|
|
||||||
var colunmAddIndex = dynamicColumnConfig.AutoColumnStartIndex + dynamicColumnConfig.BackMoveCount;
|
//原始表 最终索引
|
||||||
|
var originTotalEndIndex = dynamicColumnConfig.TempalteLastColumnIndex;
|
||||||
|
|
||||||
|
var originRemoveEndIndex= originTotalEndIndex- dynamicRemoveColunmCount;
|
||||||
|
|
||||||
|
//最终表 动态列开始索引
|
||||||
|
var dynamicColunmStartIndex = dynamicColumnConfig.AutoColumnStartIndex - beforeDynamicRemoveCount;
|
||||||
|
|
||||||
|
//最终表 动态列的终止索引
|
||||||
|
var dynamicColunmEndIndex = dynamicColunmStartIndex + needAddCount - 1;
|
||||||
|
|
||||||
|
//最终表 最终索引
|
||||||
|
var totalColunmEndIndex = originTotalEndIndex + needAddCount - dynamicRemoveColunmCount;
|
||||||
|
|
||||||
|
|
||||||
|
//动态列后需要移动的数量
|
||||||
|
var backMoveCount = totalColunmEndIndex - dynamicColunmEndIndex;
|
||||||
|
|
||||||
|
//删除需要动态删除的列 从大到小移除,否则索引会变
|
||||||
|
foreach (var removeIndex in dynamicColumnConfig.RemoveColunmIndexList.OrderByDescending(t => t))
|
||||||
|
{
|
||||||
|
//将后面的列向前移动
|
||||||
|
for (var i = 0; i < originTotalEndIndex - removeIndex; i++)
|
||||||
|
{
|
||||||
|
Console.WriteLine(titelRow.GetCell(removeIndex + i + 1).StringCellValue);
|
||||||
|
titelRow.GetCell(removeIndex + i).SetCellValue(titelRow.GetCell(removeIndex + i + 1).StringCellValue);
|
||||||
|
templateRow.GetCell(removeIndex + i).SetCellValue(templateRow.GetCell(removeIndex + i + 1).StringCellValue);
|
||||||
|
|
||||||
|
//后面的数据要清空
|
||||||
|
titelRow.GetCell(removeIndex + i + 1).SetCellValue("");
|
||||||
|
templateRow.GetCell(removeIndex + i + 1).SetCellValue("");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
//创建新的列
|
//创建新的列
|
||||||
for (int i = 0; i < needAddCount; i++)
|
for (int i = originTotalEndIndex; i < originTotalEndIndex + needAddCount; i++)
|
||||||
{
|
{
|
||||||
row.CreateCell(i + colunmAddIndex);
|
titelRow.CreateCell(i + 1);
|
||||||
}
|
}
|
||||||
//移动Title 和下面的模板标识
|
//移动Title 和下面的模板标识
|
||||||
|
|
||||||
for (int i = colunmAddIndex + needAddCount; i < colunmAddIndex; i--)
|
var gap = totalColunmEndIndex - originRemoveEndIndex;
|
||||||
{
|
|
||||||
row.GetCell(i).SetCellValue(row.GetCell(i - needAddCount).StringCellValue);
|
|
||||||
|
|
||||||
templateRow.GetCell(i).SetCellValue(templateRow.GetCell(i - needAddCount).StringCellValue);
|
for (int i = totalColunmEndIndex; i > dynamicColunmEndIndex; i--)
|
||||||
|
{
|
||||||
|
|
||||||
|
titelRow.GetCell(i).SetCellValue(titelRow.GetCell(i - gap).StringCellValue);
|
||||||
|
|
||||||
|
templateRow.GetCell(i).SetCellValue(templateRow.GetCell(i - gap).StringCellValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//设置动态Tilte
|
//设置动态Tilte
|
||||||
|
|
||||||
for (int i = dynamicColumnConfig.AutoColumnStartIndex; i < dynamicColumnConfig.AutoColumnStartIndex + needAddCount; i++)
|
for (int i = dynamicColunmStartIndex; i < dynamicColunmStartIndex + needAddCount; i++)
|
||||||
{
|
{
|
||||||
var name = dynamicColumnConfig.ColumnNameList[i - dynamicColumnConfig.AutoColumnStartIndex];
|
var name = dynamicColumnConfig.ColumnNameList[i - dynamicColunmStartIndex];
|
||||||
row.GetCell(i).SetCellValue(name);
|
|
||||||
|
titelRow.GetCell(i).SetCellValue(name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
using (var memoryStream2 = new MemoryStream())
|
||||||
var memoryStream2 = new MemoryStream();
|
{
|
||||||
workbook.Write(memoryStream2, true);
|
workbook.Write(memoryStream2, true);
|
||||||
|
|
||||||
memoryStream2.Seek(0, SeekOrigin.Begin);
|
memoryStream2.Seek(0, SeekOrigin.Begin);
|
||||||
|
@ -393,6 +456,9 @@ public static class ExcelExportHelper
|
||||||
templateStream = memoryStream2;
|
templateStream = memoryStream2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region MiniExcel
|
#region MiniExcel
|
||||||
|
@ -408,7 +474,6 @@ public static class ExcelExportHelper
|
||||||
|
|
||||||
memoryStream.Seek(0, SeekOrigin.Begin);
|
memoryStream.Seek(0, SeekOrigin.Begin);
|
||||||
|
|
||||||
|
|
||||||
if (dynamicColumnConfig != null)
|
if (dynamicColumnConfig != null)
|
||||||
{
|
{
|
||||||
var dynamicTranslateDataList = await _dictionaryService.GetBasicDataSelect(dynamicColumnConfig.TranslateDicNameList.ToArray());
|
var dynamicTranslateDataList = await _dictionaryService.GetBasicDataSelect(dynamicColumnConfig.TranslateDicNameList.ToArray());
|
||||||
|
@ -424,19 +489,21 @@ public static class ExcelExportHelper
|
||||||
var index = list.IndexOf(itemResult);
|
var index = list.IndexOf(itemResult);
|
||||||
|
|
||||||
//从第四行开始处理动态列
|
//从第四行开始处理动态列
|
||||||
var row = sheet.GetRow(index + dynamicColumnConfig.AutoColumnRowIndex + 1);
|
var row = sheet.GetRow(index + dynamicColumnConfig.AutoColumnTitleRowIndex + 1);
|
||||||
|
|
||||||
var itemDic = itemResult.ConvertToDictionary();
|
var itemDic = itemResult.ToDictionary();
|
||||||
|
|
||||||
var itemList = itemDic[dynamicColumnConfig.DynamicListName] as IList;
|
var itemList = itemDic[dynamicColumnConfig.DynamicListName] as IList;
|
||||||
|
|
||||||
foreach (var item in itemList)
|
foreach (var itemObj in itemList)
|
||||||
{
|
{
|
||||||
var writeIndex = itemList.IndexOf(item) + dynamicColumnConfig.AutoColumnStartIndex;
|
var writeIndex = itemList.IndexOf(itemObj) + dynamicColumnConfig.AutoColumnStartIndex;
|
||||||
|
|
||||||
|
var iteObjDic = itemObj.ToDictionary();
|
||||||
|
|
||||||
|
var itemDicName = iteObjDic[dynamicColumnConfig.DynamicItemDicName].ToString();
|
||||||
|
var itemValue = iteObjDic[dynamicColumnConfig.DynamicItemValueName].ToString();
|
||||||
|
|
||||||
var itemDicName = itemDic[dynamicColumnConfig.DynamicItemDicName].ToString();
|
|
||||||
var itemValue = itemDic[dynamicColumnConfig.DynamicItemValueName].ToString();
|
|
||||||
if (itemDicName.IsNotNullOrEmpty())
|
if (itemDicName.IsNotNullOrEmpty())
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -458,6 +525,7 @@ public static class ExcelExportHelper
|
||||||
memoryStream2.Seek(0, SeekOrigin.Begin);
|
memoryStream2.Seek(0, SeekOrigin.Begin);
|
||||||
|
|
||||||
memoryStream = memoryStream2;
|
memoryStream = memoryStream2;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -57,6 +57,41 @@
|
||||||
<param name="criterionType"></param>
|
<param name="criterionType"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.ExcelExportHelper.DynamicColumnConfig.AutoColumnStartIndex">
|
||||||
|
<summary>
|
||||||
|
增加动态列开始索引 从0 开始算
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.ExcelExportHelper.DynamicColumnConfig.AutoColumnTitleRowIndex">
|
||||||
|
<summary>
|
||||||
|
动态列开始的行index 从0开始
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.ExcelExportHelper.DynamicColumnConfig.ColumnNameList">
|
||||||
|
<summary>
|
||||||
|
动态的列名
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.ExcelExportHelper.DynamicColumnConfig.TranslateDicNameList">
|
||||||
|
<summary>
|
||||||
|
动态翻译的字典名
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.ExcelExportHelper.DynamicColumnConfig.DynamicListName">
|
||||||
|
<summary>
|
||||||
|
动态取数据的集合名
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.ExcelExportHelper.DynamicColumnConfig.DynamicItemDicName">
|
||||||
|
<summary>
|
||||||
|
动态数据翻译的取字典的属性名
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:IRaCIS.Core.Application.Service.ExcelExportHelper.DynamicColumnConfig.DynamicItemValueName">
|
||||||
|
<summary>
|
||||||
|
取值的属性名
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.ExcelExportHelper.ExportTemplateAsync(IRaCIS.Application.Contracts.ExportTemplateServiceDto)">
|
<member name="M:IRaCIS.Core.Application.Service.ExcelExportHelper.ExportTemplateAsync(IRaCIS.Application.Contracts.ExportTemplateServiceDto)">
|
||||||
<summary>
|
<summary>
|
||||||
导出文件模板
|
导出文件模板
|
||||||
|
|
|
@ -2077,12 +2077,14 @@ 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, BackMoveCount=3,
|
var dynamicColumnConfig = new DynamicColumnConfig() { AutoColumnTitleRowIndex = 2, AutoColumnStartIndex = 6,
|
||||||
DynamicItemDicName= "QuestionName",
|
TempalteLastColumnIndex = 8,
|
||||||
|
DynamicItemDicName = "TranslateDicName",
|
||||||
DynamicItemValueName = "QuestionValue",
|
DynamicItemValueName = "QuestionValue",
|
||||||
DynamicListName = "JudgeQuestionAnswerList",
|
DynamicListName = "JudgeQuestionAnswerList",
|
||||||
ColumnNameList = list.FirstOrDefault()?.JudgeQuestionAnswerList.Select(t => t.QuestionName).ToList(),
|
RemoveColunmIndexList = new List<int>() { 1, 7 },
|
||||||
TranslateDicNameList= list.FirstOrDefault()?.JudgeQuestionAnswerList.Select(t => t.TranslateDicName).ToList()
|
ColumnNameList = list.FirstOrDefault()?.JudgeQuestionAnswerList.Select(t => t.QuestionName).ToList() ?? new List<string>(),
|
||||||
|
TranslateDicNameList = list.FirstOrDefault()?.JudgeQuestionAnswerList.Select(t => t.TranslateDicName).ToList() ?? new List<string>()
|
||||||
};
|
};
|
||||||
|
|
||||||
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);
|
||||||
|
@ -2196,7 +2198,7 @@ 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() { AutoColumnTitleRowIndex = 2, AutoColumnStartIndex = 6, ColumnNameList = list.FirstOrDefault()?.JudgeQuestionAnswerList.Select(t => t.QuestionName).ToList() };
|
||||||
|
|
||||||
var (memoryStream, fileName) = await ExcelExportHelper.DataExport_NpoiTestAsync(StaticData.Export.CommonJudgeReadingDetail_Export, exportInfo, _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(CommonEvaluationExport), criterion.CriterionType, dynamicColumnConfig);
|
var (memoryStream, fileName) = await ExcelExportHelper.DataExport_NpoiTestAsync(StaticData.Export.CommonJudgeReadingDetail_Export, exportInfo, _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(CommonEvaluationExport), criterion.CriterionType, dynamicColumnConfig);
|
||||||
|
|
||||||
|
@ -2259,7 +2261,7 @@ 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()?.QuestionAnswerList.Select(t => t.QuestionName).ToList() };
|
var dynamicColumnConfig = new DynamicColumnConfig() { AutoColumnTitleRowIndex = 2, AutoColumnStartIndex = 6, ColumnNameList = list.FirstOrDefault()?.QuestionAnswerList.Select(t => t.QuestionName).ToList() };
|
||||||
|
|
||||||
var (memoryStream, fileName) = await ExcelExportHelper.DataExport_NpoiTestAsync(StaticData.Export.CommonReadingDetail_Export, exportInfo, _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(CommonEvaluationExport), criterion.CriterionType, dynamicColumnConfig);
|
var (memoryStream, fileName) = await ExcelExportHelper.DataExport_NpoiTestAsync(StaticData.Export.CommonReadingDetail_Export, exportInfo, _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(CommonEvaluationExport), criterion.CriterionType, dynamicColumnConfig);
|
||||||
|
|
||||||
|
|
|
@ -1149,6 +1149,7 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
|
|
||||||
|
|
||||||
//在当前访视触发裁判,或者在截止日期小于等于当前访视的阅片期触发裁判
|
//在当前访视触发裁判,或者在截止日期小于等于当前访视的阅片期触发裁判
|
||||||
|
[DictionaryTranslateAttribute("YesOrNo")]
|
||||||
public bool IsTrigerJudge { get; set; }
|
public bool IsTrigerJudge { get; set; }
|
||||||
|
|
||||||
//(如果是访视点裁判,则仅在所选阅片人对应访视 显示;如果是阅片期裁判,则在所选阅片人 阅片期内的所有访视 显示此原因)
|
//(如果是访视点裁判,则仅在所选阅片人对应访视 显示;如果是阅片期裁判,则在所选阅片人 阅片期内的所有访视 显示此原因)
|
||||||
|
|
|
@ -32,12 +32,23 @@ namespace IRaCIS.Core.Infrastructure.Extention
|
||||||
return JsonConvert.SerializeObject(obj, new JsonSerializerSettings { DateFormatString = "yyyy-MM-dd HH:mm:ss", ReferenceLoopHandling = ReferenceLoopHandling.Ignore, NullValueHandling = NullValueHandling.Ignore });
|
return JsonConvert.SerializeObject(obj, new JsonSerializerSettings { DateFormatString = "yyyy-MM-dd HH:mm:ss", ReferenceLoopHandling = ReferenceLoopHandling.Ignore, NullValueHandling = NullValueHandling.Ignore });
|
||||||
}
|
}
|
||||||
|
|
||||||
// 通过类型参数反序列化 JSON 字符串为指定类型的对象
|
/// <summary>
|
||||||
|
/// 通过类型参数反序列化 JSON 字符串为指定类型的对象
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="jsonStr"></param>
|
||||||
|
/// <param name="type"></param>
|
||||||
|
/// <returns></returns>
|
||||||
public static object JsonStrToObject(this string jsonStr, Type type)
|
public static object JsonStrToObject(this string jsonStr, Type type)
|
||||||
{
|
{
|
||||||
return JsonConvert.DeserializeObject(jsonStr, type);
|
return JsonConvert.DeserializeObject(jsonStr, type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static Dictionary<string, object> ToDictionary(this object obj)
|
||||||
|
{
|
||||||
|
var json = JsonConvert.SerializeObject(obj, new JsonSerializerSettings { DateFormatString = "yyyy-MM-dd HH:mm:ss", Formatting = Formatting.Indented, ReferenceLoopHandling = ReferenceLoopHandling.Ignore, NullValueHandling = NullValueHandling.Include });
|
||||||
|
return JsonConvert.DeserializeObject<Dictionary<string, object>>(json);
|
||||||
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 将对象序列化成稽查需要的Json字符串
|
/// 将对象序列化成稽查需要的Json字符串
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -64,9 +75,7 @@ namespace IRaCIS.Core.Infrastructure.Extention
|
||||||
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) )
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue