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. 2
      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; _purchaseReceiptJobApp = purchaseReceiptJobApp;
} }
/// <summary>
/// 纳入计划与实际
/// </summary>
/// <returns></returns>
[HttpGet("plan-actual-list")] [HttpGet("plan-actual-list")]
public virtual async Task<List<PlanAndActualDashboardDto>> GetPlanAndActualListAsync() 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 purchaseReceipts = purchaseReceiptNotes.FindAll(t => t.AsnNumber == supplierAsn.Number);
var putaways = putawayNotes.FindAll(t => t.AsnNumber == supplierAsn.Number); var putaways = putawayNotes.FindAll(t => t.AsnNumber == supplierAsn.Number);
var supplierName = string.Empty;
var supplierShortName = string.Empty; var supplierShortName = string.Empty;
var supplier = suppliers.FirstOrDefault(t => t.Code == supplierAsn.SupplierCode); var supplier = suppliers.FirstOrDefault(t => t.Code == supplierAsn.SupplierCode);
if (supplier == null) if (supplier == null)
{
continue; continue;
}
supplierName = supplier.Name;
supplierShortName = supplier.ShortName; supplierShortName = supplier.ShortName;
foreach (var detail in supplierAsn.Details) 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) if (dto == null)
{ {
dto = new PlanAndActualDashboardDto(); dto = new PlanAndActualDashboardDto();
dto.SupplierName = supplier.Name;
dto.SupplierShortName = supplierShortName; dto.SupplierShortName = supplierShortName;
dto.ItemCode = detail.ItemCode; dto.ItemCode = detail.ItemCode;
dto.ItemDesc1 = detail.ItemDesc1; 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(); purchaseOrderDtos = purchaseOrderDtos.Where(p => poNumberList.Contains(p.Number)).ToList();
decimal allPutawayQty = 0; decimal allPutawayQty = 0;
decimal allReceiptQty = 0; decimal allReceiptQty = 0;
decimal allPlanArriveQty = 0; decimal allPlanArriveQty = 0;
decimal allArriveQty = 0;
foreach (var purchaseOrderDTO in purchaseOrderDtos) foreach (var purchaseOrderDTO in purchaseOrderDtos)
{ {
allPutawayQty += purchaseOrderDTO.Details.Where(p => p.ItemCode == detail.ItemCode).Sum(p => p.PutAwayQty); 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); 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.ShippedQty); 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.PutawayQty = allPutawayQty;
dto.PlanArriveQty = allPlanArriveQty; dto.PlanArriveQty = allPlanArriveQty;
dto.ReceiptQty = allReceiptQty; dto.ReceiptQty = allReceiptQty;
dto.ArriveQty = allArriveQty;
dto.DifferQty = dto.PlanArriveQty - dto.ReceiptQty;
dtos.Add(dto); 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) 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 public class PlanAndActualDashboardDto
{ {
/// <summary>
/// 供应商名称
/// </summary>
[Display(Name = "供应商名称")]
public string SupplierName { get; set; }
/// <summary> /// <summary>
/// 供应商简称 /// 供应商简称
/// </summary> /// </summary>
@ -17,9 +23,9 @@ public class PlanAndActualDashboardDto
public string ItemCode { get; set; } public string ItemCode { get; set; }
/// <summary> /// <summary>
/// 零件号 /// 物料名称
/// </summary> /// </summary>
[Display(Name = "零件号")] [Display(Name = "物料名称")]
public string ItemName { get; set; } public string ItemName { get; set; }
/// <summary> /// <summary>
@ -41,17 +47,29 @@ public class PlanAndActualDashboardDto
public decimal SupplierAsnCount { get; set; } public decimal SupplierAsnCount { get; set; }
/// <summary> /// <summary>
/// 发货物料数量 /// 计划发货物料数量
/// </summary> /// </summary>
[Display(Name = "发货物料数量")] [Display(Name = "发货物料数量")]
public decimal PlanArriveQty { get; set; } public decimal PlanArriveQty { get; set; }
/// <summary>
/// 发货物料数量
/// </summary>
[Display(Name = "发货物料数量")]
public decimal ArriveQty { get; set; }
/// <summary> /// <summary>
/// 收货物料数量 /// 收货物料数量
/// </summary> /// </summary>
[Display(Name = "收货物料数量")] [Display(Name = "收货物料数量")]
public decimal ReceiptQty { get; set; } public decimal ReceiptQty { get; set; }
/// <summary>
/// 差异数 PlanArriveQty-ReceiptQty
/// </summary>
[Display(Name = "差异数")]
public decimal DifferQty { get; set; }
/// <summary> /// <summary>
/// 上架物料数量 /// 上架物料数量
/// </summary> /// </summary>

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Orders/PurchaseOrders/PurchaseOrderAppService.cs

@ -297,7 +297,7 @@ public class PurchaseOrderAppService :
public virtual async Task<List<PurchaseOrderDTO>> GetListBySupplierCodeAsync(string supplierCode, string itemCode) public virtual async Task<List<PurchaseOrderDTO>> GetListBySupplierCodeAsync(string supplierCode, string itemCode)
{ {
var entitys = await _repository 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); .ConfigureAwait(false);
var dtos = ObjectMapper.Map<List<PurchaseOrder>, List<PurchaseOrderDTO>>(entitys); var dtos = ObjectMapper.Map<List<PurchaseOrder>, List<PurchaseOrderDTO>>(entitys);

Loading…
Cancel
Save