diff --git a/be/Hosts/Win_in.Sfs.Wms.Dashboard.Host/Controllers/PlanAndActualController.cs b/be/Hosts/Win_in.Sfs.Wms.Dashboard.Host/Controllers/PlanAndActualController.cs index d54bb4b54..3c91b8ddf 100644 --- a/be/Hosts/Win_in.Sfs.Wms.Dashboard.Host/Controllers/PlanAndActualController.cs +++ b/be/Hosts/Win_in.Sfs.Wms.Dashboard.Host/Controllers/PlanAndActualController.cs @@ -36,7 +36,10 @@ namespace Win_in.Sfs.Wms.Dashboard.Host.Controllers _purchaseReceiptJobApp = purchaseReceiptJobApp; } - + /// + /// 纳入计划与实际 + /// + /// [HttpGet("plan-actual-list")] public virtual async Task> GetPlanAndActualListAsync() { @@ -76,23 +79,28 @@ namespace Win_in.Sfs.Wms.Dashboard.Host.Controllers var purchaseReceipts = purchaseReceiptNotes.FindAll(t => t.AsnNumber == supplierAsn.Number); var putaways = putawayNotes.FindAll(t => t.AsnNumber == supplierAsn.Number); + var supplierName = string.Empty; var supplierShortName = string.Empty; var supplier = suppliers.FirstOrDefault(t => t.Code == supplierAsn.SupplierCode); if (supplier == null) + { continue; + } + supplierName = supplier.Name; supplierShortName = supplier.ShortName; foreach (var detail in supplierAsn.Details) { - var dto = dtos.FirstOrDefault(t => t.SupplierShortName == supplierShortName && t.ItemCode == detail.ItemCode); + var dto = dtos.FirstOrDefault(t => t.SupplierName == supplierName && t.ItemCode == detail.ItemCode); if (dto == null) { dto = new PlanAndActualDashboardDto(); + dto.SupplierName = supplier.Name; dto.SupplierShortName = supplierShortName; dto.ItemCode = detail.ItemCode; dto.ItemDesc1 = detail.ItemDesc1; @@ -112,21 +120,24 @@ namespace Win_in.Sfs.Wms.Dashboard.Host.Controllers purchaseOrderDtos = purchaseOrderDtos.Where(p => poNumberList.Contains(p.Number)).ToList(); - decimal allPutawayQty = 0; decimal allReceiptQty = 0; decimal allPlanArriveQty = 0; + decimal allArriveQty = 0; foreach (var purchaseOrderDTO in purchaseOrderDtos) { allPutawayQty += purchaseOrderDTO.Details.Where(p => p.ItemCode == detail.ItemCode).Sum(p => p.PutAwayQty); - allReceiptQty += purchaseOrderDTO.Details.Where(p => p.ItemCode == detail.ItemCode).Sum(p => p.ReceivedQty); - allPlanArriveQty += purchaseOrderDTO.Details.Where(p => p.ItemCode == detail.ItemCode).Sum(p => p.ShippedQty); + allReceiptQty += purchaseOrderDTO.Details.Where(p => p.ItemCode == detail.ItemCode).Sum(p => p.PutAwayQty); + allPlanArriveQty += purchaseOrderDTO.Details.Where(p => p.ItemCode == detail.ItemCode).Sum(p => p.Qty); + allArriveQty += purchaseOrderDTO.Details.Where(p => p.ItemCode == detail.ItemCode).Sum(p => p.ShippedQty); } dto.PutawayQty = allPutawayQty; dto.PlanArriveQty = allPlanArriveQty; dto.ReceiptQty = allReceiptQty; + dto.ArriveQty = allArriveQty; + dto.DifferQty = dto.PlanArriveQty - dto.ReceiptQty; dtos.Add(dto); } @@ -139,7 +150,7 @@ namespace Win_in.Sfs.Wms.Dashboard.Host.Controllers } } - return dtos.OrderBy(t => t.SupplierShortName).ToList(); + return dtos.OrderBy(t => t.SupplierName).ToList(); } private decimal CountReceiptQty(List purchaseReceipts, string itemCode) diff --git a/be/Hosts/Win_in.Sfs.Wms.Dashboard.Host/Models/PlanAndActualDashboardDto.cs b/be/Hosts/Win_in.Sfs.Wms.Dashboard.Host/Models/PlanAndActualDashboardDto.cs index 9af8b2d40..26fba190d 100644 --- a/be/Hosts/Win_in.Sfs.Wms.Dashboard.Host/Models/PlanAndActualDashboardDto.cs +++ b/be/Hosts/Win_in.Sfs.Wms.Dashboard.Host/Models/PlanAndActualDashboardDto.cs @@ -4,6 +4,12 @@ namespace Win_in.Sfs.Wms.Dashboard.Host.Models; public class PlanAndActualDashboardDto { + /// + /// 供应商名称 + /// + [Display(Name = "供应商名称")] + public string SupplierName { get; set; } + /// /// 供应商简称 /// @@ -17,9 +23,9 @@ public class PlanAndActualDashboardDto public string ItemCode { get; set; } /// - /// 零件号 + /// 物料名称 /// - [Display(Name = "零件号")] + [Display(Name = "物料名称")] public string ItemName { get; set; } /// @@ -41,17 +47,29 @@ public class PlanAndActualDashboardDto public decimal SupplierAsnCount { get; set; } /// - /// 发货物料数量 + /// 计划发货物料数量 /// [Display(Name = "发货物料数量")] public decimal PlanArriveQty { get; set; } + /// + /// 发货物料数量 + /// + [Display(Name = "发货物料数量")] + public decimal ArriveQty { get; set; } + /// /// 收货物料数量 /// [Display(Name = "收货物料数量")] public decimal ReceiptQty { get; set; } + /// + /// 差异数 PlanArriveQty-ReceiptQty + /// + [Display(Name = "差异数")] + public decimal DifferQty { get; set; } + /// /// 上架物料数量 /// diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Orders/PurchaseOrders/PurchaseOrderAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Orders/PurchaseOrders/PurchaseOrderAppService.cs index 11e682df0..6053d58d7 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Orders/PurchaseOrders/PurchaseOrderAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Orders/PurchaseOrders/PurchaseOrderAppService.cs @@ -91,7 +91,7 @@ public class PurchaseOrderAppService : detail.ItemName = itemBasicDto.Name; detail.ItemDesc1 = itemBasicDto.Desc1; detail.ItemDesc2 = itemBasicDto.Desc2; - detail.StdPackQty=itemBasicDto.StdPackQty; + detail.StdPackQty = itemBasicDto.StdPackQty; } } @@ -297,7 +297,7 @@ public class PurchaseOrderAppService : public virtual async Task> GetListBySupplierCodeAsync(string supplierCode, string itemCode) { var entitys = await _repository - .GetListAsync(p => p.Details.Any(y => y.ItemCode == itemCode) && p.SupplierCode == supplierCode) + .GetListAsync(p => p.Details.Any(y => y.ItemCode == itemCode) && p.SupplierCode == supplierCode, true) .ConfigureAwait(false); var dtos = ObjectMapper.Map, List>(entitys);