| | |
| | | _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>(); |
| | |
| | | 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) |
| | |
| | | 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, |