Eliminato riferimenti a tab spsotata in REDIS

This commit is contained in:
Samuele Locatelli
2023-10-23 19:59:25 +02:00
parent 98f3aa2e90
commit 8b0b1a3003
3 changed files with 38 additions and 100 deletions
+37 -56
View File
@@ -4,15 +4,12 @@ using Microsoft.Extensions.Configuration;
using MP.Data.DatabaseModels;
using MP.Data.DTO;
using NLog;
using NLog.LayoutRenderers;
using System;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.Runtime.InteropServices;
using System.Threading.Tasks;
using ZXing;
using static EgwCoreLib.Utils.DtUtils;
namespace MP.Data.Controllers
@@ -551,7 +548,9 @@ namespace MP.Data.Controllers
/// <param name="currPeriodo"></param>
/// <param name="valMode"></param>
/// <param name="intReq"></param>
/// <returns>Restitusice list dei record statistiche raccolti (da integrare a quelli rpesenti in Redis...)</returns>
/// <returns>
/// Restitusice list dei record statistiche raccolti (da integrare a quelli rpesenti in Redis...)
/// </returns>
public async Task<List<StatDedupDTO>> FluxLogDataRedux(string idxMaccSel, List<string> fluxList, Periodo currPeriodo, Enum.ValSelection valMode, Enum.DataInterval intReq, int maxItem)
{
List<StatDedupDTO> procStats = new List<StatDedupDTO>();
@@ -562,12 +561,15 @@ namespace MP.Data.Controllers
case Enum.DataInterval.minute:
step = TimeSpan.FromMinutes(1.00 / maxItem);
break;
case Enum.DataInterval.hour:
step = TimeSpan.FromHours(1.00 / maxItem);
break;
case Enum.DataInterval.day:
step = TimeSpan.FromDays(1.00 / maxItem);
break;
default:
break;
}
@@ -592,7 +594,8 @@ namespace MP.Data.Controllers
// dbContext x ogni singolo flusso
using (var dbCtx = new MoonProContext(_configuration))
{
// li processo per intervallo richiesto, cercando dati nel periodo e selezionando VC
// li processo per intervallo richiesto, cercando dati nel periodo e
// selezionando VC
while (!setCompleted)
{
// ora recupero TUTTI i dati della macchina
@@ -611,7 +614,6 @@ namespace MP.Data.Controllers
}
List<Periodo> listPeriodi = new List<Periodo>();
switch (valMode)
{
case Enum.ValSelection.First:
@@ -620,12 +622,14 @@ namespace MP.Data.Controllers
// salvo periodo!
listPeriodi.Add(new Periodo(recStart.dtEvento, dtCursEnd));
break;
case Enum.ValSelection.Last:
// recupero ultimo item
var recEnd = currFlux.LastOrDefault();
// salvo periodo!
listPeriodi.Add(new Periodo(dtCursStart, recEnd.dtEvento));
break;
case Enum.ValSelection.Center:
int idx = 1;
// per iniziare mi metto a 1/(n+1) rec come step
@@ -644,6 +648,7 @@ namespace MP.Data.Controllers
// aggiungo ultimo...
listPeriodi.Add(new Periodo(recCent.dtEvento.AddSeconds(1), dtCursEnd));
break;
default:
break;
}
@@ -682,6 +687,31 @@ namespace MP.Data.Controllers
return procStats;
}
/// <summary>
/// Elenco ultimi n record flux log dato macchina e flusso (ordinato x data registrazione)
/// </summary>
/// <param name="DtMax">Data massima x eventi</param>
/// <param name="DtMin">Data minima x eventi</param>
/// <param name="IdxMacchina">* = tutte, altrimenti solo x una data macchina</param>
/// <param name="CodFlux">*=tutti, altrimenti solo selezionato</param>
/// <param name="MaxRec">numero massimo record da restituire</param>
/// <returns></returns>
public List<FluxLog> FluxLogGetLastFilt(DateTime DtMax, DateTime DtMin, string IdxMacchina, string CodFlux, int MaxRec)
{
List<FluxLog> dbResult = new List<FluxLog>();
using (var dbCtx = new MoonProContext(_configuration))
{
dbResult = dbCtx
.DbSetFluxLog
.AsNoTracking()
.Where(x => (x.dtEvento >= DtMin && x.dtEvento <= DtMax) && (IdxMacchina == "*" || x.IdxMacchina == IdxMacchina) && (CodFlux == "*" || x.CodFlux == CodFlux))
.OrderByDescending(x => x.dtEvento)
.Take(MaxRec)
.ToList();
}
return dbResult;
}
/// <summary>
/// Stored manutenzione del DB
/// </summary>
@@ -708,62 +738,13 @@ namespace MP.Data.Controllers
var dbResult = dbCtx
.Database
.ExecuteSqlRaw("EXEC man.stp_Utility_Maintanance");
//.ExecuteSqlRaw("EXEC man.stp_Utility_Maintanance @FlgExec, @FlgUpdStat, @FlgSave, @min_page_count, @min_avg_fragmentation_in_percent, @max_avg_fragmentation_per_rebuild", pFlgExec, pFlgUpdStat, pFlgSave, pMinPgCnt, pMinAvgFrag, pMaxAvgFrag);
//.ExecuteSqlRaw("EXEC man.stp_Utility_Maintanance @FlgExec, @FlgUpdStat, @FlgSave, @min_page_count, @min_avg_fragmentation_in_percent, @max_avg_fragmentation_per_rebuild", pFlgExec, pFlgUpdStat, pFlgSave, pMinPgCnt, pMinAvgFrag, pMaxAvgFrag);
fatto = true;
}
Log.Info($"FINE ForceDbMaint");
return fatto;
}
/// <summary>
/// Inserimento record risultati deduplica FluxLog
/// </summary>
/// <param name="rec2ins"></param>
/// <returns></returns>
protected bool LogFLDedupInsert(List<LogFLDedupModel> rec2ins)
{
bool fatto = false;
using (var dbCtx = new MoonProContext(_configuration))
{
try
{
dbCtx.DbSetLogFLDedup.AddRange(rec2ins);
var res = dbCtx.SaveChanges();
fatto = res != 0;
}
catch (Exception exc)
{
Log.Error($"Errore in fase inserimento log dedup x FL{Environment.NewLine}{exc}");
}
}
return fatto;
}
/// <summary>
/// Elenco ultimi n record flux log dato macchina e flusso (ordinato x data registrazione)
/// </summary>
/// <param name="DtMax">Data massima x eventi</param>
/// <param name="DtMin">Data minima x eventi</param>
/// <param name="IdxMacchina">* = tutte, altrimenti solo x una data macchina</param>
/// <param name="CodFlux">*=tutti, altrimenti solo selezionato</param>
/// <param name="MaxRec">numero massimo record da restituire</param>
/// <returns></returns>
public List<FluxLog> FluxLogGetLastFilt(DateTime DtMax, DateTime DtMin, string IdxMacchina, string CodFlux, int MaxRec)
{
List<FluxLog> dbResult = new List<FluxLog>();
using (var dbCtx = new MoonProContext(_configuration))
{
dbResult = dbCtx
.DbSetFluxLog
.AsNoTracking()
.Where(x => (x.dtEvento >= DtMin && x.dtEvento <= DtMax) && (IdxMacchina == "*" || x.IdxMacchina == IdxMacchina) && (CodFlux == "*" || x.CodFlux == CodFlux))
.OrderByDescending(x => x.dtEvento)
.Take(MaxRec)
.ToList();
}
return dbResult;
}
/// <summary>
/// Elenco giacenze
/// </summary>
-40
View File
@@ -1,40 +0,0 @@
using System;
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
{
[Table("LogFLDedup")]
public partial class LogFLDedupModel
{
#region Public Properties
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int DedupIdx { get; set; } = 0;
[MaxLength(50)]
public string IdxMacchina { get; set; } = "";
[MaxLength(50)]
public string CodFlux { get; set; } = "";
public DateTime DtRif { get; set; }=DateTime.Now;
/// <summary>
/// Num record processati
/// </summary>
public int NumRec { get; set; } = 0;
/// <summary>
/// Tempo processing (secondi)
/// </summary>
public double ProcTime { get; set; } = 1;
#endregion Public Properties
}
}
+1 -4
View File
@@ -89,10 +89,7 @@ namespace MP.Data
public virtual DbSet<ST_TemplateRows> DbSetStTemplateRows { get; set; }
public virtual DbSet<CommentiModel> DbSetCommenti { get; set; }
public virtual DbSet<FermiNonQualModel> DbSetFNQ { get; set; }
public virtual DbSet<LogFLDedupModel> DbSetLogFLDedup { get; set; }
public virtual DbSet<FermiNonQualModel> DbSetFNQ { get; set; }
public virtual DbSet<vSelEventiBCodeModel> DbSetVSEB { get; set; }
public virtual DbSet<vSelOdlModel> DbSetVSODL { get; set; }