Aggiunta metodi x Fermi non qualificati

This commit is contained in:
Samuele Locatelli
2023-10-09 11:47:28 +02:00
parent 2522d6f6a5
commit 8fcb16dd4d
8 changed files with 127 additions and 29 deletions
+50 -24
View File
@@ -164,6 +164,30 @@ namespace MP.Data.Controllers
}
}
/// <summary>
/// Recupera elenco ultimi commenti x macchina
/// </summary>
/// <param name="idxMacchina">Idx macchina, "*" = tutte</param>
/// <param name="maxRec">Num massimo di record da recuperare</param>
/// <returns></returns>
public List<CommentiModel> CommentiGetLastByMacc(string idxMacchina, int maxRec)
{
List<CommentiModel> dbResult = new List<CommentiModel>();
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;
}
/// <summary>
/// Effettua conferma prod macchina dell'intero periodo da confermare (ultima conferma
/// --&gt; dtEvent)
@@ -332,30 +356,6 @@ namespace MP.Data.Controllers
await Task.Delay(1);
return fatto;
}
/// <summary>
/// Recupera elenco ultimi commenti x macchina
/// </summary>
/// <param name="idxMacchina">Idx macchina, "*" = tutte</param>
/// <param name="maxRec">Num massimo di record da recuperare</param>
/// <returns></returns>
public List<CommentiModel> CommentiGetLastByMacc(string idxMacchina, int maxRec)
{
List<CommentiModel> dbResult = new List<CommentiModel>();
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;
}
/// <summary>
/// Recupera record EventList date condizioni filtro
@@ -408,6 +408,32 @@ namespace MP.Data.Controllers
return fatto;
}
/// <summary>
/// Recupera elenco fermi non qualificati da filtro
/// </summary>
/// <param name="idxMacchina">Idx macchina, "*" = tutte</param>
/// <param name="gg">Num massimo di giorni antecedenti</param>
/// <param name="durataMin">Durata minima (in minuti)</param>
/// <returns></returns>
public List<FermiNonQualModel> FermiNonQualificatiFilt(string idxMacchina, int gg, double durataMin)
{
List<FermiNonQualModel> dbResult = new List<FermiNonQualModel>();
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;
}
/// <summary>
/// MicroStato macchina (da key)
/// </summary>
@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
#nullable disable
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
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
}
}
+7 -1
View File
@@ -81,7 +81,8 @@ namespace MP.Data
public virtual DbSet<vSelEventiBCodeModel> DbSetVSEB { get; set; }
public virtual DbSet<CommentiModel> DbSetCommenti { get; set; }
public virtual DbSet<FermiNonQualModel> DbSetFNQ { get; set; }
#endregion Public Properties
@@ -533,6 +534,11 @@ namespace MP.Data
entity.HasKey(e => new { e.IdxMacchina, e.InizioStato });
});
modelBuilder.Entity<FermiNonQualModel>(entity =>
{
entity.HasKey(e => new { e.IdxMacchina, e.InizioStato });
});
OnModelCreatingPartial(modelBuilder);
}
+38
View File
@@ -405,6 +405,44 @@ namespace MP.Data.Services
return answ;
}
/// <summary>
/// Recupera elenco fermi non qualificati da filtro
/// </summary>
/// <param name="idxMacchina">Idx macchina, "*" = tutte</param>
/// <param name="gg">Num massimo di giorni antecedenti</param>
/// <param name="durataMin">Durata minima (in minuti)</param>
/// <returns></returns>
public async Task<List<FermiNonQualModel>> FermiNonQualificatiFilt(string idxMacchina, int gg, double durataMin)
{
// setup parametri costanti
string source = "DB";
Stopwatch sw = new Stopwatch();
sw.Start();
List<FermiNonQualModel> result = new List<FermiNonQualModel>();
// cerco in redis...
string currKey = $"{redisBaseKey}:FNQ:{idxMacchina}:{gg}:{durataMin:N0}";
RedisValue rawData = await redisDb.StringGetAsync(currKey);
if (rawData.HasValue)
{
result = JsonConvert.DeserializeObject<List<FermiNonQualModel>>($"{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<FermiNonQualModel>();
}
sw.Stop();
Log.Debug($"FermiNonQualificatiFilt | {source} | {sw.Elapsed.TotalMilliseconds}ms");
return result;
}
/// <summary>
/// Pulizia cache Redis (tutta)
/// </summary>