From b2c9fac4ca36ab4d36b661f467c0ffcd3213c53d Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Mon, 16 Oct 2023 14:37:58 +0200 Subject: [PATCH] Fix selezione period e ODL x controlli --- MP-TAB-SERV/Components/AlarmsMan.razor.cs | 5 +- MP-TAB-SERV/Components/ControlsMan.razor | 22 ++++- MP-TAB-SERV/Components/ControlsMan.razor.cs | 35 ++++--- MP-TAB-SERV/Components/MachineSelOdl.razor | 29 ++++++ MP-TAB-SERV/Components/MachineSelOdl.razor.cs | 97 +++++++++++++++++++ MP-TAB-SERV/Components/ProdPlanMan.razor | 5 +- MP-TAB-SERV/Components/ScrapMan.razor | 2 - MP-TAB-SERV/Components/ScrapMan.razor.cs | 29 ++++++ MP-TAB-SERV/MP-TAB-SERV.csproj | 2 +- MP-TAB-SERV/Pages/Declarations.razor | 4 +- MP-TAB-SERV/Pages/MachineDetail.razor | 4 +- MP-TAB-SERV/Pages/ProdPlan.razor | 4 +- MP-TAB-SERV/Pages/Scrap.razor | 6 +- MP-TAB-SERV/Pages/_Layout.cshtml | 4 + MP-TAB-SERV/Resources/ChangeLog.html | 2 +- MP-TAB-SERV/Resources/VersNum.txt | 2 +- MP-TAB-SERV/Resources/manifest.xml | 2 +- MP.Data/Controllers/MpTabController.cs | 23 +++++ MP.Data/DatabaseModels/vSelOdlModel.cs | 19 ++++ MP.Data/MoonProContext.cs | 12 ++- MP.Data/Services/TabDataService.cs | 36 +++++++ 21 files changed, 303 insertions(+), 41 deletions(-) create mode 100644 MP-TAB-SERV/Components/MachineSelOdl.razor create mode 100644 MP-TAB-SERV/Components/MachineSelOdl.razor.cs create mode 100644 MP-TAB-SERV/Components/ScrapMan.razor.cs create mode 100644 MP.Data/DatabaseModels/vSelOdlModel.cs diff --git a/MP-TAB-SERV/Components/AlarmsMan.razor.cs b/MP-TAB-SERV/Components/AlarmsMan.razor.cs index b992c334..b39d50e1 100644 --- a/MP-TAB-SERV/Components/AlarmsMan.razor.cs +++ b/MP-TAB-SERV/Components/AlarmsMan.razor.cs @@ -1,5 +1,6 @@ using global::Microsoft.AspNetCore.Components; using Microsoft.JSInterop; +using MongoDB.Driver.Linq; using MP.Data; using MP.Data.DatabaseModels; using MP.Data.Services; @@ -97,7 +98,9 @@ namespace MP_TAB_SERV.Components if (RecMSE != null) { IdxMaccSel = RecMSE.IdxMacchina; - CurrPeriodo = new Periodo(PeriodSet.ThisWeek); + DateTime fine = DateTime.Today.AddDays(1); + DateTime inizio = fine.AddDays(-8); + CurrPeriodo = new Periodo(inizio, fine); await doUpdate(); } var rawDest = config.GetValue("AlarmDest"); diff --git a/MP-TAB-SERV/Components/ControlsMan.razor b/MP-TAB-SERV/Components/ControlsMan.razor index cb245a6a..0243545f 100644 --- a/MP-TAB-SERV/Components/ControlsMan.razor +++ b/MP-TAB-SERV/Components/ControlsMan.razor @@ -1,5 +1,25 @@ - + +
+
+

Tipo Selezione

