Browse Source

fix: 导出excel动态类字段生成按帕斯卡命名法

xf 11 months ago
parent
commit
af801813d4

+ 6 - 2
src/Hotline.Share/Dtos/Order/OrderDto.cs

@@ -425,14 +425,18 @@ namespace Hotline.Share.Dtos.Order
         public string? RecordingBaseAddress { get; set; }
         public string? RecordingAbsolutePath { get; set; }
 
-        public int? ReTransactNum { get; set; }
+        public int ReTransactNum { get; set; }
 
         /// <summary>
         /// 敏感标签
         /// </summary>
         public List<string>? Sensitive { get; set; }
 
-	}
+        public string? SensitiveText => string.Join(',', Sensitive);
+
+        public string IsProvinceText => IsProvince ? "省工单" : "市工单";
+
+    }
 
     public class UpdateOrderDto : AddOrderDto
     {

+ 2 - 1
src/Hotline/Tools/DynamicClassHelper.cs

@@ -3,6 +3,7 @@ using System.Reflection.Emit;
 using Hotline.Share.Dtos;
 using Hotline.Share.Dtos.Order;
 using MiniExcelLibs.Attributes;
+using XF.Domain.Extensions;
 
 namespace Hotline.Tools;
 
@@ -18,7 +19,7 @@ public class DynamicClassHelper
 
         foreach (var property in propInfos)
         {
-            var propertyName = property.Prop.Trim().Replace(".", "");
+            var propertyName = property.Prop.Trim().Replace(".", "").UpperFirstChar();
             var propertyType = typeof(string);
 
             FieldBuilder fieldBuilder = typeBuilder.DefineField("_" + propertyName, propertyType, FieldAttributes.Private);

+ 15 - 0
src/XF.Domain/Extensions/StringExtensions.cs

@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
+using System.Text.RegularExpressions;
 using System.Threading.Tasks;
 
 namespace XF.Domain.Extensions
@@ -10,6 +11,8 @@ namespace XF.Domain.Extensions
     {
         public static string ToSnakeCase(this string name)
         {
+            if (string.IsNullOrEmpty(name))
+                throw new ArgumentNullException(nameof(name));
             var sb = new StringBuilder();
             sb.Append(char.ToLower(name[0]));
             for (int i = 1; i < name.Length; i++)
@@ -26,5 +29,17 @@ namespace XF.Domain.Extensions
             }
             return sb.ToString();
         }
+
+        public static string UpperFirstChar(this string str)
+        {
+            if(string.IsNullOrEmpty(str))
+                throw new ArgumentNullException(nameof(str));
+            var firstChar = str[0];
+            if (char.IsUpper(firstChar))
+                return str;
+            firstChar = char.ToUpper(firstChar);
+            str = str.Remove(0, 1);
+            return str.Insert(0,firstChar.ToString());
+        }
     }
 }