diff --git a/MP-TAB-SERV/Resources/manifest.xml b/MP-TAB-SERV/Resources/manifest.xml index 6b36f353..0438560c 100644 --- a/MP-TAB-SERV/Resources/manifest.xml +++ b/MP-TAB-SERV/Resources/manifest.xml @@ -1,6 +1,10 @@ +<<<<<<< HEAD 6.16.2310.912 +======= + 6.16.2310.911 +>>>>>>> 760efc57d30b34a76030b4c0c336e1d6a44e420d 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 940cc3ef..7b6fb7a1 100644 --- a/MP.Data/Controllers/MpTabController.cs +++ b/MP.Data/Controllers/MpTabController.cs @@ -165,6 +165,30 @@ namespace MP.Data.Controllers } } + /// + /// Recupera elenco ultimi commenti x macchina + /// + /// Idx macchina, "*" = tutte + /// Num massimo di record da recuperare + /// + public List CommentiGetLastByMacc(string idxMacchina, int maxRec) + { + List dbResult = new List(); + using (var dbCtx = new MoonProContext(_configuration)) + { + var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina); + var MaxRec = new SqlParameter("@MaxRec", maxRec); + + dbResult = dbCtx + .DbSetCommenti + .FromSqlRaw("exec dbo.stp_Comm_getLastByMacchina @IdxMacchina, @MaxRec", IdxMacchina, MaxRec) + .AsNoTracking() + .AsEnumerable() + .ToList(); + } + return dbResult; + } + /// /// Effettua conferma prod macchina dell'intero periodo da confermare (ultima conferma /// --> dtEvent) @@ -434,6 +458,32 @@ namespace MP.Data.Controllers return fatto; } + /// + /// Recupera elenco fermi non qualificati da filtro + /// + /// Idx macchina, "*" = tutte + /// Num massimo di giorni antecedenti + /// Durata minima (in minuti) + /// + public List FermiNonQualificatiFilt(string idxMacchina, int gg, double durataMin) + { + List dbResult = new List(); + using (var dbCtx = new MoonProContext(_configuration)) + { + var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina); + var GG = new SqlParameter("@MaxRec", gg); + var DurataMin = new SqlParameter("@MaxRec", durataMin); + + dbResult = dbCtx + .DbSetFNQ + .FromSqlRaw("exec dbo.stp_FNQ_getFilt @IdxMacchina, @gg, @durataMin", IdxMacchina, GG, DurataMin) + .AsNoTracking() + .AsEnumerable() + .ToList(); + } + return dbResult; + } + /// /// MicroStato macchina (da key) /// diff --git a/MP.Data/DatabaseModels/FermiNonQualModel.cs b/MP.Data/DatabaseModels/FermiNonQualModel.cs new file mode 100644 index 00000000..68aa34c8 --- /dev/null +++ b/MP.Data/DatabaseModels/FermiNonQualModel.cs @@ -0,0 +1,28 @@ +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 FermiNonQualModel + { + #region Public Properties + + public string IdxMacchina { get; set; } = "NA"; + public DateTime InizioStato { get; set; } = DateTime.Now; + public string Macchina { get; set; } = ""; + public int IdxStato { get; set; } = 0; + public string Semaforo { get; set; } = ""; + public double DurataMinuti { get; set; } = 0; + public string Value { get; set; } = ""; + public string CodArticolo { get; set; } = ""; + + #endregion Public Properties + } +} \ No newline at end of file diff --git a/MP.Data/MoonProContext.cs b/MP.Data/MoonProContext.cs index 8a9b5abf..343b2675 100644 --- a/MP.Data/MoonProContext.cs +++ b/MP.Data/MoonProContext.cs @@ -83,7 +83,8 @@ namespace MP.Data public virtual DbSet DbSetVSEB { get; set; } public virtual DbSet DbSetCommenti { get; set; } - + public virtual DbSet DbSetFNQ { get; set; } + #endregion Public Properties @@ -535,6 +536,11 @@ namespace MP.Data entity.HasKey(e => new { e.IdxMacchina, e.InizioStato }); }); + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.IdxMacchina, e.InizioStato }); + }); + OnModelCreatingPartial(modelBuilder); } diff --git a/MP.Data/Services/TabDataService.cs b/MP.Data/Services/TabDataService.cs index 29d9a7e0..338fea0b 100644 --- a/MP.Data/Services/TabDataService.cs +++ b/MP.Data/Services/TabDataService.cs @@ -445,6 +445,44 @@ namespace MP.Data.Services return answ; } + /// + /// Recupera elenco fermi non qualificati da filtro + /// + /// Idx macchina, "*" = tutte + /// Num massimo di giorni antecedenti + /// Durata minima (in minuti) + /// + public async Task> FermiNonQualificatiFilt(string idxMacchina, int gg, double durataMin) + { + // setup parametri costanti + string source = "DB"; + Stopwatch sw = new Stopwatch(); + sw.Start(); + List result = new List(); + // cerco in redis... + string currKey = $"{redisBaseKey}:FNQ:{idxMacchina}:{gg}:{durataMin:N0}"; + RedisValue rawData = await redisDb.StringGetAsync(currKey); + if (rawData.HasValue) + { + result = JsonConvert.DeserializeObject>($"{rawData}"); + source = "REDIS"; + } + else + { + result = dbTabController.FermiNonQualificatiFilt(idxMacchina, gg, durataMin); + // serializzp e salvo... + rawData = JsonConvert.SerializeObject(result); + await redisDb.StringSetAsync(currKey, rawData, FastCache); + } + if (result == null) + { + result = new List(); + } + sw.Stop(); + Log.Debug($"FermiNonQualificatiFilt | {source} | {sw.Elapsed.TotalMilliseconds}ms"); + return result; + } + /// /// Pulizia cache Redis (tutta) ///