From e9de43db2b17e75cb41d88dbff9bbdd8bd8a6cf9 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 11 Jun 2025 10:04:06 +0200 Subject: [PATCH] Bozza metodi data x pag tag mensili --- .../Components/Compo/CmpFooter.razor.cs | 7 +- .../Components/Compo/MonthTagMan.razor | 2 +- .../Components/Compo/MonthTagMan.razor.cs | 86 +++++++++++++++++-- GPW.CORE.ADM/Components/Compo/TagsMan.razor | 2 +- .../Components/Compo/TagsMan.razor.cs | 2 +- GPW.CORE.ADM/GPW.CORE.ADM.csproj | 2 +- GPW.CORE.Data/Controllers/GPWController.cs | 33 +++++++ GPW.CORE.Data/Services/GpwDataService.cs | 46 ++++++++++ GPW.CORE.WRKLOG/GPW.CORE.WRKLOG.csproj | 2 +- Resources/ChangeLog.html | 2 +- Resources/VersNum.txt | 2 +- Resources/manifest.xml | 2 +- 12 files changed, 172 insertions(+), 16 deletions(-) diff --git a/GPW.CORE.ADM/Components/Compo/CmpFooter.razor.cs b/GPW.CORE.ADM/Components/Compo/CmpFooter.razor.cs index e31da91..ee25414 100644 --- a/GPW.CORE.ADM/Components/Compo/CmpFooter.razor.cs +++ b/GPW.CORE.ADM/Components/Compo/CmpFooter.razor.cs @@ -48,8 +48,11 @@ namespace GPW.CORE.ADM.Components.Compo aTimer.Stop(); aTimer.Dispose(); } - int tOutPeriod = 300000; - //int tOutPeriod = 1000; +#if DEBUG + int tOutPeriod = 1000; +#else + int tOutPeriod = 10000; +#endif aTimer = new System.Timers.Timer(tOutPeriod); aTimer.Elapsed += ElapsedTimer; aTimer.Enabled = true; diff --git a/GPW.CORE.ADM/Components/Compo/MonthTagMan.razor b/GPW.CORE.ADM/Components/Compo/MonthTagMan.razor index 8223a44..164846f 100644 --- a/GPW.CORE.ADM/Components/Compo/MonthTagMan.razor +++ b/GPW.CORE.ADM/Components/Compo/MonthTagMan.razor @@ -34,7 +34,7 @@
-

elenco da stored

+

elenco da stored... fare...

