赵新宇 2 weeks ago
parent
commit
f67df0a5d8
  1. 8
      API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs
  2. 8
      API/Wood.Service/Controllers/CheryRecurringJobOutPageController.cs
  3. 8
      API/Wood.Service/Controllers/NormalBaseController.cs
  4. 22
      API/Wood.Service/Controllers/TaskSubService.cs
  5. 47
      API/Wood.Util/CommonHelper.cs

8
API/Wood.Service/Controllers/CheryRecurringJobInputPageController.cs

@ -247,15 +247,15 @@ namespace TaskManager.Controllers
{
throw new Exception("更新时,实体主键UId不能为空或0");
}
var _first = await _repository.GetByIdAsync(entity.UId);
if (_first == null)
var target = await _repository.GetByIdAsync(entity.UId);
if (target == null)
{
throw new Exception($"CheryRecurringJobInputPageController.Update报错:根据UId{entity.UId}没有找到记录");
return new JsonResult(new { Code = 400, Message = "修改失败!" });
}
EntityMapper.Trans(_first, entity, "UId");
EntityMapper.Trans(entity, target, "UId");
await _repository.UpdateAsync(_first);
await _repository.UpdateAsync(target);
return new JsonResult(new { Code = 200, Message = "修改成功!" });
}

8
API/Wood.Service/Controllers/CheryRecurringJobOutPageController.cs

@ -405,15 +405,15 @@ namespace TaskManager.Controllers
{
throw new Exception("更新时,实体主键UId不能为空或0");
}
var _first = await _repository.GetByIdAsync(entity.UId);
if (_first == null)
var target = await _repository.GetByIdAsync(entity.UId);
if (target == null)
{
throw new Exception($"CheryRecurringJobOutPageController.Update报错:根据UId{entity.UId}没有找到记录");
return new JsonResult(new { Code = 400, Message = "修改失败!" });
}
EntityMapper.Trans(_first, entity, "UId");
EntityMapper.Trans(entity, target, "UId");
await _repository.UpdateAsync(_first);
await _repository.UpdateAsync(target);
return new JsonResult(new { Code = 200, Message = "修改成功!" });
}
/// <summary>

8
API/Wood.Service/Controllers/NormalBaseController.cs

@ -82,15 +82,15 @@ namespace Wood.Service.Controllers
{
throw new Exception("更新时,实体主键UId不能为空或0");
}
var _first = await _repository.GetByIdAsync(entity.UId);
if (_first == null)
var target = await _repository.GetByIdAsync(entity.UId);
if (target == null)
{
throw new Exception($"NormalBaseController.Update报错:根据UId{entity.UId}没有找到记录");
return new JsonResult(new { Code = 400, Message = "修改失败!" });
}
EntityMapper.Trans(_first, entity, "UId");
EntityMapper.Trans(entity, target, "UId");
await _repository.UpdateAsync(_first);
await _repository.UpdateAsync(target);
return new JsonResult(new { Code = 200, Message = "修改成功!" });
}
/// <summary>

22
API/Wood.Service/Controllers/TaskSubService.cs

@ -178,7 +178,27 @@ namespace Wood.Service.Controllers
requestInputBase.Condition.Filters.Remove(processtask);
var processresult = await processservice.GetTaskDataPaged(requestInputBase);
return Ok(processresult);
case "SUPPLIER_CON_MMRP"://M+6月物料需求计划风险确认
var mmrpservice = _builder.GetRequiredService<CherySupplierConMmrpService>();
var mmrptask = requestInputBase.Condition.Filters.FirstOrDefault(p => p.Column == "TableName");
requestInputBase.Condition.Filters.Remove(mmrptask);
var mmrpresult = await mmrpservice.GetTaskDataPaged(requestInputBase);
return Ok(mmrpresult);
case "SUPPLIER_CON_DATE"://日物料需求计划风险确认
var con_dateservice = _builder.GetRequiredService<CherySupplierConDateService>();
var con_datetask = requestInputBase.Condition.Filters.FirstOrDefault(p => p.Column == "TableName");
requestInputBase.Condition.Filters.Remove(con_datetask);
var con_dateresult = await con_dateservice.GetTaskDataPaged(requestInputBase);
return Ok(con_dateresult);
case "SUPPLIER_CON_PO"://采购订单风险确认
var con_poservice = _builder.GetRequiredService<CherySupplierConPoService>();
var con_potask = requestInputBase.Condition.Filters.FirstOrDefault(p => p.Column == "TableName");
requestInputBase.Condition.Filters.Remove(con_potask);
var con_poresult = await con_poservice.GetTaskDataPaged(requestInputBase);
return Ok(con_poresult);

