From 759373b5a4750ceaf3b41ae632545bf4a9c84e86 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 18 Oct 2022 18:37:26 +0200 Subject: [PATCH 1/3] Modifica display valori fluxLog x Dossier --- MP.SPEC/Components/ListDossiers.razor | 21 ++++++--- MP.SPEC/Components/ListDossiers.razor.cs | 24 ++++++++++- MP.SPEC/Components/ListPODL.razor.cs | 31 ++++++++++---- MP.SPEC/Data/MpDataService.cs | 54 +++++++++++++++++++----- MP.SPEC/MP.SPEC.csproj | 2 +- MP.SPEC/Pages/PODL.razor.cs | 3 ++ MP.SPEC/Resources/ChangeLog.html | 2 +- MP.SPEC/Resources/VersNum.txt | 2 +- MP.SPEC/Resources/manifest.xml | 2 +- 9 files changed, 109 insertions(+), 32 deletions(-) diff --git a/MP.SPEC/Components/ListDossiers.razor b/MP.SPEC/Components/ListDossiers.razor index 1728533c..43b8c986 100644 --- a/MP.SPEC/Components/ListDossiers.razor +++ b/MP.SPEC/Components/ListDossiers.razor @@ -17,7 +17,7 @@ else - + Articolo Fase @@ -75,15 +75,15 @@ else - + @@ -91,7 +91,7 @@ else @foreach (var record in listaFlux) { - + @@ -105,8 +105,15 @@ else @record.CodFlux } diff --git a/MP.SPEC/Components/ListDossiers.razor.cs b/MP.SPEC/Components/ListDossiers.razor.cs index 09b6ee5b..43af9a38 100644 --- a/MP.SPEC/Components/ListDossiers.razor.cs +++ b/MP.SPEC/Components/ListDossiers.razor.cs @@ -6,7 +6,7 @@ using MP.SPEC.Data; namespace MP.SPEC.Components { - public partial class ListDossiers: IDisposable + public partial class ListDossiers : IDisposable { #region Public Properties @@ -26,6 +26,24 @@ namespace MP.SPEC.Components #region Public Methods + private FluxLogDTO? currFluxLogDto = null; + + + public string checkSelPar(FluxLogDTO recordSel) + { + string answ = ""; + if (currFluxLogDto != null) + { + try + { + answ = (currFluxLogDto.CodFlux == recordSel.CodFlux && currFluxLogDto.dtEvento== recordSel.dtEvento) ? "table-info" : ""; + } + catch + { } + } + return answ; + } + public string checkSelect(Dossiers recordSel) { string answ = ""; @@ -87,6 +105,7 @@ namespace MP.SPEC.Components protected async Task editRecord(FluxLogDTO selRec) { + currFluxLogDto = selRec; // indico record selezionato await RecordSelFlux.InvokeAsync(selRec); } @@ -234,8 +253,9 @@ namespace MP.SPEC.Components return answ; } - private async Task unToggleTableFlux() + private async Task closeTableFlux() { + currFluxLogDto = null; currRecord = null; visualizzaFlux = true; await Task.Delay(1); diff --git a/MP.SPEC/Components/ListPODL.razor.cs b/MP.SPEC/Components/ListPODL.razor.cs index 52150c77..2b04387f 100644 --- a/MP.SPEC/Components/ListPODL.razor.cs +++ b/MP.SPEC/Components/ListPODL.razor.cs @@ -13,8 +13,6 @@ namespace MP.SPEC.Components [Parameter] public SelectPOdlParams actFilter { get; set; } = new SelectPOdlParams(); - private SelectPOdlParams lastFilter { get; set; } = new SelectPOdlParams() { CurrPage = -1 }; - [Parameter] public EventCallback PagerResetReq { get; set; } @@ -43,8 +41,6 @@ namespace MP.SPEC.Components return answ; } - #endregion Public Methods - public void Dispose() { currRecord = null; @@ -54,6 +50,8 @@ namespace MP.SPEC.Components GC.Collect(); } + #endregion Public Methods + #region Protected Properties [Inject] @@ -212,11 +210,8 @@ namespace MP.SPEC.Components #region Private Fields private PODLModel? currRecord = null; - private List? ListRecords; - private List? ListStati; - private List? SearchRecords; #endregion Private Fields @@ -232,6 +227,7 @@ namespace MP.SPEC.Components } private bool isLoading { get; set; } = false; + private SelectPOdlParams lastFilter { get; set; } = new SelectPOdlParams() { CurrPage = -1 }; private int numRecord { @@ -325,8 +321,15 @@ namespace MP.SPEC.Components /// private bool canStartOdl(string idxMacchina) { - var listOdlCurr = MDService.OdlGetCurrent(); - bool answ = !listOdlCurr.Contains(idxMacchina); + // controllo se lista scaduta... + bool answ = false; + DateTime adesso = DateTime.Now; + if (adesso > odlCurrExp || odlCurrList == null || odlCurrList.Count == 0) + { + odlCurrList = MDService.OdlGetCurrent(); + odlCurrExp = adesso.AddSeconds(2); + } + answ = !odlCurrList.Contains(idxMacchina); return answ; } @@ -376,6 +379,16 @@ namespace MP.SPEC.Components isLoading = false; } + /// + /// scadenza validità lista ODL correnti + /// + private DateTime odlCurrExp = DateTime.Now.AddMinutes(-1); + + /// + /// Elenco ODL correnti... + /// + private List odlCurrList = new List(); + private string tradFase(string codFase) { string answ = codFase; diff --git a/MP.SPEC/Data/MpDataService.cs b/MP.SPEC/Data/MpDataService.cs index 84547397..1d0b157f 100644 --- a/MP.SPEC/Data/MpDataService.cs +++ b/MP.SPEC/Data/MpDataService.cs @@ -82,7 +82,7 @@ namespace MP.SPEC.Data else { result = await Task.FromResult(dbController.AnagStatiComm()); - // serializzp e salvo... + // serializzo e salvo... rawData = JsonConvert.SerializeObject(result); await redisDb.StringSetAsync(redisStatoCom, rawData, getRandTOut(redisLongTimeCache)); stopWatch.Stop(); @@ -113,7 +113,7 @@ namespace MP.SPEC.Data else { result = await Task.FromResult(dbController.AnagTipoArtLV()); - // serializzp e salvo... + // serializzo e salvo... rawData = JsonConvert.SerializeObject(result); await redisDb.StringSetAsync(redisTipoArt, rawData, getRandTOut(redisLongTimeCache)); stopWatch.Stop(); @@ -148,7 +148,7 @@ namespace MP.SPEC.Data else { result = await Task.FromResult(dbController.ArticleWithDossier()); - // serializzp e salvo... + // serializzo e salvo... rawData = JsonConvert.SerializeObject(result); redisDb.StringSet(currKey, rawData, getRandTOut(redisLongTimeCache)); } @@ -277,7 +277,7 @@ namespace MP.SPEC.Data else { result = await Task.FromResult(dbController.ConfigGetAll()); - // serializzp e salvo... + // serializzo e salvo... rawData = JsonConvert.SerializeObject(result); await redisDb.StringSetAsync(redisConfKey, rawData, getRandTOut(redisLongTimeCache)); stopWatch.Stop(); @@ -361,7 +361,7 @@ namespace MP.SPEC.Data else { result = await Task.FromResult(dbController.DossiersGetLastFilt(IdxMacchina, CodArticolo, DtRef, MaxRec)); - // serializzp e salvo... + // serializzo e salvo... rawData = JsonConvert.SerializeObject(result); redisDb.StringSet(currKey, rawData, getRandTOut(redisLongTimeCache / 5)); } @@ -546,7 +546,35 @@ namespace MP.SPEC.Data /// public async Task> ListPODLFilt(string codArt, string keyRichPart) { - return await Task.FromResult(dbController.ListPODLFilt(codArt, keyRichPart)); + List? result = new List(); + Stopwatch stopWatch = new Stopwatch(); + stopWatch.Start(); + string readType = "DB"; + string currKey = $"{redisPOdlList}:{codArt}:{keyRichPart}"; + // 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.ListPODLFilt(codArt, keyRichPart)); + // serializzo e salvo... + rawData = JsonConvert.SerializeObject(result); + redisDb.StringSet(currKey, rawData, TimeSpan.FromSeconds(3)); + } + if (result == null) + { + result = new List(); + } + stopWatch.Stop(); + TimeSpan ts = stopWatch.Elapsed; + Log.Debug($"ListPODLFilt | Read from {readType}: {ts.TotalMilliseconds}ms"); + return result; + + } /// @@ -570,7 +598,7 @@ namespace MP.SPEC.Data else { result = await Task.FromResult(dbController.MacchineGetAll()); - // serializzp e salvo... + // serializzo e salvo... rawData = JsonConvert.SerializeObject(result); redisDb.StringSet(currKey, rawData, getRandTOut(redisLongTimeCache)); } @@ -605,7 +633,7 @@ namespace MP.SPEC.Data else { result = await dbController.MacchineWithFlux(); - // serializzp e salvo... + // serializzo e salvo... rawData = JsonConvert.SerializeObject(result); redisDb.StringSet(currKey, rawData, getRandTOut(redisLongTimeCache)); } @@ -728,7 +756,7 @@ namespace MP.SPEC.Data else { result = await Task.FromResult(dbController.ParametriGetFilt(IdxMacchina)); - // serializzp e salvo... + // serializzo e salvo... rawData = JsonConvert.SerializeObject(result); redisDb.StringSet(currKey, rawData, getRandTOut(redisLongTimeCache)); } @@ -779,7 +807,12 @@ namespace MP.SPEC.Data /// public async Task POdlUpdateRecord(PODLModel currRec) { - return await dbController.PODLUpdateRecord(currRec); + var dbResult = await dbController.PODLUpdateRecord(currRec); + // elimino cache redis... + RedisValue pattern = new RedisValue($"{redisPOdlList}:*"); + bool answ = await ExecFlushRedisPattern(pattern); + + return dbResult; } /// @@ -868,6 +901,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 redisStatoCom = redisBaseAddr + "SPEC:Cache:StatoCom"; diff --git a/MP.SPEC/MP.SPEC.csproj b/MP.SPEC/MP.SPEC.csproj index bd297fa3..fb3ad326 100644 --- a/MP.SPEC/MP.SPEC.csproj +++ b/MP.SPEC/MP.SPEC.csproj @@ -5,7 +5,7 @@ enable enable MP.SPEC - 6.16.2210.1817 + 6.16.2210.1818 diff --git a/MP.SPEC/Pages/PODL.razor.cs b/MP.SPEC/Pages/PODL.razor.cs index b9699f04..36a85db2 100644 --- a/MP.SPEC/Pages/PODL.razor.cs +++ b/MP.SPEC/Pages/PODL.razor.cs @@ -150,6 +150,9 @@ namespace MP.SPEC.Pages await callSyncDb(selRec); currRecord = null; await reloadData(); + // forzo update parametri + await Task.Delay(1); + currFase = "*"; await Task.Delay(1); } diff --git a/MP.SPEC/Resources/ChangeLog.html b/MP.SPEC/Resources/ChangeLog.html index 64a26b06..fef946a2 100644 --- a/MP.SPEC/Resources/ChangeLog.html +++ b/MP.SPEC/Resources/ChangeLog.html @@ -1,6 +1,6 @@ Modulo MAPOSPEC -

Versione: 6.16.2210.1817

+

Versione: 6.16.2210.1818


Note di rilascio:
  • diff --git a/MP.SPEC/Resources/VersNum.txt b/MP.SPEC/Resources/VersNum.txt index 458a9aa8..f58cd2c0 100644 --- a/MP.SPEC/Resources/VersNum.txt +++ b/MP.SPEC/Resources/VersNum.txt @@ -1 +1 @@ -6.16.2210.1817 +6.16.2210.1818 diff --git a/MP.SPEC/Resources/manifest.xml b/MP.SPEC/Resources/manifest.xml index 4f3dec63..f35138a3 100644 --- a/MP.SPEC/Resources/manifest.xml +++ b/MP.SPEC/Resources/manifest.xml @@ -1,6 +1,6 @@ - 6.16.2210.1817 + 6.16.2210.1818 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 From a2bf5f4a8bff85e3a4693a4ec79181a1e5b9e2cc Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 18 Oct 2022 19:16:20 +0200 Subject: [PATCH 2/3] Ottimizzazioni selezione casi distinct --- MP.Data/Controllers/MpSpecController.cs | 9 ++++-- MP.SPEC/Components/DossiersFilter.razor.cs | 8 ++--- MP.SPEC/Components/ListDossiers.razor.cs | 2 +- MP.SPEC/Components/ParamsFilter.razor.cs | 5 ++- MP.SPEC/Data/MpDataService.cs | 37 ++++++++++++++++++---- MP.SPEC/Data/SelectDossierParams.cs | 6 ++-- MP.SPEC/MP.SPEC.csproj | 2 +- MP.SPEC/Pages/ODL.razor.cs | 2 +- MP.SPEC/Resources/ChangeLog.html | 2 +- MP.SPEC/Resources/VersNum.txt | 2 +- MP.SPEC/Resources/manifest.xml | 2 +- 11 files changed, 55 insertions(+), 22 deletions(-) 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 From aebae6b4065b2767a37cdf726d41aef9910f97ad Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 18 Oct 2022 20:01:53 +0200 Subject: [PATCH 3/3] Update selezione dossier: - selezione x periodo - ancora check ottimizzazione sel distinct --- MP.Data/Controllers/MpSpecController.cs | 9 ++++---- MP.SPEC/Components/DossiersFilter.razor | 19 ++++++++++++++-- MP.SPEC/Components/DossiersFilter.razor.cs | 23 +++++++++++++++++-- MP.SPEC/Components/ListDossiers.razor.cs | 8 +++++-- MP.SPEC/Components/ParamsFilter.razor | 1 - MP.SPEC/Components/ParamsFilter.razor.cs | 7 +++--- MP.SPEC/Data/MpDataService.cs | 10 ++++----- MP.SPEC/Data/SelectDossierParams.cs | 4 +--- MP.SPEC/MP.SPEC.csproj | 2 +- MP.SPEC/Pages/DOSS.razor | 26 ++++++++++------------ MP.SPEC/Pages/PARAMS.razor | 2 -- MP.SPEC/Pages/PARAMS.razor.cs | 2 +- MP.SPEC/Resources/ChangeLog.html | 2 +- MP.SPEC/Resources/VersNum.txt | 2 +- MP.SPEC/Resources/manifest.xml | 2 +- 15 files changed, 74 insertions(+), 45 deletions(-) diff --git a/MP.Data/Controllers/MpSpecController.cs b/MP.Data/Controllers/MpSpecController.cs index bd8d87de..535274d2 100644 --- a/MP.Data/Controllers/MpSpecController.cs +++ b/MP.Data/Controllers/MpSpecController.cs @@ -333,10 +333,10 @@ namespace MP.Data.Controllers ///
    /// * = tutte, altrimenti solo x una data macchina /// * = tutti, altrimenti solo x un dato articolo - /// Data di riferimento (Massima) per estrazioen records - /// numero massimo record da restituire + /// Data minima per estrazione records + /// Data Massima per estrazione records /// - public List DossiersGetLastFilt(string IdxMacchina, string CodArticolo, DateTime DtRef, int MaxRec) + public List DossiersGetLastFilt(string IdxMacchina, string CodArticolo, DateTime DtStart, DateTime DtEnd) { List dbResult = new List(); using (var dbCtx = new MoonProContext(_configuration)) @@ -344,12 +344,11 @@ namespace MP.Data.Controllers dbResult = dbCtx .DbSetDossiers .AsNoTracking() - .Where(x => (IdxMacchina == "*" || x.IdxMacchina == IdxMacchina) && (CodArticolo == "*" || x.OdlNav.CodArticolo == CodArticolo) && x.DtRif <= DtRef) + .Where(x => (IdxMacchina == "*" || x.IdxMacchina == IdxMacchina) && (CodArticolo == "*" || x.OdlNav.CodArticolo == CodArticolo) && (x.DtRif >= DtStart && x.DtRif <= DtEnd)) .Include(m => m.MachineNav) .Include(o => o.OdlNav) .Include(a => a.OdlNav.ArticoloNav) .OrderByDescending(x => x.DtRif) - .Take(MaxRec) .ToList(); } return dbResult; diff --git a/MP.SPEC/Components/DossiersFilter.razor b/MP.SPEC/Components/DossiersFilter.razor index 9d549e93..7a6a8689 100644 --- a/MP.SPEC/Components/DossiersFilter.razor +++ b/MP.SPEC/Components/DossiersFilter.razor @@ -37,7 +37,22 @@ } -
    + +
    + +
    +
    + + +
    +
    + +
    +
    + + +
    + @*
    @@ -49,7 +64,7 @@ -
    + *@ diff --git a/MP.SPEC/Components/DossiersFilter.razor.cs b/MP.SPEC/Components/DossiersFilter.razor.cs index 3e5694c1..f5dd2bbe 100644 --- a/MP.SPEC/Components/DossiersFilter.razor.cs +++ b/MP.SPEC/Components/DossiersFilter.razor.cs @@ -39,7 +39,7 @@ namespace MP.SPEC.Components } } - protected DateTime selDtRef + protected DateTime selDtMax { get { @@ -56,6 +56,23 @@ namespace MP.SPEC.Components } } + protected DateTime selDtMin + { + get + { + return SelFilterDossier.DtStart; + } + + set + { + if (!SelFilterDossier.DtStart.Equals(value)) + { + SelFilterDossier.DtStart = value; + reportChange(); + } + } + } + protected string selMacchina { get @@ -101,7 +118,9 @@ namespace MP.SPEC.Components protected override async Task OnInitializedAsync() { SelFilterDossier = new SelectDossierParams(); - ListMacchine = await MDService.MacchineWithFlux(SelFilterDossier.DtStart, SelFilterDossier.DtEnd); + DateTime dtEnd = SelFilterDossier.DtEnd; + DateTime dtStart = dtEnd.Subtract(SelFilterDossier.DtStart).TotalDays < 15 ? SelFilterDossier.DtStart : dtEnd.AddDays(-14); + ListMacchine = await MDService.MacchineWithFlux(dtStart, 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 99255735..b3882a7b 100644 --- a/MP.SPEC/Components/ListDossiers.razor.cs +++ b/MP.SPEC/Components/ListDossiers.razor.cs @@ -185,10 +185,14 @@ namespace MP.SPEC.Components get => SelFilter.CodArticolo; } - private DateTime SelDtRef + private DateTime SelDtEnd { get => SelFilter.DtEnd; } + private DateTime SelDtStart + { + get => SelFilter.DtStart; + } private string SelMacchina { @@ -222,7 +226,7 @@ namespace MP.SPEC.Components private async Task reloadData(bool setChanged) { isLoading = true; - SearchRecords = await MDService.DossiersGetLastFilt(SelMacchina, SelArticolo, SelDtRef, MaxRecord); + SearchRecords = await MDService.DossiersGetLastFilt(SelMacchina, SelArticolo, SelDtStart, SelDtEnd); totalCount = SearchRecords.Count; ListRecords = SearchRecords.Skip(numRecord * (currPage - 1)).Take(numRecord).ToList(); await Task.Delay(1); diff --git a/MP.SPEC/Components/ParamsFilter.razor b/MP.SPEC/Components/ParamsFilter.razor index 06434455..769761eb 100644 --- a/MP.SPEC/Components/ParamsFilter.razor +++ b/MP.SPEC/Components/ParamsFilter.razor @@ -1,7 +1,6 @@
    - @if (!liveUpdate) {
/// * = tutte, altrimenti solo x una data macchina - /// Data di riferimento (Massima) per estrazione records - /// numero massimo record da restituire + /// Data minima per estrazione records + /// Data Massima per estrazione records /// - public async Task> DossiersGetLastFilt(string IdxMacchina, string CodArticolo, DateTime DtRef, int MaxRec) + public async Task> DossiersGetLastFilt(string IdxMacchina, string CodArticolo, DateTime DtStart, DateTime DtEnd) { List? result = new List(); Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); string readType = "DB"; - string currKey = $"{redisDossByMac}:{IdxMacchina}:{CodArticolo}:{DtRef}:{MaxRec}"; + string currKey = $"{redisDossByMac}:{IdxMacchina}:{CodArticolo}:{DtStart:yyyyMMddHHmm}:{DtEnd:yyyyMMddHHmm}"; // cerco in redis dato valore sel macchina... RedisValue rawData = redisDb.StringGet(currKey); if (rawData.HasValue) @@ -360,7 +360,7 @@ namespace MP.SPEC.Data } else { - result = await Task.FromResult(dbController.DossiersGetLastFilt(IdxMacchina, CodArticolo, DtRef, MaxRec)); + result = await Task.FromResult(dbController.DossiersGetLastFilt(IdxMacchina, CodArticolo, DtStart, DtEnd)); // serializzo e salvo... rawData = JsonConvert.SerializeObject(result); redisDb.StringSet(currKey, rawData, getRandTOut(redisLongTimeCache / 5)); diff --git a/MP.SPEC/Data/SelectDossierParams.cs b/MP.SPEC/Data/SelectDossierParams.cs index 8e9b4d15..c743e535 100644 --- a/MP.SPEC/Data/SelectDossierParams.cs +++ b/MP.SPEC/Data/SelectDossierParams.cs @@ -15,7 +15,7 @@ public DateTime DtEnd { get; set; } = InitDatetime(5); - public DateTime DtStart { get; set; } = InitDatetime(5).AddDays(-7); + public DateTime DtStart { get; set; } = InitDatetime(5).AddDays(-730); public string IdxMacchina { get; set; } = "*"; @@ -60,8 +60,6 @@ if (CurrPage != item.CurrPage) return false; - //if (lastUpdate != item.lastUpdate) - // return false; return true; } diff --git a/MP.SPEC/MP.SPEC.csproj b/MP.SPEC/MP.SPEC.csproj index f7cd5bff..dd2fa825 100644 --- a/MP.SPEC/MP.SPEC.csproj +++ b/MP.SPEC/MP.SPEC.csproj @@ -5,7 +5,7 @@ enable enable MP.SPEC - 6.16.2210.1819 + 6.16.2210.1820 diff --git a/MP.SPEC/Pages/DOSS.razor b/MP.SPEC/Pages/DOSS.razor index 5cbf93c3..3ce277cd 100644 --- a/MP.SPEC/Pages/DOSS.razor +++ b/MP.SPEC/Pages/DOSS.razor @@ -38,7 +38,7 @@
DATA - +
@@ -75,18 +75,16 @@
} + @if (isLoading) + { + + } + else + { + + } + + - @if (isLoading) - { - - } - else - { - - } - - - diff --git a/MP.SPEC/Pages/PARAMS.razor b/MP.SPEC/Pages/PARAMS.razor index 8b4777f0..43c1c7b9 100644 --- a/MP.SPEC/Pages/PARAMS.razor +++ b/MP.SPEC/Pages/PARAMS.razor @@ -32,5 +32,3 @@ - - diff --git a/MP.SPEC/Pages/PARAMS.razor.cs b/MP.SPEC/Pages/PARAMS.razor.cs index 8d05027f..e30c73ad 100644 --- a/MP.SPEC/Pages/PARAMS.razor.cs +++ b/MP.SPEC/Pages/PARAMS.razor.cs @@ -128,7 +128,7 @@ namespace MP.SPEC.Pages if (newParams.CurrPage == 0) { newParams.CurrPage = 1; - newParams.LiveUpdate = false; + //newParams.LiveUpdate = false; } else { diff --git a/MP.SPEC/Resources/ChangeLog.html b/MP.SPEC/Resources/ChangeLog.html index 8de38dd8..38873420 100644 --- a/MP.SPEC/Resources/ChangeLog.html +++ b/MP.SPEC/Resources/ChangeLog.html @@ -1,6 +1,6 @@ Modulo MAPOSPEC -

Versione: 6.16.2210.1819

+

Versione: 6.16.2210.1820


Note di rilascio:
  • diff --git a/MP.SPEC/Resources/VersNum.txt b/MP.SPEC/Resources/VersNum.txt index 4782147c..57be2c69 100644 --- a/MP.SPEC/Resources/VersNum.txt +++ b/MP.SPEC/Resources/VersNum.txt @@ -1 +1 @@ -6.16.2210.1819 +6.16.2210.1820 diff --git a/MP.SPEC/Resources/manifest.xml b/MP.SPEC/Resources/manifest.xml index eb0c777c..c55595cd 100644 --- a/MP.SPEC/Resources/manifest.xml +++ b/MP.SPEC/Resources/manifest.xml @@ -1,6 +1,6 @@ - 6.16.2210.1819 + 6.16.2210.1820 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
+ + Macchina Data Data Type
Valore - -
-
Modificato: @record.ValoreEdit
-
Originale: @record.Valore
+ @if (record.ValoreEdit != record.Valore) + { +
@record.ValoreEdit
+
(@record.Valore)
+ } + else + { +
@record.ValoreEdit
+ }