|
|
@ -36,7 +36,10 @@ namespace Win_in.Sfs.Wms.Dashboard.Host.Controllers |
|
|
|
_purchaseReceiptJobApp = purchaseReceiptJobApp; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 纳入计划与实际
|
|
|
|
/// </summary>
|
|
|
|
/// <returns></returns>
|
|
|
|
[HttpGet("plan-actual-list")] |
|
|
|
public virtual async Task<List<PlanAndActualDashboardDto>> 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<PurchaseReceiptNoteDTO> purchaseReceipts, string itemCode) |
|
|
|