From 6768c18458bed22ae0ef1d611afd80bdeea31dda Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周二, 20 5月 2025 13:19:37 +0800 Subject: [PATCH] 22 --- HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsOutStockAppService.cs | 54 ++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 40 insertions(+), 14 deletions(-) diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsOutStockAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsOutStockAppService.cs index 0bb41f5..6e98af0 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsOutStockAppService.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsOutStockAppService.cs @@ -1,4 +1,6 @@ -锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.OutStockDto; +锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto; +using CMS.Plugin.HIAWms.Application.Contracts.Dtos.OutStockDto; +using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks; using CMS.Plugin.HIAWms.Application.Contracts.Services; using CMS.Plugin.HIAWms.Domain.Shared.Enums; using CMS.Plugin.HIAWms.Domain.WmsInOutStockOrder; @@ -37,7 +39,7 @@ _serviceProvider = serviceProvider; } - public async Task CallMaterialAsync(List<CallMaterialInput> input) + public async Task<List<CallMaterialOutput>> CallMaterialAsync(List<CallMaterialInput> input) { using var scope = _serviceProvider.CreateScope(); var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); @@ -48,25 +50,38 @@ { throw new UserFriendlyException("涓�娆″彨鏂欏彧鑳介拡瀵瑰悓涓�鍨嬪彿鐨勭墿鏂欙紒"); } + var callOutput = new List<CallMaterialOutput>(); foreach (var inputItem in input) { - var order = await _wmsInOutStockOrderRepository.FindByNameAsync(inputItem.OrderNo); - if (order == null) - { - throw new UserFriendlyException("鍑哄簱鍗曟嵁涓嶅瓨鍦�"); - } if (inputItem.MaterialNumber <= 0) { throw new UserFriendlyException("鍙枡鏁伴噺蹇呴』澶т簬0"); } - if (order.MaterialNumber < inputItem.MaterialNumber) + if (!inputItem.IgnoreOrder) { - throw new UserFriendlyException("鍙枡鏁伴噺涓嶈兘澶т簬鍗曟嵁鏁伴噺"); - } - order.OrderStatus = OrderStatusEnum.Executing; - order.DistributeNumber = inputItem.MaterialNumber; + var order = await _wmsInOutStockOrderRepository.FindByNameAsync(inputItem.OrderNo); + if (order == null) + { + throw new UserFriendlyException("鍑哄簱鍗曟嵁涓嶅瓨鍦�"); + } + if (order.OrderType == OrderTypeEnum.SelfMadeParts || order.OrderType == OrderTypeEnum.PERSONIN) + { + throw new UserFriendlyException("鍏ュ簱鍗曚笉鍏佽鍙枡"); + } + if (order.OrderStatus == OrderStatusEnum.Finish) + { + throw new UserFriendlyException("宸插畬鎴愬崟鎹笉鍏佽鍙枡"); + } + if (order.MaterialNumber < inputItem.MaterialNumber + order.DistributeNumber) + { + throw new UserFriendlyException("鍙枡鏁伴噺涓嶈兘澶т簬鍗曟嵁鏁伴噺"); + } + order.OrderStatus = OrderStatusEnum.Executing; + order.DistributeNumber = inputItem.MaterialNumber; + order.OperateTime = DateTime.Now; - await _wmsInOutStockOrderRepository.UpdateAsync(order); + await _wmsInOutStockOrderRepository.UpdateAsync(order); + } var stockresult = await _wmsCommonAppService.FindStockAsync(inputItem.MaterialModel, inputItem.MaterialNumber); if (stockresult == null) @@ -90,16 +105,25 @@ TaskType = TaskTypeEnum.CHUKU, SonTaskType = inputItem.OrderType == OrderTypeEnum.PRODUCTCALL ? SonTaskTypeEnum.ZDCHUKU : SonTaskTypeEnum.RGRUKU, TaskStatus = WmsTaskStatus.WEIZHIXING, - TaskLevel = order.Priority, + TaskLevel = inputItem.Priority, Aisle = 1, DodeviceId = 0, + Dodevicetype = DodevicetypeEnum.Srm, TaskDodeviceStatus = TaskDodeviceStatus.SrmNoStart, IsNextTask = (int)YesNoEnum.Y, IsRead = true, + PlcTaskId = new Random(Guid.NewGuid().GetHashCode()).Next(101, 99999), SourceOrderNo = inputItem.OrderNo, MutableParam1 = inputItem.MaterialModel, + MutableParam2 = inputItem.DataIdentifier }; taskList.Add(task); + + var output = ObjectMapper.Map<WmsMaterialStockDto, CallMaterialOutput>(stock); + output.TaskNo = task.TaskNo; + output.PlcTaskId = task.PlcTaskId; + output.SourceOrderNo = task.SourceOrderNo; + callOutput.Add(output); } } await _wmsTaskRepository.InsertManyAsync(taskList); @@ -107,6 +131,8 @@ await uow.SaveChangesAsync(); await uow.CompleteAsync(); + + return callOutput; } } } -- Gitblit v1.9.3