diff --git a/GPW.CORE.ADM/Components/Compo/MonthTagMan.razor.cs b/GPW.CORE.ADM/Components/Compo/MonthTagMan.razor.cs index deb61fd..bdcaa3f 100644 --- a/GPW.CORE.ADM/Components/Compo/MonthTagMan.razor.cs +++ b/GPW.CORE.ADM/Components/Compo/MonthTagMan.razor.cs @@ -1,7 +1,9 @@ using EgwCoreLib.Utils; using GPW.CORE.Data.DbModels; +using GPW.CORE.Data.DTO; using GPW.CORE.Data.Services; using Microsoft.AspNetCore.Components; +using NLog; namespace GPW.CORE.ADM.Components.Compo { @@ -31,7 +33,7 @@ namespace GPW.CORE.ADM.Components.Compo await ReloadData(); } - protected override async Task OnInitializedAsync() + protected override void OnInitialized() { CurrPeriodo.Fine = DateTime.Today.AddDays(1); } @@ -57,6 +59,7 @@ namespace GPW.CORE.ADM.Components.Compo private List ListDipendenti { get; set; } = new List(); private List? ListRecords { get; set; } = null; + private List? SearchRecords { get; set; } = null; private int numRecord { get; set; } = 10; @@ -83,10 +86,9 @@ namespace GPW.CORE.ADM.Components.Compo { ListDipendenti = rawList.Where(x => (x.Attivo ?? false)).ToList(); } -#if false try { - SearchRecords = await GDataServ.TeRaExplGetFilt(IdxDipSel, CurrPeriodo.Inizio, CurrPeriodo.Fine, ShowInatt, ShowWE, MaxErrMin, MaxErrPlus); + SearchRecords = await GDataServ.MonthTagList(IdxDipSel, CurrPeriodo.Inizio, CurrPeriodo.Fine); // verifico filtro per IdxDip if (IdxDipSel > 0) { @@ -100,10 +102,81 @@ namespace GPW.CORE.ADM.Components.Compo totalCount = SearchRecords.Count; SortTable(); isLoading = false; - // tolgo eventuale send data... - isSendingData = false; + } + + + private bool sortAsc = true; + private string sortField = ""; + private void SortTable() + { + if (SearchRecords != null) + { + // se ho ordinamento riordino... + if (!string.IsNullOrEmpty(sortField)) + { + switch (sortField) + { +#if false + case "Descrizione": + if (sortAsc) + { + SearchRecords = SearchRecords.OrderBy(x => x.Descrizione).ToList(); + } + else + { + SearchRecords = SearchRecords.OrderByDescending(x => x.Descrizione).ToList(); + } + break; + + case "CodGruppo": + if (sortAsc) + { + SearchRecords = SearchRecords.OrderBy(x => x.CodGruppo).ToList(); + } + else + { + SearchRecords = SearchRecords.OrderByDescending(x => x.CodGruppo).ToList(); + } + break; + + case "CodTagFase": + if (sortAsc) + { + SearchRecords = SearchRecords.OrderBy(x => x.CodTagFase).ToList(); + } + else + { + SearchRecords = SearchRecords.OrderByDescending(x => x.CodTagFase).ToList(); + } + break; + + case "NumFasi": + if (sortAsc) + { + SearchRecords = SearchRecords.OrderBy(x => x.NumFasi).ToList(); + } + else + { + SearchRecords = SearchRecords.OrderByDescending(x => x.NumFasi).ToList(); + } + break; #endif - await Task.Delay(1); + + default: + break; + } + } + + // filtro x display + ListRecords = SearchRecords + .Skip(numRecord * (currPage - 1)) + .Take(numRecord) + .ToList(); + } + else + { + ListRecords = new List(); + } } private async Task SavePeriodo(DtUtils.Periodo newPeiodo) @@ -112,6 +185,7 @@ namespace GPW.CORE.ADM.Components.Compo await ReloadData(); } + private static Logger Log = LogManager.GetCurrentClassLogger(); #endregion Private Methods } } \ No newline at end of file diff --git a/GPW.CORE.ADM/Components/Compo/TagsMan.razor b/GPW.CORE.ADM/Components/Compo/TagsMan.razor index 8be21c7..ad01809 100644 --- a/GPW.CORE.ADM/Components/Compo/TagsMan.razor +++ b/GPW.CORE.ADM/Components/Compo/TagsMan.razor @@ -33,7 +33,7 @@ } else if (totalCount == 0) { -
Nessun record trovato
+
Nessun record trovato
} else { diff --git a/GPW.CORE.ADM/Components/Compo/TagsMan.razor.cs b/GPW.CORE.ADM/Components/Compo/TagsMan.razor.cs index 1cb7f4f..752539a 100644 --- a/GPW.CORE.ADM/Components/Compo/TagsMan.razor.cs +++ b/GPW.CORE.ADM/Components/Compo/TagsMan.razor.cs @@ -166,7 +166,7 @@ namespace GPW.CORE.ADM.Components.Compo Log.Error($"Eccezione in recupero dati{Environment.NewLine}{ex}"); } totalCount = SearchRecords.Count; - SortTable(); + SortTable(); isLoading = false; } diff --git a/GPW.CORE.ADM/GPW.CORE.ADM.csproj b/GPW.CORE.ADM/GPW.CORE.ADM.csproj index c81ada7..388b323 100644 --- a/GPW.CORE.ADM/GPW.CORE.ADM.csproj +++ b/GPW.CORE.ADM/GPW.CORE.ADM.csproj @@ -4,7 +4,7 @@ net8.0 enable enable - 4.1.2506.1010 + 4.1.2506.1109 diff --git a/GPW.CORE.Data/Controllers/GPWController.cs b/GPW.CORE.Data/Controllers/GPWController.cs index c88e0f4..e4e9672 100644 --- a/GPW.CORE.Data/Controllers/GPWController.cs +++ b/GPW.CORE.Data/Controllers/GPWController.cs @@ -3603,6 +3603,39 @@ namespace GPW.CORE.Data.Controllers return answ; } + /// + /// Recupero dati month tag da stored dedicata + /// + /// + /// + /// + /// + public List MonthTagList(int idxDipendente, DateTime dataFrom, DateTime dataTo) + { + // init dati necessari + List dbResult = new List(); + // cerco su DB recuperando set di dati.... + using (GPWContext dbCtx = new GPWContext(_configuration)) + { + try + { + var pidxDipendente = new SqlParameter("@idxProgetto", idxDipendente); + var pdataFrom = new SqlParameter("@idxProgetto", dataFrom); + var pdataTo = new SqlParameter("@idxProgetto", dataTo); + + dbResult = dbCtx + .DbSetMonthTag + .FromSqlRaw("EXEC dbo.stp_LTM_ByUserDate @idxDipendente, @dataFrom, @dataTo", idxDipendente, pdataFrom, pdataTo) + .ToList(); + } + catch (Exception exc) + { + Log.Error($"Errore in MonthTagList:{Environment.NewLine}{exc}"); + } + } + return dbResult; + } + #endregion Internal Methods #region Private Fields diff --git a/GPW.CORE.Data/Services/GpwDataService.cs b/GPW.CORE.Data/Services/GpwDataService.cs index ce785e3..2fd1b3d 100644 --- a/GPW.CORE.Data/Services/GpwDataService.cs +++ b/GPW.CORE.Data/Services/GpwDataService.cs @@ -1223,6 +1223,52 @@ namespace GPW.CORE.Data.Services return dbResult; } + + /// + /// Elenco Tag mensili filtrato x dipendente + /// + /// + /// + /// + /// + public async Task> MonthTagList(int idxDip, DateTime dtFrom, DateTime dtTo) + { + string source = "DB"; + List? dbResult = new List(); + // cerco "secca "in redis... + string currKey = $"{rKeyTags}:MONTH"; + Stopwatch stopWatch = new Stopwatch(); + stopWatch.Start(); + string? rawData = await redisDb.StringGetAsync(currKey); + if (!string.IsNullOrEmpty(rawData) && rawData.Length > 2) + { + source = "REDIS"; + var tempResult = JsonConvert.DeserializeObject>(rawData); + if (tempResult == null) + { + dbResult = new List(); + } + else + { + dbResult = tempResult; + } + } + else + { + dbResult = dbController.MonthTagList(idxDip, dtFrom, dtTo); + rawData = JsonConvert.SerializeObject(dbResult, JSSettings); + await redisDb.StringSetAsync(currKey, rawData, UltraLongCache); + } + if (dbResult == null) + { + dbResult = new List(); + } + stopWatch.Stop(); + TimeSpan ts = stopWatch.Elapsed; + Log.Debug($"MonthTagList | {source} in: {ts.TotalMilliseconds} ms"); + return dbResult; + } + /// /// Eliminazione record TagFasi /// diff --git a/GPW.CORE.WRKLOG/GPW.CORE.WRKLOG.csproj b/GPW.CORE.WRKLOG/GPW.CORE.WRKLOG.csproj index 45718af..cf0dd7b 100644 --- a/GPW.CORE.WRKLOG/GPW.CORE.WRKLOG.csproj +++ b/GPW.CORE.WRKLOG/GPW.CORE.WRKLOG.csproj @@ -4,7 +4,7 @@ net8.0 enable enable - 4.1.2506.1009 + 4.1.2506.1011 diff --git a/Resources/ChangeLog.html b/Resources/ChangeLog.html index 45d669f..5bd7e30 100644 --- a/Resources/ChangeLog.html +++ b/Resources/ChangeLog.html @@ -1,6 +1,6 @@ GPW - Gestione Presenze Web -

Versione: 4.1.2506.1010

+

Versione: 4.1.2506.1109


Note di rilascio:
  • diff --git a/Resources/VersNum.txt b/Resources/VersNum.txt index 7049730..9dff731 100644 --- a/Resources/VersNum.txt +++ b/Resources/VersNum.txt @@ -1 +1 @@ -4.1.2506.1010 +4.1.2506.1109 diff --git a/Resources/manifest.xml b/Resources/manifest.xml index 859c111..6575cfe 100644 --- a/Resources/manifest.xml +++ b/Resources/manifest.xml @@ -1,6 +1,6 @@ - 4.1.2506.1010 + 4.1.2506.1109 http://nexus.steamware.net/repository/SWS/GPW/stable/GPW.UI.zip http://nexus.steamware.net/repository/SWS/GPW/stable/ChangeLog.html false