Update display allarme

This commit is contained in:
Samuele Locatelli
2023-10-11 19:31:36 +02:00
parent 98d0f54ad6
commit 1744b4fa56
11 changed files with 326 additions and 11 deletions
+27
View File
@@ -25,6 +25,33 @@ namespace MP.Data.Controllers
#region Public Methods
/// <summary>
/// Elenco allarmi macchina
/// </summary>
/// <param name="idxMacchina">Macchina</param>
/// <param name="dtFrom">Inizio periodo</param>
/// <param name="dtTo">Fine periodo</param>
/// <param name="showMulti"></param>
/// <returns></returns>
public List<AlarmLogModel> AlarmLogListFilt(string idxMacchina, DateTime dtFrom, DateTime dtTo, bool showMulti)
{
List<AlarmLogModel> dbResult = new List<AlarmLogModel>();
using (var dbCtx = new MoonProContext(_configuration))
{
var IdxMacc = new SqlParameter("@IdxMacchina", idxMacchina);
var DtFrom = new SqlParameter("@dtFrom", dtFrom);
var DtTo = new SqlParameter("@dtTo", dtTo);
var ShowMulti = new SqlParameter("@showMulti", showMulti);
dbResult = dbCtx
.DbSetAlarmLog
.FromSqlRaw("EXEC stp_AL_getFilt @IdxMacchina, @dtFrom, @DtTo, @showMulti", IdxMacc, DtFrom, DtTo, ShowMulti)
.AsNoTracking()
.ToList();
}
return dbResult;
}
/// <summary>
/// Restituisce l'anagrafica EVENTI per intero
/// </summary>
+43
View File
@@ -0,0 +1,43 @@
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
{
[Table("AlarmLog")]
public partial class AlarmLogModel
{
#region Public Properties
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int AlarmLogId { get; set; } = 0;
public DateTime DtRif { get; set; } = DateTime.Now;
public decimal Duration { get; set; } = 0;
public string MachineId { get; set; } = "";
public string MemAddress { get; set; } = "";
public int MemIndex { get; set; } = 0;
public int StatusVal { get; set; } = 0;
public string ValDecoded { get; set; } = "";
public DateTime DtNotify { get; set; } = DateTime.Now;
public string UserAck { get; set; } = "";
public DateTime DtAck { get; set; } = DateTime.Now;
[NotMapped]
public int ReqNotify
{
get => Duration > 1 && DtNotify < DtRif ? 1 : 0;
}
[NotMapped]
public int ReqAck
{
get => DtNotify > DtRif && DtAck < DtRif ? 1 : 0;
}
#endregion Public Properties
}
}
+2
View File
@@ -37,6 +37,8 @@ namespace MP.Data
#region Public Properties
public virtual DbSet<AlarmLogModel> DbSetAlarmLog { get; set; }
public virtual DbSet<StatsAnagArticoli> DbSetStatArticoli { get; set; }
public virtual DbSet<AnagArticoli> DbSetArticoli { get; set; }
public virtual DbSet<AnagEventiModel> DbSetAnagEventi { get; set; }
+38
View File
@@ -890,6 +890,44 @@ namespace MP.Data.Services
return result;
}
/// <summary>
/// Elenco allarmi macchina
/// </summary>
/// <param name="idxMacchina">Macchina</param>
/// <param name="dtFrom">Inizio periodo</param>
/// <param name="dtTo">Fine periodo</param>
/// <param name="showMulti"></param>
/// <returns></returns>
public async Task<List<AlarmLogModel>> AlarmLogListFilt(string idxMacchina, DateTime dtFrom, DateTime dtTo, bool showMulti)
{
string source = "DB";
Stopwatch sw = new Stopwatch();
sw.Start();
List<AlarmLogModel>? result = new List<AlarmLogModel>();
// cerco in redis...
string currKey = $"{redisBaseKey}:AlarmLog:{idxMacchina}:{dtFrom:yyyyMMdd-HHmmss}:{dtTo::yyyyMMdd-HHmmss}:{showMulti}";
RedisValue rawData = await redisDb.StringGetAsync(currKey);
if (rawData.HasValue)
{
result = JsonConvert.DeserializeObject<List<AlarmLogModel>>($"{rawData}");
source = "REDIS";
}
else
{
result = await Task.FromResult(dbTabController.AlarmLogListFilt(idxMacchina, dtFrom, dtTo, showMulti));
// serializzp e salvo...
rawData = JsonConvert.SerializeObject(result);
await redisDb.StringSetAsync(currKey, rawData, UltraFastCache);
}
if (result == null)
{
result = new List<AlarmLogModel>();
}
sw.Stop();
Log.Debug($"AlarmLogListFilt | {source} | {sw.Elapsed.TotalMilliseconds}ms");
return result;
}
/// Elenco PODL macchina
/// </summary>
/// <param name="idxMacchina">Macchina</param>