From 3322dfd299755416176cd946265577e176cae795 Mon Sep 17 00:00:00 2001 From: zs <zhousong@weben-smart.com> Date: 周日, 11 5月 2025 20:26:51 +0800 Subject: [PATCH] 出入库功能 --- 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