From 37454e625df68d40897112b2e8c2e3cf4d7163e3 Mon Sep 17 00:00:00 2001
From: heshaofeng <heshaofeng@hnkhzn.com>
Date: 星期三, 25 三月 2026 11:43:10 +0800
Subject: [PATCH] 1
---
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_Core/BaseRepository/RepositoryBase.cs | 87 +++++++++++++++++++------------------------
1 files changed, 39 insertions(+), 48 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_Core/BaseRepository/RepositoryBase.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_Core/BaseRepository/RepositoryBase.cs"
index 171d380..09541ce 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_Core/BaseRepository/RepositoryBase.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_Core/BaseRepository/RepositoryBase.cs"
@@ -873,7 +873,10 @@
{
Type type = entity.GetType();
Assembly assembly = type.Assembly;
- Type? htyType = assembly.GetType(type.FullName + "_Hty");
+
+ Type? htyType = assembly.GetTypes().FirstOrDefault(t => !t.IsInterface && !t.IsAbstract && type.IsAssignableFrom(t) && typeof(IBaseHistoryEntity).IsAssignableFrom(t));
+
+ //assembly.GetType(type.FullName + "_Hty");
if (htyType != null)
{
object? obj = Activator.CreateInstance(htyType);
@@ -892,16 +895,12 @@
PropertyInfo propertyInfo = propertyInfos[i];
PropertyInfo? property = type.GetProperty(propertyInfo.Name);
- if (property != null)
+ if (property != null && property.CanWrite)
{
if (propertyInfo.Name == nameof(BaseEntity.Modifier))
{
propertyInfo.SetValue(obj, App.User.UserId > 0 ? App.User.UserName : "System");
}
- else if (propertyInfo.Name == nameof(BaseEntity.ModifyDate))
- {
- propertyInfo.SetValue(obj, DateTime.Now);
- }
else
{
propertyInfo.SetValue(obj, property.GetValue(entity));
@@ -909,70 +908,62 @@
}
}
if (obj != null)
- _db.InsertableByObject(obj).AS(type.Name + "_Hty").ExecuteCommand();
+ _db.InsertableByObject(obj).AS(htyType.Name).ExecuteCommand();
}
}
return DeleteData(entity);
-
+
}
+
public bool DeleteAndMoveIntoHty(List<TEntity> entities, OperateTypeEnum operateType)
{
Type type = typeof(TEntity);
Assembly assembly = type.Assembly;
- Type? htyType = assembly.GetType(type.FullName + "_Hty");
+
+ Type? htyType = assembly.GetTypes().FirstOrDefault(t => !t.IsInterface && !t.IsAbstract && type.IsAssignableFrom(t) && typeof(IBaseHistoryEntity).IsAssignableFrom(t));
if (htyType != null)
{
- object? obj2 = Activator.CreateInstance(htyType);
- PropertyInfo keyPro = typeof(TEntity).GetKeyProperty();
- PropertyInfo? operateTypePro = htyType.GetProperty(nameof(IBaseHistoryEntity.OperateType));
- PropertyInfo? sourceIdPro = htyType.GetProperty(nameof(IBaseHistoryEntity.SourceId));
- if (obj2 != null && keyPro != null && operateTypePro != null && sourceIdPro != null)
+ List<object> list = new List<object>();
+ foreach (var item in entities)
{
- List<PropertyInfo> propertyInfos = htyType.GetProperties().Where(x => x.Name != operateTypePro.Name && x.Name != sourceIdPro.Name && x.Name != keyPro.Name).ToList();
- List<object> list = new List<object>();
- foreach (var item in entities)
+ object? obj = Activator.CreateInstance(htyType);
+ PropertyInfo keyPro = typeof(TEntity).GetKeyProperty();
+ PropertyInfo? operateTypePro = htyType.GetProperty(nameof(IBaseHistoryEntity.OperateType));
+ PropertyInfo? sourceIdPro = htyType.GetProperty(nameof(IBaseHistoryEntity.SourceId));
+ if (obj != null && keyPro != null && operateTypePro != null && sourceIdPro != null)
{
- object? obj = Activator.CreateInstance(htyType);
- if (obj != null)
- {
- operateTypePro.SetValue(obj, operateType.ToString());
- sourceIdPro.SetValue(obj, keyPro.GetValue(item));
- for (int i = 0; i < propertyInfos.Count; i++)
- {
- PropertyInfo propertyInfo = propertyInfos[i];
- PropertyInfo? property = type.GetProperty(propertyInfo.Name);
+ operateTypePro.SetValue(obj, operateType.ToString());
+ sourceIdPro.SetValue(obj, keyPro.GetValue(item));
- if (property != null)
+ List<PropertyInfo> propertyInfos = htyType.GetProperties().Where(x => x.Name != operateTypePro.Name && x.Name != sourceIdPro.Name && x.Name != keyPro.Name).ToList();
+
+ for (int i = 0; i < propertyInfos.Count; i++)
+ {
+ PropertyInfo propertyInfo = propertyInfos[i];
+ PropertyInfo? property = type.GetProperty(propertyInfo.Name);
+
+ if (property != null && property.CanWrite)
+ {
+ if (propertyInfo.Name == nameof(BaseEntity.Modifier))
{
- if (propertyInfo.Name == nameof(BaseEntity.Modifier))
- {
- propertyInfo.SetValue(obj, App.User.UserId > 0 ? App.User.UserName : "System");
- }
- else if (propertyInfo.Name == nameof(BaseEntity.ModifyDate))
- {
- propertyInfo.SetValue(obj, DateTime.Now);
- }
- else
- {
- propertyInfo.SetValue(obj, property.GetValue(item));
- }
+ propertyInfo.SetValue(obj, App.User.UserId > 0 ? App.User.UserName : "System");
+ }
+ else
+ {
+ propertyInfo.SetValue(obj, property.GetValue(item));
}
}
- list.Add(obj);
}
- }
- if (list.Count > 0)
- _db.InsertableByObject(list).AS(type.Name + "_Hty").ExecuteCommand();
+ list.Add(obj);
+ }
}
+
+ if (list != null && list.Any())
+ _db.InsertableByObject(list).AS(htyType.Name).ExecuteCommand();
}
return DeleteData(entities);
}
- //List<TResult> QueryMuch<T, T2, T3, TResult>(
- // Expression<Func<T, T2, T3, object[]>> joinExpression,
- // Expression<Func<T, T2, T3, TResult>> selectExpression,
- // Expression<Func<T, T2, T3, bool>> whereLambda = null) where T : class, new(){throw new NotImplementedException();}
- //Task<PageModel<TEntity>> QueryPage(PaginationModel pagination){throw new NotImplementedException();}
}
}
--
Gitblit v1.9.3