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);