diff --git a/DOAN.Service/MES/mm/MmRequirePlanService.cs b/DOAN.Service/MES/mm/MmRequirePlanService.cs
index 7cf3073..056396a 100644
--- a/DOAN.Service/MES/mm/MmRequirePlanService.cs
+++ b/DOAN.Service/MES/mm/MmRequirePlanService.cs
@@ -128,11 +128,11 @@ namespace DOAN.Service.group
///
public PagedInfo GetList(MmRequirePlanQueryDto parm)
{
+
var predicate = Expressionable.Create()
.AndIF(!string.IsNullOrEmpty(parm.MaterialCode),it=>it.MaterialCode.Contains(parm.MaterialCode))
.AndIF(!string.IsNullOrEmpty(parm.MaterialName),it=>it.MaterialName.Contains(parm.MaterialName))
- .AndIF(parm.RequireDate!=null&&parm.RequireDate>DateTime.MinValue,it=>it.RequireDate==parm.RequireDate)
-
+ .AndIF(parm.RequireDate!=null&&parm.RequireDate>DateTime.MinValue,it=>it.RequireDate==parm.RequireDate.Value.ToLocalTime().Date)
;
var response = Queryable()
diff --git a/DOAN.ServiceCore/Filters/GlobalActionMonitor.cs b/DOAN.ServiceCore/Filters/GlobalActionMonitor.cs
index 2e0f945..1507ae4 100644
--- a/DOAN.ServiceCore/Filters/GlobalActionMonitor.cs
+++ b/DOAN.ServiceCore/Filters/GlobalActionMonitor.cs
@@ -9,6 +9,7 @@ using Microsoft.AspNetCore.Mvc.Filters;
using NLog;
using DOAN.Model.System;
using DOAN.Service.System.IService;
+using Microsoft.Extensions.Primitives;
namespace DOAN.ServiceCore.Middleware
{
@@ -29,16 +30,38 @@ namespace DOAN.ServiceCore.Middleware
///
public override Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
+ var method = context.HttpContext.Request.Method;
- // 在执行控制器动作之前,检查是否有 DateTime 参数需要转换
- foreach (var arg in context.ActionArguments)
+ // 根据请求方法获取请求参数
+ var parameters = GetRequestParameters(context, method);
+
+ // 遍历每个参数并转换 DateTime 类型的参数
+ foreach (var arg in parameters)
{
- if (arg.Value is DateTime dateTime && dateTime.Kind == DateTimeKind.Utc)
+
+ //检查是否为 DateTime 类型
+ if (arg.Value is DateTime dateTime)
{
- var localTime = dateTime.ToLocalTime();
- context.ActionArguments[arg.Key] = localTime;
+ //if (dateTime.Kind == DateTimeKind.Utc)
+ //{
+ var localTime = dateTime.ToLocalTime();
+ context.ActionArguments[arg.Key] = localTime;
+ //}
}
+ // 检查是否为 DateTime? 类型
+ if (arg.Value is DateTime? && ((DateTime?)arg.Value).HasValue)
+ {
+ var nullableDateTime = (DateTime?)arg.Value;
+ if (nullableDateTime.Value.Kind == DateTimeKind.Utc)
+ {
+ var localTime = nullableDateTime.Value.ToLocalTime();
+ context.ActionArguments[arg.Key] = localTime;
+ }
+ }
+
+
}
+
//string msg = string.Empty;
//var values = context.ModelState.Values;
//foreach (var item in values)
@@ -62,9 +85,13 @@ namespace DOAN.ServiceCore.Middleware
// context.Result = new JsonResult(response);
//}
+
+
+
return base.OnActionExecutionAsync(context, next);
}
+
///
/// OnActionExecuted是在Action中的代码执行之后运行的方法。
///
@@ -146,5 +173,90 @@ namespace DOAN.ServiceCore.Middleware
return attribute as LogAttribute;
}
+
+ private IDictionary GetRequestParameters(ActionExecutingContext context, string method)
+ {
+ // 根据请求方法获取请求参数
+ if (method.Equals("GET", StringComparison.OrdinalIgnoreCase))
+ {
+ return ConvertToDictionary(context.HttpContext.Request.Query);
+ }
+ else if (method.Equals("POST", StringComparison.OrdinalIgnoreCase))
+ {
+ // 假设 POST 请求参数已经绑定到了 ActionArguments 中
+ return context.ActionArguments;
+ }
+
+ return new Dictionary();
+ }
+
+ private IDictionary ConvertToDictionary(IQueryCollection queryCollection)
+ {
+ var dictionary = new Dictionary();
+
+ foreach (var entry in queryCollection)
+ {
+ // 尝试将查询字符串值转换为对象
+ if (TryConvertToObjectOfType(entry.Value, out var value))
+ {
+ dictionary[entry.Key] = value;
+ }
+ }
+
+ return dictionary;
+ }
+
+ private bool TryConvertToObjectOfType(StringValues values, out object convertedValue)
+ {
+ if (values.Count > 1)
+ {
+ // 处理多个值的情况
+ var list = new List