diff --git a/MP-TAB-SERV/Components/MachSel.razor b/MP-TAB-SERV/Components/MachSel.razor index f24c8ec4..2a729643 100644 --- a/MP-TAB-SERV/Components/MachSel.razor +++ b/MP-TAB-SERV/Components/MachSel.razor @@ -1,10 +1,26 @@ -@if (false) +@if (isMulti) { -

MachSel

- +
+ Macchina + +
+ @* - + *@ } diff --git a/MP-TAB-SERV/Components/MachSel.razor.cs b/MP-TAB-SERV/Components/MachSel.razor.cs index 09cbc1a8..15f7127c 100644 --- a/MP-TAB-SERV/Components/MachSel.razor.cs +++ b/MP-TAB-SERV/Components/MachSel.razor.cs @@ -1,5 +1,7 @@ using global::Microsoft.AspNetCore.Components; using MP.Data.DatabaseModels; +using MP.Data.Services; +using System.Reflection.Metadata; namespace MP_TAB_SERV.Components { @@ -8,10 +10,25 @@ namespace MP_TAB_SERV.Components #region Public Properties [Parameter] - public MappaStatoExpl? RecMSE { get; set; } = null; + public EventCallback E_MachSel { get; set; } [Parameter] - public EventCallback E_MachSel { get; set; } + public MappaStatoExpl? RecMSE { get; set; } = null; + + #endregion Public Properties + + #region Protected Properties + + protected string IdxMaccSel { get; set; } = ""; + + protected Dictionary? ListMacchineAll { get; set; } = null; + + [Inject] + protected SharedMemService MServ { get; set; } = null!; + + #endregion Protected Properties + + #region Protected Methods protected override async Task OnInitializedAsync() { @@ -19,9 +36,21 @@ namespace MP_TAB_SERV.Components if (RecMSE != null) { await E_MachSel.InvokeAsync(RecMSE?.IdxMacchina); + // verifico se la macchina sia configurata tra le MSFD... + if (MServ.DictMacchMulti.ContainsKey(RecMSE?.IdxMacchina)) + { + isMulti = MServ.DictMacchMulti[RecMSE?.IdxMacchina] == 1; + } + ListMacchineAll = MServ.DictMacchine; } } - #endregion Public Properties + #endregion Protected Methods + + #region Private Fields + + private bool isMulti = false; + + #endregion Private Fields } } \ No newline at end of file diff --git a/MP-TAB-SERV/Components/ProdConfirm.razor.cs b/MP-TAB-SERV/Components/ProdConfirm.razor.cs index 514ae03f..e928f0ce 100644 --- a/MP-TAB-SERV/Components/ProdConfirm.razor.cs +++ b/MP-TAB-SERV/Components/ProdConfirm.razor.cs @@ -157,7 +157,6 @@ namespace MP_TAB_SERV.Components await Task.Delay(1); // effettua conferma con conf da DB del tipo (giorni / turni / periodo bool fatto = effettuaConfermaProd(); - // refresh tabella dati tablet... TabDServ.RicalcMse(IdxMaccSel, 0); // mostro output diff --git a/MP-TAB-SERV/Components/TcHistoryFilter.razor.cs b/MP-TAB-SERV/Components/TcHistoryFilter.razor.cs index 21383560..eed386c0 100644 --- a/MP-TAB-SERV/Components/TcHistoryFilter.razor.cs +++ b/MP-TAB-SERV/Components/TcHistoryFilter.razor.cs @@ -68,7 +68,10 @@ namespace MP_TAB_SERV.Components protected bool ListArtDisabled { get => string.IsNullOrEmpty(SearchVal) || SearchVal.Length < SearchMinChar; } protected Dictionary? ListArticoli { get; set; } = null; protected Dictionary ListArticoliAll { get; set; } = new Dictionary(); - protected Dictionary ListMacchineAll { get => MServ.DictMacchine; set => MServ.DictMacchine = value; } + protected Dictionary ListMacchineAll { + get => MServ.DictMacchine; + set => MServ.DictMacchine = value; + } protected int Num2Displ { diff --git a/MP-TAB-SERV/MP-TAB-SERV.csproj b/MP-TAB-SERV/MP-TAB-SERV.csproj index c2961f3a..14c6c660 100644 --- a/MP-TAB-SERV/MP-TAB-SERV.csproj +++ b/MP-TAB-SERV/MP-TAB-SERV.csproj @@ -3,7 +3,7 @@ net6.0 enable - 6.16.2310.417 + 6.16.2310.419 enable MP_TAB_SERV diff --git a/MP-TAB-SERV/Resources/ChangeLog.html b/MP-TAB-SERV/Resources/ChangeLog.html index 36d1c0ed..92eea940 100644 --- a/MP-TAB-SERV/Resources/ChangeLog.html +++ b/MP-TAB-SERV/Resources/ChangeLog.html @@ -1,6 +1,6 @@ Modulo MAPOSPEC -

Versione: 6.16.2310.417

+

Versione: 6.16.2310.419


Note di rilascio:
  • diff --git a/MP-TAB-SERV/Resources/VersNum.txt b/MP-TAB-SERV/Resources/VersNum.txt index d0a2ae0c..b9af350d 100644 --- a/MP-TAB-SERV/Resources/VersNum.txt +++ b/MP-TAB-SERV/Resources/VersNum.txt @@ -1 +1 @@ -6.16.2310.417 +6.16.2310.419 diff --git a/MP-TAB-SERV/Resources/manifest.xml b/MP-TAB-SERV/Resources/manifest.xml index 1a8d855f..8dc25dbc 100644 --- a/MP-TAB-SERV/Resources/manifest.xml +++ b/MP-TAB-SERV/Resources/manifest.xml @@ -1,6 +1,6 @@ - 6.16.2310.417 + 6.16.2310.419 https://nexus.steamware.net/repository/SWS/MP-TAB-SERV/stable/LAST/MP-TAB-SERV.zip https://nexus.steamware.net/repository/SWS/MP-TAB-SERV/stable/LAST/ChangeLog.html false diff --git a/MP-TAB-SERV/Shared/MainLayout.razor b/MP-TAB-SERV/Shared/MainLayout.razor index e43a7ccb..3efa835f 100644 --- a/MP-TAB-SERV/Shared/MainLayout.razor +++ b/MP-TAB-SERV/Shared/MainLayout.razor @@ -4,6 +4,7 @@ @implements IDisposable @inject NavigationManager NavMan @inject ListSelectDataSrv MDataService +@inject TabDataService TDataService @inject SharedMemService MStor @inject MessageService MServ @@ -92,6 +93,10 @@ // fix config... var allConf = await MDataService.ConfigGetAll(); MStor.SetConfig(allConf); + + // fix MSFD... + var allMSFD = await TDataService.VMSFDGetAll(); + MStor.SetMsfd(allMSFD); } CurrLevel = MStor.PageLevel(NavMan.Uri); // recupero menù diff --git a/MP.Data/Controllers/MpIocController.cs b/MP.Data/Controllers/MpIocController.cs index 3d5d48a8..9d0ef9a4 100644 --- a/MP.Data/Controllers/MpIocController.cs +++ b/MP.Data/Controllers/MpIocController.cs @@ -360,6 +360,7 @@ namespace MP.Data.Controllers /// /// Vista v_MSFD CALCOALTA x singola macchina (da stored) - singolo record /// + /// /// public List VMSFDGetByMacc(string idxMacc) { diff --git a/MP.Data/DatabaseModels/VMSFDModel.cs b/MP.Data/DatabaseModels/VMSFDModel.cs index f9745bbf..9a989c95 100644 --- a/MP.Data/DatabaseModels/VMSFDModel.cs +++ b/MP.Data/DatabaseModels/VMSFDModel.cs @@ -3,6 +3,9 @@ using System.Collections.Generic; namespace MP.Data.DatabaseModels { + // + // This is here so CodeMaid doesn't reorganize this document + // public partial class VMSFDModel { public string IdxMacchina { get; set; } diff --git a/MP.Data/Services/SharedMemService.cs b/MP.Data/Services/SharedMemService.cs index c94ce18d..442b12f5 100644 --- a/MP.Data/Services/SharedMemService.cs +++ b/MP.Data/Services/SharedMemService.cs @@ -25,6 +25,17 @@ namespace MP.Data.Services /// public Dictionary DictMacchine { get; set; } = new Dictionary(); + /// + /// Dizionario macchine con info multi(bool) + /// + public Dictionary DictMacchMulti { get; set; } = new Dictionary(); + + + /// + /// List configurazione attiva da tab DB + /// + public List ListMSFD { get; set; } = new List(); + /// /// Dizionario Menu /// @@ -85,6 +96,14 @@ namespace MP.Data.Services Log.Info("SharedMemService | SetConfig executed!"); } + public void SetMsfd(List newList) + { + ListMSFD = newList ?? new List(); + // salvo dizionario + DictMacchMulti = ListMSFD.ToDictionary(x => x.IdxMacchina, x => x.Multi); + Log.Info("SharedMemService | SetMsfd executed!"); + } + /// /// Effettua setup memorie menu recuperando dati dal DB + popolando dizionario x livelli /// diff --git a/MP.Data/Services/TabDataService.cs b/MP.Data/Services/TabDataService.cs index 826b962a..a4a1070c 100644 --- a/MP.Data/Services/TabDataService.cs +++ b/MP.Data/Services/TabDataService.cs @@ -31,9 +31,11 @@ namespace MP.Data.Services } else { - dbController = new Controllers.MpTabController(configuration); StringBuilder sb = new StringBuilder(); + dbTabController = new Controllers.MpTabController(configuration); sb.AppendLine($"TabDataService | MpTabController OK"); + dbIocController = new Controllers.MpIocController(configuration); + sb.AppendLine($"TabDataService | MpIocController OK"); Log.Info(sb.ToString()); } } @@ -42,7 +44,8 @@ namespace MP.Data.Services #region Public Properties - public static Controllers.MpTabController dbController { get; set; } = null!; + public static Controllers.MpIocController dbIocController { get; set; } = null!; + public static Controllers.MpTabController dbTabController { get; set; } = null!; #endregion Public Properties @@ -67,7 +70,7 @@ namespace MP.Data.Services } else { - result = dbController.AnagEventiGetAll(); + result = dbTabController.AnagEventiGetAll(); // serializzp e salvo... rawData = JsonConvert.SerializeObject(result); await redisDb.StringSetAsync(currKey, rawData, LongCache); @@ -95,7 +98,7 @@ namespace MP.Data.Services public bool ConfermaProdMacchina(string idxMacchina, int modoConfProd, int numPzConfermati, int numPzScarto, DateTime DataOraApp, int MatrOpr) { bool answ = false; - answ = dbController.ConfermaProdMacchina(idxMacchina, modoConfProd, numPzConfermati, numPzScarto, DataOraApp, MatrOpr); + answ = dbTabController.ConfermaProdMacchina(idxMacchina, modoConfProd, numPzConfermati, numPzScarto, DataOraApp, MatrOpr); return answ; } @@ -116,7 +119,7 @@ namespace MP.Data.Services public bool ConfermaProdMacchinaFull(string idxMacchina, int modoConfProd, int numPzConfermati, int numPzLasciati, int numPzScarto, DateTime DataOraApp, int MatrOpr) { bool answ = false; - answ = dbController.ConfermaProdMacchinaFull(idxMacchina, modoConfProd, numPzConfermati, numPzLasciati, numPzScarto, DataOraApp, MatrOpr); + answ = dbTabController.ConfermaProdMacchinaFull(idxMacchina, modoConfProd, numPzConfermati, numPzLasciati, numPzScarto, DataOraApp, MatrOpr); return answ; } @@ -140,7 +143,7 @@ namespace MP.Data.Services } else { - result = await Task.FromResult(dbController.ConfigGetAll()); + result = await Task.FromResult(dbTabController.ConfigGetAll()); // serializzp e salvo... rawData = JsonConvert.SerializeObject(result); await redisDb.StringSetAsync(currKey, rawData, LongCache); @@ -157,7 +160,7 @@ namespace MP.Data.Services public void Dispose() { // Clear database controller - dbController.Dispose(); + dbTabController.Dispose(); } /// @@ -169,7 +172,7 @@ namespace MP.Data.Services public bool RicalcMse(string idxMacchina, int maxAgeSec) { bool answ = false; - answ = dbController.RicalcMse(idxMacchina, maxAgeSec); + answ = dbTabController.RicalcMse(idxMacchina, maxAgeSec); return answ; } @@ -196,7 +199,7 @@ namespace MP.Data.Services } else { - result = dbController.STAR_byGrpOdl(codGruppo, idxODL); + result = dbTabController.STAR_byGrpOdl(codGruppo, idxODL); // serializzp e salvo... rawData = JsonConvert.SerializeObject(result); await redisDb.StringSetAsync(currKey, rawData, LongCache); @@ -234,7 +237,7 @@ namespace MP.Data.Services } else { - result = dbController.STAR_byGrpOdlLbl(codGruppo, label, idxODL); + result = dbTabController.STAR_byGrpOdlLbl(codGruppo, label, idxODL); // serializzp e salvo... rawData = JsonConvert.SerializeObject(result); await redisDb.StringSetAsync(currKey, rawData, LongCache); @@ -271,7 +274,7 @@ namespace MP.Data.Services } else { - result = dbController.StatoProdMacchina(idxMacchina, dtReq); + result = dbTabController.StatoProdMacchina(idxMacchina, dtReq); // serializzp e salvo... rawData = JsonConvert.SerializeObject(result); await redisDb.StringSetAsync(currKey, rawData, UltraFastCache); @@ -285,6 +288,77 @@ namespace MP.Data.Services return result; } + /// + /// Intera vista v_MSFD + /// + /// + public async Task> VMSFDGetAll() + { + // setup parametri costanti + string source = "DB"; + Stopwatch sw = new Stopwatch(); + sw.Start(); + List result = new List(); + // cerco in redis... + string currKey = $"{redisBaseKey}:MSFD:ALL"; + RedisValue rawData = await redisDb.StringGetAsync(currKey); + if (!string.IsNullOrEmpty($"{rawData}")) + { + result = JsonConvert.DeserializeObject>($"{rawData}"); + source = "REDIS"; + } + else + { + result = dbIocController.VMSFDGetAll(); + // serializzp e salvo... + rawData = JsonConvert.SerializeObject(result); + await redisDb.StringSetAsync(currKey, rawData, UltraLongCache); + } + if (result == null) + { + result = new List(); + } + sw.Stop(); + Log.Debug($"VMSFDGetAll | {source} | {sw.Elapsed.TotalMilliseconds}ms"); + return result; + } + + /// + /// Vista v_MSFD CALCOALTA x singola macchina (da stored) - singolo record + /// + /// + /// + public async Task> VMSFDGetByMacc(string idxMacc) + { + // setup parametri costanti + string source = "DB"; + Stopwatch sw = new Stopwatch(); + sw.Start(); + List? result = new List(); + // cerco in redis... + string currKey = $"{redisBaseKey}:MSFD:MACCH:{idxMacc}"; + RedisValue rawData = await redisDb.StringGetAsync(currKey); + if (!string.IsNullOrEmpty($"{rawData}")) + { + result = JsonConvert.DeserializeObject>($"{rawData}"); + source = "REDIS"; + } + else + { + result = dbIocController.VMSFDGetByMacc(idxMacc); + // serializzp e salvo... + rawData = JsonConvert.SerializeObject(result); + await redisDb.StringSetAsync(currKey, rawData, UltraFastCache); + } + if (result == null) + { + result = new List(); + } + sw.Stop(); + Log.Debug($"VMSFDGetByMacc | {source} | {sw.Elapsed.TotalMilliseconds}ms"); + return result; + } + #endregion Public Methods #region Protected Fields