From 47af4a2a86403e2fa78de791a45aa1c6a915bed6 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Thu, 20 May 2021 19:07:52 +0200 Subject: [PATCH] Report ODL sotto cache redis e filtro! --- MP.Data/Controllers/MpStatsController.cs | 20 +++++++-- MP.Stats/Data/MpStatsService.cs | 21 ++++++++- MP.Stats/Pages/Oee.razor | 8 ++-- MP.Stats/Pages/ReportODL.razor | 55 ++++++++++-------------- MP.Stats/Pages/ReportODL.razor.cs | 26 ++++++++--- 5 files changed, 82 insertions(+), 48 deletions(-) diff --git a/MP.Data/Controllers/MpStatsController.cs b/MP.Data/Controllers/MpStatsController.cs index 853d1c02..c0a8869e 100644 --- a/MP.Data/Controllers/MpStatsController.cs +++ b/MP.Data/Controllers/MpStatsController.cs @@ -173,15 +173,27 @@ namespace MP.Data.Controllers /// /// /// - public List StatOdlGetAll(int numRecord, string searchVal = "") + public List StatOdlGetAll(DateTime DataStart, DateTime DataEnd, string IdxMacchina, int IdxODL, string KeyRichiesta, string CodArticolo) { List dbResult = new List(); + //dbResult = dbCtx + // .DbSetODL + // .Where(x => x.CodArticolo.Contains(searchVal) || x.IdxMacchina.Contains(searchVal) || x.KeyRichiesta.Contains(searchVal) || string.IsNullOrEmpty(searchVal)) + // .OrderByDescending(x => x.DataInizio) + // .Take(numRecord) + // .ToList(); + + var dataFrom = new SqlParameter("@dataFrom", DataStart); + var dataTo = new SqlParameter("@dataTo", DataEnd); + var idxMacchina = new SqlParameter("@idxMacchina", IdxMacchina); + var idxODL = new SqlParameter("@IdxODL", IdxODL); + var keyRichiesta = new SqlParameter("@KeyRichiesta", KeyRichiesta); + var codArticolo = new SqlParameter("@CodArticolo", CodArticolo); + dbResult = dbCtx .DbSetODL - .Where(x => x.CodArticolo.Contains(searchVal) || x.IdxMacchina.Contains(searchVal) || x.KeyRichiesta.Contains(searchVal) || string.IsNullOrEmpty(searchVal)) - .OrderByDescending(x => x.DataInizio) - .Take(numRecord) + .FromSqlRaw("EXEC stp_UI_RS_GetByFilter @dataFrom,@dataTo,@idxMacchina,@IdxODL,@KeyRichiesta,@CodArticolo", dataFrom, dataTo, idxMacchina, idxODL, keyRichiesta, codArticolo) .ToList(); return dbResult; diff --git a/MP.Stats/Data/MpStatsService.cs b/MP.Stats/Data/MpStatsService.cs index f13d3571..4b2a9352 100644 --- a/MP.Stats/Data/MpStatsService.cs +++ b/MP.Stats/Data/MpStatsService.cs @@ -122,9 +122,26 @@ namespace MP.Stats.Data return Task.FromResult(dbController.StatMacchineGetAll().ToArray()); } - public Task StatOdlGetAll(int numRecord, string searchVal = "") + public async Task> StatOdlGetAll(SelectData CurrFilter, string searchVal = "") { - return Task.FromResult(dbController.StatOdlGetAll(numRecord, searchVal).ToArray()); + //return Task.FromResult(dbController.StatOdlGetAll(numRecord, searchVal)); + List dbResult = new List(); + string cacheKey = getCacheKey("MP:STATS:ODL", CurrFilter); + string rawData; + var redisDataList = await distributedCache.GetAsync(cacheKey); + if (redisDataList != null) + { + rawData = Encoding.UTF8.GetString(redisDataList); + dbResult = JsonConvert.DeserializeObject>(rawData); + } + else + { + dbResult = dbController.StatOdlGetAll(CurrFilter.DateStart, CurrFilter.DateEnd, CurrFilter.IdxMacchina, CurrFilter.IdxOdl, CurrFilter.KeyRichiesta, CurrFilter.CodArticolo); + rawData = JsonConvert.SerializeObject(dbResult); + redisDataList = Encoding.UTF8.GetBytes(rawData); + await distributedCache.SetAsync(cacheKey, redisDataList, cacheOpt); + } + return await Task.FromResult(dbResult); } public Task StatScartiGetAll(DateTime DataStart, DateTime DataEnd, string IdxMacchina, int IdxODL, string KeyRichiesta, string CodArticolo, string searchVal = "") diff --git a/MP.Stats/Pages/Oee.razor b/MP.Stats/Pages/Oee.razor index 84b296c3..d48e8323 100644 --- a/MP.Stats/Pages/Oee.razor +++ b/MP.Stats/Pages/Oee.razor @@ -1,7 +1,6 @@ @page "/oee" @using MP.Stats.Components -@using MP.Stats.Data
@@ -28,7 +27,6 @@ - @**@ @@ -62,7 +60,7 @@ } - - \ No newline at end of file diff --git a/MP.Stats/Pages/ReportODL.razor b/MP.Stats/Pages/ReportODL.razor index d6cf488f..1b30d59d 100644 --- a/MP.Stats/Pages/ReportODL.razor +++ b/MP.Stats/Pages/ReportODL.razor @@ -11,25 +11,22 @@
- @if (currRecord != null) +
+
+ +
+
+ @if (totalCount == 0 || ListRecords == null || ListRecords.Count() == 0) { - @**@ - } - @if (ListRecords == null) - { -
+ } else {
-
- -
Data Turno Macchina
- @**@ @@ -39,31 +36,25 @@ - @**@ @foreach (var record in ListRecords) - { - - @**@ - - @**@ - - - - - - - - - - } + { + + + + + + + + + + + + }
Macchina ODL/Commessa ArticoloPezzi Evasi Pezzi Scarti Pezzi RilavOperatore
  - @record.IdxMacchina - -
@record.CodMacchina
-
@record.IdxMacchina
-
@record.IdxOdl | @record.KeyRichiesta@record.CodArticolo@record.DataInizio@record.DataFine@record.NumPezzi@record.NumPezziEv@record.NumPezziRil@record.NumPezziSca
+ @record.IdxMacchina + @record.IdxOdl | @record.KeyRichiesta@record.CodArticolo@record.DataInizio@record.DataFine@record.NumPezzi@record.NumPezziEv@record.NumPezziRil@record.NumPezziSca
@@ -71,6 +62,6 @@ }
\ No newline at end of file diff --git a/MP.Stats/Pages/ReportODL.razor.cs b/MP.Stats/Pages/ReportODL.razor.cs index 67103791..6f16bbaf 100644 --- a/MP.Stats/Pages/ReportODL.razor.cs +++ b/MP.Stats/Pages/ReportODL.razor.cs @@ -2,6 +2,7 @@ using Microsoft.AspNetCore.Components; using Microsoft.JSInterop; using MP.Stats.Data; using System; +using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -13,8 +14,8 @@ namespace MP.Stats.Pages private MP.Data.DatabaseModels.ODL currRecord = null; - private MP.Data.DatabaseModels.ODL[] ListRecords; - private MP.Data.DatabaseModels.ODL[] SearchRecords; + private List ListRecords; + private List SearchRecords; #endregion Private Fields @@ -40,15 +41,27 @@ namespace MP.Stats.Pages [Inject] protected MpStatsService StatService { get; set; } + protected int totalCount + { + get + { + int answ = 0; + if (SearchRecords != null) + { + answ = SearchRecords.Count; + } + return answ; + } + } + #endregion Protected Properties #region Private Methods private async Task reloadData() { - SearchRecords = await StatService.StatOdlGetAll(200, MessageService.SearchVal); - //SearchRecords = await StatService.StatScartiGetAll(currFilter.DateStart, currFilter.DateEnd, currFilter.IdxMacchina, currFilter.IdxOdl, currFilter.KeyRichiesta, currFilter.CodArticolo, MessageService.SearchVal); - ListRecords = SearchRecords.Skip(numRecord * (currPage - 1)).Take(numRecord).ToArray(); + SearchRecords = await StatService.StatOdlGetAll(currFilter, MessageService.SearchVal); + ListRecords = SearchRecords.Skip(numRecord * (currPage - 1)).Take(numRecord).ToList(); } #endregion Private Methods @@ -57,6 +70,8 @@ namespace MP.Stats.Pages protected async Task DoFilter(SelectData newFilter) { + SearchRecords = null; + ListRecords = null; currFilter = newFilter; await reloadData(); } @@ -76,6 +91,7 @@ namespace MP.Stats.Pages protected override async Task OnInitializedAsync() { numRecord = 10; + currFilter = SelectData.Init(5, 7); MessageService.ShowSearch = false; MessageService.EA_SearchUpdated += OnSeachUpdated; await reloadData();