diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 4aa5fdf0..c17e0283 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -2005,6 +2005,11 @@ 物料Id + + + 供应商 + + 入库数量 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index e5c8bd99..0fd8d41c 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -521,7 +521,7 @@ 备注 - + 明细 diff --git a/src/WMS.Web.Core/Dto/InStock/NoPurchaseShelfRequest.cs b/src/WMS.Web.Core/Dto/InStock/NoPurchaseShelfRequest.cs index 250940cd..123014ea 100644 --- a/src/WMS.Web.Core/Dto/InStock/NoPurchaseShelfRequest.cs +++ b/src/WMS.Web.Core/Dto/InStock/NoPurchaseShelfRequest.cs @@ -77,6 +77,12 @@ namespace WMS.Web.Core.Dto.InStock [Required(ErrorMessage = "物料不能为空")] public int MaterialId { get; set; } + /// + /// 供应商 + /// + [Required(ErrorMessage = "供应商不能为空")] + public int SupplierId { get; set; } + /// /// 入库数量 /// diff --git a/src/WMS.Web.Domain/Entitys/InStock.cs b/src/WMS.Web.Domain/Entitys/InStock.cs index 9d78c4cb..5de71327 100644 --- a/src/WMS.Web.Domain/Entitys/InStock.cs +++ b/src/WMS.Web.Domain/Entitys/InStock.cs @@ -62,7 +62,7 @@ namespace WMS.Web.Domain.Entitys /// /// 明细 /// - public List Details = new List(); + public List Details { get; set; } = new List(); /// /// 创建 diff --git a/src/WMS.Web.Domain/Services/InStockService.cs b/src/WMS.Web.Domain/Services/InStockService.cs index 7d681732..0d42321a 100644 --- a/src/WMS.Web.Domain/Services/InStockService.cs +++ b/src/WMS.Web.Domain/Services/InStockService.cs @@ -286,10 +286,8 @@ namespace WMS.Web.Domain.Services item.BoxId = box.BoxId; item.SubStockId = dto.SubStockId; item.StockCode = dto.StockCode; - item.OrgCode = dto.OrgCode; - var taskDet = task.Details.Where(x => x.MaterialId == item.MaterialId).FirstOrDefault(); - item.SupplierId = taskDet.SupplierId; - item.OrgId = taskDet.OrgId; + item.OrgCode = dto.OrgCode; + item.OrgId = task.Details.Select(x=>x.OrgId).FirstOrDefault(); }); //3.3添加到临时集合中 temps.AddRange(dets); @@ -299,11 +297,45 @@ namespace WMS.Web.Domain.Services //4.创建 entity.Create(loginInfo.UserInfo.StaffId); + + //序列号集:箱里面的 + var serialNumbers = await _serialNumbersRepositories.GetEntityListByBoxIds(dto.Boxs.GroupBy(x => x.BoxId).Select(x => x.Key).ToList()); + if (dto.ShelfMethod == (int)ShelfMethod.Box) + { + //赋值序列号 + entity.Details.ForEach(x => + { + var current_box_serNums = serialNumbers.Where(t => t.BoxId == x.BoxId).ToList(); + if (current_box_serNums != null) + { + var current_box_mat_serNums = current_box_serNums.Where(t => t.MaterialId == x.MaterialId).Select(t => t.SerialNumber).ToList(); + x.SerialNumbers.AddRange(current_box_mat_serNums); + } + }); + } + //5.1保存入库单信息 entity = await _inStockRepositories.Add(entity, isTransaction); if (entity == null) return Result.ReFailure(ResultCodes.DateWriteError); + //同步金蝶后,反写任务单的已交数量 + if (task != null) + { + task.Details.ForEach(x => + { + var current_entityDet_matQty = entity.Details.Where(t => t.MaterialId == x.MaterialId && t.SupplierId == x.SupplierId).Sum(t => t.Qty); + if (x.AccruedQty > current_entityDet_matQty) { + x.ReceiveQty = x.ReceiveQty + current_entityDet_matQty; + x.DeliveredQty = x.ReceiveQty; + } + }); + task.NoPurchaseShelf(loginInfo.UserInfo.StaffId); + task = await _inStockTaskRepositories.Update(task, isTransaction); + if (task == null) + return Result.ReFailure(ResultCodes.DateWriteError); + } + //6.当按产品上架:就要调用改箱的操作; if (dto.ShelfMethod == (int)ShelfMethod.Product) {