47
API/Wood.Util/CommonHelper.cs

@ -63,37 +63,37 @@ namespace Wood.Util
/// <summary>
/// Expression动态拼接+泛型缓存
/// </summary>
/// <typeparam name="TIn"></typeparam>
/// <typeparam name="TOut"></typeparam>
public class EntityMapper<TIn, TOut>//Mapper`2
/// <typeparam name="TSource"></typeparam>
/// <typeparam name="TTarget"></typeparam>
public class EntityMapper<TSource, TTarget>//Mapper`2
{
private static Func<TIn, TOut> _FUNC = null;
private static Func<TSource, TTarget> _FUNC = null;
static EntityMapper()
{
ParameterExpression parameterExpression = Expression.Parameter(typeof(TIn), "p");
ParameterExpression parameterExpression = Expression.Parameter(typeof(TSource), "p");
List<MemberBinding> memberBindingList = new List<MemberBinding>();
foreach (var item in typeof(TOut).GetProperties())
foreach (var item in typeof(TTarget).GetProperties())
{
MemberExpression property = Expression.Property(parameterExpression, typeof(TIn).GetProperty(item.Name));
MemberExpression property = Expression.Property(parameterExpression, typeof(TSource).GetProperty(item.Name));
MemberBinding memberBinding = Expression.Bind(item, property);
memberBindingList.Add(memberBinding);
}
foreach (var item in typeof(TOut).GetFields())
foreach (var item in typeof(TTarget).GetFields())
{
MemberExpression property = Expression.Field(parameterExpression, typeof(TIn).GetField(item.Name));
MemberExpression property = Expression.Field(parameterExpression, typeof(TSource).GetField(item.Name));
MemberBinding memberBinding = Expression.Bind(item, property);
memberBindingList.Add(memberBinding);
}
MemberInitExpression memberInitExpression = Expression.MemberInit(Expression.New(typeof(TOut)), memberBindingList.ToArray());
Expression<Func<TIn, TOut>> lambda = Expression.Lambda<Func<TIn, TOut>>(memberInitExpression, new ParameterExpression[]
MemberInitExpression memberInitExpression = Expression.MemberInit(Expression.New(typeof(TTarget)), memberBindingList.ToArray());
Expression<Func<TSource, TTarget>> lambda = Expression.Lambda<Func<TSource, TTarget>>(memberInitExpression, new ParameterExpression[]
{
parameterExpression
});
_FUNC = lambda.Compile();//拼装是一次性的
}
public static TOut Trans(TIn t)
public static TTarget Trans(TSource tSource)
{
return _FUNC(t);
return _FUNC(tSource);
}
}
@ -103,35 +103,28 @@ namespace Wood.Util
/// </summary>
public class EntityMapper
{
/// <summary>
/// 反射
/// </summary>
/// <typeparam name="TIn"></typeparam>
/// <typeparam name="TOut"></typeparam>
/// <param name="tIn"></param>
/// <returns></returns>
public static void Trans<TIn, TOut>(TIn tIn, TOut tOut, string excludeMembers = "")
public static void Trans<TSource, TTarget>(TSource tSource, TTarget tTarget, string excludeMembers = "")
{
string[] excludeMemberArr = excludeMembers.Split(",").Select(itm => itm.Trim()).ToArray();
foreach (var itemOut in tOut.GetType().GetProperties())
foreach (var itemOut in tTarget.GetType().GetProperties())
{
if (excludeMemberArr.Contains(itemOut.Name))
{
continue;
}
var propIn = tIn.GetType().GetProperty(itemOut.Name);
itemOut.SetValue(tOut, propIn.GetValue(tIn, null), null);
var propIn = tSource.GetType().GetProperty(itemOut.Name);
itemOut.SetValue(tTarget, propIn.GetValue(tSource, null), null);
}
foreach (var itemOut in tOut.GetType().GetFields())
foreach (var itemOut in tTarget.GetType().GetFields())
{
if (excludeMemberArr.Contains(itemOut.Name))
{
continue;
}
var fieldIn = tIn.GetType().GetField(itemOut.Name);
itemOut.SetValue(tOut, fieldIn.GetValue(tIn));
var fieldIn = tSource.GetType().GetField(itemOut.Name);
itemOut.SetValue(tTarget, fieldIn.GetValue(tSource));
}
}
}

Loading…
Cancel
Save