From 5efc3d1d1042ac74e7319fb04e490dd7295b9e22 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期四, 07 八月 2025 16:20:35 +0800
Subject: [PATCH] 优化 WMS 接口请求和设备处理逻辑 在 `RequestInbound.cs` 中删除与 GW 相关的代码注释,添加 WMS 接口请求处理,更新 `RequestWmsTask` 方法以支持异步请求和结果处理。 在 `CommonConveyorLine_CWJob.cs` 中移除不必要的代码,简化设备处理逻辑,并增加调度执行时间记录,改进异常处理输出。 在 `CommonStackerCraneJob.cs` 中将设备类型转换从 `CommonConveyorLine_GW` 更新为 `CommonConveyorLine_CW`,确保任务处理的正确性。
---
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/ThrottleFilter.cs | 48 ++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 46 insertions(+), 2 deletions(-)
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/ThrottleFilter.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/ThrottleFilter.cs
index a4b3dee..9d1ab3b 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/ThrottleFilter.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/ThrottleFilter.cs
@@ -1,5 +1,6 @@
锘縰sing Microsoft.AspNetCore.Mvc.Filters;
using System.Collections.Concurrent;
+using System.Text.Json;
public class ThrottleFilter : IAsyncActionFilter
{
@@ -14,7 +15,11 @@
public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
var actionName = context.ActionDescriptor.DisplayName;
- if (_lastExecutionTimes.TryGetValue(actionName, out var lastExecutionTime))
+
+ var parameterString = GenerateParameterString(context.ActionArguments);
+ var key = $"{actionName}_{parameterString}";
+
+ if (_lastExecutionTimes.TryGetValue(key, out var lastExecutionTime))
{
var elapsedTime = DateTime.Now - lastExecutionTime;
if (elapsedTime.TotalSeconds < _intervalInSeconds)
@@ -24,7 +29,46 @@
}
}
- _lastExecutionTimes[actionName] = DateTime.Now;
+ _lastExecutionTimes[key] = DateTime.Now;
await next();
}
+
+ private string GenerateParameterString(IDictionary<string, object> arguments)
+ {
+ if (arguments == null || arguments.Count == 0)
+ {
+ return "";
+ }
+
+ var paramStrings = new List<string>();
+ foreach (var argument in arguments)
+ {
+ var key = argument.Key;
+ var value = argument.Value;
+ string valueString;
+
+ if (value == null)
+ {
+ valueString = "null";
+ }
+ else if (IsSimpleType(value.GetType()))
+ {
+ valueString = value.ToString();
+ }
+ else
+ {
+ valueString = JsonSerializer.Serialize(value);
+ }
+
+ paramStrings.Add($"{key}={valueString}");
+ }
+
+ return string.Join("&", paramStrings);
+ }
+
+ // 鍒ゆ柇绫诲瀷鏄惁涓虹畝鍗曠被鍨�
+ private bool IsSimpleType(Type type)
+ {
+ return type.IsPrimitive || type == typeof(string) || type == typeof(decimal);
+ }
}
\ No newline at end of file
--
Gitblit v1.9.3