From 3f6b568a27cb07e3e74a7059ba45e060c1ec4ba1 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期一, 09 三月 2026 09:32:11 +0800
Subject: [PATCH] refactor: 注入 RoundRobinService
---
Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs | 33 ++++++++++++++++++++++++++-------
1 files changed, 26 insertions(+), 7 deletions(-)
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
index 7f03664..710c4f9 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -24,6 +24,7 @@
private readonly ILocationInfoService _locationInfoService;
private readonly HttpClientHelper _httpClientHelper;
private readonly IConfiguration _configuration;
+ private readonly RoundRobinService _roundRobinService;
public IRepository<Dt_Task> Repository => BaseDal;
@@ -42,13 +43,15 @@
IStockInfoService stockInfoService,
ILocationInfoService locationInfoService,
HttpClientHelper httpClientHelper,
- IConfiguration configuration) : base(BaseDal)
+ IConfiguration configuration,
+ RoundRobinService roundRobinService) : base(BaseDal)
{
_mapper = mapper;
_stockInfoService = stockInfoService;
_locationInfoService = locationInfoService;
_httpClientHelper = httpClientHelper;
_configuration = configuration;
+ _roundRobinService = roundRobinService;
}
#region WCS閫昏緫澶勭悊
@@ -413,13 +416,29 @@
return WebResponseContent.Instance.OK("鏃犲埌鏈熷簱瀛橀渶瑕佸鐞�");
}
- // 鍔犺浇浣嶇疆璇︽儏
- foreach (var stock in expiredStocks)
+ // 鎵归噺鍔犺浇浣嶇疆璇︽儏锛堜紭鍖� N+1 鏌ヨ闂锛�
+ var locationIds = expiredStocks
+ .Where(s => s.LocationId > 0)
+ .Select(s => s.LocationId)
+ .Distinct()
+ .Cast<object>()
+ .ToList();
+
+ if (locationIds.Any())
{
- if (stock.LocationId > 0)
+ var locations = await _locationInfoService.Repository
+ .QureyDataByIdsAsync(locationIds);
+
+ // 鍒涘缓浣嶇疆瀛楀吀浠ヤ究蹇�熸煡鎵�
+ var locationDict = locations.ToDictionary(l => l.Id, l => l);
+
+ // 涓烘瘡涓簱瀛樺叧鑱斾綅缃鎯�
+ foreach (var stock in expiredStocks)
{
- stock.LocationDetails = await _locationInfoService.Repository
- .QueryFirstAsync(s => s.Id == stock.LocationId);
+ if (stock.LocationId > 0 && locationDict.ContainsKey(stock.LocationId))
+ {
+ stock.LocationDetails = locationDict[stock.LocationId];
+ }
}
}
@@ -481,7 +500,7 @@
TaskType = TaskTypeEnum.Outbound.GetHashCode(),
TaskStatus = TaskStatusEnum.New.GetHashCode(),
Grade = 1,
- TaskNum = await Repository.GetTaskNo(),
+ TaskNum = 0, // 浣跨敤 0 璁╂暟鎹簱鑷姩鐢熸垚浠诲姟鍙�
Creater = "system_auto"
};
taskList.Add(task);
--
Gitblit v1.9.3