+
+
+
+ + +
+
+
+ +@if (useOdl) +{ + +} +else +{ + +}
diff --git a/MP-TAB-SERV/Components/ControlsMan.razor.cs b/MP-TAB-SERV/Components/ControlsMan.razor.cs index ffe6ec23..56f5208f 100644 --- a/MP-TAB-SERV/Components/ControlsMan.razor.cs +++ b/MP-TAB-SERV/Components/ControlsMan.razor.cs @@ -27,7 +27,7 @@ namespace MP_TAB_SERV.Components await Task.Delay(1); if (!string.IsNullOrEmpty(IdxMaccSel)) { - ListComplete = await TabDServ.RegControlliFilt(IdxMaccSel, idxOdl, CurrPeriodo.Inizio, CurrPeriodo.Fine, false); + ListComplete = await TabDServ.RegControlliFilt(IdxMaccSel, IdxOdl, CurrPeriodo.Inizio, CurrPeriodo.Fine, false); TotalCount = ListComplete.Count; // esegue paginazione UpdateTable(); @@ -38,18 +38,6 @@ namespace MP_TAB_SERV.Components #endregion Public Methods - #region Protected Fields - - protected int idxOdl = 0; - protected bool isProcessing = false; - protected string noteKo = ""; - protected int NumRecPage = 10; - protected int PageNum = 1; - protected bool showNote = false; - protected int TotalCount = 0; - - #endregion Protected Fields - #region Protected Properties protected string ConfTitle @@ -116,11 +104,21 @@ namespace MP_TAB_SERV.Components protected async Task SetMacc(string selIdxMacc) { isProcessing = true; - await Task.Delay(10); + await Task.Delay(1); IdxMaccSel = selIdxMacc; await doUpdate(); isProcessing = false; - await Task.Delay(10); + await Task.Delay(1); + } + + protected async Task SetOdl(int selIdxOdl) + { + isProcessing = true; + await Task.Delay(1); + IdxOdl = selIdxOdl; + await doUpdate(); + isProcessing = false; + await Task.Delay(1); } protected async Task SetPeriodo(Periodo newPeriodo) @@ -162,7 +160,13 @@ namespace MP_TAB_SERV.Components #region Private Fields private static Logger Log = LogManager.GetCurrentClassLogger(); + private bool isProcessing = false; + private string noteKo = ""; + private int NumRecPage = 10; + private int PageNum = 1; private bool showInsert = false; + private bool showNote = false; + private int TotalCount = 0; #endregion Private Fields @@ -170,6 +174,7 @@ namespace MP_TAB_SERV.Components private Periodo CurrPeriodo { get; set; } = new Periodo(); private string IdxMaccSel { get; set; } = ""; + private int IdxOdl { get; set; } = 0; #endregion Private Properties } diff --git a/MP-TAB-SERV/Components/MachineSelOdl.razor b/MP-TAB-SERV/Components/MachineSelOdl.razor new file mode 100644 index 00000000..3f7a9281 --- /dev/null +++ b/MP-TAB-SERV/Components/MachineSelOdl.razor @@ -0,0 +1,29 @@ +
+
+
+ Commessa / ODL + +
+
+
+
+ # ODL + +
+
+
+ + diff --git a/MP-TAB-SERV/Components/MachineSelOdl.razor.cs b/MP-TAB-SERV/Components/MachineSelOdl.razor.cs new file mode 100644 index 00000000..9dde62b7 --- /dev/null +++ b/MP-TAB-SERV/Components/MachineSelOdl.razor.cs @@ -0,0 +1,97 @@ +using global::Microsoft.AspNetCore.Components; +using MP.Data.DatabaseModels; +using MP.Data.Services; + +namespace MP_TAB_SERV.Components +{ + public partial class MachineSelOdl + { + #region Public Properties + + [Parameter] + public EventCallback E_OdlSel { get; set; } + + [Parameter] + public string IdxMacchina { get; set; } = ""; + + #endregion Public Properties + + #region Protected Fields + + protected bool isProcessing = false; + + #endregion Protected Fields + + #region Protected Properties + + protected int IdxOdlSel + { + get => idxOdlSel; + set + { + if (idxOdlSel != value) + { + idxOdlSel = value; + E_OdlSel.InvokeAsync(value).ConfigureAwait(false); + } + } + } + private int idxOdlSel { get; set; } = 0; + protected List ListODL { get; set; } = new(); + + [Inject] + protected TabDataService TabDServ { get; set; } = null!; + + #endregion Protected Properties + + #region Protected Methods + + protected override async Task OnParametersSetAsync() + { + await ReloadData(); + } + + #endregion Protected Methods + + #region Private Properties + + private int numRec { get; set; } = 10; + + private int NumRec + { + get => numRec; + set + { + if (numRec != value) + { + numRec = value; + var pUpd = Task.Run(async () => + { + await ReloadData(); + await Task.Delay(1); + //await InvokeAsync(() => StateHasChanged()); + }); + pUpd.Wait(); + } + } + } + + #endregion Private Properties + + #region Private Methods + + private async Task ReloadData() + { + isProcessing = true; + await Task.Delay(1); + if (!string.IsNullOrEmpty(IdxMacchina)) + { + ListODL = await TabDServ.VSOdlGetLastByMacc(IdxMacchina, NumRec); + } + isProcessing = false; + await Task.Delay(1); + } + + #endregion Private Methods + } +} \ No newline at end of file diff --git a/MP-TAB-SERV/Components/ProdPlanMan.razor b/MP-TAB-SERV/Components/ProdPlanMan.razor index 8dae3d28..30303658 100644 --- a/MP-TAB-SERV/Components/ProdPlanMan.razor +++ b/MP-TAB-SERV/Components/ProdPlanMan.razor @@ -1,8 +1,7 @@ -

Piano Produzione - PODL

- - +
+

Piano Produzione - PODL

diff --git a/MP-TAB-SERV/Components/ScrapMan.razor b/MP-TAB-SERV/Components/ScrapMan.razor index 81e77e82..dadcb885 100644 --- a/MP-TAB-SERV/Components/ScrapMan.razor +++ b/MP-TAB-SERV/Components/ScrapMan.razor @@ -1,5 +1,3 @@ 

ScrapMan

-@code { -} diff --git a/MP-TAB-SERV/Components/ScrapMan.razor.cs b/MP-TAB-SERV/Components/ScrapMan.razor.cs new file mode 100644 index 00000000..8f938f4e --- /dev/null +++ b/MP-TAB-SERV/Components/ScrapMan.razor.cs @@ -0,0 +1,29 @@ +using global::System; +using global::System.Collections.Generic; +using global::System.Linq; +using global::System.Threading.Tasks; +using global::Microsoft.AspNetCore.Components; +using System.Net.Http; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Components.Authorization; +using Microsoft.AspNetCore.Components.Forms; +using Microsoft.AspNetCore.Components.Routing; +using Microsoft.AspNetCore.Components.Web; +using Microsoft.AspNetCore.Components.Web.Virtualization; +using Microsoft.JSInterop; +using MP_TAB_SERV; +using MP_TAB_SERV.Shared; +using MP_TAB_SERV.Components; +using MP.Data; +using MP.Data.DatabaseModels; +using MP.Data.DTO; +using MP.Data.Services; +using Newtonsoft.Json; +using NLog; + +namespace MP_TAB_SERV.Components +{ + public partial class ScrapMan + { + } +} \ No newline at end of file diff --git a/MP-TAB-SERV/MP-TAB-SERV.csproj b/MP-TAB-SERV/MP-TAB-SERV.csproj index d94a20cf..f1c4f6a3 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.1318 + 6.16.2310.1614 enable MP_TAB_SERV diff --git a/MP-TAB-SERV/Pages/Declarations.razor b/MP-TAB-SERV/Pages/Declarations.razor index 06ded59e..bf2b95b7 100644 --- a/MP-TAB-SERV/Pages/Declarations.razor +++ b/MP-TAB-SERV/Pages/Declarations.razor @@ -6,8 +6,6 @@ } else { -
- -
+ } diff --git a/MP-TAB-SERV/Pages/MachineDetail.razor b/MP-TAB-SERV/Pages/MachineDetail.razor index 277d218b..200cfa74 100644 --- a/MP-TAB-SERV/Pages/MachineDetail.razor +++ b/MP-TAB-SERV/Pages/MachineDetail.razor @@ -6,9 +6,7 @@ } else { -
- -
+ diff --git a/MP-TAB-SERV/Pages/ProdPlan.razor b/MP-TAB-SERV/Pages/ProdPlan.razor index b35ba0e6..4664541b 100644 --- a/MP-TAB-SERV/Pages/ProdPlan.razor +++ b/MP-TAB-SERV/Pages/ProdPlan.razor @@ -6,8 +6,6 @@ } else { -
- -
+ } diff --git a/MP-TAB-SERV/Pages/Scrap.razor b/MP-TAB-SERV/Pages/Scrap.razor index 30e4ee4e..68a54c91 100644 --- a/MP-TAB-SERV/Pages/Scrap.razor +++ b/MP-TAB-SERV/Pages/Scrap.razor @@ -6,8 +6,6 @@ } else { -
- -
- + + } diff --git a/MP-TAB-SERV/Pages/_Layout.cshtml b/MP-TAB-SERV/Pages/_Layout.cshtml index f5ff7dac..e190a339 100644 --- a/MP-TAB-SERV/Pages/_Layout.cshtml +++ b/MP-TAB-SERV/Pages/_Layout.cshtml @@ -9,12 +9,16 @@ + + + @* *@ + @* *@ diff --git a/MP-TAB-SERV/Resources/ChangeLog.html b/MP-TAB-SERV/Resources/ChangeLog.html index 4b230306..f6f6de29 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.1318

