zs
2025-05-20 0f9f3f9a8f48d74225b8cc168daa494111c41857
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsOutStockAppService.cs
@@ -39,7 +39,7 @@
            _serviceProvider = serviceProvider;
        }
        public async Task<List<CallMaterialOutput>>CallMaterialAsync(List<CallMaterialInput> input)
        public async Task<List<CallMaterialOutput>> CallMaterialAsync(List<CallMaterialInput> input)
        {
            using var scope = _serviceProvider.CreateScope();
            var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>();
@@ -53,32 +53,35 @@
            var callOutput = new List<CallMaterialOutput>();
            foreach (var inputItem in input)
            {
                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 (inputItem.MaterialNumber <= 0)
                {
                    throw new UserFriendlyException("叫料数量必须大于0");
                }
                if(order.OrderStatus == OrderStatusEnum.Finish)
                if (!inputItem.IgnoreOrder)
                {
                    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;
                    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)
@@ -102,7 +105,7 @@
                            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,