diff --git a/MP.Data/Controllers/MpSpecController.cs b/MP.Data/Controllers/MpSpecController.cs index 046f73d0..bd8d87de 100644 --- a/MP.Data/Controllers/MpSpecController.cs +++ b/MP.Data/Controllers/MpSpecController.cs @@ -602,10 +602,12 @@ namespace MP.Data.Controllers } /// - /// Elenco id Macchine che abbiano dati FLuxLog + /// Elenco id Macchine che abbiano dati FLuxLog, nel periodo indicato /// + /// + /// /// - public async Task> MacchineWithFlux() + public async Task> MacchineWithFlux(DateTime dtStart, DateTime dtEnd) { List dbResult = new List(); using (var dbCtx = new MoonProContext(_configuration)) @@ -613,6 +615,7 @@ namespace MP.Data.Controllers dbResult = await dbCtx .DbSetFluxLog .AsNoTracking() + .Where(x => x.dtEvento >= dtStart && x.dtEvento <= dtEnd) .Select(i => i.IdxMacchina) .Distinct() .ToListAsync(); @@ -795,8 +798,10 @@ namespace MP.Data.Controllers .DbSetFluxLog .AsNoTracking() .Where(x => (IdxMacchina == "*" || x.IdxMacchina == IdxMacchina)) + .Take(1000) .Select(i => i.CodFlux) .Distinct() + .OrderBy(x => x) .ToList(); } return dbResult; diff --git a/MP.SPEC/Components/DossiersFilter.razor.cs b/MP.SPEC/Components/DossiersFilter.razor.cs index 49456daf..3e5694c1 100644 --- a/MP.SPEC/Components/DossiersFilter.razor.cs +++ b/MP.SPEC/Components/DossiersFilter.razor.cs @@ -43,14 +43,14 @@ namespace MP.SPEC.Components { get { - return SelFilterDossier.DtRef; + return SelFilterDossier.DtEnd; } set { - if (!SelFilterDossier.DtRef.Equals(value)) + if (!SelFilterDossier.DtEnd.Equals(value)) { - SelFilterDossier.DtRef = value; + SelFilterDossier.DtEnd = value; reportChange(); } } @@ -101,7 +101,7 @@ namespace MP.SPEC.Components protected override async Task OnInitializedAsync() { SelFilterDossier = new SelectDossierParams(); - ListMacchine = await MDService.MacchineWithFlux(); + ListMacchine = await MDService.MacchineWithFlux(SelFilterDossier.DtStart, SelFilterDossier.DtEnd); ListArticoli = await MDService.ArticleWithDossier(); await FilterChanged.InvokeAsync(SelFilterDossier); } diff --git a/MP.SPEC/Components/ListDossiers.razor.cs b/MP.SPEC/Components/ListDossiers.razor.cs index 43af9a38..99255735 100644 --- a/MP.SPEC/Components/ListDossiers.razor.cs +++ b/MP.SPEC/Components/ListDossiers.razor.cs @@ -187,7 +187,7 @@ namespace MP.SPEC.Components private DateTime SelDtRef { - get => SelFilter.DtRef; + get => SelFilter.DtEnd; } private string SelMacchina diff --git a/MP.SPEC/Components/ParamsFilter.razor.cs b/MP.SPEC/Components/ParamsFilter.razor.cs index 25f497c7..aff65476 100644 --- a/MP.SPEC/Components/ParamsFilter.razor.cs +++ b/MP.SPEC/Components/ParamsFilter.razor.cs @@ -168,7 +168,10 @@ namespace MP.SPEC.Components protected override async Task OnInitializedAsync() { SelFilter = new SelectFluxParams(); - ListMacchine = await MDService.MacchineWithFlux(); + setDtMax(); + DateTime dtStart = SelFilter.dtMin != null ? (DateTime)SelFilter.dtMin : DateTime.Now.AddDays(-7); + DateTime dtEnd = SelFilter.dtMax != null ? (DateTime)SelFilter.dtMax : DateTime.Now; + ListMacchine = await MDService.MacchineWithFlux(dtStart, dtEnd); ListFlux = await MDService.ParametriGetFilt(selMacchina); var configData = await MDService.ConfigGetAll(); diff --git a/MP.SPEC/Data/MpDataService.cs b/MP.SPEC/Data/MpDataService.cs index 1d0b157f..54ba37e7 100644 --- a/MP.SPEC/Data/MpDataService.cs +++ b/MP.SPEC/Data/MpDataService.cs @@ -468,13 +468,33 @@ namespace MP.SPEC.Data /// public async Task> FluxLogGetLastFilt(DateTime DtMax, string IdxMacchina, string CodFlux, int MaxRec) { + List? result = new List(); Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); - var results = await Task.FromResult(dbController.FluxLogGetLastFilt(DtMax, IdxMacchina, CodFlux, MaxRec)); + string readType = "DB"; + string currKey = $"{redisFluxLogFilt}:{IdxMacchina}:{CodFlux}:{MaxRec}:{DtMax:yyyyMMdd}:{DtMax:HHmm}"; + // cerco in redis dato valore sel macchina... + RedisValue rawData = redisDb.StringGet(currKey); + if (rawData.HasValue) + { + result = JsonConvert.DeserializeObject>($"{rawData}"); + readType = "REDIS"; + } + else + { + result = await Task.FromResult(dbController.FluxLogGetLastFilt(DtMax, IdxMacchina, CodFlux, MaxRec)); + // serializzo e salvo... + rawData = JsonConvert.SerializeObject(result); + redisDb.StringSet(currKey, rawData, TimeSpan.FromSeconds(10)); + } + if (result == null) + { + result = new List(); + } stopWatch.Stop(); TimeSpan ts = stopWatch.Elapsed; - Log.Debug($"FluxLogGetLastFilt | Read from DB: {ts.TotalMilliseconds}ms"); - return results; + Log.Debug($"FluxLogGetLastFilt | Read from {readType}: {ts.TotalMilliseconds}ms"); + return result; } /// @@ -613,16 +633,18 @@ namespace MP.SPEC.Data } /// - /// Elenco ID macchine con dati FluxLog gestite + /// Elenco id Macchine che abbiano dati FLuxLog, nel periodo indicato /// + /// + /// /// - public async Task> MacchineWithFlux() + public async Task> MacchineWithFlux(DateTime dtStart, DateTime dtEnd) { List? result = new List(); Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); string readType = "DB"; - string currKey = redisMacByFlux; + string currKey = $"{redisMacByFlux}:{dtStart:yyyyMMddHHmm}:{dtEnd:yyyyMMddHHmm}"; // cerco in redis dato valore sel macchina... RedisValue rawData = redisDb.StringGet(currKey); if (rawData.HasValue) @@ -632,7 +654,7 @@ namespace MP.SPEC.Data } else { - result = await dbController.MacchineWithFlux(); + result = await dbController.MacchineWithFlux(dtStart, dtEnd); // serializzo e salvo... rawData = JsonConvert.SerializeObject(result); redisDb.StringSet(currKey, rawData, getRandTOut(redisLongTimeCache)); @@ -902,6 +924,7 @@ namespace MP.SPEC.Data private const string redisMacByFlux = redisBaseAddr + "SPEC:Cache:MacByFlux"; private const string redisMacList = redisBaseAddr + "SPEC:Cache:MacList"; private const string redisPOdlList = redisBaseAddr + "SPEC:Cache:POdlList"; + private const string redisFluxLogFilt = redisBaseAddr + "SPEC:Cache:FluxLogFilt"; private const string redisStatoCom = redisBaseAddr + "SPEC:Cache:StatoCom"; diff --git a/MP.SPEC/Data/SelectDossierParams.cs b/MP.SPEC/Data/SelectDossierParams.cs index 06489118..8e9b4d15 100644 --- a/MP.SPEC/Data/SelectDossierParams.cs +++ b/MP.SPEC/Data/SelectDossierParams.cs @@ -13,7 +13,9 @@ public int CurrPage { get; set; } = 1; - public DateTime DtRef { get; set; } = InitDatetime(5); + public DateTime DtEnd { get; set; } = InitDatetime(5); + + public DateTime DtStart { get; set; } = InitDatetime(5).AddDays(-7); public string IdxMacchina { get; set; } = "*"; @@ -52,7 +54,7 @@ if (MaxRecord != item.MaxRecord) return false; - if (DtRef != item.DtRef) + if (DtEnd != item.DtEnd) return false; if (CurrPage != item.CurrPage) diff --git a/MP.SPEC/MP.SPEC.csproj b/MP.SPEC/MP.SPEC.csproj index fb3ad326..f7cd5bff 100644 --- a/MP.SPEC/MP.SPEC.csproj +++ b/MP.SPEC/MP.SPEC.csproj @@ -5,7 +5,7 @@ enable enable MP.SPEC - 6.16.2210.1818 + 6.16.2210.1819 diff --git a/MP.SPEC/Pages/ODL.razor.cs b/MP.SPEC/Pages/ODL.razor.cs index a8ff4f78..432543ee 100644 --- a/MP.SPEC/Pages/ODL.razor.cs +++ b/MP.SPEC/Pages/ODL.razor.cs @@ -85,7 +85,7 @@ namespace MP.SPEC.Pages protected override async Task OnInitializedAsync() { ListStati = await MDService.AnagStatiComm(); - ListMacchine = await MDService.MacchineWithFlux(); + ListMacchine = await MDService.MacchineWithFlux(currFilter.DtStart, currFilter.DtEnd); } protected async Task pgResetReq(bool doReset) diff --git a/MP.SPEC/Resources/ChangeLog.html b/MP.SPEC/Resources/ChangeLog.html index fef946a2..8de38dd8 100644 --- a/MP.SPEC/Resources/ChangeLog.html +++ b/MP.SPEC/Resources/ChangeLog.html @@ -1,6 +1,6 @@ Modulo MAPOSPEC -

Versione: 6.16.2210.1818

+

Versione: 6.16.2210.1819


Note di rilascio:
  • diff --git a/MP.SPEC/Resources/VersNum.txt b/MP.SPEC/Resources/VersNum.txt index f58cd2c0..4782147c 100644 --- a/MP.SPEC/Resources/VersNum.txt +++ b/MP.SPEC/Resources/VersNum.txt @@ -1 +1 @@ -6.16.2210.1818 +6.16.2210.1819 diff --git a/MP.SPEC/Resources/manifest.xml b/MP.SPEC/Resources/manifest.xml index f35138a3..eb0c777c 100644 --- a/MP.SPEC/Resources/manifest.xml +++ b/MP.SPEC/Resources/manifest.xml @@ -1,6 +1,6 @@ - 6.16.2210.1818 + 6.16.2210.1819 https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/MP.SPEC.zip https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/ChangeLog.html false