+

Versione: 6.16.2310.1614


Note di rilascio:
  • diff --git a/MP-TAB-SERV/Resources/VersNum.txt b/MP-TAB-SERV/Resources/VersNum.txt index d553ba9d..8bf83e7e 100644 --- a/MP-TAB-SERV/Resources/VersNum.txt +++ b/MP-TAB-SERV/Resources/VersNum.txt @@ -1 +1 @@ -6.16.2310.1318 +6.16.2310.1614 diff --git a/MP-TAB-SERV/Resources/manifest.xml b/MP-TAB-SERV/Resources/manifest.xml index a3aae1f1..8437644c 100644 --- a/MP-TAB-SERV/Resources/manifest.xml +++ b/MP-TAB-SERV/Resources/manifest.xml @@ -1,6 +1,6 @@ - 6.16.2310.1318 + 6.16.2310.1614 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.Data/Controllers/MpTabController.cs b/MP.Data/Controllers/MpTabController.cs index 41537008..4a9ab556 100644 --- a/MP.Data/Controllers/MpTabController.cs +++ b/MP.Data/Controllers/MpTabController.cs @@ -1042,6 +1042,29 @@ namespace MP.Data.Controllers return answ; } + /// + /// Elenco ultimi ODL x macchina + /// + /// Macchina + /// + /// + public List VSOdlGetLastByMacc(string idxMacchina, int numRec) + { + List dbResult = new List(); + using (var dbCtx = new MoonProContext(_configuration)) + { + var IdxMacc = new SqlParameter("@IdxMacchina", idxMacchina); + var NumRec = new SqlParameter("@numRec", numRec); + + dbResult = dbCtx + .DbSetVSODL + .FromSqlRaw("EXEC stp_vsODL_getLastByMacc @IdxMacchina, @numRec", IdxMacc, NumRec) + .AsNoTracking() + .ToList(); + } + return dbResult; + } + #endregion Public Methods #region Private Fields diff --git a/MP.Data/DatabaseModels/vSelOdlModel.cs b/MP.Data/DatabaseModels/vSelOdlModel.cs new file mode 100644 index 00000000..8485d869 --- /dev/null +++ b/MP.Data/DatabaseModels/vSelOdlModel.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +#nullable disable +// +// This is here so CodeMaid doesn't reorganize this document +// +namespace MP.Data.DatabaseModels +{ + public partial class vSelOdlModel + { + [Key] + public int value { get; set; } = 0; + public string label { get; set; } = ""; + public DateTime conditio { get; set; } = DateTime.Now; + } +} diff --git a/MP.Data/MoonProContext.cs b/MP.Data/MoonProContext.cs index 913c95dc..4368603a 100644 --- a/MP.Data/MoonProContext.cs +++ b/MP.Data/MoonProContext.cs @@ -84,12 +84,14 @@ namespace MP.Data public virtual DbSet DbSetStTemplate { get; set; } public virtual DbSet DbSetStTemplateRows { get; set; } - - public virtual DbSet DbSetVSEB { get; set; } public virtual DbSet DbSetCommenti { get; set; } public virtual DbSet DbSetFNQ { get; set; } + public virtual DbSet DbSetVSEB { get; set; } + public virtual DbSet DbSetVSODL { get; set; } + + #endregion Public Properties #region Private Methods @@ -544,6 +546,12 @@ namespace MP.Data { entity.HasKey(e => new { e.IdxMacchina, e.InizioStato }); }); + modelBuilder.Entity(entity => + { + //entity.HasKey(e => e.value); + entity.ToView("v_selODL"); + }); + OnModelCreatingPartial(modelBuilder); } diff --git a/MP.Data/Services/TabDataService.cs b/MP.Data/Services/TabDataService.cs index 84b566e4..2949513d 100644 --- a/MP.Data/Services/TabDataService.cs +++ b/MP.Data/Services/TabDataService.cs @@ -1163,6 +1163,42 @@ namespace MP.Data.Services return result; } + /// + /// Elenco ultimi ODL x macchina + /// + /// Macchina + /// + /// + public async Task> VSOdlGetLastByMacc(string idxMacchina, int numRec) + { + string source = "DB"; + Stopwatch sw = new Stopwatch(); + sw.Start(); + List? result = new List(); + // cerco in redis... + string currKey = $"{redisBaseKey}:VSODL:{idxMacchina}:{numRec}"; + RedisValue rawData = await redisDb.StringGetAsync(currKey); + if (rawData.HasValue) + { + result = JsonConvert.DeserializeObject>($"{rawData}"); + source = "REDIS"; + } + else + { + result = await Task.FromResult(dbTabController.VSOdlGetLastByMacc(idxMacchina, numRec)); + // serializzp e salvo... + rawData = JsonConvert.SerializeObject(result); + await redisDb.StringSetAsync(currKey, rawData, LongCache); + } + if (result == null) + { + result = new List(); + } + sw.Stop(); + Log.Debug($"VSOdlGetLastByMacc | {source} | {sw.Elapsed.TotalMilliseconds}ms"); + return result; + } + #endregion Public Methods #region Protected Fields