From 62ea41137b3f2e1d0bd3a0dacd8383758874e280 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周日, 11 5月 2025 22:36:57 +0800
Subject: [PATCH] 22
---
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsCommonAppService.cs | 11 +++++++----
1 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsCommonAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsCommonAppService.cs
index 63d57b9..5c8a5e6 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsCommonAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsCommonAppService.cs
@@ -1,4 +1,5 @@
锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks;
using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces;
using CMS.Plugin.HIAWms.Application.Contracts.Services;
using CMS.Plugin.HIAWms.Domain.WmsMaterials;
@@ -108,7 +109,7 @@
/// <param name="requiredNum"></param>
/// <param name="materialNo"></param>
/// <returns></returns>
- public async Task<Dictionary<string, int>> FindStockAsync(string materialModel, int requiredNum, string materialNo = "")
+ public async Task<Dictionary<WmsMaterialStockDto, int>> FindStockAsync(string materialModel, int requiredNum, string materialNo = "")
{
// 1. 鑾峰彇鎵�鏈夊簱瀛橈紙鎺掗櫎閿佸畾搴撳瓨锛�
var stockList = (await _wmsMaterialStockRepository.GetListAsync(new WmsMaterialStock()))
@@ -116,11 +117,13 @@
.ToList();
// 2. 绛涢�夊尮閰嶇墿鏂�
- var availableStocks = stockList
+ var availableStocklist = stockList
.Where(x => x.MaterialModel == materialModel)
.WhereIf(!string.IsNullOrEmpty(materialNo), x => x.MaterialNo == materialNo)
.OrderBy(x => x.StockNumber) // 浼樺厛浠庡簱瀛樺皯鐨勫簱浣嶅嚭
.ToList();
+
+ var availableStocks = ObjectMapper.Map<List<WmsMaterialStock>, List<WmsMaterialStockDto>>(availableStocklist);
// 3. 妫�鏌ユ�诲簱瀛樻槸鍚﹁冻澶�
int totalAvailable = availableStocks.Sum(x => x.StockNumber);
@@ -131,7 +134,7 @@
}
// 4. 璁$畻鍚勫簱浣嶅嚭搴撴暟閲�
- var allocation = new Dictionary<string, int>(); // <搴撲綅鍙�, 鍑哄簱鏁�>
+ var allocation = new Dictionary<WmsMaterialStockDto, int>(); // <搴撲綅鍙�, 鍑哄簱鏁�>
int remaining = requiredNum;
foreach (var stock in availableStocks)
@@ -139,7 +142,7 @@
if (remaining <= 0) break;
int deductAmount = Math.Min(stock.StockNumber, remaining);
- allocation.Add(stock.PlaceNo, deductAmount);
+ allocation.Add(stock, deductAmount);
remaining -= deductAmount;
}
--
Gitblit v1.9.3