ok lettura vista pareto gloable stati amcchina

This commit is contained in:
Samuele Locatelli
2023-03-28 18:03:41 +02:00
parent 230ad35316
commit 7b94368e7c
24 changed files with 305 additions and 142 deletions
+55 -13
View File
@@ -907,6 +907,34 @@ namespace MP.MONO.Data.Controllers
return currMachDto;
}
/// <summary>
/// Recupero pareto status impianto
/// </summary>
/// <param name="MachineId">Macchina selezionata</param>
/// <param name="from">inizio periodo</param>
/// <param name="to">fine periodo</param>
/// <returns></returns>
public List<ParetoStatusModel> ParetoStatusMach(int MachineId, DateTime from, DateTime to)
{
List<ParetoStatusModel> dbResult = new List<ParetoStatusModel>();
using (MapoMonoContext localDbCtx = new MapoMonoContext())
{
try
{
dbResult = localDbCtx
.DbSetParetoStatus
. OrderByDescending(x => x.TotDuration)
.ToList();
}
catch (Exception exc)
{
Log.Error($"Eccezione durante ParetoStatusMach{Environment.NewLine}{exc}");
}
}
return dbResult;
}
/// <summary>
/// Recupera elenco contatori ammessi
/// </summary>
@@ -1274,28 +1302,42 @@ namespace MP.MONO.Data.Controllers
{
try
{
float duration = 0;
bool needInsert = false;
// ultimo inserito...
var lastrec = localDbCtx
var lastRec = localDbCtx
.DbSetStatusLog
.Where(x => x.MachineId == newRec.MachineId)
.OrderByDescending(x => x.DtRif)
.FirstOrDefault();
// se trovato calcolo durata...
if (lastrec != null)
// se non trovato inserisco comunque
if (lastRec == null)
{
duration = (float)DateTime.Now.Subtract(lastrec.DtRif).TotalMinutes;
needInsert = true;
}
// se trovato controllo variazione...
else
{
// se cambia stato...
if (lastRec.CodStatus != newRec.CodStatus)
{
needInsert = true;
}
// oppure se è passato il giorno...
else if (lastRec.DtRif.Date < newRec.DtRif.Date)
{
needInsert = true;
}
// calcolo durata vecchio record...
lastRec.Duration = (float)DateTime.Now.Subtract(lastRec.DtRif).TotalMinutes;
}
// aggiorno durata
newRec.Duration = duration;
// inserisco record
localDbCtx
.DbSetStatusLog
.Add(newRec);
if (needInsert)
{
localDbCtx
.DbSetStatusLog
.Add(newRec);
}
// salvo
localDbCtx.SaveChanges();