|
@ -43,31 +43,31 @@ namespace Win_in.Sfs.Wms.Dashboard.Host.Controllers |
|
|
[HttpGet("plan-actual-list")] |
|
|
[HttpGet("plan-actual-list")] |
|
|
public virtual async Task<List<PlanAndActualDashboardDto>> GetPlanAndActualListAsync() |
|
|
public virtual async Task<List<PlanAndActualDashboardDto>> GetPlanAndActualListAsync() |
|
|
{ |
|
|
{ |
|
|
return await GetPlanAndActualDashboardsAsync(); |
|
|
return await GetPlanAndActualDashboardsAsync().ConfigureAwait(false); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private async Task<List<PlanAndActualDashboardDto>> GetPlanAndActualDashboardsAsync() |
|
|
private async Task<List<PlanAndActualDashboardDto>> GetPlanAndActualDashboardsAsync() |
|
|
{ |
|
|
{ |
|
|
var supplierAsns = await this.GetSupplierAsnsAsync(); |
|
|
var supplierAsns = await this.GetSupplierAsnsAsync().ConfigureAwait(false); |
|
|
|
|
|
|
|
|
var supplierCodes = supplierAsns.Select(t => t.SupplierCode).Distinct(); |
|
|
var supplierCodes = supplierAsns.Select(t => t.SupplierCode).Distinct(); |
|
|
|
|
|
|
|
|
var suppliers = await GetSuppliersAsync(supplierCodes); |
|
|
var suppliers = await GetSuppliersAsync(supplierCodes).ConfigureAwait(false); |
|
|
|
|
|
|
|
|
var asnNumbers = supplierAsns.Select(t => t.Number); |
|
|
var asnNumbers = supplierAsns.Select(t => t.Number); |
|
|
|
|
|
|
|
|
var purchaseReceiptNotes = await GetPurchaseReceiptNotesAsync(asnNumbers); |
|
|
var purchaseReceiptNotes = await GetPurchaseReceiptNotesAsync(asnNumbers).ConfigureAwait(false); |
|
|
|
|
|
|
|
|
var putawayNotes = await this.GetPutawayNotesAsync(asnNumbers); |
|
|
var putawayNotes = await this.GetPutawayNotesAsync(asnNumbers).ConfigureAwait(false); |
|
|
|
|
|
|
|
|
var itemSafetyStorks = await this.GetItemSafetyStocksAsync(supplierAsns); |
|
|
var itemSafetyStorks = await this.GetItemSafetyStocksAsync(supplierAsns).ConfigureAwait(false); |
|
|
|
|
|
|
|
|
return await this.ConvertToPlanAndActualDashboards( |
|
|
return await this.ConvertToPlanAndActualDashboards( |
|
|
supplierAsns, |
|
|
supplierAsns, |
|
|
suppliers, |
|
|
suppliers, |
|
|
purchaseReceiptNotes, |
|
|
purchaseReceiptNotes, |
|
|
putawayNotes, |
|
|
putawayNotes, |
|
|
itemSafetyStorks); |
|
|
itemSafetyStorks).ConfigureAwait(false); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private async Task<List<PlanAndActualDashboardDto>> ConvertToPlanAndActualDashboards(List<SupplierAsnDTO> supplierAsns, List<SupplierDTO> suppliers, List<PurchaseReceiptNoteDTO> purchaseReceiptNotes, List<PutawayNoteDTO> putawayNotes, List<ItemSafetyStockDTO> itemSafetyStorks) |
|
|
private async Task<List<PlanAndActualDashboardDto>> ConvertToPlanAndActualDashboards(List<SupplierAsnDTO> supplierAsns, List<SupplierDTO> suppliers, List<PurchaseReceiptNoteDTO> purchaseReceiptNotes, List<PutawayNoteDTO> putawayNotes, List<ItemSafetyStockDTO> itemSafetyStorks) |
|
@ -114,8 +114,8 @@ namespace Win_in.Sfs.Wms.Dashboard.Host.Controllers |
|
|
dto.MinQty = itemSafetyStork.MinStock; |
|
|
dto.MinQty = itemSafetyStork.MinStock; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
var purchaseOrderDtos = await _purchaseOrderApp.GetListBySupplierCodeAsync(supplierAsn.SupplierCode, detail.ItemCode); |
|
|
var purchaseOrderDtos = await _purchaseOrderApp.GetListBySupplierCodeAsync(supplierAsn.SupplierCode, detail.ItemCode).ConfigureAwait(false); |
|
|
var supllierAsn = await _supplierAsnApp.GetForTodayListAsync(); |
|
|
var supllierAsn = await _supplierAsnApp.GetForTodayListAsync().ConfigureAwait(false); |
|
|
var poNumberList = supllierAsn.Select(p => p.PoNumber).ToList(); |
|
|
var poNumberList = supllierAsn.Select(p => p.PoNumber).ToList(); |
|
|
|
|
|
|
|
|
purchaseOrderDtos = purchaseOrderDtos.Where(p => poNumberList.Contains(p.Number)).ToList(); |
|
|
purchaseOrderDtos = purchaseOrderDtos.Where(p => poNumberList.Contains(p.Number)).ToList(); |
|
@ -142,7 +142,7 @@ namespace Win_in.Sfs.Wms.Dashboard.Host.Controllers |
|
|
dtos.Add(dto); |
|
|
dtos.Add(dto); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
var purchaseReceiptJobDtos = await _purchaseReceiptJobApp.GetListBySupplierCodeOnTodayAsync(supplierAsn.SupplierCode); |
|
|
var purchaseReceiptJobDtos = await _purchaseReceiptJobApp.GetListBySupplierCodeOnTodayAsync(supplierAsn.SupplierCode).ConfigureAwait(false); |
|
|
|
|
|
|
|
|
dto.ReceiptNoteCount = purchaseReceiptJobDtos.Count(p => p.JobStatus == EnumJobStatus.Done); |
|
|
dto.ReceiptNoteCount = purchaseReceiptJobDtos.Count(p => p.JobStatus == EnumJobStatus.Done); |
|
|
|
|
|
|
|
@ -162,12 +162,16 @@ namespace Win_in.Sfs.Wms.Dashboard.Host.Controllers |
|
|
{ |
|
|
{ |
|
|
return purchaseReceipts.Sum(t => t.Details.Count(t => t.ItemCode == itemCode)); |
|
|
return purchaseReceipts.Sum(t => t.Details.Count(t => t.ItemCode == itemCode)); |
|
|
} |
|
|
} |
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 显示7天数据
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
private async Task<List<SupplierAsnDTO>> GetSupplierAsnsAsync() |
|
|
private async Task<List<SupplierAsnDTO>> GetSupplierAsnsAsync() |
|
|
{ |
|
|
{ |
|
|
var startTime = DateTime.Today.AddHours(DashboardConst.AsnReceiptTimeLimitHour); |
|
|
var startTime = DateTime.Today.AddDays(-6).AddHours(DashboardConst.AsnReceiptTimeLimitHour); |
|
|
|
|
|
|
|
|
|
|
|
var endTime = startTime.AddDays(7).AddSeconds(-1); |
|
|
|
|
|
|
|
|
var endTime = startTime.AddDays(1).AddSeconds(-1); |
|
|
|
|
|
|
|
|
|
|
|
if (DateTime.Now.Hour < DashboardConst.AsnReceiptTimeLimitHour) |
|
|
if (DateTime.Now.Hour < DashboardConst.AsnReceiptTimeLimitHour) |
|
|
{ |
|
|
{ |
|
@ -175,17 +179,17 @@ namespace Win_in.Sfs.Wms.Dashboard.Host.Controllers |
|
|
endTime.AddDays(-1); |
|
|
endTime.AddDays(-1); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
return await this._supplierAsnApp.GetByStartTimeEndTimeAsync(startTime, endTime); |
|
|
return await this._supplierAsnApp.GetByStartTimeEndTimeAsync(startTime, endTime).ConfigureAwait(false); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private async Task<List<SupplierDTO>> GetSuppliersAsync(IEnumerable<string> codes) |
|
|
private async Task<List<SupplierDTO>> GetSuppliersAsync(IEnumerable<string> codes) |
|
|
{ |
|
|
{ |
|
|
return await this._supplierApp.GetByCodesAsync(codes); |
|
|
return await this._supplierApp.GetByCodesAsync(codes).ConfigureAwait(false); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private async Task<List<PurchaseReceiptNoteDTO>> GetPurchaseReceiptNotesAsync(IEnumerable<string> asnNumbers) |
|
|
private async Task<List<PurchaseReceiptNoteDTO>> GetPurchaseReceiptNotesAsync(IEnumerable<string> asnNumbers) |
|
|
{ |
|
|
{ |
|
|
return await this._purchaseReceiptNoteApp.GetListByAsnNumbers(asnNumbers); |
|
|
return await this._purchaseReceiptNoteApp.GetListByAsnNumbers(asnNumbers).ConfigureAwait(false); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private async Task<List<PutawayNoteDTO>> GetPutawayNotesAsync(IEnumerable<string> asnNumbers) |
|
|
private async Task<List<PutawayNoteDTO>> GetPutawayNotesAsync(IEnumerable<string> asnNumbers) |
|
|