From 1b6ccb64675e5262a2f7135697edc7466ffc14bf Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期二, 04 三月 2025 17:20:05 +0800
Subject: [PATCH] 优化
---
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs | 44 ++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 42 insertions(+), 2 deletions(-)
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
index 28c4737..514860b 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
@@ -459,6 +459,10 @@
else
{
locations = await _locationRepository.QueryDataAsync(x => x.LocationStatus == (int)LocationEnum.Distribute && x.RoadwayNo == requestTask.Roadways && x.EnalbeStatus == 1 && x.LocationType == 1);
+ if (locations == null)
+ {
+ locations = await _locationRepository.QueryDataAsync(x => x.LocationStatus == (int)LocationEnum.Free && x.RoadwayNo == requestTask.Roadways && x.EnalbeStatus == 1 && x.LocationType == 1);
+ }
}
if (locations == null)
@@ -800,14 +804,21 @@
{
try
{
- Thread.Sleep(10000);
+ Thread.Sleep(TimeSpan.FromMinutes(10));
+
var area = await _areaInfoRepository.QueryFirstAsync(x => x.AreaCode == "GWSC1");
+ var devices = SqlSugarHelper.DbWCS.Queryable<Dt_DeviceInfo>()
+ .Where(x => x.DeviceStatus == "1")
+ .Where(x => x.DeviceCode.Contains("GWSC"))
+ .ToList();
+ var deviceCode = devices.Select(x => x.DeviceCode).ToList();
var stockInfo = await _stockInfoRepository.Db.Queryable<DtStockInfo>()
.Includes(x => x.LocationInfo) // 棰勫姞杞絃ocationInfo
.Includes(x => x.StockInfoDetails) // 棰勫姞杞絊tockInfoDetails
.Where(x => x.AreaCode == area.AreaCode && x.OutboundTime < DateTime.Now && x.IsFull == true) // 杩囨护鏉′欢
.Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID) // 杩囨护鏉′欢
+ .WhereIF(!deviceCode.IsNullOrEmpty(), x => deviceCode.Contains(x.LocationInfo.RoadwayNo))
.OrderBy(x => x.OutboundTime) // 鎺掑簭
.ToListAsync(); // 鑾峰彇绗竴涓厓绱�
@@ -964,6 +975,9 @@
#region 甯告俯3鍑哄簱鑷冲寘瑁�
+ // 鐢ㄤ簬杩借釜姣忎釜璇锋眰鐨勮皟鐢ㄦ鏁板拰鏈�鍚庤姹傛椂闂淬��
+ private static readonly Dictionary<string, (int Count, DateTime LastRequestTime)> requestTracker = new();
+
/// <summary>
/// 甯告俯3鍑哄簱鑷冲寘瑁�
/// </summary>
@@ -974,11 +988,36 @@
WebResponseContent content = new WebResponseContent();
try
{
+ //string requestKey = JsonConvert.SerializeObject(json);
+ //// 妫�鏌ヨ姹傛鏁板拰鏃堕棿闄愬埗
+ //if (requestTracker.TryGetValue(requestKey, out var requestInfo))
+ //{
+ // if (requestInfo.Count >= 9 && DateTime.Now < requestInfo.LastRequestTime.AddMinutes(5))
+ // {
+ // // 濡傛灉璇锋眰娆℃暟瓒呰繃闄愬埗涓旀湭瓒呰繃10鍒嗛挓锛屾姏鍑哄紓甯�
+ // throw new InvalidOperationException("璇锋眰娆℃暟宸茶揪鍒伴檺鍒讹紝璇风◢鍚庡啀璇曘��");
+ // }
+ //}
+ //// 鏇存柊璇锋眰璺熻釜淇℃伅
+ //if (requestTracker.ContainsKey(requestKey))
+ //{
+ // requestTracker[requestKey] = (requestInfo.Count + 1, DateTime.Now);
+ //}
+ //else
+ //{
+ // requestTracker[requestKey] = (1, DateTime.Now);
+ //}
//LogFactory.GetLog("甯告俯3鍑哄簱鑷冲寘瑁�").Info(true, $"甯告俯3鍑哄簱鑷冲寘瑁呬紶鍏ュ弬鏁帮細" + JsonConvert.SerializeObject(json, Formatting.Indented));
Dt_StationManager station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == json.Position && x.stationType == 12 && x.stationArea == "Call");
- if(station == null) { throw new Exception($"鏈壘鍒板寘瑁呯珯鍙颁俊鎭紝璇锋鏌ヤ紶鍏ュ弬鏁皗json.Position}"); }
+ if (station == null) { throw new Exception($"鏈壘鍒板寘瑁呯珯鍙颁俊鎭紝璇锋鏌ヤ紶鍏ュ弬鏁皗json.Position}"); }
+
+ var devices = SqlSugarHelper.DbWCS.Queryable<Dt_DeviceInfo>()
+ .Where(x => x.DeviceStatus == "1")
+ .Where(x => x.DeviceCode.Contains("CWSC")) // 杩囨护鏉′欢
+ .ToList();
+ var deviceCode = devices.Select(x => x.DeviceCode).ToList();
//LogFactory.GetLog("甯告俯3鍑哄簱鑷冲寘瑁�").Info(true, $"甯告俯3鍑哄簱鑷冲寘瑁呬紶鍏ュ弬鏁帮細" + JsonConvert.SerializeObject(json, Formatting.Indented));
var stockInfo = _stockInfoRepository.Db.Queryable<DtStockInfo>()
@@ -986,6 +1025,7 @@
.Includes(x => x.LocationInfo) // 棰勫姞杞絃ocationInfo
.Where(x => x.AreaCode == "CWSC3" && x.IsFull == true) // 杩囨护鏉′欢
.Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock) // 杩囨护鏉′欢
+ .WhereIF(!deviceCode.IsNullOrEmpty(), x => deviceCode.Contains(x.LocationInfo.RoadwayNo))
.OrderBy(x => x.OutboundTime) // 鎺掑簭
.First(); // 鑾峰彇绗竴涓厓绱�
--
Gitblit v1.9.3