修改导表 5
	
		
			
	
		
	
	
		
			
				
	
				continuous-integration/drone/push Build is passing
				
					Details
				
			
		
	
				
					
				
			
				
	
				continuous-integration/drone/push Build is passing
				
					Details
				
			
		
	
							parent
							
								
									e4b20908dc
								
							
						
					
					
						commit
						98ea3d1a92
					
				| 
						 | 
				
			
			@ -15,6 +15,7 @@ using Newtonsoft.Json.Linq;
 | 
			
		|||
using NPOI.HSSF.UserModel;
 | 
			
		||||
using NPOI.XSSF.UserModel;
 | 
			
		||||
using SkiaSharp;
 | 
			
		||||
using System.Collections;
 | 
			
		||||
using System.IO;
 | 
			
		||||
 | 
			
		||||
namespace IRaCIS.Core.Application.Service;
 | 
			
		||||
| 
						 | 
				
			
			@ -51,21 +52,24 @@ public static class ExcelExportHelper
 | 
			
		|||
            var translateDataList = await _dictionaryService.GetBasicDataSelect(needTranslatePropertyList.Select(t => t.DicParentCode).Distinct().ToArray());
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            var dic = (JsonConvert.DeserializeObject<IDictionary<string, object>>(data.ToJsonNotIgnoreNull())).IfNullThrowException();
 | 
			
		||||
            var dic = data.ConvertToDictionary();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            foreach (var key in dic.Keys)
 | 
			
		||||
            {
 | 
			
		||||
                //是数组 那么找到对应的属性 进行翻译
 | 
			
		||||
                if (dic[key].GetType().IsAssignableFrom(typeof(JArray)))
 | 
			
		||||
                if (dic[key].GetType().GetInterfaces().Any(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(IList<>)))
 | 
			
		||||
                {
 | 
			
		||||
 | 
			
		||||
                    var newObjList = new List<object>();
 | 
			
		||||
                    var no = 1;
 | 
			
		||||
 | 
			
		||||
                    foreach (var item in dic[key] as JArray)
 | 
			
		||||
                    foreach (var item in dic[key] as IList )
 | 
			
		||||
                    {
 | 
			
		||||
                        var itemDic = JsonConvert.DeserializeObject<IDictionary<string, object>>(item.ToJsonNotIgnoreNull());
 | 
			
		||||
                        //var itemDic = JsonConvert.DeserializeObject<IDictionary<string, object>>(item.ToJsonNotIgnoreNull());
 | 
			
		||||
 | 
			
		||||
                        var itemDic = item.ConvertToDictionary();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                        foreach (var needTranslateProperty in needTranslatePropertyList)
 | 
			
		||||
| 
						 | 
				
			
			@ -73,7 +77,7 @@ public static class ExcelExportHelper
 | 
			
		|||
                            //翻译的属性依赖其他属性
 | 
			
		||||
                            if (needTranslateProperty.IsTranslateDenpendOtherProperty)
 | 
			
		||||
                            {
 | 
			
		||||
                                if (item[needTranslateProperty.DependPropertyName]?.ToString().ToLower() == needTranslateProperty.DependPropertyValueStr.ToLower())
 | 
			
		||||
                                if (itemDic[needTranslateProperty.DependPropertyName]?.ToString().ToLower() == needTranslateProperty.DependPropertyValueStr.ToLower())
 | 
			
		||||
                                {
 | 
			
		||||
                                    var beforeValue = itemDic[needTranslateProperty.Name]?.ToString();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -227,29 +231,30 @@ public static class ExcelExportHelper
 | 
			
		|||
 | 
			
		||||
            var translateDataList = await _dictionaryService.GetBasicDataSelect(needTranslatePropertyList.Select(t => t.DicParentCode).Distinct().ToArray());
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            var dic = (JsonConvert.DeserializeObject<IDictionary<string, object>>(data.ToJsonNotIgnoreNull())).IfNullThrowException();
 | 
			
		||||
            var dic = data.ConvertToDictionary();
 | 
			
		||||
            //var dic = (JsonConvert.DeserializeObject<IDictionary<string, object>>(data.ToJsonNotIgnoreNull())).IfNullThrowException();
 | 
			
		||||
 | 
			
		||||
            foreach (var key in dic.Keys)
 | 
			
		||||
            {
 | 
			
		||||
                //是数组 那么找到对应的属性 进行翻译
 | 
			
		||||
                if (dic[key].GetType().IsAssignableFrom(typeof(JArray)))
 | 
			
		||||
                if (dic[key].GetType().GetInterfaces().Any(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(IList<>)))
 | 
			
		||||
                //if (dic[key].GetType().IsAssignableFrom(typeof(JArray)))
 | 
			
		||||
                {
 | 
			
		||||
 | 
			
		||||
                    var newObjList = new List<object>();
 | 
			
		||||
                    var no = 1;
 | 
			
		||||
 | 
			
		||||
                    foreach (var item in dic[key] as JArray)
 | 
			
		||||
                    foreach (var item in dic[key] as IList)
 | 
			
		||||
                    //foreach (var item in dic[key] as JArray)
 | 
			
		||||
                    {
 | 
			
		||||
                        var itemDic = JsonConvert.DeserializeObject<IDictionary<string, object>>(item.ToJsonNotIgnoreNull());
 | 
			
		||||
 | 
			
		||||
                        //var itemDic = JsonConvert.DeserializeObject<IDictionary<string, object>>(item.ToJsonNotIgnoreNull());
 | 
			
		||||
                        var itemDic = item.ConvertToDictionary();
 | 
			
		||||
 | 
			
		||||
                        foreach (var needTranslateProperty in needTranslatePropertyList)
 | 
			
		||||
                        {
 | 
			
		||||
                            //翻译的属性依赖其他属性
 | 
			
		||||
                            if (needTranslateProperty.IsTranslateDenpendOtherProperty)
 | 
			
		||||
                            {
 | 
			
		||||
                                if (item[needTranslateProperty.DependPropertyName]?.ToString().ToLower() == needTranslateProperty.DependPropertyValueStr.ToLower())
 | 
			
		||||
                                if (itemDic[needTranslateProperty.DependPropertyName]?.ToString().ToLower() == needTranslateProperty.DependPropertyValueStr.ToLower())
 | 
			
		||||
                                {
 | 
			
		||||
                                    var beforeValue = itemDic[needTranslateProperty.Name]?.ToString();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,7 @@
 | 
			
		|||
using Newtonsoft.Json;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
 | 
			
		||||
namespace IRaCIS.Core.Infrastructure.Extention
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -38,7 +40,30 @@ namespace IRaCIS.Core.Infrastructure.Extention
 | 
			
		|||
		public static string ToJsonNotIgnoreNull(this object obj)
 | 
			
		||||
		{
 | 
			
		||||
 | 
			
		||||
			return JsonConvert.SerializeObject(obj, new JsonSerializerSettings { DateFormatString = "yyyy-MM-dd HH:mm:ss", ReferenceLoopHandling = ReferenceLoopHandling.Ignore, NullValueHandling = NullValueHandling.Include });
 | 
			
		||||
			return JsonConvert.SerializeObject(obj, new JsonSerializerSettings { DateFormatString = "yyyy-MM-dd HH:mm:ss", Formatting = Formatting.Indented, ReferenceLoopHandling = ReferenceLoopHandling.Ignore, NullValueHandling = NullValueHandling.Include });
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
		public static  Dictionary<string, object> ConvertToDictionary(this object obj)
 | 
			
		||||
        {
 | 
			
		||||
            if (obj == null)
 | 
			
		||||
            {
 | 
			
		||||
                throw new ArgumentNullException(nameof(obj));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            Type type = obj.GetType();
 | 
			
		||||
            PropertyInfo[] properties = type.GetProperties();
 | 
			
		||||
 | 
			
		||||
            Dictionary<string, object> dictionary = new Dictionary<string, object>();
 | 
			
		||||
 | 
			
		||||
            foreach (PropertyInfo property in properties)
 | 
			
		||||
            {
 | 
			
		||||
                string propertyName = property.Name;
 | 
			
		||||
                object propertyValue = property.GetValue(obj);
 | 
			
		||||
 | 
			
		||||
                dictionary.Add(propertyName, propertyValue);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return dictionary;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue