Browse Source

纳入计划与实际看板

集成Redis
马昊 2 years ago
parent
commit
f3f20d8b99
  1. 23
      be/Hosts/Win_in.Sfs.Wms.Dashboard.Host/Controllers/PlanAndActualController.cs
  2. 24
      be/Hosts/Win_in.Sfs.Wms.Dashboard.Host/Models/PlanAndActualDashboardDto.cs
  3. 4
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Orders/PurchaseOrders/PurchaseOrderAppService.cs

23
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;
}
/// <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)

24
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
{
/// <summary>
/// 供应商名称
/// </summary>
[Display(Name = "供应商名称")]
public string SupplierName { get; set; }
/// <summary>
/// 供应商简称
/// </summary>
@ -17,9 +23,9 @@ public class PlanAndActualDashboardDto
public string ItemCode { get; set; }
/// <summary>
/// 零件号
/// 物料名称
/// </summary>
[Display(Name = "零件号")]
[Display(Name = "物料名称")]
public string ItemName { get; set; }
/// <summary>
@ -41,17 +47,29 @@ public class PlanAndActualDashboardDto
public decimal SupplierAsnCount { get; set; }
/// <summary>
/// 发货物料数量
/// 计划发货物料数量
/// </summary>
[Display(Name = "发货物料数量")]
public decimal PlanArriveQty { get; set; }
/// <summary>
/// 发货物料数量
/// </summary>
[Display(Name = "发货物料数量")]
public decimal ArriveQty { get; set; }
/// <summary>
/// 收货物料数量
/// </summary>
[Display(Name = "收货物料数量")]
public decimal ReceiptQty { get; set; }
/// <summary>
/// 差异数 PlanArriveQty-ReceiptQty
/// </summary>
[Display(Name = "差异数")]
public decimal DifferQty { get; set; }
/// <summary>
/// 上架物料数量
/// </summary>

4
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<List<PurchaseOrderDTO>> 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<PurchaseOrder>, List<PurchaseOrderDTO>>(entitys);

Loading…
Cancel
Save