|  |  | 
 |  |  | 锘縰sing OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup; | 
 |  |  | using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; | 
 |  |  | using SqlSugar; | 
 |  |  | using System; | 
 |  |  | using System.Collections.Generic; | 
 |  |  | 
 |  |  | using WIDESEA_Core.DB; | 
 |  |  | using WIDESEA_Core.Enums; | 
 |  |  | using WIDESEA_Core.Seed; | 
 |  |  | using WIDESEA_Core.Utilities; | 
 |  |  |  | 
 |  |  | namespace WIDESEA_Core.Helper | 
 |  |  | { | 
 |  |  | 
 |  |  |                                     AnalysisItemRuleAttribute? analysisItemRule = propertyInfo.GetCustomAttribute<AnalysisItemRuleAttribute>(); | 
 |  |  |                                     if (analysisItemRule != null) | 
 |  |  |                                     { | 
 |  |  |                                         int index = items.IndexOf($"[{analysisItemRule.AnalysisFormaType}]"); | 
 |  |  |                                         if (index != -1) | 
 |  |  |                                             propertyInfo.SetValue(result, codes[index]); | 
 |  |  |                                         if (analysisItemRule.AnalysisFormaType == AnalysisFormatTypeEnum.BD) | 
 |  |  |                                         { | 
 |  |  |                                             propertyInfo.SetValue(result, code.ChangeType(propertyInfo.PropertyType)); | 
 |  |  |                                         } | 
 |  |  |                                         else | 
 |  |  |                                         { | 
 |  |  |                                             int index = items.IndexOf($"[{analysisItemRule.AnalysisFormaType}]"); | 
 |  |  |                                             if (index != -1) | 
 |  |  |                                             { | 
 |  |  |                                                 propertyInfo.SetValue(result, codes[index]); | 
 |  |  |                                             } | 
 |  |  |                                             else | 
 |  |  |                                             { | 
 |  |  |                                                 string? codeItem = items.FirstOrDefault(x => x.Contains($"[{analysisItemRule.AnalysisFormaType}]")); | 
 |  |  |                                                 if (!string.IsNullOrEmpty(codeItem)) | 
 |  |  |                                                 { | 
 |  |  |                                                     index = items.IndexOf(codeItem); | 
 |  |  |                                                     if (index != -1) | 
 |  |  |                                                     { | 
 |  |  |                                                         string value = codes[index]; | 
 |  |  |                                                         string replaceStr = codeItem.Replace($"[{analysisItemRule.AnalysisFormaType}]", ""); | 
 |  |  |  | 
 |  |  |                                                         propertyInfo.SetValue(result, value.Replace(replaceStr, "").ChangeType(propertyInfo.PropertyType)); | 
 |  |  |                                                     } | 
 |  |  |                                                 } | 
 |  |  |                                             } | 
 |  |  |                                         } | 
 |  |  |                                     } | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             catch (Exception ex) | 
 |  |  |             { | 
 |  |  |  | 
 |  |  |                 throw new Exception($"瑙f瀽閿欒,{ex.Message}"); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             (bool, string, object?) validateResult = ModelValidate.ValidateModelData(result, type); | 
 |  |  |             if (!validateResult.Item1) | 
 |  |  |             { | 
 |  |  |                 throw new Exception($"瑙f瀽閿欒,{validateResult.Item2}"); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             return result; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  | 
 |  |  |         { | 
 |  |  |             Type type = typeof(T); | 
 |  |  |             List<T> list = new List<T>(); | 
 |  |  |              | 
 |  |  |  | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 AnalysisRuleAttribute? analysisRule = type.GetCustomAttribute<AnalysisRuleAttribute>(); | 
 |  |  | 
 |  |  |                                         AnalysisItemRuleAttribute? analysisItemRule = propertyInfo.GetCustomAttribute<AnalysisItemRuleAttribute>(); | 
 |  |  |                                         if (analysisItemRule != null) | 
 |  |  |                                         { | 
 |  |  |                                             if(analysisItemRule.AnalysisFormaType == AnalysisFormatTypeEnum.BD) | 
 |  |  |                                             if (analysisItemRule.AnalysisFormaType == AnalysisFormatTypeEnum.BD) | 
 |  |  |                                             { | 
 |  |  |                                                 propertyInfo.SetValue(result, code.ChangeType(propertyInfo.PropertyType)); | 
 |  |  |                                             } | 
 |  |  | 
 |  |  |                                             { | 
 |  |  |                                                 int index = items.IndexOf($"[{analysisItemRule.AnalysisFormaType}]"); | 
 |  |  |                                                 if (index != -1) | 
 |  |  |                                                     propertyInfo.SetValue(result, codes[index].ChangeType(propertyInfo.PropertyType)); | 
 |  |  |                                                 { | 
 |  |  |                                                     propertyInfo.SetValue(result, codes[index]); | 
 |  |  |                                                 } | 
 |  |  |                                                 else | 
 |  |  |                                                 { | 
 |  |  |                                                     string? codeItem = items.FirstOrDefault(x => x.Contains($"[{analysisItemRule.AnalysisFormaType}]")); | 
 |  |  |                                                     if (!string.IsNullOrEmpty(codeItem)) | 
 |  |  |                                                     { | 
 |  |  |                                                         index = items.IndexOf(codeItem); | 
 |  |  |                                                         if (index != -1) | 
 |  |  |                                                         { | 
 |  |  |                                                             string value = codes[index]; | 
 |  |  |                                                             string replaceStr = codeItem.Replace($"[{analysisItemRule.AnalysisFormaType}]", ""); | 
 |  |  |  | 
 |  |  |                                                             propertyInfo.SetValue(result, value.Replace(replaceStr, "").ChangeType(propertyInfo.PropertyType)); | 
 |  |  |                                                         } | 
 |  |  |                                                     } | 
 |  |  |                                                 } | 
 |  |  |                                             } | 
 |  |  |                                              | 
 |  |  |                                         } | 
 |  |  |                                     } | 
 |  |  |                                 } |