zs
2025-05-16 98ea0648f9373679de108ccbab5dcc97c2f0c67c
叫料接口
已修改3个文件
35 ■■■■ 文件已修改
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/OutStockDto/CallMaterialInput.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/LMesOperateAppService.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsOutStockAppService.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/OutStockDto/CallMaterialInput.cs
@@ -51,5 +51,15 @@
        /// 原料标识
        /// </summary>
        public string DataIdentifier { get; set; }
        /// <summary>
        /// 忽略出库单号
        /// </summary>
        public bool IgnoreOrder { get; set; }
        /// <summary>
        /// 优先级
        /// </summary>
        public int Priority { get; set; }
    }
}
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/LMesOperateAppService.cs
@@ -53,9 +53,9 @@
                throw new UserFriendlyException("叫料参数错误");
            }
            //using var scope = _serviceProvider.CreateScope();
            //var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>();
            //using var uow = unitOfWorkManager.Begin(requiresNew: true);
            using var scope = _serviceProvider.CreateScope();
            var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>();
            using var uow = unitOfWorkManager.Begin(requiresNew: true);
            var result = new List<CallMaterialOutput>();
            foreach (var item in input)
@@ -89,7 +89,6 @@
                    OrderStatus = Domain.Shared.Enums.OrderStatusEnum.Executing,
                    OperateTime = DateTime.Now,
                    DistributeNumber = 1,
                };
                var createResult = await _wmsInOutStockOrderAppService.CreateAsync(createOrderInput);
@@ -104,13 +103,16 @@
                        MaterialNo = materiaL.MaterialNo,
                        MaterialName = materiaL.MaterialName,
                        DataIdentifier = item.DataIdentifier,
                        IgnoreOrder = true,
                        OrderType = createResult.OrderType,
                        Priority = createResult.Priority
                    },
                };
                var callresult = await _wmsOutStockOrderAppService.CallMaterialAsync(callInput);
                result.AddRange(callresult);
            }
            //await uow.SaveChangesAsync();
            await uow.SaveChangesAsync();
            return result;
        }
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsOutStockAppService.cs
@@ -53,6 +53,12 @@
            var callOutput = new List<CallMaterialOutput>();
            foreach (var inputItem in input)
            {
                if (inputItem.MaterialNumber <= 0)
                {
                    throw new UserFriendlyException("叫料数量必须大于0");
                }
                if (!inputItem.IgnoreOrder)
                {
                var order = await _wmsInOutStockOrderRepository.FindByNameAsync(inputItem.OrderNo);
                if (order == null)
                {
@@ -61,10 +67,6 @@
                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)
                {
@@ -79,6 +81,7 @@
                order.OperateTime = DateTime.Now;
                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,