diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3acf3f3
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+.idea
+**/bin
+**/obj
+global.json
+
diff --git a/.idea/.idea.MasstransferExporter/.idea/vcs.xml b/.idea/.idea.MasstransferExporter/.idea/vcs.xml
index 6c0b863..94a25f7 100644
--- a/.idea/.idea.MasstransferExporter/.idea/vcs.xml
+++ b/.idea/.idea.MasstransferExporter/.idea/vcs.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/MasstransferCommon/MasstransferCommon.csproj b/MasstransferCommon/MasstransferCommon.csproj
new file mode 100644
index 0000000..4dccdb8
--- /dev/null
+++ b/MasstransferCommon/MasstransferCommon.csproj
@@ -0,0 +1,14 @@
+
+
+
+ net7.0
+ enable
+ enable
+
+
+
+
+
+
+
+
diff --git a/MasstransferCommon/Utils/BeanUtil.cs b/MasstransferCommon/Utils/BeanUtil.cs
new file mode 100644
index 0000000..0bbce97
--- /dev/null
+++ b/MasstransferCommon/Utils/BeanUtil.cs
@@ -0,0 +1,39 @@
+namespace MasstransferCommon.Utils;
+
+///
+/// bean 工具类
+///
+public class BeanUtil
+{
+ ///
+ /// 实现Bean的属性复制
+ ///
+ ///
+ ///
+ public static void CopyProperties(object source, object target)
+ {
+ var sourceProperties = source.GetType().GetProperties();
+ var targetProperties = target.GetType().GetProperties();
+
+ foreach (var sourceProperty in sourceProperties)
+ {
+ var targetProperty = Array.Find(targetProperties, p => p.Name == sourceProperty.Name &&
+ p.PropertyType == sourceProperty.PropertyType);
+
+ if (targetProperty != null && targetProperty.CanWrite)
+ targetProperty.SetValue(target, sourceProperty.GetValue(source));
+ }
+ }
+
+ public static T CopyProperties(object source)
+ {
+ var instance = Activator.CreateInstance();
+ CopyProperties(source, instance);
+ return instance;
+ }
+
+ public static List CopyProperties(IEnumerable