From bf8e4fe3898c6dfb3d1e28cde48e9a41b6fdc180 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Mon, 6 Nov 2023 19:09:56 +0100 Subject: [PATCH] OK test FixODL postumo con RPO --- MP-TAB-SERV/Components/FixOdl.razor | 2 +- MP-TAB-SERV/Components/FixOdl.razor.cs | 112 ++++++++++++++-------- MP.Data/Controllers/MpTabController.cs | 58 ++++++++++++ MP.Data/Services/TabDataService.cs | 125 +++++++++++++++++-------- 4 files changed, 218 insertions(+), 79 deletions(-) diff --git a/MP-TAB-SERV/Components/FixOdl.razor b/MP-TAB-SERV/Components/FixOdl.razor index f16f5f60..e8998715 100644 --- a/MP-TAB-SERV/Components/FixOdl.razor +++ b/MP-TAB-SERV/Components/FixOdl.razor @@ -82,7 +82,7 @@
@if (IdxOdlSel > 0) { - + }
diff --git a/MP-TAB-SERV/Components/FixOdl.razor.cs b/MP-TAB-SERV/Components/FixOdl.razor.cs index 76fb2c2d..1604446c 100644 --- a/MP-TAB-SERV/Components/FixOdl.razor.cs +++ b/MP-TAB-SERV/Components/FixOdl.razor.cs @@ -13,9 +13,25 @@ namespace MP_TAB_SERV.Components #endregion Public Properties + #region Protected Fields + + protected bool enableRPO = true; + protected int NumRecPage = 5; + protected int PageNum = 1; + protected int TotalCount = 0; + + #endregion Protected Fields + #region Protected Properties - private List ListSelODL { get; set; } = new List(); + protected List ListComplete { get; set; } = new List(); + protected List ListPaged { get; set; } = new List(); + + [Inject] + protected MessageService MServ { get; set; } = null!; + + [Inject] + protected NavigationManager NavMan { get; set; } = null!; protected bool ShowAll { @@ -35,6 +51,9 @@ namespace MP_TAB_SERV.Components } } + [Inject] + protected SharedMemService SMServ { get; set; } = null!; + [Inject] protected TabDataService TabDServ { get; set; } = null!; @@ -44,16 +63,67 @@ namespace MP_TAB_SERV.Components #region Protected Methods + protected override void OnInitialized() + { + enableRPO = SMServ.GetConfBool("enableRPO"); + } + protected override async Task OnParametersSetAsync() { await ReloadData(); } + protected void SaveNumRec(int newNum) + { + NumRecPage = newNum; + UpdateTable(); + } + + protected void SavePage(int newNum) + { + PageNum = newNum; + UpdateTable(); + } + + protected async Task SetupOdl() + { + await Task.Delay(1); + if (!string.IsNullOrEmpty(IdxMaccCurr) && IdxOdlSel > 0) + { + if (enableRPO) + { + // registro ODL retroattivamente... + await TabDServ.OdlSetupPromPostuma(IdxOdlSel, MServ.MatrOpr, IdxMaccCurr); + } + else + { + // registro ODL retroattivamente... + await TabDServ.OdlSetupPostumo(IdxOdlSel, IdxMaccCurr); + } + } + + // redirect + NavMan.NavigateTo(NavMan.Uri, true); + } + protected void toggleFixOdl() { showFixOdl = !showFixOdl; } + protected void UpdateTable() + { + // esegue paginazione + if (TotalCount > NumRecPage) + { + ListPaged = ListComplete.Skip((PageNum - 1) * NumRecPage).Take(NumRecPage).ToList(); + } + else + { + ListPaged = ListComplete; + } + } + #endregion Protected Methods #region Private Fields @@ -65,6 +135,8 @@ namespace MP_TAB_SERV.Components #region Private Properties + private int IdxOdlSel { get; set; } = 0; + private List ListSelODL { get; set; } = new List(); private int numDayOdl { get; set; } = 30; #endregion Private Properties @@ -84,45 +156,7 @@ namespace MP_TAB_SERV.Components UpdateTable(); } } - protected void UpdateTable() - { - // esegue paginazione - if (TotalCount > NumRecPage) - { - ListPaged = ListComplete.Skip((PageNum - 1) * NumRecPage).Take(NumRecPage).ToList(); - } - else - { - ListPaged = ListComplete; - } - } - protected void SaveNumRec(int newNum) - { - NumRecPage = newNum; - UpdateTable(); - } - protected void SavePage(int newNum) - { - PageNum = newNum; - UpdateTable(); - } - - protected async Task setupOdl() - { - await Task.Delay(1); - } - - - protected List ListComplete { get; set; } = new List(); - - protected List ListPaged { get; set; } = new List(); - protected int NumRecPage = 5; - protected int PageNum = 1; - protected int TotalCount = 0; - - - private int IdxOdlSel { get; set; } = 0; #endregion Private Methods } } \ No newline at end of file diff --git a/MP.Data/Controllers/MpTabController.cs b/MP.Data/Controllers/MpTabController.cs index ee497037..f4207d3b 100644 --- a/MP.Data/Controllers/MpTabController.cs +++ b/MP.Data/Controllers/MpTabController.cs @@ -768,6 +768,64 @@ namespace MP.Data.Controllers return dbResult; } + /// + /// Setup ODL Postumo + /// + /// + /// + /// + public bool OdlSetupPostumo(int idxODL, string idxMacchina) + { + bool fatto = false; + using (var dbCtx = new MoonProContext(_configuration)) + { + try + { + var IdxODL = new SqlParameter("@idxODL", idxODL); + var IdxMacc = new SqlParameter("@IdxMacchina", idxMacchina); + var result = dbCtx + .Database + .ExecuteSqlRaw("EXEC stp_ODL_insPostumo @idxODL, @IdxMacchina", IdxODL, IdxMacc); + fatto = result != 0; + } + catch (Exception exc) + { + Log.Error($"Eccezione durante OdlSetupPostumo{Environment.NewLine}{exc}"); + } + } + return fatto; + } + + /// + /// Setup PODL Postumo + /// + /// + /// + /// + /// + public bool OdlSetupPromPostuma(int idxPromOdl, int matrOpr, string idxMacchina) + { + bool fatto = false; + using (var dbCtx = new MoonProContext(_configuration)) + { + try + { + var IdxPODL = new SqlParameter("@idxPromessa", idxPromOdl); + var MatrOpr = new SqlParameter("@MatrOpr", matrOpr); + var IdxMacc = new SqlParameter("@IdxMacchina", idxMacchina); + var result = dbCtx + .Database + .ExecuteSqlRaw("EXEC stp_ODL_inizioSetupPromessaPostuma @idxPromessa, @MatrOpr, @IdxMacchina", IdxPODL, MatrOpr, IdxMacc); + fatto = result != 0; + } + catch (Exception exc) + { + Log.Error($"Eccezione durante OdlSetupPromPostuma{Environment.NewLine}{exc}"); + } + } + return fatto; + } + /// /// Stato prod macchina /// diff --git a/MP.Data/Services/TabDataService.cs b/MP.Data/Services/TabDataService.cs index ee730a11..d3b5101a 100644 --- a/MP.Data/Services/TabDataService.cs +++ b/MP.Data/Services/TabDataService.cs @@ -1033,6 +1033,92 @@ namespace MP.Data.Services return answ; } + /// + /// Elenco ODL data macchina e periodo + /// + /// + /// + /// + /// + public async Task> OdlListByMacc(string idxMacchina, DateTime dtStart, DateTime dtEnd) + { + string source = "DB"; + Stopwatch sw = new Stopwatch(); + sw.Start(); + List? result = new List(); + // cerco in redis... + string currKey = $"{redisBaseKey}:ODL:{idxMacchina}:{dtStart:yyyyMMdd-HHmmss}:{dtEnd:yyyyMMdd-HHmmss}"; + RedisValue rawData = await redisDb.StringGetAsync(currKey); + if (rawData.HasValue) + { + result = JsonConvert.DeserializeObject>($"{rawData}"); + source = "REDIS"; + } + else + { + result = await Task.FromResult(dbTabController.OdlListByMacc(idxMacchina, dtStart, dtEnd)); + // riordino + result = result.OrderByDescending(x => x.DataInizio).ToList(); + // serializzp e salvo... + rawData = JsonConvert.SerializeObject(result); + await redisDb.StringSetAsync(currKey, rawData, UltraLongCache); + } + if (result == null) + { + result = new List(); + } + sw.Stop(); + Log.Debug($"OdlListByMacc | {source} | {sw.Elapsed.TotalMilliseconds}ms"); + return result; + } + + /// + /// Setup ODL Postumo + /// + /// + /// + /// + public async Task OdlSetupPostumo(int idxODL, string idxMacchina) + { + bool answ = false; + try + { + // inserisco evento + answ = dbTabController.OdlSetupPostumo(idxODL, idxMacchina); + await FlushCache("ODL"); + } + catch (Exception exc) + { + string logMsg = $"Eccezione in OdlSetupPostumo | macchina: {idxMacchina} | idxODL: {idxODL}{Environment.NewLine}{exc}"; + Log.Error(logMsg); + } + return answ; + } + + /// + /// Setup ODL Postumo + /// + /// + /// + /// + /// + public async Task OdlSetupPromPostuma(int idxPromOdl, int matrOpr, string idxMacchina) + { + bool answ = false; + try + { + // inserisco evento + answ = dbTabController.OdlSetupPromPostuma(idxPromOdl, matrOpr, idxMacchina); + await FlushCache("ODL"); + } + catch (Exception exc) + { + string logMsg = $"Eccezione in OdlSetupPromPostuma | macchina: {idxMacchina} | idxPromOdl: {idxPromOdl} | MatrOpr: {matrOpr}{Environment.NewLine}{exc}"; + Log.Error(logMsg); + } + return answ; + } + /// /// Stato prod macchina /// @@ -1990,45 +2076,6 @@ namespace MP.Data.Services return result; } - /// - /// Elenco ODL data macchina e periodo - /// - /// - /// - /// - /// - public async Task> OdlListByMacc(string idxMacchina, DateTime dtStart, DateTime dtEnd) - { - string source = "DB"; - Stopwatch sw = new Stopwatch(); - sw.Start(); - List? result = new List(); - // cerco in redis... - string currKey = $"{redisBaseKey}:ODL:{idxMacchina}:{dtStart:yyyyMMdd-HHmmss}:{dtEnd:yyyyMMdd-HHmmss}"; - RedisValue rawData = await redisDb.StringGetAsync(currKey); - if (rawData.HasValue) - { - result = JsonConvert.DeserializeObject>($"{rawData}"); - source = "REDIS"; - } - else - { - result = await Task.FromResult(dbTabController.OdlListByMacc(idxMacchina, dtStart, dtEnd)); - // riordino - result = result.OrderByDescending(x => x.DataInizio).ToList(); - // serializzp e salvo... - rawData = JsonConvert.SerializeObject(result); - await redisDb.StringSetAsync(currKey, rawData, UltraLongCache); - } - if (result == null) - { - result = new List(); - } - sw.Stop(); - Log.Debug($"OdlListByMacc | {source} | {sw.Elapsed.TotalMilliseconds}ms"); - return result; - } - /// /// Elenco ultimi ODL x macchina ///