Fix duplicato FNQ

This commit is contained in:
Samuele Locatelli
2023-10-09 14:50:32 +02:00
parent 97932b0b98
commit 0ddd5ff84c
10 changed files with 8 additions and 115 deletions
-49
View File
@@ -357,55 +357,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 elenco ultime fermate non frequenti
/// </summary>
/// <param name="idxMacchina"></param>
/// <param name="numGg"></param>
/// <param name="durataMin"></param>
/// <returns></returns>
public List<FnqDTO> FnqGetByFilt(string idxMacchina, int numGg, int durataMin)
{
List<FnqDTO> dbResult = new List<FnqDTO>();
using (var dbCtx = new MoonProContext(_configuration))
{
var IdxMacchina = new SqlParameter("@IdxMacchina", idxMacchina);
var NumGg = new SqlParameter("@gg", numGg);
var DurataMin = new SqlParameter("@durataMin", durataMin);
dbResult = dbCtx
.DbSetFnq
.FromSqlRaw("exec dbo.stp_FNQ_getFilt @IdxMacchina, @gg, @durataMin", IdxMacchina, NumGg, DurataMin)
.AsNoTracking()
.AsEnumerable()
.ToList();
}
return dbResult;
}
/// <summary>
/// Recupera record EventList date condizioni filtro
-19
View File
@@ -1,19 +0,0 @@
using System;
using System.ComponentModel.DataAnnotations;
namespace MP.Data.DTO
{
public class FnqDTO
{
[Key]
public string IdxMacchina { get; set; } = "";
public DateTime InizioStato { get; set; } = DateTime.Now;
public string Macchina { get; set; } = "";
public int IdxStato { get; set; } = 0;
public string Stato { get; set; } = "";
public string Semaforo { get; set; } = "";
public double DurataMinuti { get; set; } = 0;
public string Value { get; set; } = "";
public string CodArticolo { get; set; } = "";
}
}
@@ -18,6 +18,7 @@ namespace MP.Data.DatabaseModels
public DateTime InizioStato { get; set; } = DateTime.Now;
public string Macchina { get; set; } = "";
public int IdxStato { get; set; } = 0;
public string Stato { get; set; } = "";
public string Semaforo { get; set; } = "";
public double DurataMinuti { get; set; } = 0;
public string Value { get; set; } = "";
+1 -2
View File
@@ -56,8 +56,7 @@ namespace MP.Data
public virtual DbSet<StatODLModel> DbSetStatOdl { get; set; }
public virtual DbSet<PzProdModel> DbSetPzProd { get; set; }
public virtual DbSet<EventListModel> DbSetEvList { get; set; }
public virtual DbSet<DiarioDiBordoModel> DbSetDDB { get; set; }
public virtual DbSet<FnqDTO> DbSetFnq { get; set; }
public virtual DbSet<DiarioDiBordoModel> DbSetDDB { get; set; }
public virtual DbSet<VocabolarioModel> DbSetVocabolario { get; set; }
public virtual DbSet<AnagOperatoriModel> DbOperatori { get; set; }
public virtual DbSet<Gruppi2OperModel> DbSetGrp2Oper { get; set; }
-39
View File
@@ -218,45 +218,6 @@ namespace MP.Data.Services
return result;
}
/// <summary>
/// Recupera elenco ultime fermate non frequenti
/// </summary>
/// <param name="idxMacchina"></param>
/// <param name="numGg"></param>
/// <param name="durataMin"></param>
/// <returns></returns>
public async Task<List<FnqDTO>> FnqGetByFilt(string idxMacchina, int numGg, int durataMin)
{
// setup parametri costanti
string source = "DB";
Stopwatch sw = new Stopwatch();
sw.Start();
List<FnqDTO> result = new List<FnqDTO>();
// cerco in redis...
string currKey = $"{redisBaseKey}:FNQ:{idxMacchina}:{numGg}:{durataMin}";
RedisValue rawData = await redisDb.StringGetAsync(currKey);
//if (!string.IsNullOrEmpty($"{rawData}"))
if (rawData.HasValue)
{
result = JsonConvert.DeserializeObject<List<FnqDTO>>($"{rawData}");
source = "REDIS";
}
else
{
result = dbTabController.FnqGetByFilt(idxMacchina, numGg, durataMin);
// serializzp e salvo...
rawData = JsonConvert.SerializeObject(result);
await redisDb.StringSetAsync(currKey, rawData, FastCache);
}
if (result == null)
{
result = new List<FnqDTO>();
}
sw.Stop();
Log.Debug($"FnqGetByFilt | {source} | {sw.Elapsed.TotalMilliseconds}ms");
return result;
}
/// <summary>
/// Effettua conferma prod macchina dell'intero periodo da confermare (ultima conferma
/// --&gt; dtEvent)