testing tra grafico e metodo JS + cache in redis x json calcolato
This commit is contained in:
+41
-17
@@ -2,6 +2,7 @@ using MapoDb;
|
||||
using SteamWare;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
|
||||
/// <summary>
|
||||
@@ -27,6 +28,24 @@ public struct objSequencer
|
||||
/// </summary>
|
||||
public DataLayer_generic.serieDatiDataTable serieDati;
|
||||
}
|
||||
/// <summary>
|
||||
/// oggetto dati per grafico sequencer
|
||||
/// </summary>
|
||||
public struct jsonVisJS
|
||||
{
|
||||
/// <summary>
|
||||
/// idx macchina
|
||||
/// </summary>
|
||||
public string idxMacchina;
|
||||
/// <summary>
|
||||
/// intervallo analisi
|
||||
/// </summary>
|
||||
public intervalloDate intervallo;
|
||||
/// <summary>
|
||||
/// serie dei dati già elaborati come json stream
|
||||
/// </summary>
|
||||
public string jsonDati;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// oggetto dati per grafico TempiCiclo
|
||||
@@ -45,8 +64,8 @@ public struct objTempiCiclo
|
||||
}
|
||||
//public struct intervallo
|
||||
//{
|
||||
// public DateTime inizio;
|
||||
// public DateTime fine;
|
||||
// public DateTime inizio;
|
||||
// public DateTime fine;
|
||||
//}
|
||||
public class resoconti
|
||||
{
|
||||
@@ -80,7 +99,7 @@ public class resoconti
|
||||
{
|
||||
//if (_StatoMacchine == null)
|
||||
//{
|
||||
// _StatoMacchine = taStatoMacchine.GetData();
|
||||
// _StatoMacchine = taStatoMacchine.GetData();
|
||||
//}
|
||||
if (!memLayer.ML.isInCacheObject("StatoMacchine"))
|
||||
{
|
||||
@@ -545,14 +564,18 @@ public class resoconti
|
||||
/// <returns></returns>
|
||||
public List<visjsDsItem> sequenzaDatiVisJS(string idxMacchina, intervalloDate _intervallo, int numSplit)
|
||||
{
|
||||
List<visjsDsItem> sequenza = new List<visjsDsItem>();
|
||||
Stopwatch stopwatch = new Stopwatch();
|
||||
DateTime start = DateTime.Now;
|
||||
// leggo i dati e costituisco una collezione...
|
||||
List<visjsDsItem> sequenza = new List<visjsDsItem>();
|
||||
int i = 0;
|
||||
if (idxMacchina != null && idxMacchina != "")
|
||||
{
|
||||
logger.lg.scriviLog("inizio WS");
|
||||
stopwatch.Restart();
|
||||
// seleziono i dati...
|
||||
DS_applicazione.DiarioDiBordoDataTable tabSeq = taDiarioDiBordo.GetSequenza(idxMacchina, _intervallo.inizio, _intervallo.fine);
|
||||
logger.lg.scriviLog(string.Format("Letta tabella: {0} rec, {1} msec", tabSeq.Rows.Count, stopwatch.ElapsedMilliseconds));
|
||||
|
||||
// se ho troppi dati faccio la riduzione dei dati, MAX numSplit...
|
||||
if (tabSeq.Rows.Count > numSplit)
|
||||
@@ -560,11 +583,12 @@ public class resoconti
|
||||
double sogliaMin = _intervallo.fine.Subtract(_intervallo.inizio).TotalMinutes / numSplit;
|
||||
tabSeq = riduciSeq(tabSeq, sogliaMin);
|
||||
}
|
||||
logger.lg.scriviLog(string.Format("Riduzione seq fatta: {0} rec, {1} msec", tabSeq.Count, stopwatch.ElapsedMilliseconds));
|
||||
// ora converto in oggetto definitivo x vis.js
|
||||
sequenza = tabSeq.AsEnumerable().Select(riga => new visjsDsItem
|
||||
{
|
||||
//id = i,
|
||||
//content = riga.CodArticolo,
|
||||
content = "",//riga.CodArticolo,
|
||||
start = riga.InizioStato.ToString("yyyy-MM-dd HH:mm:ss"),
|
||||
end = riga.FineStato.ToString("yyyy-MM-dd HH:mm:ss"),
|
||||
group = "1", // per mostrare multi macchine
|
||||
@@ -574,23 +598,23 @@ public class resoconti
|
||||
|
||||
foreach (var item in sequenza)
|
||||
{
|
||||
item.content = i.ToString();
|
||||
//item.content = i.ToString();
|
||||
item.id = i;
|
||||
i++;
|
||||
}
|
||||
logger.lg.scriviLog(string.Format("Conversione oggetto eseguita: {0} rec, {1} msec", sequenza.Count, stopwatch.ElapsedMilliseconds));
|
||||
#if false
|
||||
// faccio trim x primo evento...
|
||||
if (_sequenza[0].start < _intervallo.inizio)
|
||||
{
|
||||
_sequenza.serieDati[0].valore -= _intervallo.inizio.Subtract(_sequenza.serieDati[0].timeData).TotalMinutes;
|
||||
_sequenza.serieDati[0].timeData = _intervallo.inizio;
|
||||
}
|
||||
//...e ultimo evento...
|
||||
int numValori = _sequenza.serieDati.Count - 1;
|
||||
_sequenza.serieDati[numValori].valore = _intervallo.fine.Subtract(_sequenza.serieDati[numValori].timeData).TotalMinutes;
|
||||
// faccio trim x primo evento...
|
||||
if (_sequenza[0].start < _intervallo.inizio)
|
||||
{
|
||||
_sequenza.serieDati[0].valore -= _intervallo.inizio.Subtract(_sequenza.serieDati[0].timeData).TotalMinutes;
|
||||
_sequenza.serieDati[0].timeData = _intervallo.inizio;
|
||||
}
|
||||
//...e ultimo evento...
|
||||
int numValori = _sequenza.serieDati.Count - 1;
|
||||
_sequenza.serieDati[numValori].valore = _intervallo.fine.Subtract(_sequenza.serieDati[numValori].timeData).TotalMinutes;
|
||||
#endif
|
||||
}
|
||||
if (sequenza.Count > numSplit) sequenza.RemoveRange(0, sequenza.Count - numSplit);
|
||||
return sequenza;
|
||||
}
|
||||
/// <summary>
|
||||
@@ -684,7 +708,7 @@ public class resoconti
|
||||
//riga.InizioStato = _t_0;
|
||||
copia.ImportRow(riga);
|
||||
// modifico inizio stato...
|
||||
((DS_applicazione.DiarioDiBordoRow)copia.Rows[copia.Rows.Count -1]).InizioStato = _t_0;
|
||||
((DS_applicazione.DiarioDiBordoRow)copia.Rows[copia.Rows.Count - 1]).InizioStato = _t_0;
|
||||
// reset dei contatori...
|
||||
valRigaCum = 0.0;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user